Хабрахабр

[Из песочницы] Junior и методы рационального мышления

Я не говорю про написание кода, знание паттернов и тп. Многое, что кажется совершенно очевидным для опытного разработчика, оказывается неочевидным для начинающего. Сегодня попробуем поговорить об этом. Это касается способа мышления в целом: как решить проблему, как спросить, как не вызвать гнев наставников своих старших.

С их помощью можно быстрее прийти к правильному решению и эффективнее построить свою работу. Методы рационального мышления (здесь) — это вопросы, которые стоит задавать на каждом этапе обдумывания проблемы.

В чём причина? Вопрос 1.

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

Сделал ли я всё, что мог? Вопрос 2.

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

  1. Я проверил документацию приложения на предмет решения этой проблемы
  2. Я погуглил и ничего не нашёл
  3. Я погуглил на английском языке и ничего не нашёл
  4. Ни один из найденных советов мне не помог

Если везде ответ положительный, то переходим к следующему пункту.

Кажется, я озадачен. Вопрос 3. Почему?

Возможно, вам просто забыли про неё рассказать. Нет ничего страшного в том, чтобы спросить у своего ментора/наставника/начальника/друга о решении проблемы. Грамотно построенный вопрос экономит время вашего наставника и помогает работать эффективнее. Однако вопрос не должен состоять только из слов «что-то не работает», в него следует вложить все имеющиеся входные данные. Попробуйте проверить вопрос на «полноту»:

  1. Указан текст ошибки
  2. Указан кейс, при котором вы столкнулись с ошибкой (вплоть до команд запуска)
  3. Указаны испробованные методы решения

В кратчайшие сроки вы получите решение проблемы и глубокое уважение от коллег. Profit! Итак, вперёд к разработке задач.

Моё решение полностью решает проблему? Вопрос 4.

Подсказка: правильным вопросом самому себе. Теперь поговорим о том, чем стоит завершать выполнение любой задачи.

Например, есть функция, которая должна возвращать число, но она (внезапно) возвращает строку. Если это баг, то стоит проверить: проблема исправлена или замаскирована? Но, возможно, стоит сделать преобразование внутри неё и тем самым исправить проблему окончательно. Преобразованием результата в месте вызова функции можно замаскировать проблему.

Как показывает практика, фраза «должно работать» вызывает страшные баги и ещё более страшное недовольство с принимающей стороны. Фича или баг, не поленитесь в конце проверить все возможные кейсы.

Почему я уверен в этом? Вопрос 5.

Бекенд, связанный с задачей джуниора, был давно разработан. Сразу же разберём пример: настало время интегрировать разные части большого приложения. Довольно быстро он определяет, что завис бекенд. Он запускает фичу на своей стороне и… все виснет! Но Рациональный джуниор подумает: «Если задача бекенда помечена как завершённая, вероятно, её протестировали. Можно было бы сразу сказать: «Проблема не на моей стороне», скинуть задачу и пойти по своим делам. И буквально через полчаса выяснит, что отправляет данные в бесконечном цикле. Почему я уверен, что проблема в бекенде?».

Почему это было сделано? Вопрос 6.

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

  1. Посмотреть последний commit message с изменением этой строки
  2. Посмотреть привязанную к commit задачу (часто указывается в commit message)
  3. Посмотреть кто делал commit и спросить у него, предварительно рассказав про свою задачу

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть