Pseudocode programování Process vs. test Driven Development

hlasů
16

Pro ty, kteří nečetli Code Complete 2 se Pseudokód programovací proces je v podstatě způsob, jak navrhnout rutinu tím, že popisuje to v jednoduché angličtině, poté ji postupně revidovat na podrobnější pseudocode a nakonec kódu. Hlavním přínosem je to, které vám pomohou zůstat na správné úrovni abstrakce vybudováním systému top-down, nikoli zdola nahoru, čímž se vyvíjející čisté API v odlišných vrstev. Zjistil jsem, že TDD je méně účinný na to, protože se příliš zaměřuje na dělají naprosté minimum, aby test projít a povzbuzuje málo up-front design. Také jsem zjistil, že má zachovat sadu jednotkových testů pro nestabilní kódu (kód, který se neustále refactored) je poměrně obtížné, protože je to typický případ, že máte tucet unit testy pro rutina, která je pouze potřebné jednou nebo dvakrát. Pokud tak učiníte refaktorovat - změnit podpis metody, například - většinu práce, kterou děláte, je v aktualizaci testů spíše než prod kód. Dávám přednost přidávání unit testy po kód některé komponenty stabilizovala trochu.

Moje otázka je - z těch, kteří se snažili oba přístupy, které dáváte přednost?

Položena 03/10/2008 v 22:44
zdroj uživatelem
V jiných jazycích...                            


6 odpovědí

hlasů
4

S testovacím Driven Development, měli byste být stále dělat nějaké plánování v začátku. To by mělo být nejprve pohled na vysoké úrovni na to, co se snažíte dělat. Nepřijdou krok se všemi detaily, ale získat představu v jednoduché angličtině, jak vyřešit tento problém.

Pak začít testovat problém. Jakmile máte test v místě, začít dělat to projít. Pokud tomu tak není snadné, budete možná muset přehodnotit svůj původní plán. Pokud se vyskytnou problémy jen revidovat. Test není tam definovat řešení je tu, která vám umožní provádět změny, takže můžete mít lepší řešení, a zároveň zajistit stabilitu.

Řekl bych, že je nejlepší používat TDD. Klíčem k úspěchu je uvědomit si, že TDD neznamená „přeskočit plánování“. TDD znamená dělat trochu plánování, aby mohli začít dobře, a upravit podle potřeby. Dokonce ani nemusí potřebovat upravit.

Odpovězeno 03/10/2008 v 22:51
zdroj uživatelem

hlasů
3

Obecně lze říci, považuji pseudokód jen opravdu stane důležité při kód potřebný k vyřešení problému je mnohem složitější, že kód potřebný k testování řešení. Je-li tomu tak není, nechci dostat do obtíží, které popisujete jako nejjednodušší věc, která by případně mohla fungovat, je obvykle přijatelné řešení pro množství času, stojí za to strávit na problém.

Pokud je na druhé straně, problém je složitější, musím promyslet, jak ji přiblížit, než budu moci psát i počáteční naivní řešení - I přesto je třeba naplánovat před I kódem; Proto jsem použít kombinaci obou přístupů: anglický popis toho, co budu nejprve napsat, pak test svazku, pak naivní kód řešení, pak upřesnění.

Odpovězeno 03/10/2008 v 22:55
zdroj uživatelem

hlasů
1

Použil jsem i spolu s Big předem rozvoj, všichni tři mají svá místa v závislosti na otázky, jako je jazyk, dynamika týmu a velikost programu / složitosti.

V dynamických jazyků (zvláště rubínový), vřele doporučuji TDD, pomůže zjistit případné chyby, že ostatní jazyky by se dostali v době kompilace.

Ve velkém, složitém systému, tím větší je navrhnout vám to předem, tím lépe se vám bude. Vypadá to, že když jsem navrhl pro velký projekt, všechny oblasti, které jsem Ručně mávali a řekl: „to by mělo být docela rovně vpřed“ byla velkým problémem, který později v projektu.

Pokud pracujete sám na něco malého v jazyce staticky-napsaný, přístup seznam je přiměřená a ušetří hodně času přes TDD (údržba test není zadarmo, i když psát testy na prvním místě, není příliš bad) - Pokud nejsou žádné testy v systému, na kterém pracujete, přidávání v testech není vždy obdivoval a můžete dokonce nakreslit některé nežádoucí pozornost.

