Тестовое задание: 10 советов, которые сделают решение лучше

Рассказываем о чем следует помнить начинающим (и не очень) разработчикам выполняя тестовое задание при устройстве на работу.

Делайте решения универсальными

Часто решения пишутся строго под задачу, да еще и так, как ее понял разработчик. Это касается, например входных данных. Предположим, вы решили, что у загружаемого/обрабатываемого файла всегда есть расширение и оно всегда состоит из трех символов. Такой формат входных данных может быть логичным для тестового задания, но в работе он будет не слишком полезен, хотя бы потому, что его будет трудно повторно использовать в другой похожей задаче.

К тому же, часто, написание универсального решения не занимает больше времени, чем решение для частного случая и смотрится оно всегда более уместно.

Меньше – не значит хуже

Иногда разработчик уже в тестовом задании хочет показать насколько хорошо он разбирается в своей области и для простого задания начинает громоздить гору объектов и классов (для задания на ООП языке), тогда как более короткое решение в процедурном стиле оказалось бы куда более приемлемым. Не забывайте, краткость – сестра таланта.

Избегайте магических чисел

Как и другие неочевидные места в коде, магические числа – потенциальный источник ошибок. А для проверяющего ваше решение это еще и помеха при чтении кода. Так что, даже если вы используете всего одну-единственную константу, не поленитесь записать ее в переменную.

Не оптимизируйте раньше времени

Если вам кажется, что ваш код недостаточно лаконичен, красив и что он может работать быстрее – скорее всего вам лучше оставить все как есть. Если задача оптимизации решения явно не прописана в задании, вам лучше позаботиться в первую очередь о тех, кто будет читать ваш код. А простые конструкции и отсутствие излишних абстракций в этом случае только сыграют в вашу пользу.

Высокоуровневые инструменты – это хорошо

Здесь речь идет даже не о каких-то низкоуровневых системных API, а просто о своеместном использовании библиотек. Если вас мучает совесть за то, что вы и так пишете не на ассамблере и вам хочется показать работодателю, что вы отлично знакомы с, например, WinAPI, лучше воспользуйтесь сторонней библиотекой, а то и встроенными средствами языка.

Продумывайте имена переменных и функций

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

Давайте именам осмысленные значения – вряд ли проверяющий с ностальгией улыбнется, увидев нечто, вроде mystring.

Организуйте логирование правильно

Если вы пишите функцию, которая кроме основной работы еще и сама обрабатывает ошибки и пишет в лог, подумайте как этого можно избежать. Лучше выносить обработку ошибок на уровень выше и не засорять функции лишним кодом.

Соблюдайте единый стиль

Компания не всегда может указать какие-то требования к стилю кода на этапе тестового задания, но это совершенно не значит, что единой стилистики быть не должно. Просто, она остается на усмотрение автора решения и должна быть одинакова во всех частях решения.

Не забывайте о RAII

Если язык, на котором вы пишите код поддерживает автоматическое освобождение ресурсов, нужно этим пользоваться. К примеру, если рабочий язык C++, вместо new и delete лучше использовать умные указатели, а вместо fopen и fclose — std::fstream.

Не изобретайте велосипед

Первым в глаза проверяющему бросится именно это – игнорирование (сознательное или по незнанию) решений, которые уже существуют и которые можно было использовать повторно. Частично этот пункт и про использование библиотек в проекте – если в задании есть что-то, что можно более элегантно решить с помощью готового кода – далайте это. Вы не только сэкономите время проверяющему, но и продемонстрируете знание инструментов.

Другие статьи по теме

Каверзные вопросы и задачи по JavaScript из собеседований

Как научиться решать алгоритмические задачи?

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
PHP Developer
от 200000 RUB до 270000 RUB
Golang разработчик (middle)
от 230000 RUB до 300000 RUB
Продуктовый аналитик
Екатеринбург, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