Welcome Guest, Not a member yet? Register   Sign In
Looking for input from those of you with CI experience as well as Node/TS. experience
#1

(This post was last modified: 06-24-2020, 02:05 PM by Greg-J.)

A few months ago I took over an application written in Node/Angular/Nest even though I have never worked with Angular or TypeScript and it has been a nightmare. The function of this single-page-application is to serve as a rapid development test-bed to fill in gaps in our core product. I am the sole person on this project and own it from ideation and design to development, deployment, and support. The foreign syntax and extreme obfuscation of types, interfaces, GraphQL, and the complete separation of front-end and back-end is simply too much overhead and I find myself spending more time reverse engineering what I've inherited to understand the dozens of node modules or the application structure than I do building new features.

Today I let my boss know that I'm done with this and I'm going to rewrite the application from scratch using what I know, and I what I know is php and javascript (front end JS, I've never worked with Node before this).

All the application does is:

* Login is handled via external SSO using cookies/JWT
* A list of reports is shown and you can edit/create/delete reports Reports are stored in MariaDB with some meta data like who owns them as well as a JSON object that defines the report parameters.
* Reports are then saved back to the DB and/or the JSON is sent to an Amazon SQS queue to be processed by a Spark process I don't manage.
* Once the reports have processed and are saved back to MariaDb they are able to be viewed in a simple table.

That's it. Super simple single page application.

I am currently trying to determine if using CI4 is the right move or if I should try to use something else written in Node/TypeScript. I like what I've learned of Node and TypeScript so far, but the application as I inherited it is over-engineered and acts more as an academic exercise than a practical testbed for rapid iteration and deployment.

Ideally what I'd like is CodeIgniter written in Node/TypeScript, but that seems like a very specific and niche request.

What I'm asking is, if any of you have wisdom to share, please do.
Reply
#2

You need to choose either of them, Node JS and CodeIgniter dosen't go hand it hand. It's different server side programming.

Haven't used Node JS myself, so you need to chose if you want it easy route as you already know PHP by my understanding. Or the hard way and learn Node JS. :-)
Reply
#3

(This post was last modified: 07-29-2020, 08:12 PM by cilover85.)

I've been working on modern, front-end applications using RESTful APIs for about 2 years now. Before that I had spent about a decade working on PHP applications. Throughout that time I worked on custom php projects, Drupal, Magento, Drupal, and CodeIgniter. The move to Angular was not without difficulties. However, I would say that it was a great career decision. The job market is dominated by modern MVVM front-end frameworks consuming RESTful APIs using cloud infrastructure. The days of running MVC php websites with jQuery is basically gone. Those jobs do exist and there is a need. However, those jobs are typically ones where you will be maintaining some old janky php project. Even though its not easy it would do you much good to learn something new. Angular is a highly coveted skill which pays very well. NEST is a good framework but there are just so many options when it comes to back-end APIs. I see the industry heading in the direction of server-less APIs. When I take a job on I always consider the job in relationship to advancing my career. I don't think anything related to PHP provides any type of career advancement opportunities. For that reason I think you should stick with it learn something new and increase your marketability. There is no reason to rewrite CI in typescript. NodeJS offers a very wonderful framework called Express for handling http request and responses. That is what NEST uses under the hood I believe.
Reply
#4

I came here from an email that quoted you as saying:

cilover85 Wrote:Anyone who knows what they are doing would fire you immediately. You haver absolutely no idea what y...

And came to respond, but saw you updated your comment. I appreciate the thoughtful reply instead of what you originally posted.

That said, I'm not a developer and I don't pretend to be. My marketability has nothing to do with my development chops. "Single-handedly developed a product from ideation to deployment that resulted in $7M of new business in two quarters" is a lot more marketable for someone in my position than "experienced with TypeScript, Angular, and Nest". Our customers don't care about the technology behind the application or how closely I adhered to modern frameworks. They care if it works and how fast they can have it. I let our product team worry about productizing it and rolling it into our application suite.

My department tried to hand this function over to a small dev team of 4 Angular guys. They then needed to be managed as well. It took them 3 months and then the higher-ups said enough and handed it over to me. What I received is easily the most over-engineered application I have ever laid my eyes on and literally every part of it still needed work. Our product team is overloaded and it looks like I'll own this for at least a year and there's no way I'm going to waste my time learning Angular, Nest, TypeScript, etc. when I know I can knock something out that gets the job done in a fraction of that time. Especially knowing I need to iterate on it. I wanted something familiar, but I was open to something more modern as well.

Ultimately I decided that TypeScript is too much overhead for a one-man-army and decided to go with Sails and Svelte. I still get to use JavaScript and learn new frameworks, but it feels somewhat familiar.

I'll always have a soft spot for CI though. It was the first framework that absolutely clicked with me from the start.
Reply
#5

(This post was last modified: 07-30-2020, 02:16 PM by ivantcholakov.)

CodeIgniter + jQuery + Turbolinks ( https://github.com/turbolinks/turbolinks ). I think, for a one-army man or for a small team this is the best choice.

Edit: Here it is a brief article: https://www.honeybadger.io/blog/turbolinks/
Reply




Theme © iAndrew 2016 - Forum software by © MyBB