День 2802. #Карьера #Юмор
Секреты Программирования, Известные Только Легендам
Ещё один пост из серии программистских советов, на этот раз менее серьёзный.
Написание кода сегодня обходится дёшево: существует множество инструментов, готовых сделать это за вас. Выдающихся разработчиков отличает умение принимать верные решения. А это умение опирается на привычки, о которых обычно не пишут в учебниках. Большинство таких привычек рождается из ошибок, стоивших кому-то испорченной недели работы. Вы усваиваете их, выпуская код с багами или наблюдая, как старший коллега за минуту исправляет то, на что у вас ушёл целый день.
1. Лучший код — тот, который вы удаляете
Пишите меньше кода, чем, как вам кажется, необходимо. Каждая добавленная строка становится вашей «собственностью» навсегда. Она может сломаться, для неё нужен тест, и когда-нибудь её будет читать другой человек. Чем больше кода, тем больше мест, где могут прятаться баги. Меньше кода — меньше затрат на поддержку и объяснения. Лучший пулл-реквест – тот, в котором удаляется больше строк, чем добавляется.
2. Если что-то сломалось, сначала ищите причину в своём коде
Прежде чем винить чужой код, проверьте то, что написали сами. И чем свежее изменение, тем вероятнее, что ошибка именно в нём. Так вы быстрее найдёте баг и будете выглядеть более компетентным специалистом.
3. Тест, который никогда не падает, ничего не проверяет
Зеленые тесты создают ложное чувство безопасности. И на этом часто обжигаются. Успешный тест бесполезен, если он не падает при поломке кода.
Поэтому намеренно ломайте код, убедитесь, что тест стал красным, а затем исправляйте ошибку.
4. Пишите код для бедолаги, который будет его читать
Компьютер выполнит любой код, а вот человеку придётся в нем разбираться. И этим человеком возможно будете вы. Вы в будущем — когда уже забудете, как всё это работает. Вы будете читать этот код гораздо чаще, чем писать. Так что облегчите себе жизнь. Хитроумный код приятно писать, но мучительно читать. Всегда выбирайте ясность.
5. Нет ничего более постоянного, чем временное решение
Быстрое «грязное» решение, которое вы собираетесь внедрить, переживёт вас в этой компании. Никто не вернётся туда, чтобы привести его в порядок. Следующий разработчик просто построит поверх него новую логику. Как только другой код начинает зависеть от вашего «костыля», его рефакторинг превращается в отдельный проект. Поэтому пишите временное решение так, словно оно должно прослужить 10 лет, — потому что так оно и будет.
6. Оцените срок выполнения… и удвойте его
Если у вас мало опыта в оценке сроков, какую бы оценку вы ни собирались дать — умножайте её на два. Вы представляете себе идеальный сценарий, но работа — это всё, что происходит вокруг него. Тестирование, обработка граничных случаев, ревью, совещания, сбои на демо. Что-то всегда идёт не так. «Первые 90% кода занимают первые 90% времени разработки. Оставшиеся 10% кода занимают вторые 90% времени».
7. Просите о помощи через час, а не через день
Застряли и не продвигаетесь уже час? Спрашивайте. Попытки справиться в одиночку после этого момента тешат лишь ваше самолюбие — и больше ничего.
Старший разработчик в вашей команде наверняка уже сталкивался с такой ошибкой. Один вопрос сэкономит вам часы. Умение вовремя попросить о помощи — это навык. Это признак рассудительности, а не слабости.
8. Если работает — не трогайте
Видите ту уродливую функцию, которую все обходят стороной? Оставьте её в покое. Она выглядит неправильно, потому что выдержала проверку всеми теми граничными случаями, с которыми вы ещё не сталкивались. Каждая странная ветка кода там — это исправленная кем-то ошибка. Этот хаос — живая история проекта. Если всё же приходится вносить правки, меняйте что-то одно и небольшое, тестируйте и наблюдайте за работой прода.
9. Никогда не делайте релиз в пятницу
Никогда не выкатывайте рискованные изменения прямо перед тем, как уйти с работы. Пятница — это классическая ловушка. То же самое касается периодов перед праздниками, длинными выходными или отпуском. Развёртывание требует присмотра. Ошибки проявляются через минуты после запуска, а не через дни. Если просто выкатить обновление и уйти, разгребать проблемы придётся тому, кто остался дежурить. А часто не остаётся никого. Выпускайте обновления в начале дня и в начале недели, пока есть кому помочь.
Итого
Этому не учат на курсах. Такой опыт приобретается ценой собственных ошибок и «шрамов». Или же его можно перенять у того, кто уже заплатил за него высокую цену.
Источник: https://medium.com/javarevisited/9-hidden-coding-secrets-only-great-developers-know-c0ffd93c0b63
Post #3358
383
- 👍 9