83 votes

angular-seed est-il le projet vide de facto pour commencer ?

Après avoir été convaincu d'apprendre et d'utiliser Angular.js, j'allais commencer une application web UI concrète afin de lancer la roue de l'apprentissage de l'expérience. ( L'application sera une sorte de planning personnel, de liste de choses à faire, de pense-bête, orienté technique pomodoro, etc...)

L'une des vidéos tutorielles que j'ai vues, réalisée par l'auteur d'Angular, traite des meilleures pratiques. Et l'une des meilleures pratiques est de commencer par le angular-seed projet.

C'est ce que j'allais faire, mais après avoir googlé un peu, il y a déjà au moins deux autres projets qui prétendent être le bon point de départ :

  • angular-enterprise-seed
  • angular-sprout

Je suis un débutant, mais j'aime investir à long terme. Devrais-je m'inquiéter d'utiliser autre chose que angular-seed ? J'ai l'impression qu'il est trop tôt pour me poser cette question, mais s'il y a déjà deux d'autres projets, il y a peut-être de bonnes raisons.

60voto

ben schwartz Points 1027

J'ai constaté que, bien que de nombreuses personnes utilisent divers projets d'amorçage, le point de départ le plus simple et le plus cohérent pour une application angulaire (ou toute autre application Web en javascript) est le suivant Yeoman .

Cette application est un outil d'échafaudage qui vous permet de spécifier des générateurs qui construiront le noyau de votre application, avec toutes les bibliothèques que vous souhaitez (par l'intermédiaire de l'application bower ) et un travail grognement fichier de construction (la plupart des générateurs sont livrés avec une tâche de construction, une tâche de serveur pour l'édition en direct et une tâche de test).

Bien qu'une application de ce type soit nécessairement fondée sur des opinions, l'échafaudage qu'elle produit reste très générique.

exemple :

mkdir my-app
cd my-app
npm install generator-angular
npm install generator-karma
yo angular

26voto

rob Points 3452

Ils ont tous des mérites différents et cela dépend de ce que vous cherchez à faire. J'ai écrit semence angulaire-enterrée et peut parler de ses mérites relatifs.

  1. Il est indépendant du serveur. C'est important car l'un des principes fondamentaux d'AngularJS, et l'une des nombreuses choses qui le rendent attrayant, est qu'il suit le paradigme MVC du client. Cela signifie qu'il est entièrement découplé de toutes les technologies de serveur. De nombreuses graines existantes lient AngularJS aux technologies de serveur, telles que angular-sprout (NodeJS) ou feta grillée (Google App Engine/Java). Dans le cas des projets susmentionnés, si les environnements NodeJS et/ou Java ne sont pas déjà sur votre système, vous devrez passer par plusieurs étapes pour voir apparaître la graine. Cela peut être aliénant pour les développeurs PHP et Python, ce qui a pour conséquence de limiter la communauté du projet.

  2. Prêt à fonctionner en quelques secondes. Comme il n'est pas lié au serveur, il peut être exécuté dans n'importe quel conteneur (et même dans le système de fichiers). La méthode suggérée est d'exécuter "python -m SimpleHTTPServer" à partir du répertoire racine -- cette méthode est native sur Mac et Linux, il n'y a donc aucune étape supplémentaire.

  3. Prévisualisation en direct. Il est facile de vérifier l'état d'avancement du projet, car une version en direct est toujours hébergée. sur github . Parce qu'il est indépendant du serveur, ceci est fait automatiquement en copiant master vers la branche gh-pages à partir d'une tâche cron.

  4. Un style riche. Il comprend Twitter Bootstrap et LESS personnalisé/constructible, ainsi qu'Angular-UI, Angular-NG, des polices de caractères et une myriade d'autres outils permettant d'obtenir un style riche et des capacités de réactivité.

  5. Widgets. Comme Angular-Seed et Angular-Sprout, Angular-Enterprise-Seed illustre les "meilleures pratiques" en matière de mise en page, de routage, etc. Mais il fournit également une foule de composants préconstruits qui peuvent être pris sur l'étagère et immédiatement réutilisés. Cela est un peu difficile à faire car cela peut nécessiter la convergence de plusieurs technologies. Par exemple, pour créer l'exemple de grille, j'ai combiné angular-ui, angular-ng, angular-js et jquery styling. Il existe des exemples de composants pour les modales, la pagination, les alertes, les grilles, etc.

Angular-seed est un excellent exercice académique si vous voulez apprendre comment les pièces fonctionnent, mais vous aurez envie d'un point de départ plus substantiel.

Je n'ai pas utilisé angular-sprout et je ne peux donc pas me prononcer sur ses mérites. Peut-être y a-t-il une possibilité de fusionner angular-sprout et angular-enterprise-seed ?

18voto

Mordred Points 573

Je reconnais qu'il s'agit d'une question plus ancienne, mais elle semble avoir un bon nombre de vues, il est donc logique de recommander ce qui est récemment devenu une alternative très populaire à Yeoman et angular-seed : ng-boilerplate . ng-boilerplate diffère d'angular-seed en ce sens qu'il a été conçu dès le départ pour les applications web de grande production, et constitue donc une meilleure solution qu'angular-seed à mon avis.

Pour expliquer les différences entre les méthodes Yeoman et ng-boilerplate de démarrage d'applications, je vais citer le créateur de ngbp, Josh D. Miller :

Yeoman est génial. Mais le problème que j'ai avec les générateurs pour AngularJS est qu'ils conditionnent par couche plutôt que par fonctionnalité. Si nous stockons tous les contrôleurs dans un dossier "controllers" et tous les services dans un dossier "services", etc., et tous nos tests dans un autre endroit, il peut être très difficile de réutiliser nos composants.

Cette discussion est également très intéressante par Josh sur le forum Yeoman angular-generator issues, qui va plus en profondeur concernant la configuration de ng-boilerplate vs. yeoman.

11voto

Dan Cancro Points 300

Juste pour être clair, Yeoman n'est pas un générateur. Yeoman est un format/système permettant de créer des générateurs. Il existe plusieurs générateurs réalisés avec Yeoman que vous pouvez utiliser pour générer une application AngularJS. Les gens se réfèrent souvent par erreur à l'un ou l'autre d'entre eux comme étant "le" générateur Yeoman. Mais il y en a plusieurs. Vous êtes encore confus ? Yeoman n'est pas le seul système de génération. Brunch en est un autre.

Pour répondre à votre question, aquí est une comparaison très complète, côte à côte, de nombreux générateurs AngularJS que l'on peut utiliser pour commencer à créer une application Web avec AngularJS. Actuellement, il contient plus de 200 aspects différents de ces choses. L'un d'eux est le style d'organisation des fichiers. Vous pouvez donc facilement voir lesquels organisent les fichiers par caractéristique si c'est important pour vous. Ça l'est pour moi.

Il en reste encore plusieurs à ajouter. Les deux mentionnés dans ce fil sont nouveaux pour moi. Mais cette comparaison devrait vous donner une bonne idée des options et de leur comparaison. Il est également modifiable, donc si l'un d'entre vous est un expert dans l'un de ces domaines, n'hésitez pas à partager ce que vous savez.

Dieu seul sait pourquoi les gens continuent à fabriquer de plus en plus de ces choses au lieu de contribuer à améliorer celles qui existent déjà. Si vous avez une idée, j'aimerais que ce mystère soit résolu.

9voto

dmackerman Points 1767

J'aime aussi utiliser Yeoman. Essayez-les pour obtenir un bon échafaudage :

npm install -g generator-angular  # install generator
yo angular                        # scaffold out a AngularJS project
bower install angular-ui          # install a dependency for your project from Bower
grunt test                        # test your app
grunt server                      # preview your app
grunt                             # build the application for deployment

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X