HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>26 мар 2021</li>
2 <ul><li>26 мар 2021</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Не стесняйтесь своих ошибок, потому что ошибаются - все!</p>
4 </ul><p>Не стесняйтесь своих ошибок, потому что ошибаются - все!</p>
5 <p>Переводчик-фрилансер. Увлечён своей профессией. Переводит полезные статьи на разные темы - от IT до путешествий, урбанистики и социологии. Занимается лингвистическими исследованиями.</p>
5 <p>Переводчик-фрилансер. Увлечён своей профессией. Переводит полезные статьи на разные темы - от IT до путешествий, урбанистики и социологии. Занимается лингвистическими исследованиями.</p>
6 <p><strong><strong>об авторе</strong></strong></p>
6 <p><strong><strong>об авторе</strong></strong></p>
7 <p>Живёт в Нидерландах, занимается backend-разработкой, увлечённо инвестирует в криптовалюты.</p>
7 <p>Живёт в Нидерландах, занимается backend-разработкой, увлечённо инвестирует в криптовалюты.</p>
8 <p>Человеку свойственно ошибаться. День за днём все мы совершаем промашки. И на работе тоже.</p>
8 <p>Человеку свойственно ошибаться. День за днём все мы совершаем промашки. И на работе тоже.</p>
9 <p>Создание программ - задача сложная. Без ошибок здесь не обходится. Какие-то ошибки пустяковые, какие-то - серьёзные. Но они были и будут всегда.</p>
9 <p>Создание программ - задача сложная. Без ошибок здесь не обходится. Какие-то ошибки пустяковые, какие-то - серьёзные. Но они были и будут всегда.</p>
10 <p>И это хорошо. Потому что ошибки ценны. Конечно, если мы извлекаем из них уроки - и растём профессионально. Как говорила Элеонора Рузвельт,<em>жизнь слишком коротка, чтобы тратить её на повторение чужих ошибок.</em><em></em>Так что лучше на них учиться.</p>
10 <p>И это хорошо. Потому что ошибки ценны. Конечно, если мы извлекаем из них уроки - и растём профессионально. Как говорила Элеонора Рузвельт,<em>жизнь слишком коротка, чтобы тратить её на повторение чужих ошибок.</em><em></em>Так что лучше на них учиться.</p>
11 <p>Я расскажу про самые частые ошибки разработчиков. Надеюсь, вы научитесь их избегать.</p>
11 <p>Я расскажу про самые частые ошибки разработчиков. Надеюсь, вы научитесь их избегать.</p>
12 <p>Все хоть раз коммитили в неправильную ветку репозитория. На исправление этой ошибки можно убить уйму времени. Но если заметить её вовремя, ничего страшного не произойдёт. Гораздо хуже - продолжать коммитить неверную ветку.</p>
12 <p>Все хоть раз коммитили в неправильную ветку репозитория. На исправление этой ошибки можно убить уйму времени. Но если заметить её вовремя, ничего страшного не произойдёт. Гораздо хуже - продолжать коммитить неверную ветку.</p>
13 <p>Помните об этом и будьте внимательны.</p>
13 <p>Помните об этом и будьте внимательны.</p>
14 <p>Я часто сталкиваюсь с тем, что в репозитории оказываются лишние файлы или в нём чего-то недостаёт. Это происходит тогда, когда фиксируют слишком много изменений за раз. Тут уж немудрено надобавлять лишнего или забыть что-то нужное.</p>
14 <p>Я часто сталкиваюсь с тем, что в репозитории оказываются лишние файлы или в нём чего-то недостаёт. Это происходит тогда, когда фиксируют слишком много изменений за раз. Тут уж немудрено надобавлять лишнего или забыть что-то нужное.</p>
15 <p>Первое обычно делают поспешные или небрежные разработчики. Например, я со счёта сбился, сколько раз видел в репозиториях файлы формата IDE. Бездумное добавление к коммиту всех файлов подряд ничем хорошим не кончится.</p>
15 <p>Первое обычно делают поспешные или небрежные разработчики. Например, я со счёта сбился, сколько раз видел в репозиториях файлы формата IDE. Бездумное добавление к коммиту всех файлов подряд ничем хорошим не кончится.</p>
16 <p>С другой стороны, есть файлы, про которые часто забывают - по незнанию или не разобравшись в их назначении. Например, файл<em>yarn.lock</em>. Разработчики не понимают, зачем он нужен, - и потому боятся добавлять в репозиторий. Или считают, что этот файл важен только в их <a>локальном окружении</a>.</p>
16 <p>С другой стороны, есть файлы, про которые часто забывают - по незнанию или не разобравшись в их назначении. Например, файл<em>yarn.lock</em>. Разработчики не понимают, зачем он нужен, - и потому боятся добавлять в репозиторий. Или считают, что этот файл важен только в их <a>локальном окружении</a>.</p>
17 <p>Чаще всего из-за пропавшего файла что-нибудь пойдёт не так, а что конкретно - зависит от файла. Например, если не хватает<em>yarn.lock</em>, вы получите разные зависимости для всех ваших окружений, что легко породит самые дурацкие ошибки.</p>
17 <p>Чаще всего из-за пропавшего файла что-нибудь пойдёт не так, а что конкретно - зависит от файла. Например, если не хватает<em>yarn.lock</em>, вы получите разные зависимости для всех ваших окружений, что легко породит самые дурацкие ошибки.</p>
18 <p>Разработчики часто исправляют баги небрежно, лишь бы побыстрее. Такой подход быстро приводит к техническому долгу. А это демотивирует не только тех, кто вынужден дорабатывать ваш код, но и всю команду.</p>
18 <p>Разработчики часто исправляют баги небрежно, лишь бы побыстрее. Такой подход быстро приводит к техническому долгу. А это демотивирует не только тех, кто вынужден дорабатывать ваш код, но и всю команду.</p>
19 <p>Безусловно, иногда допустимо кодить "грязно". Когда главное - быстро получить результат. Например, если код нужен ненадолго или вовсе на раз. Но если кодом, который держится на костылях, будут пользоваться постоянно - это вам ещё аукнется.</p>
19 <p>Безусловно, иногда допустимо кодить "грязно". Когда главное - быстро получить результат. Например, если код нужен ненадолго или вовсе на раз. Но если кодом, который держится на костылях, будут пользоваться постоянно - это вам ещё аукнется.</p>
20 <p>Этим часто грешат новички - очень уж им охота впечатлить коллег. Но поверьте, писать навороченный код для задачи, которая того не стоит, бессмысленно. Так вы тратите время на то, чего не требовалось.</p>
20 <p>Этим часто грешат новички - очень уж им охота впечатлить коллег. Но поверьте, писать навороченный код для задачи, которая того не стоит, бессмысленно. Так вы тратите время на то, чего не требовалось.</p>
21 <p>А вам надо быстрее выдавать адекватный код, который верно решает поставленную задачу. Это значит - оптимальный для её условий, требований к кодингу в команде, понятный коллегам и так далее, а вовсе не лучший из всех возможных (например, по своим техническим характеристикам).</p>
21 <p>А вам надо быстрее выдавать адекватный код, который верно решает поставленную задачу. Это значит - оптимальный для её условий, требований к кодингу в команде, понятный коллегам и так далее, а вовсе не лучший из всех возможных (например, по своим техническим характеристикам).</p>
22 <p>Так у вас останется время на действительно полезную работу.</p>
22 <p>Так у вас останется время на действительно полезную работу.</p>
23 <p>Каждый разработчик хоть раз в жизни писал совсем короткий код - буквально пару строк. Казалось, тут просто нечему ломаться. И верно: здесь не ломалось - ломалось где-то ещё, но виноваты были как раз те две строчки.</p>
23 <p>Каждый разработчик хоть раз в жизни писал совсем короткий код - буквально пару строк. Казалось, тут просто нечему ломаться. И верно: здесь не ломалось - ломалось где-то ещё, но виноваты были как раз те две строчки.</p>
24 <p>При этом большинство разработчиков ненавидят проверять свой код. Не видят в этом смысла, считают пустой тратой времени. Они уверены, что код заработает идеально. Почему - вопрос без ответа.</p>
24 <p>При этом большинство разработчиков ненавидят проверять свой код. Не видят в этом смысла, считают пустой тратой времени. Они уверены, что код заработает идеально. Почему - вопрос без ответа.</p>
25 <p>Не делайте так. Подкрепляйте веру в свой профессионализм результатами тщательного тестирования. Оно поможет устранить критические ошибки и подтвердит, что ваш код работает именно так, как задумано.</p>
25 <p>Не делайте так. Подкрепляйте веру в свой профессионализм результатами тщательного тестирования. Оно поможет устранить критические ошибки и подтвердит, что ваш код работает именно так, как задумано.</p>
26 <p>В наследовании как таковом нет ничего плохого. Но я замечаю, что разработчики слишком уж им увлекаются. Это частая ошибка.</p>
26 <p>В наследовании как таковом нет ничего плохого. Но я замечаю, что разработчики слишком уж им увлекаются. Это частая ошибка.</p>
27 <p>Злоупотребляя наследованием, легко угодить в капкан переинжиниринга. В результате ваш код окажется настолько универсальным, что вы забудете про главную задачу, ради которой он создан и которую должен решать лучше всего. Использовать его будет одинаково неудобно для всех целей, а потому и неразумно.</p>
27 <p>Злоупотребляя наследованием, легко угодить в капкан переинжиниринга. В результате ваш код окажется настолько универсальным, что вы забудете про главную задачу, ради которой он создан и которую должен решать лучше всего. Использовать его будет одинаково неудобно для всех целей, а потому и неразумно.</p>
28 <p>Так что помните: наследование - всё же не палочка-выручалочка, а палка о двух концах.</p>
28 <p>Так что помните: наследование - всё же не палочка-выручалочка, а палка о двух концах.</p>
29 <p>Многие проекты применяют тот или иной фреймворк - это здорово упрощает жизнь разработчикам. Однако не все в команде знают, что фреймворк умеет.</p>
29 <p>Многие проекты применяют тот или иной фреймворк - это здорово упрощает жизнь разработчикам. Однако не все в команде знают, что фреймворк умеет.</p>
30 <p>И это проблема. Потому что такие разработчики продолжают изобретать методы и инструменты, аналоги которых во фреймворке уже есть. То есть не только тратят время впустую, но и не пользуются потенциалом фреймворка - усложняют повторное использование кода.</p>
30 <p>И это проблема. Потому что такие разработчики продолжают изобретать методы и инструменты, аналоги которых во фреймворке уже есть. То есть не только тратят время впустую, но и не пользуются потенциалом фреймворка - усложняют повторное использование кода.</p>
31 <p>Чтобы не делать двойную и тройную работу, изучайте фреймворки тщательнее.</p>
31 <p>Чтобы не делать двойную и тройную работу, изучайте фреймворки тщательнее.</p>
32 <p>Не учиться чему-то новому - самая досадная ошибка разработчика.</p>
32 <p>Не учиться чему-то новому - самая досадная ошибка разработчика.</p>
33 <p>Да, не всегда получается учиться на работе - приходится тратить и личное время. Но это необходимо, чтобы оставаться востребованным, это инвестиции в себя.</p>
33 <p>Да, не всегда получается учиться на работе - приходится тратить и личное время. Но это необходимо, чтобы оставаться востребованным, это инвестиции в себя.</p>
34 <p>Ключ к совершенству - в практике, это знают все. Без неё не получить полезные навыки, не освоить другие языки программирования, новые технологии и так далее.</p>
34 <p>Ключ к совершенству - в практике, это знают все. Без неё не получить полезные навыки, не освоить другие языки программирования, новые технологии и так далее.</p>
35 <p>Как попрактиковаться? Вот вам<a>идеи</a>pet-проектов, которые вы можете воплотить.</p>
35 <p>Как попрактиковаться? Вот вам<a>идеи</a>pet-проектов, которые вы можете воплотить.</p>
36 <p>"Это задача в один стори поинт. Я быстро с ней управлюсь", - думали вы.</p>
36 <p>"Это задача в один стори поинт. Я быстро с ней управлюсь", - думали вы.</p>
37 <p>А всё оказалось иначе. Решение в лоб заработало не так, как ожидали. Пробуете альтернативное - на него уходит гораздо больше времени.</p>
37 <p>А всё оказалось иначе. Решение в лоб заработало не так, как ожидали. Пробуете альтернативное - на него уходит гораздо больше времени.</p>
38 <p>Недооценивать объём работы - ошибка частая, особенно в командах с гибким управлением проектами (типа<a>Scrum</a>).</p>
38 <p>Недооценивать объём работы - ошибка частая, особенно в командах с гибким управлением проектами (типа<a>Scrum</a>).</p>
39 <p>Так что, если вы тимлид, закладывайте время не только на разработку продукта, но и на дополнительные этапы вроде тестирования.</p>
39 <p>Так что, если вы тимлид, закладывайте время не только на разработку продукта, но и на дополнительные этапы вроде тестирования.</p>
40 <p>Уверенность в себе - это здорово, когда она не мешает вам слышать чужие мнения.</p>
40 <p>Уверенность в себе - это здорово, когда она не мешает вам слышать чужие мнения.</p>
41 <p>Самоуверенные разработчики порой забывают, что тоже совершают ошибки. И чаще начинают принимать решения единолично, не консультируясь ни с кем. Однажды это непременно выйдет им боком: либо качество решений упадёт, либо коллеги начнут чувствовать себя ненужными.</p>
41 <p>Самоуверенные разработчики порой забывают, что тоже совершают ошибки. И чаще начинают принимать решения единолично, не консультируясь ни с кем. Однажды это непременно выйдет им боком: либо качество решений упадёт, либо коллеги начнут чувствовать себя ненужными.</p>
42 <p>Разработчик не может разбираться сразу во всём и делать всё одинаково хорошо. Стоит это осознать.</p>
42 <p>Разработчик не может разбираться сразу во всём и делать всё одинаково хорошо. Стоит это осознать.</p>
43 <p>Подумайте над этими ошибками, извлеките урок из каждой. Позвольте себе ошибаться, но не забывайте на этом учиться. И помните расхожую мудрость: не ошибается лишь тот, кто ничего не делает.</p>
43 <p>Подумайте над этими ошибками, извлеките урок из каждой. Позвольте себе ошибаться, но не забывайте на этом учиться. И помните расхожую мудрость: не ошибается лишь тот, кто ничего не делает.</p>
44 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
44 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>