Projektowanie, kodowanie… ewolucja.

Jak każdemu młodemu programiście oczywiście brak mi doświadczenia. Jednak z każdym kolejnym projektem zdobywamy go coraz więcej, jednak czy umiemy to wykorzystać? Z błędami w kodzie jest trochę jak z alkoholizmem, nie uda nam się przestać pić jeżeli sami nie stwierdzimy, że robimy źle i nie wyrazimy chęci poprawy. Tak samo i tutaj możemy zbudować 100 projektów ,a każdy kolejny będzie miał te samy błędy.

Powiadam wam: Kto nigdy nie postąpił tak jak jest to niżej opisane, niech pierwszy rzuci e-kamieniem…

Przystępujemy do projektowanie nowego oprogramowania, zaczynamy od ogólnych założeń: co ma robić program, w jakim celu, dla kogo po co itd. Kiedy już wiemy gdzie, co i po co, nadchodzi czas na pytania typu „jak”.Jak – tak, ile – tyle, gdzie – tu. Jak ma wyglądać baza, co będziemy tam trzymać, jakie wybrać technologi i techniki. Z początku wszystko idzie szybko i entuzjastycznie. Zależenie od złożonośći programu, gotowy projekt mamy po jamimś tam czasie :D. Następnie rozpoczyna się faza implementacyjna. Najpierw wszystko idzie z równie wielkim entuzjazmem i motywacją. Jeden model, drugi trzeci szósty, pierwszy kontroler, drugi piąty… Chwile potem nasz projekt wygląda mniej więcej tak:

Wszystko wygląda jasno i przejrzyście. Kontroller nadrzędy ma pare bazowych metod. Kontroler 2, jest powiedzmy odtwarzaczem audio. Ma metody play, pause, stop. Po tym nadchodzi czas kiedy potrzebujemy dodać nowe funksjonalności. Nasz Player powinien mieć swój widok i pokazywać co aktualnie gra, dodajemy metode updateTitleLabel, powinnien też sam wiedzieć czy może zagrać kolejną piosenkę czy nie, dodajemy własność isPlaying, powinnien mieć kontrolki, showControl, hideControls, powinien się chować i pokazywać, showPlayer,hidePlayer, showLeftControl, showRightControl, updateYourself,updateSomething, makeTea, selfDestruct!!! Tak więc nasz kontroler rośnie w siłe i objętość.

Później okazuje się, że potrzebujemy mieć kontrole nad playerem również z kontrolera 3, dane mają być pobierane z modelu 2, ale nagle musimy też dołączyć dane z 3 modelu, no i kontroler potrzebuje mieć stan kontrolera 3 i 2, no i stan stanu, no i jeszcze dodatkowa zmienna na przetrzymanie stringa z nazwą obecnie wyświetlanego widoku i jeszcze 300 innych zmiennych z odwołaniami po całym projekcie, tak że wszystko może sterować wszystkim!

Na koniec tak wygląda nasz diagram zależności… I tak na koniec z super przejrzystego projektu i planowania kończymy z czymś co w niczym nie przypomina tego czym miało być. Na szczęście mamy całe mnóstwo podręczników, poradników na temat wzorców projektowych, zasad dobrego kodowania itd itp. Jednak z czytaniem i wdrażaniem z takich ksiąg jest jak z czytaniem książki do karate. 360 stron pozycji i technik, przerabiamy to w jeden dzień a na następny idziemy przetestować nasze nowe umiejętności w życie i tam oto stajemy na przeciw średnio zaawansowanego karateki, z 3 letnim doświadczeniem. Takie zderzenie może być brutalne, tak samo jak programowanie bez odpowiedniego doświadczenia… Ważne jest jednak aby z każdym kolenym projektem, potrafić wykorzystać to co już się wie, i nie popełniać dwa razy tym samych błędów.

About the author

Logos

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>