Ile planowanie robisz przed rozpoczęciem kod?

głosy
12

Kiedy zaczynasz nowy projekt, jak można zaplanować dla niego i jak długo trwa?

Pseudo kod? Schematy blokowe?

Czy staram się myśleć o wszystkich klasach z góry?

TBH, nigdy nie planować niczego. I od razu do niego i myśleć o rozwiązaniach powstają problemy. Głównie dlatego, że kilka razy Próbowałem planowania z wyprzedzeniem, to ja zawsze zapomnieć o czymś główną, a więc logika planowania byłoby błędne.

Utwórz 11/06/2009 o 22:40
źródło użytkownik
W innych językach...                            


16 odpowiedzi

głosy
11

Dużo mniej niż powinienem

Zawsze nurkuj, brudzą, a następnie uświadomić sobie, że zrobiłem bałagan. Następnie wróć i plan, i zrobić to dobrze.

ale niechlujny błędy fazy daje mi wiele pomysłów, że nie będę mieć choć przez formalny proces projektowania.

Edycja uzyskać głównie w tego rodzaju rozbić klawiaturę mes podczas zabawy z większej / kompleksu. Ciekawe, jak daleko sprawy się przed okazuje się, że „to jest w mojej głowie, więc jest ok” projekt jest w 100% błędna.

Odpowiedział 11/06/2009 o 22:44
źródło użytkownik

głosy
1

To zależy. Większość rzeczy, które piszę są dość proste i większy projekt zostanie zbudowany krok po kroku i zauważam, co jeszcze brakuje i co jest już zakończone. Było kilka rzeczy, które bardziej owłosione wymagane bogate szkicowania i myśli, aby uzyskać prawo, choć nie zostały jeszcze natknąłem wielu problemów architektonicznych, które wymagały tak (jeszcze młody i rzeczy). Głównie były to skomplikowane arytmetyczne rzeczy.

Odpowiedział 11/06/2009 o 22:44
źródło użytkownik

głosy
1

Na mój staż w ubiegłym roku, mój menedżer był mile zaskoczony użyłem diagramy do problemu. Myślał, że to przegrana sztuka studentów z tych dni. I było nie tak mile zaskoczony, że zostały one uznane za przestarzałe.

W każdym razie, to zależy na osi czasu projektu dla mnie, terminy są najważniejsze, oczywiście.

Odpowiedział 11/06/2009 o 22:44
źródło użytkownik

głosy
6

Prawdopodobnie nie najlepsza technika ... ale ... ja planuję w kodzie .

I często odkryć klas / metod / etc. że muszę po prostu robi to w ten sposób. Z powiedział, że ja zawsze zakładać, że mój kod planowanie nie będzie ostateczne rozwiązanie.

Dodatkowo będę pisać notatki szczegół „główne funkcje” i „możliwości moll / życzeń”.

Odpowiedział 11/06/2009 o 22:45
źródło użytkownik

głosy
0

Przy podejmowaniu na problem każdej wielkości, zawsze plan na piśmie co najmniej dwa razy.

Odpowiedział 11/06/2009 o 22:45
źródło użytkownik

głosy
3

Wszystko zależy od tego, jak duży projekt to. Czasami może to potrwać miesiące, aby tylko zebrać wszystkie wymagania i dokładnie wiedzieć, co trzeba zrobić.

Kiedy przychodzi do części kodującej, to wszystko zależy od tego, jak skomplikowany jest. Jeśli jest niezwykle skomplikowany, ja chce zacząć po prostu rysunek się, co chcę robić. Potem wpisuję mój pseudo kod w komentarzach. Wtedy kodować wokół tych uwag.

Jednakże, jeśli jest to proste kodowanie. Ja zwykle tylko napisać, co jest w moim umyśle i przetestować go.

Używamy bardzo zwinne podejście, że będziemy pracować na głównych części i oczywiście rzeczy są zawsze przychodzi do pop-up w wymaganiach. Więc będziemy pomieścić dla tych co wymyślą. Nigdy nie będziemy w pełni wiedzieć dokładnie, co chcesz, aby utworzyć na początku cyklu tworzenia.

