Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak ulatwiacie sobie pracę ? pytanie do programistów "obiektowych"
htmlxp
post 30.10.2012, 10:53:03
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 29.03.2008

Ostrzeżenie: (10%)
X----


Witajcie,

Mam do was dość nietypowe pytanie które nie odnosi się do "nie wiem jak to napisac, pomocy!", lecz chciałbym spytać jak organizujecie sobie pracę.

Ja w programowanie obiektowe powoli wchodzę, lecz po napisaniu okolo 200 funkcji dla jednego projektu, powoli zaczynam się w tym wszystkim gubić. Tym bardziej że nie robie jednego projektu cały czas, zostawiam go i wracam po jakimś czasie.

Jakie macie spososby na większe projekty ? przed rozpoczęciem planujecie wszystkie funkcje, rozpisujecie je a potem przystępujecie do kodowania ? Posiadacie jakiś dobry system rozpisywania komentarzy dla danego pliku ?

Ja do tej pory pracowałem "na żywioł", czyli siadam i koduje, lecz może posiadacie lepsze pomysły.
Go to the top of the page
+Quote Post
Sephirus
post 30.10.2012, 11:40:28
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Ogólnie temat rzeka ale podstawą są:

- Komentowanie kodu - używaj na przykład styl PHPDoc'a,
- Autokomentowanie kodu - nazywaj odpowiednio obiekty oraz ich metody tak - by wiadomo było za co są odpowiedzialne i co mają robić ale nie popadaj w skrajność. Staraj się nie używać za dużo skrótów, które mogą kojarzyć się z wieloma rzeczami naraz,
- Użyj odpowiedniego środowiska, które będzie Ci podpowiadać - np.: NetBeans

Zalecam korzystanie z dwóch idei - KISS i DRY

Jeśli nie chcesz projektowa wszystkiego na samym początku - co nie jest łatwe i wymaga nieco doświadczenia i wiedzy z różnych zakresów to zaprojektuj sobie ogólnie szkielet aplikacji, wydziel główne moduły, klasy odpowiadające za dane funkcjonalności itp. Metody w danych klasach dopisuj na bieżąco - nie rób nic na zaś. Dopiero gdy zauważysz podczas pracy, że można coś zoptymalizować zrób to. Tak samo jeśli używasz tego samego kodu w wielu miejscach - wydziel go na zewnątrz.

Polecam przygotowanie sobie samego szkieletu aplikacji, i na podstawie przypadków użycia wyodrębnienie większości funkcjonalności - innymi słowy spisz co ma być możliwe w aplikacji i podziel to na moduły i klasy zapisując także jak na siebie wpływają.

To podejście jest raczej do małych i średnich projektów - normalnie jeśli miałbyś tworzyć coś dużego dla kogoś to polecam jednak poczytać o projektowaniu, wzorcach, logice biznesowej, diagramach itp. smile.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
CuteOne
post 30.10.2012, 11:43:05
Post #3





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


1. Najważniejsze - dobre i skonfigurowane IDE np. netbeans/eclipse. Oszczędza masę czasu na pisaniu funkcji, których nazw dokładnie nie pamiętamy, wskazuje błędy składni, kolorowanka skłądni, git/ftp, source refactor(przydatne gdy poprawiasz kod po kimś)
2. Framework - nie piszesz 1k razy nowy router/acl/obsługę sessji/autoryzację itp. itd. Oczywiście na początku trzeba poświęcić swój czas na naukę ale potem to się zwraca z nawiązką
3. Komentowanie wszystkiego co możliwe - pracochłonne i czasobożerne ale po powrocie do kodu patrzysz na komentarze i wiesz do czego pobranie z bazy id_user było wykorzystane smile.gif
4. Komentarz wstawiam przed klasą, metodą i jakąś ważniejszą funkcjonalnością.
5. Omijam szerokim łukiem komentarze techniczne typu:

  1. /**
  2.  * View action
  3.  *
  4.  *@param int $c
  5.  *@return mix $cc
  6.  */


zamiast takiego komentarza wolę coś w ten deseń
  1. /**
  2.  * viewAction - podczas pobierania danych, ustawiamy autoryzację na false. Następnie
  3.  * w widoku zmieniamy $xx na $yyy aby nie zapętlić sktyptu
  4.  *
  5.  *@param int $c - id użytkownika (przechodzi wstępną walidację)
  6.  *@return mix $cc - zwracamy tablicę, obiekt lub int użytkownika w zależności od zmiennej $xx
  7.  */


6.Kiedyś korzystałem z autorskiego narzędzia, które tworzyło "spis treści" danej klasy (wszystkie metody, parametry, odwołania do innych zasobów itp.) ale po przejściu na Zenda już go nie potrzebowałem

Ten post edytował CuteOne 30.10.2012, 11:45:59
Go to the top of the page
+Quote Post
skowron-line
post 30.10.2012, 13:39:59
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


1. Podziel całość na moduły
2. Pisz jeden moduł od początku do końca
3. Komentarze
3.1 Nazwy zmiennych, metod, klas takie które mówią dużo o tym co metoda robi to sprawi że w sytuacji kiedy nie będziesz miał komentarza to będziesz w stanie z nazwy (klasy|metody|zmiennej) wywnioskować co robi.
4. MVC
5. IDE


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 07:20