moi et mon ami a commencé à travailler ensemble en tant que partenaires, nous avons décidé de faire un site Web de kick-comme * après le site Web. Nous avons les idées écrites comme 100 d'entre eux (oui, nous choisissons le mieux et facilement parmi eux d'abord). p>
Mon ami fait la conception de la mise en page et l'organisation de choses, et ma part est la gestion du codage et du serveur. P>
Le petit problème que je suis confronté est le manque d'expérience dans la planification d'un projet. Ce que je fais est, je viens de commencer le code tout de suite et avec le code que je fais dB, comme quand j'ai besoin d'une table, je le fais. P>
Je sais que c'est une très mauvaise approche pour un projet de taille moyenne. P>
ici chez Stackoverflow, j'ai vu beaucoup de codeurs expérimentés. Besoin d'apprendre beaucoup de vos gars :). P>
Alors, pouvez-vous éviter de m'aider sur la manière de planifier un projet et de la norme / de la structure / des cadres de codage à utiliser (je fais du code PHP). P>
Merci d'avance. P>
3 Réponses :
Commencez par définir la portée. Ecrivez un paragraphe sur une page et essayez de décrire votre site Web. Une approche descendante serait de commencer à penser à des fonctionnalités que vous souhaitez mettre en œuvre et le raffiner en ajoutant plus de détails. p>
Une approche descendante (est également connue sous le nom de conception étagère) est essentiellement la décomposition d'un système pour obtenir un aperçu de ses sous-systèmes de composition. Dans une approche descendante, une vue d'ensemble du système est d'abord formulée, spécifiant mais ne détaillant aucun sous-systèmes de premier niveau. Chaque sous-système est ensuite affiné dans encore plus de détails, parfois dans de nombreux niveaux de sous-système supplémentaires, jusqu'à ce que la spécification complète soit réduite aux éléments de base. Un modèle descendant est souvent spécifié avec l'aide de «boîtes noires», elles facilitent la manipulation. Cependant, les boîtes noires peuvent échouer à élucider des mécanismes élémentaires ou être suffisamment détaillés pour valider de manière réaliste le modèle. http://fr.wikipedia.org/wiki/top-down_and_bottom-up_design . p> blockQuote>
Il existe de nombreuses autres approches. P>
http://en.wikipedia.org/wiki/software_project_management#software_Development_process < / p>
Encore une fois,
L'étape la plus importante consiste à pouvoir mettre votre idée en mots; Avant de pouvoir faire suffisamment cela, je ne voudrais même pas commencer à commencer à écrire une ligne de code fort>. p>
Yeh Ça a l'air bien, je vais Google pour quelques exemples de cette approche maintenant. THX
Je vous en prie. N'oubliez pas de marquer votre réponse choisie une fois que vous avez recherché ce que vous cherchiez. Je suis sûr qu'il y aura plus de réponses à votre question, j'attendrais des idées d'autres programmeurs. Il y a beaucoup plus à ce sujet que ma réponse
Quelques pensées de quelqu'un qui aime des abstractions. P>
Calculez ce que vos sites Web ont en commun. Une fois que vous avez identifié les principaux points communs, pour trouver des cadres ou des bibliothèques qui traitent avec le plus grand nombre possible d'entre eux (en plus de remplir vos autres critères), tels que le code de DB boilerplate. P>
Pour la commune dispose que vous ne pouvez pas trouver un code prêt à l'emploi (ils existent toujours dans des sites Web personnalisés), vous aurez une chance d'écrire une bibliothèque commune à utiliser sur vos sites Web vous-même. Cela pourrait être un modèle pour votre balisage, une bibliothèque JavaScript ou un composant côté serveur réutilisable, ou tous ensemble. P>
D'après votre description, il semble que vous appréciez une grande liberté dans le processus de création (par opposition à obtenir une main spec exigences pour vous et demandé de la mettre en œuvre). Je dirais que le plan ne pas trop non plus, « tout juste à un code tout de suite » est beaucoup de plaisir et pas mal du tout. L'expérience sera votre meilleur ami, et le moment où vous atteignez site # 100, vous aurez beaucoup. Lors de la construction de votre deuxième site, vos expériences avec le premier vous aidera à éviter de faire quelques-unes des erreurs que vous avez faites, et vous découvrirez de nouvelles similitudes que vous ne l'avez pas anticipez dans la phase de planification. Assurez-vous de prendre le temps, déplacer le code commun à une seule bibliothèque, et revenir en arrière et modifier votre premier site Web à l'utiliser. Pour ce faire, quelques fois et vous aurez les leçons apprises qui valent beaucoup. P>
@Lauri Lehtinen -: o. On dirait que vous savez exactement, ce que je vais à travers .yeh, j'ai également pensé à ne pas coller à un cadre spécifique (Sounds boiteux: P). Et faire de son propre ensemble de bibliothèque de PHP / JS est l'idée d'or thx pour cela. J'ai vu vos projets filmgator, pdfunloack qu'ils ont vraiment cool. Certainement ne peuvent pas trouver votre email, nous devrions être des frnds :)
@Arsheep Vous pouvez toujours utiliser un cadre comme Symfony. L'utilisation d'un cadre existant ne devrait pas vous empêcher de développer des composants que vous pouvez utiliser sur vos projets.
@Jan Kuboschek - Oui tu as raison. ATM J'utilise Coweigniter et ça a l'air bien. Que pensez-vous de CodeIndrier?
Je suis d'accord avec Jan ici, essayez d'identifier le meilleur cadre très générique pour vos besoins et de le compléter avec le code qui traite de vos besoins spécifiques.
@Arsheep je ne suis pas familier avec Codeigniter; Si vous me demandez, cela n'a pas vraiment d'importance avec où vous êtes. Choisissez quelque chose, apprenez-le et apprenez de vos erreurs à votre guise. Ce n'est pas comme si vous travaillez sur un grand projet commercial. Je veux juste vous conseiller de placer trop d'importance à la technologie spécifique pour le moment. Choisissez quelque chose et concentrez-vous sur la logique; C'est ce qui est transférable dans votre avenir.
@Jan Kuboschek - ok je l'ai eu. :)
En ce qui concerne la norme de codage / structure / cadres I Recommander Standard de codage Zend-cadre a>, Structure MVC et < un href = "http://framework.zend.com/" rel = "nOfollow NOREFERRER"> ZEND Cadre . P>
Un bref guide pour un MVC A > Architecture. L'idée est que vous vous rappelez que vous vous souvenez des idées (pendant que votre cerveau est la vapeur du code) et des documents pour les futurs programmeurs. P>
concevez la base de données. Faire un diagramme ER. Mettez-le dans un document. concevez la structure de votre site Web (sections, pages, liens, flux de pages, etc.). Documentez-le. (J'aime: "Le site 2 sections, cette section est composée de ..." etc.) concevez vos modèles et vos fonctionnalités latérales (envoi de courriels, emplois de fond, etc.). Ce seront la majeure partie du code. Documentez chacun et décrivez les principaux problèmes (par exemple, la manière dont les délaizones doivent être manipulés, la manière dont ce modèle est de se connecter au service monétaire, de la manière dont ce modèle est d'analyser et de manipuler un fichier crone, quel algoritm vous utiliserez pour décider des 5 meilleurs Articles, selon votre application.) Décrivez quelles bibliothèques que vous utilisez, comment, et à quelles fins (exemple: «Nous devons utiliser Curl pour les fermer et faire des flux RSS») Comme vous le code, les choses changent. Vos connaissances sur les œuvres distinctes de votre système évoluent et que vous commencez à améliorer la conception basée sur la nouvelle illumination trouvée. Documez vos modifications. P>
Décrivez brièvement des raisons de la conception des problèmes importants (pourquoi vous choisissez une relation polymorphe, pourquoi utiliser cette vue, ce qui vous semble que vous attendez d'être plus trickey, etc.). Cela changera comme vous le code (et vous ne pouvez rien faire). Documenter les changements. Pour faire face aux modifications, utilisez un système de version de la base de données comme Rails Migrations . P > li>
Sur la base de ce document, faites un document décrivant vos contrôleurs et vos points de vue. ("Un contrôleur pour les articles, avec une vue de liste et une vue de l'article, modifier et créer des vues mais juste pour les administrateurs", etc.).
Décrivez comment vous allez appliquer l'authentification et l'autorisation (sur le contrôleur et le niveau de visualisation). Qui est autorisé où.
Décrivez comment vous protectez contre les principales attaques Web (XSS, CSRF), le cas échéant. (Exemple: "J'échappe toutes mes variables de vue à l'aide de HTMentities pour la protection XSS et ...") P> li>
Décrivez comment vous protectez contre les principales attaques Web si nécessaire (Injection SQL, XSS). p> li>
ul>
Ok, des choses très sérieuses et de très bonnes informations aussi. J'utilise en fait un guichet automatique MVC, en utilisant CodeDeigniter Framework.Mais en documentant tout ce qui augmentera trop le temps de la construction de projets que je pense. Ce qui précède est pour un projet géant. Je pense que si nous réduisons la documentation à la moitié, il sera cool pour les projets de taille moyenne.