To jest moja opinia.

Odpowiedział 11/06/2009 o 22:46
źródło użytkownik

głosy
1

Przez większość czasu, ja przynajmniej staram się mieć ogólny schemat (nawet tylko w głowie), jak moduł / system będzie działać. Lubię wiedzieć, co mam zamiar zrobić, zanim to zrobić. To sprawia, że ​​łatwiej i szybciej programowanie (jesteśmy na ogół pod presją krótkich terminów, gdzie pracuję). Za każdym razem, że nie, ja napotkasz problemy, które zazwyczaj prowadzi mnie do wyciągania kod i oddanie jest gdzieś indziej. Muszę przyznać, mój proces przeszedł przez gorzkie doświadczenie i mam naprawdę bardzo dobry w użyciu regex w kodzie wraz z globalnym znaleźć i wymienić.

Ktoś wychowany dobry punkt, czasami trzeba naprawdę dużego systemu i że robi się trudne. Staram i rozbicie go na kawałki. Będę pracował nad czymś i dostać uregulowana, i działać na coś innego na chwilę i zobaczyć, jak one oddziałują. Nawet przy planowaniu, tęsknię rzeczy i byłaby kod, ale przynajmniej nie jestem ponawianie wszystko odkąd przynajmniej miał jakiś plan pracy.

Odpowiedział 11/06/2009 o 22:47
źródło użytkownik

głosy
1

To zależy od tego, jak skomplikowany jest problem, który próbujesz rozwiązać. Jeśli pacjent przyjmuje na dużym projekcie programowania, trzeba mieć pewną planowania przed rozpoczęciem pracy. Jeśli tego nie zrobisz, będziesz się strasznie zagubiony w szczegółach rzeczy, które nie dość komunikować się z innymi częściami w żadnym momencie.

W zasadzie, staramy się widok z lotu ptaka na problemy, które trzeba rozwiązać. Sprawdzić, czy któryś z problemów są na tyle małe, że można je rozwiązać i dowiedzieć się, co to może być konieczne, aby komunikować się z resztą swojego rozwiązania. Potraktujcie to jako czarnej skrzynki z API do świata zewnętrznego.

Po masz wszystkie bloki zorientowali się, zobaczyć, czy trzeba podzielić problem na mniejsze pod-problemów, albo że masz wystarczająco szczegółowy widok całego projektu, który można uruchomić z kodem.

Z mojego doświadczenia wynika, że ​​planowanie pozwala uniknąć problemów w przyszłości, można myśleć o więcej jak kod ma się rozwijać w przyszłości, jeśli trzeba coś dodać etc.

W większości przypadków można zaoszczędzić czas spędzony na planowaniu podczas debugowania lub rozszerzenie projektu. Ponadto, mając szorstką układ projektu oznacza, łatwiej będzie uzyskać pomoc budowania czarnych skrzynek, których potrzebujesz, dzięki czemu można pracować na nim więcej osób niż tylko siebie.

Odpowiedział 11/06/2009 o 22:47
źródło użytkownik

głosy
1

W zależności od stopnia skomplikowania projektu, zwykle zaczynają się z nakładką i papieru i napisać specyfikację, a niektóre pseudo kod przepływu sterowania. Wtedy zawsze mogę odwołać się do tego, a ja kodowania. To sprawia, że ​​łatwiejsze i wymaga mniej refaktoryzacji, bo nie sądziłem, że ten problem dzięki.

Odpowiedział 11/06/2009 o 22:47
źródło użytkownik

głosy
1

Osobiście to zależy od zakresu i złożoności projektu, ilu ludzi pracuję z na nim, a ogólna oczekiwania na dostawę.

Jest to dość ważne, aby zrozumieć ogólne oczekiwania stron, którzy będą za pomocą oprogramowania. Wszyscy zaangażowani w projekt powinien mieć wspólne zrozumienie tego, co jest opracowywane na - jak to jest przekazywane idzie w wielu kierunkach.

