Ich bin ein Neuling bei OOP und lerne am besten anhand eines Beispiels.
Man könnte sagen, diese Frage ähnelt der Frage, welche Scala-Open-Source-Projekte ich studieren soll, um die besten Codierungspraktiken zu erlernen - aber in PHP.
Ich habe gehört, dass Symfony die beste "Architektur" (ich werde nicht so tun, als wüsste ich, was das genau bedeutet) sowie Doctrine ORM hat. Lohnt es sich, viele Monate damit zu verbringen, den Quellcode dieser Projekte zu lesen, die verwendeten Muster abzuleiten und neue Tricks zu lernen?
Ich habe die gleiche Anzahl von Webseiten gesehen, die Zends Codebasis ablehnen und mögen (wird Links bereitstellen, wenn dies als notwendig erachtet wird).
Kennen Sie ein anderes Projekt, bei dem ein erfahrener OOP-Entwickler vor Freude Tränen vergießen würde?
Bitte lassen Sie mich hinzufügen, dass Praktikabilität und Anwendungsbereich hier überhaupt kein Problem darstellen - ich möchte nur Folgendes tun:
- Wählen Sie ein Projekt aus, dessen Codebasis von Entwicklern als besser und besser als ich eingestuft wird.
- Schreiben Sie Code, der die Leistung des Projekts erreicht.
- Vergleichen Sie die Ergebnisse und versuchen Sie zu lernen, was ich nicht weiß.
Grundsätzlich eine akademische Interessenbasis. Irgendwelche Empfehlungen bitte?
quelle
Antworten:
Symfony 2 ist wahrscheinlich das beste große Projekt, von dem man lernen kann, aber es ist ziemlich groß.
Ich habe kürzlich ein hübsches und kleines Open-Source-PHP-Projekt namens Phrozn (statischer Site-Generator) gefunden. Die Codebasis ist relativ klein, sodass Sie sie ziemlich schnell überprüfen können.
AKTUALISIEREN:
Phrozn ist modern (verwendet PHP 5.3+ und verlässt sich stark darauf), es ist erweiterbar und verfügt über eine strikte Codeabdeckung. Außerdem wird Code aus anderen gut geschriebenen Projekten wie Symfony (YAML), Zend (Autoloader), PEAR und Twig wiederverwendet.
OOP, verwendet Namespaces und ist sehr gut dokumentiert. Ich sage nicht, dass es perfekt ist oder dass es mit einem Projekt wie Symfony verglichen werden kann, aber es ist einen Versuch wert.
quelle
Ich persönlich würde sagen, schauen Sie sich Symfony2 an . Es ist so ziemlich das beste End-to-End-Großprojekt, das ich bisher gesehen habe. Das heißt nicht, dass es keine schlechten Teile gibt, aber insgesamt ist es ziemlich gut.
Jetzt ist Zend in der Mitte. Wenn Sie sich die öffentliche API ansehen, ist sie ziemlich gut. Es gibt einige WTF-Teile, aber zum größten Teil ist es in Ordnung. Wenn Sie sich mehr damit beschäftigen, werden Sie viel mehr WTF-Code finden ...
Was Sie unbedingt vermeiden sollten:
Was den Rest betrifft, werden Sie feststellen, dass es ein Hit und Miss ist. Alle Designs haben gute und schlechte Teile. Schauen Sie sich Lithium an , es hat einige wirklich coole Designkonzepte. Aber es gibt auch eine Menge Fubar-Umleitung und Hackery, um das zum Laufen zu bringen.
Und das soll man zur Bank bringen. Es gibt kein perfektes Design, versuchen Sie nicht, eines zu finden. Schauen Sie sich stattdessen viele von ihnen an und entscheiden Sie selbst. Versuchen Sie jeden, versuchen Sie, sie zu brechen. Versuchen Sie, sie nur durch Lesen zu verstehen (was ein guter Test für vernünftiges Design ist) ...
Nur meine persönliche Meinung ...
quelle