Kolik plánování děláte před zahájením kódování?

hlasů
12

Když začínáte nový projekt, jak plánujete na to, nebo jak dlouho to trvá?

Pseudo kód? Vývojové diagramy?

Snažíte se přemýšlet o všech tříd v předstihu?

TBH, nikdy jsem v plánu nic. I rovnou k ní a přemýšlet o řešení, nastanou problémy. Hlavně proto, že z mála okamžiků Snažil jsem se plánují s předstihem, tak bych vždycky zapomněl něco zásadní, a tudíž by bylo chybné logiku plánování.

Položena 11/06/2009 v 22:40
zdroj uživatelem
V jiných jazycích...                            


16 odpovědí

hlasů
11

Mnohem méně, než bych měl

Vždycky jsem potápět, se zašpiní a pak si uvědomil, že jsem udělal nepořádek. Pak se vraťte a plán, a to hned.

ale své oběti chyby fáze mi dává skvělé nápady, které bych neměl ačkoli prostřednictvím formálního procesu navrhování.

Editovat Mám především na tento druh rozbít klávesnici zmatky při hraní s větším / komplexu. Zajímavé vidět, jak daleko se věci, než si uvědomíte, že váš ‚Je to v mé hlavě tak to je v pořádku‘ design je 100% chybné.

Odpovězeno 11/06/2009 v 22:44
zdroj uživatelem

hlasů
1

Záleží. Většina věcí píšu, jsou poměrně jednoduché a větší konstrukce dostane vestavěné krok za krokem, a všiml jsem si, co je stále chybí a co je již dokončena. Tam bylo několik dalších chlupaté věci, které vyžadovaly rozsáhlou skic a myšlení, aby si to pravé, když jsem ještě narazil mnoha architektonických problémů, které vyžadovaly tak (ještě mladý a tak). Většinou to byly záludné aritmetické věci.

Odpovězeno 11/06/2009 v 22:44
zdroj uživatelem

hlasů
1

Na mé stáži v loňském roce, můj manažer byl příjemně překvapen jsem diagramy pro problém. Myslel si, že je to ztracené umění s studentů v těchto dnech. Byl jsem ne tak příjemně překvapen, že oni byli považováni za datem.

V každém případě to závisí na časové ose projektu pro mě, lhůty jsou nejdůležitější věc samozřejmě.

Odpovězeno 11/06/2009 v 22:44
zdroj uživatelem

hlasů
6

Asi není nejlepší metoda ... ale ... Mám v plánu v kódu .

I často objevovat třída / metod / etc. že musím jen tím, že dělá to takhle. S tím řekl, vždycky předpokládám, že moje plánování kód nebude konečné řešení.

Navíc budu zapisovat poznámky upřesňující „hlavní rysy“ a „minor / přejí funkce“.

Odpovězeno 11/06/2009 v 22:45
zdroj uživatelem

hlasů
0

Vezme-li se na problém jakékoliv velikosti, vždycky mám v plánu na nejméně dvakrát psaní.

Odpovězeno 11/06/2009 v 22:45
zdroj uživatelem

hlasů
3

To vše záleží na tom, jak velký projekt je. Někdy to může trvat měsíce, než jen shromáždit všechny požadavky a přesně vědí, co je třeba udělat.

Když přijde na kódování části, to vše závisí na tom, jak složité to je. Pokud je to velice složité, chce začít tím, že prostě kreslení, co chci, aby to udělat. Pak budu psát na můj pseudo kód v komentáři. Pak budu kódovat asi tyto připomínky.

Nicméně, pokud je to jednoduché kódování. I obvykle jen napsat, co je v mé mysli a vyzkoušet.

Používáme velmi agilní přístup, že budeme pracovat na hlavních částí a samozřejmě věci jsou vždy přichází do pop-up v požadavcích. Tak jsme se ubytovat pro ty, kteří jako oni přijdou. Vy jste nikdy úplně přesně vědět, co chcete vytvořit na začátku cyklu tvorby.

To je můj názor.

Odpovězeno 11/06/2009 v 22:46
zdroj uživatelem

hlasů
1

Většinu času, alespoň se snažím mít celkový diagram (i jen v mé hlavě) o tom, jak je modul / systém bude fungovat. Mám rád věděl, co budu dělat, než to udělám. To dělá programování jednodušší a rychlejší (my jsou obecně ve velmi krátkém termínu, kde pracuji). Pokaždé, když nemám, já narazit na problémy, které mě obvykle vede k vytažení kód a dávat je někde jinde. Přiznám se, můj proces prošel hořkou zkušenost a mám opravdu dobrý pomocí regulárních výrazů v kódu spolu s globálním najít a nahradit.

Někdo jiný vychoval dobrý postřeh, někdy máte opravdu velký systém, a to dostane těžko. Snažím se a vyrazit na kousky. Budu pracovat na něčem a dostat ji dotvořena a pracovat na něčem jiném za malou chvíli a uvidíte, jak jsou vzájemně propojeny. Dokonce i při plánování dopředu, Stýská se mi věci a mají refaktorovat kód, ale aspoň nejsem předělání všechno, co jsem měl alespoň nějaký pracovního plánu.

