TGViewer
adelf on programming adelf on programming @adelf_on_programming · 1.57K subscribers
Post #68 1.94K
Вчера, чтобы реализовать фичу, которая нужна меньше чем одному проценту юзеров, сделал большой 3-часовой рефакторинг, который еще и обвалил пару тестов и это тоже пришлось фиксить. Да и без фичи этой вполне можно было бы этим юзерам обойтись(в настройках все сделать). Ужас менеджера во всей красе. Разработчик потратил кучу сил и времени на ненужную вещь! Да и еще и багов наверно наплодил.

С одной стороны все верно. С другой - никогда не надо забывать, что все в нашей отрасли “зависит от проекта”. Для проекта на поддержке на второсортной галере мои действия были бы преступлением. Для простого сайтика - наверно тоже. Для моего продукта(Laravel Idea) - нет.

Невозможность просто реализовать довольно несложный функционал - это очень хороший намек на проблемы в коде. На его неготовность к изменениям, даже простым. Если реализовать этот функционал сейчас, через усилия, заплатками и костылями в коде и продолжать в том же духе, то проект очень быстро превратится в то самое легаси, от которого все воротят нос. Для проекта на галере - это в порядке вещей. Для моего - это критично. Я должен разрабатывать фичи. Большой команды медленно и спокойно назначать людей делать каждую фичу у меня нет(с начала марта я вообще опять один). Чтобы двигаться в нужном темпе - я должен делать эти фичи быстро. И вот уловить этот самый момент - когда ты понимаешь, что код уже не так гибок и нужно с этим что-то делать - очень важно.

Мораль - всегда все зависит от проекта и каждое решение надо оценивать не только в краткосрочной, но и в долгосрочной перспективе.

Если кого интересуют детали, то у меня было несколько источников информации о том, где и под каким неймспейсом и с какими расширениями файлов лежат view-файлы. Настройки плагина, код в ServiceProvider-классах и еще ide.json файлы. Все это лежало в разных частях кода и как-то умело работать. Небольшая фича - вызов View::addExtension() метода в сервис провайдере, который добавляет расширения файлов, которые Laravel считает вьюшками. Хотелось его подхватывать самому, чтобы юзеру не надо было лазить в настройках. После рефакторинга вся необходимая информация про вью-файлы аккумулируется из разных источников в один обьект, который знает про вьюшки все и умеет делать все необходимое.
  • 👍 40
  • 👏 6
More from @adelf_on_programming
  1. Sep 10, 2026Новый дивный мир Пришел issue, в котором юзер жалуется на какое-то несоответствие логики.…
  2. Aug 11, 2026Podlodka #489 – Laravel Laravel любят за скорость разработки, ругают за магию и регулярно…
  3. Jun 4, 2026Под прошлым постом развернулась дискуссия, которая в очередной раз показала, что в програм…
  4. Jun 1, 2026Часто слышу мнение в стиле "неймспейс это тоже часть имени класса. Используйте его" И, как…
  5. Apr 20, 2026Хранение дефолтных значений Для новой фичи мне нужно хранить токен Sentry и домен, где это…
  6. Jan 18, 2026Исследую сейчас исходники Livewire4. Прекрасный пример, когда две совсем разные логики пыт…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →