🤾♀️ Чистый код на интервью: важно или нет?
Приходишь на собеседование, тебе интевьюер говорит «пиши желательно чисто и без багов». Но тут же добавляет «главное чтобы решение работало».
И в голове кандидата могут появится две мысли:
• Главное решить задачи, чистота второстепенна
• Если что, потом вернусь и сделаю косметические исправления
Проблема в том, что потом на исправления не хватает времени, никогда не хватает. Второй момент, что чистота и читаемость кода все равно оценивается и попадает в отчет.
В данном посте поговорим про чистоту кода на алгоритмических собеседования. Ко мне приходят разные кандидаты и они совершают разные ошибки, поделюсь своим опытом.
Главные принципы
• Грязный и работающий код лучше, чем чистый и неработающий.
• Чистый и работающий лучше, чем грязный и работающий.
• Простой и читаемый лучше, чем продвинутый и масштабируемый код.
Про чистый код
Понятия хорошего кода на работе и на собеседовании могут немного отличаться.
Представьте, что ваш интервьюер это ваш личный джун. Наврядли вы захотите запутать его кодом, чтобы самоутвердиться. Скорее всего вы постараетесь показать, как можно просто и элегантно решить эту задачу.
📗Что входит в чистый код
• Отступы и пробелы
• Фигурные скобки везде раставлены одинаково, или на той же строке или на следующей
• Cyclomatic complexity - чем меньше вложенных структур, тем лучше
• Boolean Double Negation Law - если получается упростить условие, нужно упрощать
📕Что менее важно (или вообще не важно)
• Названия переменных - не стоит называть их супер подробно «counterOfConsecutiveElements», лучше одна буква или одно слово «counter»
• Бизнес логика - кидать кастомные exception, оборачивать в try-catch, логировать - у нас нет пользователей и нет продуктовых задач, поэтому не паримся
• Документировать код - для чего?
• SOLID - не стоит писать масштабируемый код. На время интервью стоит забыть про интерфейсы, наследования, абстракции. Не пишите много методов и отдельных классов. Не стоит также использовать разные design patterns.
Писать чисто сразу
Как мы поняли, после решения задачи у вас не будет времени, чтобы вернуться и все сделать по уму. Поэтому основной навык - это писать сразу понятный код, но при этом не суетиться и не пытаться удивить интервьюера своими интерпрайз навыками.
Ставь 😈, если чистый код это для нежных и избалованных инженеров, а тру-инженеры не боятся грязи.
Post #326
1.62K
- 😈 16
- ❤ 3
- 👍 3