Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

too much tools, features; complexity #33

Closed
rdsedmundo opened this issue Jul 10, 2017 · 2 comments
Closed

too much tools, features; complexity #33

rdsedmundo opened this issue Jul 10, 2017 · 2 comments
Labels

Comments

@rdsedmundo
Copy link

Note: I didn't follow the template because this is not really a request or a report, but a discussion

I've found this kit awesome, very well coded, but it's too much complex, much more than a project generated using the Angular CLI for example. I know that the Universal come with other requirements, but this, for example, works fine, and it's much more easy to integrate with an existing project or start developing.

Some points for discussing:

  • Why Gulp, couldn't use just NPM as the build tool?
  • Why JSHint - it's because we have JS files, I guess - but, if the Angular app itself is entirely in Typescript, why the Node scripts couldn't be too, using ts-node?
  • Why PostCSS, Stylelint?
  • Why having a 'lean Angular' option, if the name of the repository is Universal - couldn't this be in a separate repository?
  • Why this big demo project using 10 different modules at the app.module, internationalization, and a lot of components? Couldn't it be a simple Hello World, maybe with two simple routes? How I'll know if I remove everything it will still work - what is mandatory and what is not?

Having extra and useful features like PostCSS and Stylelint, for example, is good - if I need it. I know, I could exclude them, but how I will be sure that it would not break something? That's the reason that it should be optional. If I want it, I include it.

And don't get my wrong, it's just my own opinion. I've passed by the source code and I've seen the things that you've done - they're very well coded, and I know that it took a lot of effort to get done.

@fulls1z3
Copy link
Owner

fulls1z3 commented Jul 12, 2017

@rdsedmundo thanks for your kind works, and your thoughts. I believe that this discussion will contribute much to the successful development and maintenance of this project. So, let's start with the points you discussed:

  • Why Gulp, couldn't use just NPM as the build tool?

I was developing software using Angular much time ago, by using Gulp as a task runner in alignment with Visual Studio 2015. This project inherited much from these previous projects (reused the functionality instead of creating from scratch). Although there're some features that NPM couldn't fully cover as Gulp does, it sounds like a great idea switching to NPM.

  • Why JSHint - it's because we have JS files, I guess - but, if the Angular app itself is entirely in Typescript, why the Node scripts couldn't be too, using ts-node?

A well-coded app needs to follow very strict guidelines, code styles. The main code style enforcer is obviously TsLint. However, JSHint was really necessary to enforce a consistent code style across the JS parts of this project.

Another brilliant idea is to convert Node scripts into TypeScript and voila: no need to JSHint!

  • Why PostCSS, Stylelint?

PostCSS - for AutoPrefixer; Stylelint - enforcing code style (I'm aware of those rules need further improvements),

  • Why having a 'lean Angular' option, if the name of the repository is Universal - couldn't this be in a separate repository?

There's actually a separate repository called ng-seed/spa which has the only lean Angular option. However, the lean Angular on this universal project saves a lot of time during development (reduced build times, HMR, etc).

  • Why this big demo project using 10 different modules at the app.module, internationalization, and a lot of components? Couldn't it be a simple Hello World, maybe with two simple routes? How I'll know if I remove everything it will still work - what is mandatory and what is not?

The main reason that this project has all those dependencies, is the fact that apart being a seed project for Angular Universal, it also showcases all included modules in alignment with each other.

On the other hand, I could briefly say that almost all dependencies with ngx- prefix can be safely removed from app.module, and app.browser.module. However, this should be documented well so people wouldn't worry about what could be possible side-effects of removing those dependencies.


Please feel free to share your thoughts further, because I believe that these ideas would lead to great contributions to this project and also will make things easier for people who use it. Also, feel free to make PR's (documentation, functionality, etc).

@fulls1z3
Copy link
Owner

@theomathieubhvr I'd like to consult you about these topics too, so it would be really cool if you could enumerate here your thoughts on these topics.

@fulls1z3 fulls1z3 closed this as completed Aug 2, 2017
@fulls1z3 fulls1z3 changed the title [discussion] Too much tools, features; complexity [question] Too much tools, features; complexity Aug 10, 2017
@fulls1z3 fulls1z3 changed the title [question] Too much tools, features; complexity too much tools, features; complexity Sep 16, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants