Причина - CSS is Awesome
Причина - CSS is Awesome

«В чём причина?» — такой первый вопрос я бы советовал задавать перед решением каждой ошибки и задачи.

«Вижу следствие» — в начале своего пути разработчик чаще всего стремится исправить ошибку как она есть, а не разобраться глубоко, какой причиной она была вызвана.

Простой реальный пример с проекта, над которым я сейчас работаю.

Заголовок страницы написан заглавными буквами «ПРОДУКТЫ» вместо «Продукты».

Следствие: видно сразу — быстро поправить и забыть про этот баг. Минимум приложенных усилий.

Причин может быть несколько:

  • Нет договоренности с дизайнерами, в каком едином стиле должны быть заголовки. Решение - обсудить с дизайнерами и стандартизировать работу с заголовками.

  • Неправильно переопределена глобальная тема для Typography: кто-то когда-то давно так сделал. Решение - изучить темы и привести к единому виду.

  • Предыдущий разработчик или дизайнер (легаси) думал, что заголовки всегда должны быть заглавными буквами и делал их такими во всех своих страницах. Решение - просмотреть другие страницы и поправить их тоже.

Переход от бездумного комбайна по исправлению следствий до поиска причин и их исправлений характеризует один из основных качественных ростов разработчика от Junior до Middle‑Senior.

Важно! — иногда лучше решить ошибку сразу быстро, а потом завести задачу на исправление причины в целом.

Если у вас есть свои примеры, напишите в комментариях. Думаю, такой опыт будет полезен для новых разработчиков.

Фильм «Хористы» и Акция‑Реакция

Для более глубокого понимания этой темы предлагаю вам посмотреть гениальную комедийную драму «Хористы» 2004 года и подумать над вопросом: «Я сейчас работаю через Акцию или Реакцию?», где учителя — это фреймворки и библиотеки, а ученики — это наши ошибки и задачи.

Трейлер на https://www.kinopoisk.ru/film/51481/ - а сам фильм вы знаете где можно посмотреть бесплатно :)

https://www.kinopoisk.ru/film/51481/
https://www.kinopoisk.ru/film/51481/

В чём причина появления фреймворков?

На глобальном уровне фреймворки стараются минимизировать количество таких возможных причин. Правда, архитектурные решения фреймворка не всегда удачны и они порождают новые виды причин, с которыми мы работаем ежедневно.

Фреймворки и библиотеки декларируют решаемые проблемы на их главной странице.

Несколько положительных примеров:

  • $mol - актуальность через отсутствие версионирования, реактивность по умолчанию, локализация и тестирование из коробки, уменьшение бойлерплейта шаблонов верстки.

  • React - упрощение шаблонов верстки, огромная экосистема, популярность благодаря Facebook.

  • Vue - приятная и понятная документация, удобные шаблоны, хорошая оптимизация и сборщик на VIte с HMR.

  • Можно продолжить этот список до бесконечности...

Фреймворк выбирается один раз на проект, а задачи и ошибки в проекте появляются каждый день.

Основная идея данной статьи

Над текущей (будущей) ошибкой или задачей задайте себе вопрос «В чём причина?» — это поможет улучшить качество вашей работы и откроет новые варианты её решения. Это может быть сложно.

Постарайтесь этот вопрос довести до автоматизма для лучшего качества вашей работы.

