Cytat(tomek120 @ 6.08.2013, 12:37:36 )

Kolejne miesiące widzę upływają, błąd ten sam. Na czym ten serwis miał polegać ? Trochę mi zabrałeś wiary w siebie, bo okazuje się, że naprawdę ciężko samemu jest stworzyć coś sensownego

Na każdym kroku napotykają nas problemy.
Problemy pojawiają się wtedy, gdy się nie przemyśli dobrze projektu. A nawet jeśli projekt nie jest dobrze przemyślany, to da się go pociągnąć - o ile na każdym kroku robi się testy i jako-tako planuje rozwój aplikacji. Ja pisząc swój pierwszy większy serwis (zlecenie dla klienta) testowałem od razu każdą nową funkcjonalność. Czegokolwiek nie zrobiłem, to od razu musiałem to przetestować. Na pisanie kodu poświęciłem mniej czasu, niż na testowanie. A czym większa aplikacja się stawła, tym bardziej zdawałem sobie sprawę z tego jak wielkie znaczenie ma dobre otestowanie aplikacji.
Już po pierwszym projekcie poczułem dogłębinie, jak wielką rolę odgrywają testy. Wtedy także zrozumiałem, że marnuję czas... testując aplikację manualnie (klikając, pisząc swoje mini-testy). Od razu trzeba było brać się porządnie za TDD (PHPUnit itd), wtedy zaoszczędziłbym masę czasu, bo co jakiś czas poprawiałem coś we wcześniej napisanym kodzie i po raz n-ty przechodziłem przez manualne testowanie, zamiast po prostu odpalić testy (co zajęłoby kilka sekund, a nie minuty).
Kolejna spraw to odpowiednie sposób psiania aplikacji, tj. skupianiu się na obiektówce oraz modułowości. Kod nalezy pisać w taki sposób, aby można było do niego łatwo zaszczepić nowe funkcje bez modyfikacji samego kodu, tj. trzeba sobie odpowiedzieć na pytanie: "Jak dodać coś nowego, nie dotykając starego kodu?". Kod musi być otwarty (na nowy kod), a jednocześnie zamknięty (na modyfikacje starego kodu).
O tym najlepiej można się przekonać, gdy chce się zmienić jakąś funkcjonalność w serwisie, bądź gdy klient chce, aby zmienić coś w jego serwisie - wtedy na wierzch wychodzi to, w jaki sposób aplikacja została napisana (i nawet sam Bóg nie pomoże, gdy coś napiszemy niedbale). ; )