Cât de mult de planificare faci înainte de a începe să codul?

voturi
12

Când începi un nou proiect, cum aveți de gând pentru ea sau cât timp durează?

Pseudo cod? Scheme logice?

Nu încercați să vă gândiți la toate clasele în avans?

TBH, n-am planificat nimic. I a lua direct la ea și cred că de soluții ca apar probleme. Cea mai mare parte deoarece câteva ori am încercat de planificare în avans, mi-ar uita întotdeauna ceva important, și, astfel, logica de planificare ar fi viciate.

Întrebat 11/06/2009 la 22:40
sursa de către utilizator
În alte limbi...                            


16 răspunsuri

voturi
11

Alot mai mult decât ar trebui

Am scufunda mereu, se murdăresc și apoi dau seama că am făcut o mizerie. Apoi, du-te înapoi și planul, și fă-dreapta.

dar faza greșeli dezordonat mi dă idei pe care nu le - ar avea , deși printr - un proces de proiectare formală.

Editare I a lua în principal în aceste tipuri de a sparge tastatura de dezordinea în timpul jocului cu mai mare / complex. Interesant pentru a vedea cât de departe înainte de a lua lucrurile îți dai seama că dumneavoastră „este în capul meu , deci este în regulă“ design -ul este de 100% eronată.

Publicat 11/06/2009 la 22:44
sursa de către utilizator

voturi
1

Depinde. Cele mai multe lucruri pe care le scriu sunt destul de simplă și un design mai mare devine pas cu pas construit și am observat ce încă lipsește și ceea ce este deja complet. Au existat câteva lucruri mai păros care au necesitat schițare extinse și de gândire pentru a obține dreptul, deși nu am fost încă dat peste multe probleme arhitecturale care au necesitat acest lucru (încă tânăr și chestii). În mare parte acestea au fost lucruri aritmetice dificile.

Publicat 11/06/2009 la 22:44
sursa de către utilizator

voturi
1

La stagiu meu anul trecut, managerul meu a fost placut surprins am folosit diagramele de flux pentru o problemă. El a crezut că a fost o artă pierdută cu studenții în aceste zile. Am fost nu-așa-plăcut surprins de faptul că acestea au fost considerate datate.

Oricum, depinde de cronologia proiectului pentru mine, termenele sunt cel mai important lucru desigur.

Publicat 11/06/2009 la 22:44
sursa de către utilizator

voturi
6

Probabil nu cea mai bună tehnică ... dar ... am de gând în cod .

Descopăr de multe ori de clasă / metode / etc. că am nevoie doar de a face în acest fel. Acestea fiind spuse, eu întotdeauna presupun că codul meu de planificare nu va fi soluția finală.

În plus, voi scrie note care detaliază „caracteristici majore“ și „caracteristici minore / de dorit“.

Publicat 11/06/2009 la 22:45
sursa de către utilizator

voturi
0

Atunci când ia o problemă de orice dimensiune, întotdeauna am de gând să-l scriu cel puțin de două ori.

Publicat 11/06/2009 la 22:45
sursa de către utilizator

voturi
3

Totul depinde de cât de mare a proiectului acesta. Uneori s-ar putea dura luni de zile pentru a aduna doar toate cerințele și știu exact ce trebuie să facă.

Când se ajunge la partea de codare, totul depinde de cât de complicat este. Dacă este extrem de complicat, am vrea să încep prin simpla tragere ce vreau să fac. Apoi, voi scrieți în codul meu pseudo în comentarii. Apoi, voi cod în jurul acestor observații.

Cu toate acestea, în cazul în care este simplu de codificare. de obicei, voi scrie doar ce e pe mintea mea și testați-l.

Noi folosim o abordare foarte agil în care vom lucra la părți majore și a lucrurilor de curs sunt întotdeauna vin să pop-up în cerințele. Deci, vom găzdui pentru cei pe măsură ce apar. Niciodată nu vei ști pe deplin exact ceea ce doriți să creați de la începutul ciclului de creație.

Asta e părerea mea.

Publicat 11/06/2009 la 22:46
sursa de către utilizator

voturi
1

Cele mai multe ori, cel puțin încerc să aibă o diagramă generală (chiar și doar în capul meu), de modul în care modulul / sistemul va funcționa. Îmi place știind ce am de gând să fac înainte să o fac. Aceasta face programarea mai ușor și mai rapid (în general suntem sub termene limită strânse în cazul în care lucrez). De fiecare dată când eu nu am o problemă pe care, în general, mă conduce la smulgerea cod și pune este în altă parte. Recunosc, procesul meu a venit prin experiență amară și am ajuns într-adevăr foarte bun la utilizarea regex în cod, împreună cu găsi la nivel mondial și înlocui.

Cineva a adus un punct bun, uneori, aveți un sistem cu adevărat mare și care devine dificil. Încerc și rupe-l în jos în bucăți. Voi lucra la ceva și să-l prescurtate afară, și să lucreze pe altceva pentru puțin timp și a vedea modul în care acestea interacționează. Chiar și cu planificarea înainte, mi-e dor lucrurile și trebuie să refactor cod, dar cel puțin eu nu sunt redoing totul de când cel puțin am avut un fel de un plan de lucru.

