О работе, php и своём framework

А всё-таки этo оправдалось. Пишешь свой, пусть и с косяками, php-framework. Пусть он под PHP4, пусть он не идеален, но он работает на 6 проектах, давая максимум функционалии для простых и удобных CMS. За время написания этих проектов, framework развивается, тестится и живёт.

Приходит день, и на основе его начинается новый, большой проект, когда над проектом работают сразу 2 программиста, 1 HTML кодер и ему помогает ещё 1 специалист по JavaScript. Потом сваливается новость, что не плохо бы перейти на PHP5. Не то чтобы для меня радость, но и не горе. Да, я потерял совместимость с предыдущими сайтами, но не это главное.

Первы сложным шагом было: перейти с PHP4 на PHP5 не потеряв всего что написано по функционалии. Пришлось написать добрую кучу Unit тестов, а потом переписать все компоненты для поддержки основных возможностей PHP5. Это новые конструкторы, это __sleep/__wakeup для моделей, это static, public, protected для нужных методов и прочие косяки, которые вдруг полезли.

Второй сложный шаг: помнить, что ты пишешь на PHP5.

Теперь о косяках, на которые можно нарваться головой.
Косяк №1 – документация кода. Она всегда страдает, что бы вы не использовали. Заставить себя писать комментарии, хотябы в виде phpDoc очень сложно. Заставить кого либо это делать, если не делаешь сам – ещё сложнее. Документировать код через недели после написания – дело скучное и вовсе не интересное. А надо.
Косяк №2 – Когда принимаешь нового человека в команду, нужно быть готовым к этому и иметь список внутренних стандартов кода. Спорить о том, как лучше писать код и по каким стилям при написанной части framework не самая хорошая идея.
Косяк №3 – Не надо бояться общаться в команде при работе, это решает проблемы. Не надо бояться иногда эксперементировать с принципами экстремального программирования – помогает, да ещё как.
Косяк №4 – Как всегда, у большинства самодельных framework страдает скорость. Но! У нас ведь есть право в любой момент отступиться, осмотреться и что-то изменить. Проект то большой и уникальный в своём плане. Можно отказать от каких-то возможностей, что-то переписать с максимальной пользой, где-то поправить не оптимальный код коллеги.
Из косяков вроде всё.

Вот к примеру сегодня (точнее уже вчера) я целый день провёл в профайлере, отлавливая тормозящие функции, методы и просто куски кода. Когда идёш по чужому коду (пусть не документированному) и видишь все его идеи (благо MVC это позволяет без проблем) – править тормозящие мелочи очень легко, тем самым отвоёвывая по 10-20 ms. За любой код, пусть самый кривой, ты не ругаешь, ты просто его правишь на более корректный (и то это на твой взгляд) и быстрый. Главное, что оба кода правильные, оба кода по функционалии абсолютно одинаковые, просто есть разница в 2-3 запроса к базе, 10-20 ms и никаких нервов или ругани.

А вот показать это чудо, я не думаю, что уже когда смогу.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.