Załóżmy, że musisz samodzielnie opracować oprogramowanie średniej wielkości. Jakby to był osobisty projekt, który chcesz zrealizować.
Jakich metod / narzędzi użyłbyś do zdefiniowania, co należy opracować, nauczyć się i mieć ogólne wyobrażenie o tym, czym jest system w szczegółach?
Zasadniczo, aby być na bieżąco i nie zgubić się po drodze.
tools
methodology
Cassio
źródło
źródło
Odpowiedzi:
Zwykle używam Mercurial, jeśli chcę funkcję, po prostu ją dodaję, a jeśli już jej nie chcę, po prostu ją usuwam. Staram się też dobrze pisać komentarze, aby się nie zgubić.
źródło
Może łatwo rosnąć poza zasięgiem twojej uwagi. Nie rozpiętość , szerokość .
Trudno jest wziąć pod uwagę zbyt wiele elementów jednocześnie .
A potem ... staje się kolejką górską regresji .
Wszystko, co robisz, niszczy poprzednie rzeczy, a cofanie się nie pomaga.
Aby tego uniknąć, należy agresywnie przetestować regresję .
Automatycznie. (Nie możesz tego zrobić inaczej i pozostać przy zdrowych zmysłach)
Testy mocno obciążą twoje energie.
Jeśli projekt dotyczy interfejsu użytkownika ... prawdopodobnie toast:
Inne sprawy:
(W rzeczywistości nie istnieje jako warunek, jest to popularny błąd, który ludzie przywiązują do braku dyscypliny )
Jeśli używany do kochać jakąś kontrolą wersji , użyj go.
Rozpoczynanie nauki teraz cię rozproszy .
Grafowanie pomysłów, jak już wspomniano, może pomóc.
Użyłem Freemind , CMaps , XMind , Yed , graphviz i ... coś innego.
XMind jest mniej sensu:
Ołówek i notatnik wciąż dobrze oceniają w mojej pierwszej dziesiątce:
Robię wiele małych objaśniających rysunków.
W ostateczności zawsze możesz przygotować powerpointy na własne potrzeby :)
źródło
Programowanie piśmienne.
Jeśli piszesz gazetę (lub książkę, raport lub dokument) na temat swojego projektu, masz tendencję do pozostania przy zadaniu.
Zacznij od szkicu tego, co robisz: omówienie przypadku, wydanie 1, wydanie 2, wydanie n. Zapisz podsumowanie przypadków użycia. Priorytetyzuj je. Weź ich w sprinty i wydania.
Każda wersja ma widok przypadku użycia, widok logiczny, widok przetwarzania, widok komponentu, widok wdrożenia. W przypadku sprintu wyszczególnij przypadki użycia. Opublikuj dokument HTML, aby pokazać, co zamierzasz zrobić. Po wyszczególnieniu przypadków użycia dla sprintu, napisz model logiczny. Napisz kod, który to obsługuje. Napisz dokumentację przetwarzania. Napisz kod, aby go obsłużyć. Twórz moduły. Napisz dokumentację widoku komponentu. Napisz testy i dokumentację pomocniczą. Opublikuj wyniki sprintu jako dokument HTML.
Powtórz dla każdego sprintu. Od czasu do czasu przeglądaj i edytuj dokument.
Istnieje wiele umiejętnych narzędzi programistycznych. Pomogą ci stworzyć źródło, które tworzy dokumentację i kod z jednego tekstu.
Używam sfinksa i PyLit, ale to dlatego, że jestem programistą Python.
źródło
Jeśli chcesz zapisać swoje pomysły, możesz użyć narzędzia do mapowania myśli, takiego jak XMind lub FreeMind . Oba narzędzia są bezpłatne (dla osób fizycznych dla XMind) i świetnie sprawdzają się podczas burzy mózgów i porządkowania pomysłów. Rzecz w tych narzędziach jest taka, że masz mniejsze szanse na zapomnienie.
Osobiście korzystałem z Freemind przed rozpoczęciem mojego ostatniego osobistego projektu. Nie miałem żadnej konkretnej metodologii per se . Właśnie przedstawiłem swoje pomysły podczas godzinnych sesji raz na dwa dni. Myślę, że rozstawianie sesji burzy mózgów pomogło mi lepiej zobaczyć, co było nie tak, co nie było konieczne, ale może być przydatne w kolejnych wersjach itp.
Przy pierwszym zatwierdzeniu kodu zapisałem również plik burzy mózgów w repozytorium kodu źródłowego (użyłem bitbucket ) i utrzymałem go na bieżąco z moimi najnowszymi pomysłami.
źródło
Traktuj to jak prawdziwy projekt oprogramowania (ponieważ jest jednym). Jest tylko kilka rzeczy, które zmieniają się, ponieważ liczba programistów jest jedna. Nadal potrzebujesz kontroli źródła. Nadal potrzebujesz sposobu organizowania funkcji, aby dodać błędy do naprawienia. Nadal potrzebujesz automatycznego testu, aby sprawdzić, czy nie tworzysz regresji w kodzie. Powinieneś także mieć automatyczny sposób na skompilowanie kodu (jeśli to konieczne), uruchom testy i przejrzyj raporty.
Pracuję nad osobistym projektem, tak jak opisałeś. Używam Git, Redmine, JUnit i Jenkins, aby spełnić wszystkie kategorie, które opisałem. Mój przebieg pracy to:
Utrzymywanie wszystkiego w zarządzaniu i organizacji jest tak samo ważne, jak w przypadku wielu programistów. Wielu programistów wymaga organizacji, aby informacje były przekazywane wszystkim. Kiedy jesteś tylko ty, masz już wszystkie informacje, ale zapamiętanie każdej części systemu jest trudne. System zarządzany ułatwia ci pracę i możesz skupić się na zadaniu.
źródło
Przybory:
System kontroli wersji (nawet jeśli jesteś jedynym programistą w swoim garażu lub domowym komputerze osobistym): GIT, Mercurial, Tourtoise
Edytor z podświetleniem kodu źródłowego, nawet jeśli masz IDE (Scintilla, Vim, Notepad)
Tablica, tablica, niektóre rzeczy po prostu nie pasują do twojej aplikacji Designer Tools.
Narzędzie do projektowania: Rational Rose, Umbrello, (UML, ER,) Visio lub „Słabe narzędzia projektanta”, takie jak Power Point, Corel Draw, Open Office Draw
Tekst / kod źródłowy Narzędzie do porównywania tekstu, np. WinMerge
źródło
To zależy od tego, jak możesz rozróżniać i obsługiwać różne zadania, ponieważ musisz przyjrzeć się każdemu etapowi procesu programowania.
Myślę, że narzędzia są użyteczne tylko wtedy, gdy już wiesz, jak z nich korzystać, a jednym z najgorszych błędów jest nauczenie się, jak działa narzędzie, a nie nauczenie się, co z nim zrobić.
Po pierwsze, moim zdaniem, musisz zapisać, czego oczekujesz od oprogramowania, a zwłaszcza tego, czego nie zrobi. To kluczowy punkt. Następnym krokiem jest podzielenie końcowego systemu na niższe podsystemy, co ułatwi proces budowania. I na koniec musisz wybrać swoje narzędzia. Zasadniczo dobry IDE, VCS i modeler danych. Możesz dodać wiele innych narzędzi, aby pomóc, ale uważaj, aby nie zacząć od niewłaściwej ścieżki.
Początek nie wydaje się tak atrakcyjny, ale z czasem cały proces będzie przyjemny.
źródło