Odpovězeno 11/06/2009 v 22:47
zdroj uživatelem

hlasů
1

Záleží na tom, jak složitý je problém se snaží vyřešit. Užíváte-li na velké programové projektu, musíte mít určitý stupeň plánování, než začnete. Pokud to neuděláte, budete mít strašně ztratil v detailech věci, které není úplně komunikovat s ostatními částmi v žádném okamžiku.

V podstatě, pokusit se dostat pohled ptačí perspektivy problémů, které je třeba řešit. Zjistit, zda některý z problémů jsou natolik malé, že je lze řešit a zjistit, co to může být nutné komunikovat se zbytkem vašeho řešení. Ber to jako black-box s API k vnějšímu světu.

Poté, co budete mít všechny své bloky zjistili, zda není nutné rozdělit problém do menších dílčích problémů, nebo že máte dostatečně detailní pohled na celý projekt, který můžete začít s kódem.

Moje zkušenost je, že plánování pomáhá předcházet problémům v budoucnosti, aby si více přemýšlet o tom, jak je kód by měl v budoucnu růst, pokud je třeba přidat něco atd.

Ve většině případů vám ušetří čas strávený na plánování, když ladíte nebo prodloužení projektu. Také, s drsným rozložení projektu znamená, že to bude jednodušší získat pomoc budování černo-boxy, které potřebujete, takže můžete pracovat na tom s více lidí než jen sebe.

Odpovězeno 11/06/2009 v 22:47
zdroj uživatelem

hlasů
1

V závislosti na složitosti projektu, obvykle začít s podložkou a papíru a sepsat spec, a některé pseudo kód tok řízení. Pak jsem si vždy vrátit zpět k tomu, zatímco já jsem kódování. To usnadňuje a vyžaduje méně refaktoring, protože jste si nemyslel, že tento problém projít.

Odpovězeno 11/06/2009 v 22:47
zdroj uživatelem

hlasů
1

Osobně záleží na rozsahu a složitosti projektu, kolik lidí pracuji s na něj a celková očekávání na dodání.

Je velmi důležité pochopit celkové očekávání stran, kteří budou pomocí softwaru. Každý, kdo se podílejí na projektu by měla mít společné chápání toho, co se pracuje - jak to je komunikován jde v mnoha směrech.

Až příliš často, strany podílející se na vývoji softwaru si neuvědomuje, že komunikace mezi účastníky řízení je často nejdůležitější a podhodnocené část projektu - a hlavní příčinou projektových nehod.

Odpovězeno 11/06/2009 v 22:48
zdroj uživatelem

hlasů
16

Po zkušenostech z mnoha rozpracovaných projektů , mám tendenci zavést zjednodušenou verzi svých obchodních procesů do mého osobního metodologie vývoje.

Oni obecně dodržovat následující strukturu:

  1. Vytvořit krátký, takže mám cíl na mysli.
  2. Zavést diagram tříd pochopit data budu se zabývají.
  3. Implementovat všechny třídy.
  4. Vypracovat use-case diagram nastínit aktivity.
  5. Nosná use-case disagram (v HTML pro webapps)
  6. Drát lešení, implementací unit testů a budování je předat.
  7. Rozhodnout o uvolnění produktu pro obchodní úspěch, a pak zapomenout na to.
Odpovězeno 11/06/2009 v 22:58
zdroj uživatelem

hlasů
1

I vařit kávu a řemesla pár sendvičů.

Opravdu záleží na projektu. Já jsem pracoval na několika projektech v oblasti obranného průmyslu, které trvalo 2 roky detailního plánování, než psát jediný řádek kódu, a já jsem si sedl a chrlí několik malých utilit z několika žádostech v e-mailu z 3D nebo textury umělec v jednom sezení s taškou preclíků a šálek Joe.

Být schopen vytvořit vývojové diagramy, UML diagramy, use-case slovníky a rozsáhlé normy označování, do ruky, je příjemný způsob, jak udržet pořádek, a rozhodně stojí za to na větších projektech, větší týmy, a kritické projekty. Ale tyto věci dělat nějakou dobu trvat, a jsou často přezbrojení pro menší projekty.

Jediné, co opravdu musíte zajistit, že máte dostatečné znalosti o problémové domény. Pokud tomu tak není, trávit čas dopředu to výzkum, dokud udělat, je vždy stojí za to čas.

Odpovězeno 11/06/2009 v 23:11
zdroj uživatelem

hlasů
3