Odpovězeno 03/10/2008 v 23:22
zdroj uživatelem

hlasů
1

Jen proto, že test projde, neznamená, že je hotovo.

TDD je nejlépe charakterizuje červená - zelená - Refactor .

S test poskytuje jeden (dvou) brankové čáry. Je to jen první, minimální soubor požadavků. Skutečným cílem je stejný cíl jako „pseudocode programovací proces“ nebo jakékoliv tvůrčí disciplínu.

Také TDD je poháněn pomocí testů, ale to neznamená, že slepě řízený testováním. Můžete opakovat vaše testuje stejným způsobem iteraci svůj kód. Není místo pro dogmatické dodržování hloupý plán zde. To AN Agile technika - to znamená přizpůsobit ji do svého týmu a okolnostech.

Navrhnout dostatek kódu mít testovatelné rozhraní. Navrhnout dostatečný počet zkoušek, aby se ujistili, že rozhraní bude fungovat. Navrhnout některé další testy a některé další implementaci, až uvidíte, že je třeba refaktorovat.

Skutečným cílem je dobrý software. TDD nelze vyloučit „dobro“.

Technika není omezující mandát. A techniky, je třeba pohlížet jako berle, aby vám pomohl výrobek dobrý kód. Kdybych byl chytřejší, bohatší a lépe vypadající, tak bych nepotřeboval TDD. Ale vzhledem k tomu, že jsem tak hloupý jako já, musím berlu, aby mi pomohl refactor.

Odpovězeno 04/10/2008 v 00:18
zdroj uživatelem

hlasů
0

Pro mě TDD má eso pseudocoding prostě nemůže konkurovat - jak vám pomohou abstraktní a plánovat rozvoj, ale jakmile jste skončil vývoj v TDD zemi stále máte jednotkové testy .

AS užitečný přístup, jak je popsáno CC2 pseudocoding je, že to prostě nemůže shodovat. TDD je jen polovina o návrhu, je to také poskytuje přísnou lešení můžete vyvíjet projekt dopředu vybírat. Nicméně nevidím žádný důvod, proč nemůžete pseudocode k řešení problémů TDD sety.

Nesmím rozvíjet organicky.
Pseudokód je zabíjí myšlení.
Je to malá smrt, která přináší paměti projekt zapomnění.
Budu čelit svou 90. metodiky.
Dovolím mu, aby prošel kolem mne a skrze mne.
A když je pryč minulosti obrátím vnitřní oko vidět jeho cesty.
V případě, že pseudocode šel tam bude TDD.
Pouze jednotka testy zůstanou.

(Neposílejte mi plamen za to, že jsem jen napůl vážný: P)

Odpovězeno 05/01/2009 v 10:22
zdroj uživatelem

hlasů
6

Můj tým kombinuje oba přístupy a je to skvělý způsob, jak vyvinout (alespoň u nás). Musíme unit testy, protože máme velký a složitý softwarový systém. Ale Pseudokód programovací proces je hands-dolů nejlepší přístup k softwarovému designu jsem narazil. Aby se jim pracovat společně:

  • Začneme tím, že píše své třídy, a vyplnit s plně komentovaných metody pahýlů, se vstupy a výstupy.
  • Používáme kódování páru a peer review jako dialog se upřesní a schválí návrh, stále jen s metodou pahýly.
  • V tomto bodě jsme teď oba určen náš systém a mít nějaký testovatelné kód. Takže jdeme dál a psát své jednotkové testy.
  • Vrátíme se a začít vyplněním metod s komentářem k logice, která musí být v písemné formě.
  • Píšeme kód; testy projít.

Krása je, že v době, kdy jsme vlastně psát kód, většina práce realizace je již hotovo, proto, že většina toho, co si myslíme, že implementace je vlastně kód konstrukce. Také na počátku procesu nahrazuje potřebu UML - třída a způsob pahýlů jsou stejně popisné, a navíc to bude skutečně použita. A vždy zůstat na odpovídající úrovni abstrakce.

Je zřejmé, že proces není nikdy opravdu jako lineární, jak jsem popsal - některé vtípek realizace může znamenat, že se musíme vrátit návrh na vysoké úrovni. Ale obecně, v době, kdy píšeme jednotka testuje design je opravdu poměrně stabilní (na úrovni metoda), takže není třeba pro mnoho testovací přepisovat.

Odpovězeno 02/04/2010 v 11:04
zdroj uživatelem

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