Publicat 11/06/2009 la 22:47
sursa de către utilizator

voturi
1

Depinde de cât de complexă este problema pe care încercați să rezolve. Dacă luați pe un proiect de programare mare, trebuie să aibă un anumit grad de planificare înainte de a începe. Dacă nu, vei fi oribil pierdut în detalii cu privire la lucruri care nu comunică destul cu celelalte părți, în cel mai scurt timp.

Basicly, încercați să obțineți o imagine ochi de păsări din problemele pe care trebuie să le rezolve. A se vedea dacă oricare dintre problemele sunt destul de mici pe care le puteți rezolva și dau seama ce ar putea avea nevoie să comunice cu restul soluției. Ganditi-va ca o cutie neagră cu un API pentru lumea exterioară.

După ce toate blocurile de seama, a se vedea dacă aveți nevoie pentru a împărți problema în subprobleme mai mici, sau că aveți o vedere destul de detaliată a întregului proiect pe care puteți începe cu codul.

Experiența mea este că planificarea vă ajută să prevină problemele în viitor, să te gândești mai mult despre modul în care se presupune codul să crească în viitor, dacă aveți nevoie să adăugați ceva etc.

În cele mai multe cazuri va economisi timpul petrecut pe planificarea atunci când depanare sau extindere a proiectului. De asemenea, având un aspect dur al proiectului înseamnă că va fi mai ușor pentru a obține ajutor construirea negru-casetele de care aveți nevoie, astfel încât să puteți lucra pe el cu mai multe persoane decât doar de tine.

Publicat 11/06/2009 la 22:47
sursa de către utilizator

voturi
1

În funcție de complexitatea proiectului, am începe de obicei cu pad și hârtie, și a scrie un spec, iar unele cod pseudo al fluxului de control. Apoi, mă pot referi întotdeauna la faptul că în timp ce eu sunt de codificare. Se face mai ușor și necesită mai puțin refactoring pentru că nu cred că problema prin intermediul.

Publicat 11/06/2009 la 22:47
sursa de către utilizator

voturi
1

Personal depinde de domeniul de aplicare și complexitatea proiectului, cât de mulți oameni lucrez pe ea, și așteptările generale cu privire la livrare.

Este destul de important să înțelegem așteptările generale ale părților care vor utiliza software-ul. Toți cei implicați în proiect ar trebui să aibă o înțelegere comună a ceea ce se lucrează - modul în care este comunicată merge în mai multe direcții.

Prea adesea, părțile implicate în dezvoltarea de software nu realizează că comunicarea între părți este deseori partea cea mai critică și subevaluată a proiectului - si principala cauza de ghinioane proiectului.

Publicat 11/06/2009 la 22:48
sursa de către utilizator

voturi
16

După experiența de o mulțime de proiecte neterminate , tind să pună în aplicare o versiune simplificată a proceselor mele de afaceri în metodologia mea de dezvoltare personală.

Ei urmează, în general, următoarea structură:

  1. Creați o scurtă așa că am un obiectiv în minte.
  2. Punerea în aplicare o diagramă de clasă pentru a înțelege datele pe care le vom ocupa.
  3. Punerea în aplicare a tuturor claselor.
  4. Elaborarea unei diagrame caz de utilizare pentru a sublinia activități.
  5. SCHELE disagram caz de utilizare (în HTML pentru aplicații web)
  6. Sârmă schela, prin implementarea testelor unitare și de construcție pentru a le trece.
  7. Decide pentru a elibera produsul pentru a avea succes comercial, atunci uita totul despre asta.
Publicat 11/06/2009 la 22:58
sursa de către utilizator

voturi
1

Am BREW o cafea și ambarcațiunile de câteva sandwich-uri.

Într-adevăr depinde de proiect. Am lucrat la unele proiecte din industria de apărare, care au luat 2 ani de planificare detaliată înainte de a scrie o singură linie de cod, și m-am așezat și churned unele utilitare mici de la doar câteva cereri într-un e-mail de la un 3D sau textura artist într-o singură ședință, cu o pungă de covrigei și o ceașcă de Joe.

Fiind capabil să dezvolte scheme logice, diagrame UML, dicționare caz de utilizare, și standarde extinse de codificare înainte de mână este un mod frumos de a păstra lucrurile organizate, și este cu siguranță în valoare de a face pe proiecte mai mari, mai mari echipe și proiecte de misiune critică. Dar aceste lucruri iau timp, și sunt adesea nejustificată pentru proiecte mai mici.

Singurul lucru pe care trebuie într-adevăr să se asigure este că aveți o înțelegere adecvată a domeniului problemei. Dacă nu, petrece timpul în față să-l cerceteze, până când faci este întotdeauna în valoare de timp.

Publicat 11/06/2009 la 23:11
sursa de către utilizator

voturi
3

