О Symfony и важном в жизни
Круг времён замкнулся: я снова вернулся к тому, с чего в далёком 2010 году начинал знакомство с разными PHP frameworks: к Symfony. Идеологически именно Symfony ближе всего к тому, что я хотел сделать, когда начинал писать MLFW: framework, состоящий и достаточно слабо связных компонентов, в котором практически любой компонент можно заменить на более специфичный под свои нужды (customный), и всё это управляется через файл конфигурации. Но первое знакомство с Symfony было очень неудачным. Во-первых, я тогда не понимал смысла паттерна MVC, да и вообще не знал других вариантов архитектуры Web-приложений, кроме того, что видел в движках типа PHPbb 2 или PunBB, поэтому не хватало даже понимания, как сделать, например, такую типичную для IntB вещь, как определить тип форумного раздела по URL и уже потом подключить нужный модуль для выдачи контента. (Сейчас я бы просто сделал форумные разделы не контроллерами, как пытался тогда, а отдельными классами, создаваемыми из контроллера.) Во-вторых, тогда я сидел на PHP 5.3, очень прожорливым в плане памяти, и под Windows, где не очень-то удобно пользоваться командной строкой. Поэтому увидев, что банальный Hello world съедает 6 Мб памяти при первом запуске и 3 при последующих (и это по данным memory_get_usage(false)), ужаснулся и решил, что мне это не надо.
Сейчас же, потестировав Symfony снова, выяснил, что в prod-версии Hello World при первом запуске занимает 2.3 Мб, а при последующих — всего 657 Кб. В dev — чуть побольше, около 1.1 Мб, но зато есть очень полезная developer console.
И это заставило меня задуматься над вопросом, а имеет ли вообще смысл писать собственный framework? С учётом таких затрат по памяти, его единственным плюсом будет более глубокая обратная совместимость (до PHP 7.2, тогда как Symfony вроде 8.1 требует) и возможность работать на бесплатных хостингах, где нет почти ничего, ну и может быть, чуть бо́льшая простота изучения (и то если напишу документацию). А главный минус — это недоверие потенциальных пользователей только-только появившемуся проекту одного человека.
С другой стороны, в последнее время всё больше и больше ловлю себя на том, что пропало желание «а вот сделаю такое же как <что-то>, только своё», которое прежде было главным источником мотивации на создание чего-либо. И теперь пытаюсь понять, что это: предательство себя или просто более экономный подход к тем самым личным ресурсам, о которых сейчас пишу статью. Который, к тому же, отчасти вызван пониманием, что многие ЧЛ-мыслящие люди, считающие себя IT-профессионалами, даже если и узнают, что я сделал свой framework, не столько впечатлятся, сколько пофыркают на тему «очередное изобретательство велосипеда».
С третьей стороны, можно просто отложить этот вопрос на неопределённое время, сосредоточившись сейчас на TextCMS 2 (которая уж точно будет без всяких frameworkов), а потом на её основе сделать новую версию typologies.ru (причём в последнее время активно кручу в голове, каким именно должен быть этот сайт).
Но в целом всё опять сводится к моему главному вопросу последнего времени: что в жизни по-настоящему важно?
Сейчас же, потестировав Symfony снова, выяснил, что в prod-версии Hello World при первом запуске занимает 2.3 Мб, а при последующих — всего 657 Кб. В dev — чуть побольше, около 1.1 Мб, но зато есть очень полезная developer console.
И это заставило меня задуматься над вопросом, а имеет ли вообще смысл писать собственный framework? С учётом таких затрат по памяти, его единственным плюсом будет более глубокая обратная совместимость (до PHP 7.2, тогда как Symfony вроде 8.1 требует) и возможность работать на бесплатных хостингах, где нет почти ничего, ну и может быть, чуть бо́льшая простота изучения (и то если напишу документацию). А главный минус — это недоверие потенциальных пользователей только-только появившемуся проекту одного человека.
С другой стороны, в последнее время всё больше и больше ловлю себя на том, что пропало желание «а вот сделаю такое же как <что-то>, только своё», которое прежде было главным источником мотивации на создание чего-либо. И теперь пытаюсь понять, что это: предательство себя или просто более экономный подход к тем самым личным ресурсам, о которых сейчас пишу статью. Который, к тому же, отчасти вызван пониманием, что многие ЧЛ-мыслящие люди, считающие себя IT-профессионалами, даже если и узнают, что я сделал свой framework, не столько впечатлятся, сколько пофыркают на тему «очередное изобретательство велосипеда».
С третьей стороны, можно просто отложить этот вопрос на неопределённое время, сосредоточившись сейчас на TextCMS 2 (которая уж точно будет без всяких frameworkов), а потом на её основе сделать новую версию typologies.ru (причём в последнее время активно кручу в голове, каким именно должен быть этот сайт).
Но в целом всё опять сводится к моему главному вопросу последнего времени: что в жизни по-настоящему важно?
- Что я хочу получить в итоге? (Признание? Удовольствие от кода? Практическую пользу?)
- Какие проекты будут для меня значимы через 5 лет?
- Где мой баланс между «сделать идеально» и «сделать достаточно»?
Возможно, важно не выбрать «правильный» фреймворк, а перестать распыляться и вложиться в то, что уже близко к завершению (например, typologies.ru).