Zbyt często, strony zaangażowane w rozwój oprogramowania nie zdają sobie sprawy, że komunikacja między stronami jest często najbardziej krytyczny i niedoceniane część projektu - i główną przyczyną wpadek projektowych.

Odpowiedział 11/06/2009 o 22:48
źródło użytkownik

głosy
16

Po doświadczeniu z wielu niedokończonych projektów , staram się realizować uproszczoną wersję moich procesów biznesowych w mojej metodologii rozwoju osobistego.

Są na ogół śledzić następującą strukturę:

  1. Stworzyć krótki, więc mam cel na uwadze.
  2. Wdrożenie diagram klas , aby zrozumieć dane będę czynienia.
  3. Wdrożenie wszystkich klas.
  4. Sporządzić use-case diagram do nakreślenia działań.
  5. Szkielet ten use-case disagram (w HTML dla webapps)
  6. Drutu rusztowania, poprzez wdrożenie testów jednostkowych i budynku, aby je przekazać.
  7. Podjąć decyzję o zwolnieniu produkt dla sukcesu komercyjnego, a następnie zapomnieć o wszystkim.
Odpowiedział 11/06/2009 o 22:58
źródło użytkownik

głosy
1

I zaparzyć kawę i spreparować parę kanapek.

Naprawdę to zależy od projektu. Pracowałem na niektórych projektach w branży obronnej, która trwała 2 lata szczegółowego planowania, zanim pisania pojedynczej linii kodu, a ja usiadłem i pienił się kilka małych narzędzi od kilku wniosków w wiadomości e-mail z 3D lub tekstury artysta w jednym siedzi z torbą precli i filiżanką Joe.

Będąc w stanie opracować schematy, diagramy UML, słowniki przypadków użycia, a także rozbudowane standardów kodowania przed strony jest to dobry sposób, aby utrzymać wszystko zorganizowane, a to z pewnością warto robić na większe projekty, większe zespoły i projekty o znaczeniu krytycznym. Ale te rzeczy zrobić trochę czasu, a często są przesadą dla mniejszych projektów.

Jedyną rzeczą, którą naprawdę trzeba upewnić się, że masz wystarczającą wiedzę na temat dziedziny problemowej. Jeśli nie, spędzać czas z przodu na badania aż robisz jest zawsze warta czasu.

Odpowiedział 11/06/2009 o 23:11
źródło użytkownik

głosy
3

Kiedy byłem w „wodospadu” sposób robienia rzeczy chciałbym napisać kilkaset dokumentów Page Pokazuje wszystkie szczegóły, które mogłyby być odkryte podczas badań. Aby dostać się do tej masywnej Tome dokumentacji bym ogólnie

  1. spotkać i pozdrowić wszystkich zaangażowanych w projekt
  2. wziąć obszerne notatki dotyczące postrzeganych wymagań
  3. tworzyć długie listy punktowane wymagań wysokiego szczebla
  4. rozpocznie rozbić wymagania Wyższego Szczebla w ściśle określonych informacji
  5. rozpocząć wypełnić szablon Software Wymagania Specyfikacja słowo: SRS
  6. tworzenie ramki z drutu w photoshopie, Excel, lub (mój ulubiony) Balsamiq
  7. listy z danych, które muszą być zrobione i zacząć budować z chropowatą schematu
  8. lista obecnie struktur klasowych w UML
  9. zdefiniować harmonogram projektu
  10. bla bla bla
  11. Kod zapisu
  12. nadzieję, że to, co było wymagane jest co jeszcze chciał, gdy kod jest kompletny!

W ciągu ostatnich kilku lat śledzę wraz z Agile (SCRUM) i miały zupełnie inne podejście.

  1. spotkać się z właścicielem produktu, aby usłyszeć o zadaniach do zabudowy
  2. rozkładają historię na zadania (podstawowy Planning)
  3. przypisać czas do zadań
  4. zrobić jakieś bardziej szczegółowe planowanie
  5. -> Test pisać, pisać kod, aby zdać test, byłaby -> sprawdź w tańcu
  6. wykazać roboczą produkt / funkcji
  7. proces zacząć od nowa

