Dans quelle mesure la planification que vous faites avant de commencer à coder?

voix
12

Lorsque vous commencez un nouveau projet, comment comptez-vous pour ou combien de temps faut-il?

Pseudocode? Organigrammes?

Essayez-vous de penser à toutes les classes à l'avance?

TBH, je prévois jamais rien. Je reçois directement à et penser à des solutions que des problèmes se posent. La plupart du temps parce que les rares fois où j'ai essayé de la planification à l'avance, je serais toujours oublier quelque chose d'important, et donc la logique de la planification serait erronée.

Créé 11/06/2009 à 22:40
source utilisateur
Dans d'autres langues...                            


16 réponses

voix
11

Beaucoup moins que je ne devrais

Je plonge toujours, se salir et puis se rendre compte que je l'ai fait un gâchis. Ensuite, revenir en arrière et le plan, et le faire bien.

mais la phase désordonnée des erreurs me donne de grandes idées que je ne serais pas même si bien à travers un processus de conception formelle.

Modifier je reçois surtout dans ce genre de briser le clavier les dégâts lors de la lecture avec plus / complexe. Il est intéressant de voir jusqu'où les choses deviennent avant de réaliser que votre « il est dans ma tête il est ok » design est 100% défectueux.

Créé 11/06/2009 à 22:44
source utilisateur

voix
1

Ça dépend. La plupart des choses que j'écris sont assez simples et une conception plus large se construit étape par étape et je remarque ce qui manque encore et ce qui est déjà complet. Il y avait quelques choses plus poilus qui exigeaient une vaste et pensé croquis pour obtenir le droit, mais je ne l'ai pas encore tombé sur de nombreux problèmes architecturaux nécessitant donc (encore jeune et d'autres choses). La plupart du temps ceux qui étaient difficiles choses arithmétiques.

Créé 11/06/2009 à 22:44
source utilisateur

voix
1

A mon stage l'an dernier, mon manager a été agréablement surpris je ordinogrammes pour un problème. Il pensait qu'il était un art perdu avec les étudiants de nos jours. J'étais pas si agréablement surpris qu'ils ont été considérés comme datés.

Quoi qu'il en soit, cela dépend de la chronologie du projet pour moi, les délais sont la chose la plus importante bien sûr.

Créé 11/06/2009 à 22:44
source utilisateur

voix
6

Probablement pas la meilleure technique ... mais ... Je prévois dans le code .

Je découvre souvent la classe / méthodes / etc. que je dois juste en le faisant de cette façon. Cela dit, je suppose toujours que mon code de planification ne va pas être la solution finale.

De plus, je vais écrire des notes détaillant « principales caractéristiques » et « caractéristiques mineures / wish ».

Créé 11/06/2009 à 22:45
source utilisateur

voix
0

Lors de la prise sur un problème de toute taille, je prévois toujours écrire au moins deux fois.

Créé 11/06/2009 à 22:45
source utilisateur

voix
3

Tout dépend de la taille du projet, il. Parfois, il pourrait prendre des mois pour recueillir juste toutes les exigences et de savoir exactement ce qu'il doit faire.

Quand il revient à la partie de codage, tout dépend de la façon dont il est complexe. S'il est extrêmement compliqué, je Wills commencer par dessiner simplement ce que je veux faire. Ensuite, je vais taper mon code pseudo dans les commentaires. Ensuite, je vais coder autour de ces commentaires.

Cependant, si elle est un codage simple. Je vais habituellement juste écrire ce qui est dans mon esprit et de le tester.

Nous utilisons une approche très agile que nous allons travailler sur les pièces principales et des choses de cours sont toujours pop arrivons dans les exigences. Nous allons donc accueillir pour ceux qu'ils viennent. Vous ne réussirez jamais savoir exactement ce que vous complètement voulez créer au début du cycle de création.

C'est mon avis.

Créé 11/06/2009 à 22:46
source utilisateur

voix
1

La plupart du temps, je au moins essayer d'avoir un schéma d'ensemble (même juste dans ma tête) de la façon dont le module / système va fonctionner. J'aime savoir ce que je vais faire avant de le faire. Il rend la programmation plus facile et plus rapide (nous sommes généralement dans des délais serrés où je travaille). Chaque fois que je ne fais pas, je rencontre des problèmes qui me conduit généralement à se retirer du code et de mettre est ailleurs. Je dois admettre, mon processus est venu par l'expérience amère et je me suis vraiment bien à l'aide d'expressions régulières dans le code avec recherche globale et remplacer.

Quelqu'un d'autre a soulevé un bon moment, parfois, vous avez un système vraiment important et qui devient difficile. J'essaie de le casser en morceaux. Je vais travailler sur quelque chose et l'obtenir étoffée, et de travailler sur quelque chose d'autre pour un peu de temps et de voir comment ils interagissent. Même avec la planification à venir, je manque des choses et doivent factoriser le code, mais au moins je ne suis pas tout refaire depuis que j'avais au moins une sorte d'un plan de travail.

Créé 11/06/2009 à 22:47
source utilisateur

voix
1

Cela dépend de la complexité du problème est que vous essayez de résoudre. Si vous prenez un grand projet de programmation, vous devez avoir un certain degré de planification avant de commencer. Si vous ne le faites pas, vous aurez horriblement perdu dans les détails de choses qui ne communique pas tout à fait avec les autres parties en un rien de temps.

Basiquement, essayez d'obtenir une vue à vol d'oiseau des problèmes que vous devez résoudre. Voir si des problèmes sont assez petits que vous pouvez les résoudre et comprendre ce qu'il pourrait avoir besoin de communiquer avec le reste de votre solution. Pensez-y comme une boîte noire avec une API au monde extérieur.

Une fois que vous avez tous vos blocs cernées, si vous avez besoin de diviser le problème en sous-problèmes plus petits, ou que vous avez une vue assez détaillée de l'ensemble du projet que vous pouvez commencer par le code.

Mon expérience est que la planification vous aide à prévenir les problèmes à l'avenir, vous pensez faire plus sur la façon dont le code est censé se développer dans l'avenir si vous avez besoin d'ajouter quoi que ce soit, etc.

Dans la plupart des cas, vous gagnerez le temps passé sur la planification lors du débogage ou l'extension du projet. De plus, ayant une disposition approximative du projet signifie qu'il sera plus facile d'obtenir de l'aide la construction des boîtes noires dont vous avez besoin, vous pouvez donc travailler avec plus de gens que juste vous-même.

Créé 11/06/2009 à 22:47
source utilisateur

voix
1

En fonction de la complexité du projet, je commence habituellement avec pad et du papier, et d'écrire une spécification et un code pseudo du flux de contrôle. Ensuite, je peux me référer toujours à ce que pendant que je suis codage. Il est plus facile et nécessite moins de refactoring parce que vous ne pensez pas que le problème à travers.

Créé 11/06/2009 à 22:47
source utilisateur

voix
1

Personnellement, cela dépend de la portée et la complexité du projet, combien de personnes je travaille avec sur elle, et les attentes générales sur la livraison.

Il est très important de comprendre les attentes générales des parties qui utiliseront le logiciel. Toutes les personnes impliquées dans le projet devrait avoir une compréhension commune de ce qui est en cours d'élaboration - comment qui est communiqué va dans plusieurs directions.

Trop souvent, les parties impliquées dans le développement de logiciels ne se rendent pas compte que la communication entre les parties est souvent la partie la plus critique et sous-évalué du projet - et la principale cause de mésaventures du projet.

Créé 11/06/2009 à 22:48
source utilisateur

voix
16

Après l' expérience d'un grand nombre de projets inachevés , je tends à mettre en œuvre une version simplifiée de mes processus d'affaires dans ma méthode de développement personnel.

Ils suivent généralement la structure suivante:

  1. Créer un bref donc j'ai un objectif à l'esprit.
  2. Mettre en œuvre un diagramme de classes pour comprendre les données que je vais traiter avec.
  3. Mettre en œuvre toutes les classes.
  4. Dresser un diagramme de cas d' utilisation pour décrire les activités.
  5. Echafaudage l'disagram cas d'utilisation (en HTML pour webapps)
  6. Câbler l'échafaud, en mettant en place des tests unitaires et la construction de les transmettre.
  7. Décider de libérer le produit pour le succès commercial, puis oublier tout.
Créé 11/06/2009 à 22:58
source utilisateur

voix
1

Je brasser du café et de l'artisanat sandwichs couple.

Vraiment cela dépend du projet. Je travaille sur certains projets dans l'industrie de la défense qui ont 2 ans de planification détaillée avant d'écrire une seule ligne de code, et je me suis assis et de concocter quelques petits services publics de quelques demandes dans un courriel d'un 3D ou artiste texture en une seule séance avec un sac de bretzels et une tasse de Joe.

Etre capable de développer des organigrammes, diagrammes UML, des dictionnaires de cas d'utilisation, et de vastes normes de codage avant la main est une bonne façon de garder les choses organisées, et est certainement la peine de faire sur les grands projets, les grandes équipes et les projets de critiques. Mais ces choses prennent du temps et sont souvent Overkill pour les petits projets.

La seule chose que vous devez vraiment assurer est que vous avez une bonne compréhension du domaine du problème. Sinon, passer le temps à l'avant pour la recherche jusqu'à ce que vous faites est toujours en valeur le temps.

Créé 11/06/2009 à 23:11
source utilisateur

voix
3

Quand j'étais en chemin « cascade » de faire des choses que j'écrirais plusieurs centaines de documents de pages montrant tous les détails qui pourraient être découverts au cours des recherches. Pour arriver à ce tome massive de documents je le ferais en général

  1. rencontrer et saluer toutes les personnes impliquées dans le projet
  2. prendre des notes abondantes en ce qui concerne les exigences perçues
  3. créer de longues listes à puces des exigences de haut niveau
  4. commencer à briser les exigences de haut niveau dans les détails bien définis
  5. commencer à remplir les exigences du logiciel modèle de mot Spécification: SRS
  6. créer des cadres de fil dans Photoshop, Excel, ou (mon préféré) Balsamiq
  7. la liste des données qui doivent être capturées et commencer à construire un schéma rugueux
  8. la liste des structures de classes UML
  9. définir le calendrier du projet
  10. bla bla bla
  11. Code d'écriture
  12. espérons que ce qui a été demandé est ce qui est encore voulu lorsque le code est complet!

Au cours des dernières années, j'ai suivi avec Agile (SCRUM) et ont adopté une approche totalement différente.

  1. rencontrer le propriétaire du produit d'entendre sur les tâches à construire
  2. décomposer l'histoire en tâches (planification de base)
  3. attribuer de temps aux tâches
  4. faire une planification plus détaillée
  5. -> test d'écriture, écrire du code pour passer le test, refactor -> vérifier dans la danse
  6. démontrer produit de travail / fonction
  7. processus recommencer

Je dois dire que Agile réduit la quantité de documents d'écriture de temps passé qui se désintègrent dès que les Drys d'encre. Le propriétaire du produit obtient de voir les résultats d'une manière beaucoup plus rapide. Ce qui signifie qu'ils peuvent garder le projet va dans le bon sens au fil du temps - même si cette direction change que nous développons.

Gardez à l'esprit qu'il ya un temps et un lieu pour les deux modes de développement. Je ne voudrais pas créer des logiciels Jet en utilisant Agile!

Créé 11/06/2009 à 23:41
source utilisateur

voix
0

Je suis toujours à l'université et je n'ai pas encore d'expérience avec la création de systèmes logiciels à grande échelle, mais ...

La première chose qui doit être fait est de travailler sur ce qui voulait. Jusqu'à présent, pour moi, ce qui est normalement une spécification d'affectation, mais dans le monde réel, il consiste à parler au client. Beaucoup.

Ensuite, je travaille comment faire ce qui est nécessaire. Pour les programmes relativement petits que j'ai travaillé, je forme normalement dans mon esprit une idée approximative de ce que mon programme va ressembler à (ce que les parties importantes du programme et la façon dont ils interagissent les uns avec les autres). Cela peut impliquer des pointes si je ne sais pas comment une partie du programme fonctionnera. Je ne pense pas que cette approche (tout faire dans mon esprit) va évoluer très bien, mais la question demandais ce que nous faisons ...

Une fois que je sais plus ou moins ce que je suis en train de faire, j'asseoir et d'écrire le code. Il est ici que je découvre des problèmes dans ce que je pensais.

Je ne pense pas que je l' ai utilisé tous les pseudo - code pour concevoir un algorithme. Je pense que pseudocode est trop faible pour concevoir de gros morceaux du programme.

Je ne l' ai utilisé un organigramme à une occasion pour aider à la conception d' un programme - quand je suis assemblée d' apprendre et était tout à fait nouveau à la programmation (et il a été utile). Le Mythical Man-Month dit le texte suivant:. « Le tableau de flux coup par coup détaillé, cependant, est une nuisance obsolète, convient que pour initier les débutants dans la pensée algorithmique ... Je ne l' ai jamais vu un programmeur expérimenté qui fait régulièrement détaillée ordinogrammes avant de commencer à écrire des programmes « .

Créé 12/06/2009 à 03:51
source utilisateur

voix
1

OMI 5 minutes de planifier à l'avance = 1 heure de codage ....

Tant de fois nous devons revenir en arrière et repenser la situation, parce que nous ne prévoyons rien.

La partie la plus importante devrait être le SCHÉMA.

Les autres détails peuvent être prises en charge parfois à la volée.

Créé 12/06/2009 à 04:35
source utilisateur

voix
0

Je dessine de vastes diagrammes de flux et écrire du code pseudo pour les fonctions plus compliquées. Je me sens comme le dessin l'organigramme me permet de Refactor sans introduire des bugs par accident. Faire un diagramme visuel sur le papier comme un organigramme me aide également à déterminer si ma logique est en fait correcte. Cela ne fonctionne vraiment pour les petits - moyens projets dont on connaît la plupart des spécifications.

Avec plus d'expérience, la nécessité de tirer extensives ordinogrammes et écrire un code pseudo fonction tout deviendra plus redondante mais avant d'arriver à ce moment-là, je suggère que vous prévoyez FORTEMENT avant de code.

Créé 06/07/2011 à 20:40
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more