Když jsem byl do „vodopád“ způsob, jak dělat věci, které bych napsat několik set stránek dokumenty prokazující všechny podrobnosti, které by mohly být odkryty v průběhu výzkumu. Se dostat do této masivní tome dokumentace bych obecně

  1. setkat a pozdravit všem zúčastněným s projektem
  2. vzít hojné poznámky týkající se vnímané požadavky
  3. vytvořit dlouhé seznamy s odrážkami požadavků na vysoké úrovni
  4. se začnou rozpadat požadavky na vysoké úrovni do dobře definované podrobnosti
  5. začnou vyplňovat Software Specifikace požadavků slovo šablony: SRS
  6. vytvořit drátěné rámečky ve Photoshopu, Excel, nebo (můj oblíbený) Balsamiq
  7. Seznam z údajů, které musí být zachyceny a začít budovat ven hrubý schéma
  8. Seznam out třídy struktur UML
  9. definovat projektové časové osy
  10. bla bla bla
  11. write code
  12. doufat, že to, co bylo požadováno, je to, co se ještě chtěl-li kód je dokončeno!

Za posledních několik let jsem sledoval společně s Agile (SCRUM) a vzali úplně jiný přístup.

  1. setkat se s majitelem produktu, kdo se dozví o úkoly, které mají být postaveny
  2. rozkládat příběh do úkolů (základní plánování)
  3. přiřadit čas na úkoly
  4. udělat nějaké podrobnější plánování
  5. -> písemný test, psát kód projít testem, Refaktor -> zkontrolujte v tanci
  6. ukazují pracovní výrobek / funkci
  7. spustit proces v průběhu

Musím říci, že Agile snižuje množství času stráveného psaní dokumentů, které se rozkládají jakmile Drys inkoustu. Vlastník produktu uvidí výsledky v mnohem rychlejší způsob. Což znamená, že dostanete, aby projekt ubírá správným směrem v čase - a to i v případě, že změní směr, jak vyvíjíme.

Mějte na paměti, že je čas a místo pro oba způsoby rozvoje. Já bych nechtěl stavět software Jet pomocí Agile!

Odpovězeno 11/06/2009 v 23:41
zdroj uživatelem

hlasů
0

Jsem stále na vysoké škole a já dosud nemají zkušenosti s vytvořením velkého rozsahu softwarových systémů, ale ...

První věc, kterou je třeba udělat, je přijít na to, co chtěl. Zatím pro mě, to je normálně specifikace úkol, ale v reálném světě to spočívá v rozhovoru s klientem. Mnoho.

Pak jsem se vymyslet, jak dělat to, co je požadováno. Pro relativně malé programy, které jsem pracoval, já normálně tvoří v mé mysli hrubou představu o tom, co můj program to bude vypadat (jaké důležité části programu jsou a jak na sebe vzájemně působí). To může zahrnovat ostny, když mám tušení, jak některé části programu bude fungovat. Nemyslím si, že tento přístup (to vše v mé mysli) bude měřítku velmi dobře, ale tato otázka se ptá, co vlastně dělat ...

Poté, co vím, že více či méně to, co se snažím dělat, jsem si sednout a psát kód. Je to tady, že jsem odhalit případné problémy v tom, co jsem si myslel.

Nemyslím si, že jsem každý použitý pseudocode navrhnout algoritmus. Myslím, pseudokód je příliš nízká hladina navrhovat velké kusy programu.

Použil jsem jen vývojový diagram při jedné příležitosti, aby pomohl s navrhováním program - když jsem se učil shromáždění a bylo programování zcela nové (a to bylo užitečné). Mýtický Man-Měsíc říká následující: „. Podrobný blow-by-ránu diagram je však zastaralý obtíž, vhodný pouze pro zahájení začátečníkům do algoritmického myšlení ... Nikdy jsem neviděl zkušeného programátora, kteří běžně vyrobený detailní před zahájením psát programy vývojové diagramy.“

Odpovězeno 12/06/2009 v 03:51
zdroj uživatelem

hlasů
1

IMO 5 minut plánování dopředu = 1 hodina kódování ....

Tolikrát máme vrátit a přehodnotit celou situaci, protože jsme neměli nic plánovat.

Nejdůležitější částí by měl být vývojový diagram.

Na další podrobnosti se někdy může být postaráno v reálném čase.

Odpovězeno 12/06/2009 v 04:35
zdroj uživatelem

hlasů
0

Kreslím rozsáhlé vývojové diagramy a psát pseudo kód složitějších funkcí. Cítím se jako kreslení vývojový diagram mi umožňuje refaktorovat aniž by došlo k chyby náhodou. Tvorba vizuální schéma na papíře, jako vývojový diagram mi také pomáhá zjistit, jestli moje logika je skutečně správná. To jen opravdu funguje pro malé - středně projektů, u kterých je známo, většina specifikací.

Mají větší zkušenosti, že je třeba vypracovat rozsáhlé vývojové diagramy a vypsat celá funkce pseudo kód se stanou nadbytečnými však před dosažením tohoto bodu jsem silně naznačují, máte v plánu před vámi kódu.

Odpovězeno 06/07/2011 v 20:40
zdroj uživatelem

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