Я новичок в ООП, и я учусь лучше всего на примере.
Вы могли бы сказать, что этот вопрос похож на то, какие проекты с открытым исходным кодом Scala я должен изучить, чтобы изучить лучшие практики кодирования - но на PHP.
Я слышал, скажу, что Symfony имеет лучшую «архитектуру» (я не буду притворяться, что я знаю, что именно это означает), а также Doctrine ORM. Стоит ли тратить много месяцев на чтение исходного кода этих проектов, пытаясь определить используемые шаблоны и научиться новым трюкам?
Я видел равное количество веб-страниц, которым нравится и нравится кодовая база Zend (предоставлю ссылки, если это будет сочтено необходимым).
Знаете ли вы о каком-либо другом проекте, который заставил бы любого опытного разработчика ООП пролить слезы радости?
Пожалуйста, позвольте мне добавить, что практичность и сфера использования здесь не являются проблемой - я просто хочу сделать следующее:
- Выберите проект, у которого есть кодовая база, которую разработчики считают лучше и лучше, чем я.
- Напишите код, который достигает того, что делает проект.
- Сравните результаты и постарайтесь узнать то, чего я не знаю.
В основном, академическая база кодов интересов. Любые рекомендации, пожалуйста?
источник
Ответы:
Symfony 2, вероятно, лучший крупный проект для изучения, но он довольно большой.
Недавно я нашел изящный и небольшой PHP-проект с открытым исходным кодом под названием Phrozn (генератор статических сайтов). Его кодовая база относительно мала, поэтому вы можете проверить ее довольно быстро.
ОБНОВИТЬ:
Phrozn современен (использует PHP 5.3+ и сильно зависит от него), он расширяемый, имеет строгое покрытие кода. Он также повторно использует код из других хорошо написанных проектов, таких как Symfony (YAML), Zend (Autoloader), PEAR и Twig.
ООП, использует пространства имен, и это очень хорошо задокументировано. Я не говорю, что он идеален, и его нельзя сравнивать с таким проектом, как Symfony, но он того стоит.
источник
Ну, лично я бы сказал, проверить Symfony2 . Это в значительной степени лучший крупный проект, который я когда-либо видел. Это не значит, что в этом нет ничего плохого, но в целом это довольно хорошо.
Сейчас Зенд в середине. Если вы посмотрите на общедоступный API, он довольно хорош. Есть некоторые части WTF, но по большей части это нормально. Если вы начнете копаться в этом больше, вы найдете намного больше кода WTF ...
Что касается того, чего следует избегать напрямую:
Что касается остальных, вы найдете это попало. Есть хорошие и плохие детали для всех проектов. Взгляните на Lithium , у него есть действительно крутые концепции дизайна. Но у этого также есть много перенаправления fubar и взлома, чтобы заставить это работать.
И это то, что взять в банк. Идеального дизайна не существует, не пытайтесь его найти. Вместо этого посмотрите на многие из них и решите сами. Попробуйте каждый, попытайтесь сломать их. Попытайтесь понять их, просто прочитав их (что является хорошим тестом вменяемого дизайна) ...
Просто мое личное мнение ...
источник