Jestem nowicjuszem w OOP i uczę się najlepiej na przykładzie.
Można powiedzieć, że to pytanie jest podobne do tego, które projekty Open Source Scala powinny się uczyć, aby nauczyć się najlepszych praktyk kodowania - ale w PHP.
Słyszałem, że Symfony ma najlepszą „architekturę” (nie będę udawać, że wiem, co to dokładnie znaczy), a także Doctrine ORM. Czy warto spędzać wiele miesięcy czytając kod źródłowy tych projektów, próbując wydedukować zastosowane wzorce i uczyć się nowych sztuczek?
Widziałem tyle samo stron internetowych, które nie zgadzają się z bazą kodową Zend (podam linki, jeśli uzna to za konieczne).
Czy znasz jakiś inny projekt, który sprawiłby, że każdy doświadczony programista OOP wylewał łzy radości?
Pozwólcie, że dodam, że praktyczność i zakres zastosowania nie jest tu wcale problemem - chcę tylko:
- Wybierz projekt, w którym baza kodów została uznana przez deweloperów za znacznie lepszą i lepszą niż ja.
- Napisz kod, który osiągnie to, co robi projekt.
- Porównaj wyniki i spróbuj dowiedzieć się, czego nie wiem.
Zasadniczo baza kodów zainteresowań naukowych. Jakieś rekomendacje proszę?
źródło
Odpowiedzi:
Symfony 2 to prawdopodobnie najlepszy duży projekt do nauki, ale jest dość duży.
Niedawno znalazłem schludny i niewielki projekt PHP o otwartym kodzie źródłowym o nazwie Phrozn (generator strony statycznej). Baza kodu jest stosunkowo niewielka, więc można ją dość szybko sprawdzić.
AKTUALIZACJA:
Phrozn jest nowoczesny (wykorzystuje PHP 5.3+ i na nim w dużym stopniu polega), jest rozszerzalny, ma ścisłe pokrycie kodu. Ponownie wykorzystuje również kod z innych dobrze napisanych projektów, takich jak Symfony (YAML), Zend (Autoloader), PEAR i Twig.
OOP, używa przestrzeni nazw i jest bardzo dobrze udokumentowana. Nie twierdzę, że jest idealny, ani że można go porównać do projektu takiego jak Symfony, ale warto spróbować.
źródło
Osobiście powiedziałbym, że sprawdź Symfony2 . To prawie najlepszy, duży projekt, jaki widziałem do tej pory. Nie oznacza to, że nie ma w tym złych elementów, ale ogólnie jest całkiem niezły.
Teraz Zend jest w środku. Jeśli spojrzysz na publiczny interfejs API, jest całkiem niezły. Jest w nim kilka części WTF, ale w większości jest w porządku. Jeśli zaczniesz w to więcej zagłębiać, znajdziesz DUŻO więcej kodów WTF ...
Jeśli chodzi o to, czego wprost unikać:
Jeśli chodzi o resztę, przekonasz się, że jest trafiony. Wszystkie projekty mają dobre i złe strony. Spójrz na lit , ma kilka naprawdę fajnych koncepcji projektowych. Ale ma również wiele przekierowań Fubar i hackery, aby to zadziałało.
I to właśnie zabrać do banku. Nie ma idealnego projektu, nie próbuj go znaleźć. Zamiast tego spójrz na wiele z nich i sam zdecyduj. Spróbuj każdego, spróbuj je złamać. Spróbuj je zrozumieć, czytając je (co jest dobrym sprawdzianem rozsądnego projektu) ...
Tylko moja osobista opinia ...
źródło