Muszę powiedzieć, że Agile zmniejsza ilość czasu spędzonego dokumentów piśmienniczych, że rozpadowi tak szybko jak Drys atramentu. Właściciel dostaje produkt, aby zobaczyć wyniki w znacznie szybszym czasie. Co oznacza, że ​​dostać się do utrzymania projekt idzie w dobrym kierunku, w miarę upływu czasu - nawet jeśli zmiany kierunku, jak rozwijamy.

Należy pamiętać, że nie jest to czas i miejsce dla obu sposobów rozwoju. Nie chciałbym, aby zbudować przy użyciu oprogramowania Jet Agile!

Odpowiedział 11/06/2009 o 23:41
źródło użytkownik

głosy
0

Wciąż jestem na studiach, a ja jeszcze nie mają doświadczenia w tworzeniu dużych systemów oprogramowania skala, ale ...

Pierwszą rzeczą, którą należy zrobić, to pracować, co się chce. Do tej pory dla mnie, to jest zwykle specyfikacja zadanie, ale w realnym świecie Polega ona rozmowy z klientem. Dużo.

Potem wyszło jak robić to, co jest wymagane. Dla stosunkowo małych programów, które byłem w pracy, ja zazwyczaj tworzą się w moim umyśle z grubsza co mój program będzie wyglądać (co ważne elementy programu są i jak współdziałają one ze sobą). Może to obejmować kolce jeśli nie mam pojęcia, jak jakaś część programu będzie działać. Nie sądzę, że to podejście (zrobić to wszystko w głowie) skaluje się bardzo dobrze, ale pytanie było pytaniem, co faktycznie ...

Raz wiem mniej więcej co próbuję zrobić, to usiąść i napisać kod. To tutaj, że odkrywam żadnych problemów, co myślałem.

I nie sądzę, bym każdy używany Pseudokod zaprojektować algorytm. Myślę pseudokod jest zbyt niski poziom projektowania dużych fragmentów programu.

Użyłem tylko schemat na jednej okazji, aby pomóc w projektowaniu programu - z powrotem, kiedy zespół uczenia się i było całkiem nowe do programowania (i było to pomocne). Mityczne Man-Month mówi co następuje: „. Szczegółowy blow-by-blow schemat jest jednak przestarzała uciążliwe, nadaje się tylko do inicjowania początkujących do algorytmicznego myślenia ... Nigdy nie widziałem doświadczonego programistę, który rutynowo szczegółowy przed przystąpieniem do pisania programów schematów „.

Odpowiedział 12/06/2009 o 03:51
źródło użytkownik

głosy
1

IMO 5 minut planowania z wyprzedzeniem = 1 godzina kodowania ....

Tyle razy mamy wrócić i przemyśleć całą sytuację, bo nie planować niczego.

Najważniejszą częścią powinno być schemacie.

Pozostałe szczegóły czasami mogą być załatwione w locie.

Odpowiedział 12/06/2009 o 04:35
źródło użytkownik

głosy
0

Rysuję rozbudowane diagramy i napisać kod pseudo dla bardziej skomplikowanych funkcji. Czuję się jak rysowanie schematu blokowego pozwala mi byłaby bez wprowadzania błędów przez przypadek. Dokonywanie schemat wizualny na papierze, takie jak na schemacie blokowym również pomaga mi zorientować się, czy moja logika jest rzeczywiście poprawna. To naprawdę działa tylko dla małych - średnich projektów, w których większość specyfikacji są znane.

Z większym doświadczeniem, trzeba zwrócić rozbudowane schematy i napisać cały kod funkcji pseudo staną się zbędne Ci jednak przed osiągnięciem tego punktu sugeruję Ci zaplanować przed wami kodu.

Odpowiedział 06/07/2011 o 20:40
źródło użytkownik

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