Комментарии (23)


  1. Fen1kz
    11.08.2023 16:35
    +7

    Интересный список положительных примеров, первым (лол) в списке идет местячковый фреймворк от местного тролля :D

    Вопрос к троллю - в чем прикол пиарить свой $trash фейками?


    1. zede
      11.08.2023 16:35
      +6

      Вы правда верите, что все кто хвалят $mol это фейки?

      Я могу понять неоднозначную реакцию на автора, но сама технология от этого не становится $trash-ом, как вы позволяете себе выражаться (с высокой долей вероятности не попробовав его толком)


      1. mayorovp
        11.08.2023 16:35
        +1

        Фреймворк, создающий сайты, которые принципиально не способны индексироваться поисковыми системами — это именно что $trash. А ещё и с неиндексируемой документацией — это $trash в квадрате.


        1. LyuMih Автор
          11.08.2023 16:35

          Согласен, это из минусов одностраничников SPA, которую в идеале бы решить. Она частично была решена, но пока не на уровне Next.js.

          Вроде у чистого React SPA есть похожие проблемы с индексацией


          1. mayorovp
            11.08.2023 16:35

            Проблемы SPA решаются, как на уровне поисковых роботов, так и через SSR.


            Но $mol добавляет сюда ещё и неотключаемую виртуальную прокрутку.


            1. nin-jin
              11.08.2023 16:35
              +3

              Разумеется отключаемую. Учитывая, что $mol наиболее гибкий фреймворк из ныне существующих, подобные инсинуации выглядят глупо. Впрочем, вам выставлять себя на посмешище не привыкать.


              1. mayorovp
                11.08.2023 16:35
                +5

                О неотключаемости виртуальной прокрутки я узнал из надёжного источника — комментария автора $mol на Хабре. И кто здесь выставляет себя на посмешище-то?



                1. nin-jin
                  11.08.2023 16:35
                  -6

                  Тот, кто не понимает очевидного сарказма.


        1. nin-jin
          11.08.2023 16:35
          +2

          Не надоело ещё эту чушь тиражировать?

          https://yandex.ru/search/?text=%24mol+site%3Ahyoo.ru


          1. mayorovp
            11.08.2023 16:35

            А теперь попробуем найти кусок текста и упс: site:hyoo.ru "зачастую импортируются сложносоставные имена типа"


            Вот на этой странице текст есть, но в индекс он не попал: https://mol.hyoo.ru/#!section=docs/=xps6z2_b92esq


            1. nin-jin
              11.08.2023 16:35
              +1


        1. Hardcoin
          11.08.2023 16:35
          +1

          Это далеко не всем нужно. То, что закрыто логином и паролем и не должно индексироваться.


          1. LyuMih Автор
            11.08.2023 16:35

            Да.


            Делали лендинг на самых простых технологиях, которые хорошего индексировались и показывали отличные WebVitals. Они были
            А сам личный кабинет и приложение были уже на субдомене, где индексация и СЕО не нужны, т.к. и так уже пришли через лендинг. Все оставались довольным


          1. mayorovp
            11.08.2023 16:35
            +1

            С одной стороны — да, так и есть. С другой стороны, использование для публичной и приватной частей разных технологий влечёт за собой необходимость делать одно и то же по два раза.


            1. LyuMih Автор
              11.08.2023 16:35

              Однажды дизайнер сам сделал лендинг на https://elementor.com/ и остался очень доволен своей работой)
              А мы уже к нему прикрутили личный кабинет, хех


    1. LyuMih Автор
      11.08.2023 16:35

      Спасибо, это эпичный дебютный первый комментарий на мою первую статью)

      1. Не фейк, можешь написать в личку убедиться https://t.me/mikhail_eco_coach . Всегда открыт к беседе

      2. Написал для себя пару пет проеков на моле, разобрался в нём, мне понравилось. Продолжаю работать официально на реакте.

      3. Как и написал, каждый фреймворк ставит во главу угла решение конкретного ряда проблем. $trash фреймворк не является исключением. Список можно продолжать до бескончости.

      Если ещё остались вопросы, задавай


  1. Abobcum
    11.08.2023 16:35
    +7

    Поддерживаю, лучше задавать этот вопрос 5 раз подряд.

    К сожалению, у меня на работе первый вопрос "кто виноват", а второй "как его наказать". Ох уж это советское наследие.


    1. LyuMih Автор
      11.08.2023 16:35

      Спасибо.
      Это моя реальная история - мне такой вопрос (в чём проблема?) задалл тимлид и направил думать в этом русле.
      У нас на работе был следующий механизм "как его наказать" - кто накосячил, тот и должен исправить. Даже если уже прошло несколько релизов.
      Это было больно, но отрезвляюще


      1. PereslavlFoto
        11.08.2023 16:35
        +1

        Итак, тимлид задал вопрос, в чём проблема. Ему ответили, что проблема простая: эта ерунда с сайтом никому не интересна и никто не относится к ней всерьёз, потому что она не приносит дохода. Следовательно, накосячил сам тимлид и он должен исправить приоритеты. Но у него нет времени заниматься всякой ерундой вроде вебсайта. А если он будет отрывать людей от работы ради вебсайта, сам же потеряет в доходах.


        Что дальше?


        1. LyuMih Автор
          11.08.2023 16:35

          В статье расматревался вопрос от тимлида к веб-разработчику и вебсайт являлись для обоих источником доходов, а не всякой ерундой.

          Не могу ответить на твой вопрос "Что дальше?", т.к. не понял кто ответил тимлиду. Вроде как по комменатрию явно не веб-разработчик.
          А может у нас разные тимлиды попадались


          1. PereslavlFoto
            11.08.2023 16:35
            +1

            Ах, если бы вебсайты были источником дохода для веб-разработчиков, тогда веб-разработчикам не пришлось бы наниматься! Они просто создавали бы сайты и имели оттуда доход.


            Тимлиду ответили его подчинённые. Те самые люди, которые занимаются веб-сайтом, и одновременно с этим занимаются разной другой работой.


            1. LyuMih Автор
              11.08.2023 16:35

              А, понятно.
              Наверное, я просто в другой ситуации находился


  1. dyadyaSerezha
    11.08.2023 16:35
    +2

    И все же я бы сначала ограничился простым фиксом и поговорил с автором коммита этого заголовка. А уж если такая фишка встречается неоднократно, тогда можно и потратить дополнительно4 время на поиск другой причины.