#статья дня
Чему senior-разработчики могут поучиться у начинающих: https://stackoverflow.blog/2019/12/19/what-senior-developers-can-learn-from-beginners/
А теперь подтверждение тезисов статьи от, собственно, меня.
Случилось вот что: мы в шесть глаз просмотрели глупейшую опечатку.
В очень старом коде было повторяющееся условие проверки включения элемента в массив настроек:
…и обратное к нему (=== -1).
Очевидно, было принято решение заменить его на переменную
И в этот момент и была допущена ошибка: заменив инверсное условие, мы забыли поставить оператор отрицания: “!”. И на ревью никто не заметил этого.
Почему? Потому что иногда лучше быть чётким в своих условиях, пусть даже код и выглядит странно. Очевидно, решение было плохим, но оно хотя бы было прямолинейным и чётко описывало условие. Раз три человека это пропустило, значит, и подход к рефакторингу был неверным изначально.
Не нужно писать плохой код, но что ещё хуже — во имя благих намерений пытаться исправить плохо написанный, но рабочий код.
…и ещё пишите тесты, прежде чем влезать в логику старого кода, да.
#tdd #codestyle #refactoring
Чему senior-разработчики могут поучиться у начинающих: https://stackoverflow.blog/2019/12/19/what-senior-developers-can-learn-from-beginners/
А теперь подтверждение тезисов статьи от, собственно, меня.
Случилось вот что: мы в шесть глаз просмотрели глупейшую опечатку.
В очень старом коде было повторяющееся условие проверки включения элемента в массив настроек:
settings.indexOf(“ADD_RESULTS”) !== -1
…и обратное к нему (=== -1).
Очевидно, было принято решение заменить его на переменную
shouldAddResults
и использовать везде.И в этот момент и была допущена ошибка: заменив инверсное условие, мы забыли поставить оператор отрицания: “!”. И на ревью никто не заметил этого.
Почему? Потому что иногда лучше быть чётким в своих условиях, пусть даже код и выглядит странно. Очевидно, решение было плохим, но оно хотя бы было прямолинейным и чётко описывало условие. Раз три человека это пропустило, значит, и подход к рефакторингу был неверным изначально.
Не нужно писать плохой код, но что ещё хуже — во имя благих намерений пытаться исправить плохо написанный, но рабочий код.
…и ещё пишите тесты, прежде чем влезать в логику старого кода, да.
#tdd #codestyle #refactoring
Stack Overflow Blog
What senior developers can learn from beginners
Over the last couple years, I’ve had the luxury of working with and mentoring quite a few beginners. While I’ve obviously witnessed my fair share of programming no-no’s, things are not as black and white as they may seem. There’s a handful of patterns and…
😁1