Când am fost în „cascadă“ mod de a face lucrurile, aș scrie câteva sute de documente pagină care afișează toate detaliile care ar putea fi descoperite în timpul cercetării. Pentru a ajunge la acest volum masiv de documentare aș face, în general,

  1. întâlni și saluta pe toți cei implicați în proiect
  2. să ia notițe cu privire la cerințele percepute
  3. a crea liste lungi marcatori de cerințe la nivel înalt
  4. începe să se rupă în jos cerințele de nivel înalt în detalii bine definite
  5. începe să completeze Software - ul șablon Cerințe Caietul de sarcini cuvânt: SRS
  6. crearea unor cadre de sârmă în Photoshop, Excel, sau (preferatul meu) Balsamiq
  7. listă cuprinzând date care trebuie să fie capturate și să înceapă să construiască o schemă dur
  8. listă cuprinzând structuri de clasă în UML
  9. defini cronologie proiect
  10. bla bla bla
  11. codul de scriere
  12. speranța că ceea ce a fost solicitată este ceea ce este încă dorit atunci când codul este complet!

În ultimii ani am urmărit împreună cu Agile (Scrum) și au luat o abordare total diferită.

  1. întâlni cu proprietarul produsului să aud despre sarcinile care urmează să fie construite
  2. descompune poveste în sarcini (planificarea de bază)
  3. setetzi sarcinilor
  4. face unele de planificare mai detaliată
  5. -> test de scriere, a scrie cod pentru a trece testul, Refactor -> check-in dans
  6. demonstrează de lucru produs / funcție
  7. începe procesul de peste

Trebuie să spun că Agile reduce cantitatea de timp petrecut de documente de scris, care se dezintegrează imediat ce Drys de cerneală. Proprietarul produsului devine pentru a vedea rezultatele într-un mod mult mai rapid. Ceea ce înseamnă că ei a lua pentru a menține proiectul merge în direcția corectă în timp - chiar și în cazul în care schimbările de direcție pe măsură ce sunt în curs de dezvoltare.

Rețineți că există un timp și un loc pentru ambele sensuri de dezvoltare. N-aș vrea să construiască software-ul Jet folosind Agile!

Publicat 11/06/2009 la 23:41
sursa de către utilizator

voturi
0

Sunt încă la universitate și nu au încă experiență în crearea de sisteme software pe scară largă, dar ...

Primul lucru care trebuie făcut este de a lucra ce se dorea. Până în prezent pentru mine, acest lucru este în mod normal o specificație de atribuire, dar în lumea reală implică vorbind la client. Mult.

Apoi am mers cum să facă ceea ce este necesar. Pentru relativ mici, programele pe care le-am lucrat, am în mod normal, forma în mintea mea o idee a ceea ce programul meu va arăta (ce părți importante ale programului sunt și modul în care interacționează unele cu altele). Acest lucru poate implica piroane dacă am nici o idee despre modul în care o anumită parte a programului va funcționa. Nu cred că această abordare (a face totul în mintea mea) va scala foarte bine, dar întrebarea a fost întrebat ce facem de fapt ...

Odată ce știu mai mult sau mai puțin ceea ce am încercat să fac, stai jos și scrie codul. Aici că am descoperit nici o problemă în ceea ce mă gândeam.

Nu cred că am folosit fiecare pseudocod pentru a proiecta un algoritm. Cred că pseudocod este nivelul prea scăzut pentru a proiecta bucăți mari de program.

Am folosit doar o schemă logică pe o singură ocazie pentru a ajuta la proiectarea unui program - înapoi , atunci când am fost de învățare de asamblare și a fost destul de nou pentru programare (și a fost de ajutor). Miticul Man luni spune următoarele:. „Detaliat diagrama redirijarea-lovitură, cu toate acestea, este o pacoste învechită, numai potrivit pentru inițierea începători în gândire algoritmică ... nu am mai văzut un programator cu experiență , care a făcut în mod obișnuit detaliate diagrame flux înainte de a începe să scrie programe.“

Publicat 12/06/2009 la 03:51
sursa de către utilizator

voturi
1

OMI 5 minute de planificare înainte = 1 oră de codificare ....

Deci, de multe ori trebuie să mergem înapoi și să regândească întreaga situație, pentru că nu am planificat nimic.

Cea mai importantă parte ar trebui să fie schemă logică.

Celelalte detalii, uneori, pot fi luate în grijă de pe zbor.

Publicat 12/06/2009 la 04:35
sursa de către utilizator

voturi
0

Trag diagrame extinse de flux și de a scrie cod pseudo pentru funcțiile mai complicate. Mă simt ca desen schema logică îmi permite să refactor fără a introduce bug - uri accidental. Efectuarea unei diagrame vizuale pe suport de hârtie , cum ar fi o schemă logică , de asemenea , mă ajută să dau seama dacă logica mea este de fapt corectă. Acest lucru funcționează numai într - adevăr pentru mici - proiecte de mediu în cazul în care cele mai multe dintre specificațiile sunt cunoscute.

Cu mai multă experiență, necesitatea de a atrage organigrame extinse și scrie întreaga funcție de cod pseudo va deveni mai redundant, dar înainte de a ajunge la acest punct am sugerăm să vă planificați înainte de codul de tine.

Publicat 06/07/2011 la 20:40
sursa de către utilizator

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