пятница, 5 октября 2012 г.

Памятка соискателям


Хайлук!

Если ты решил выполнить тестовое задание, отнесись к нему серьезно. Оно должно работать, код должен понравиться, а ты должен получить предложение от нас.
Если ты любишь писать резюме, отнесись к ТЗ как к резюме. Если ты любишь свой кулфейс, отнесись к ТЗ как к своей фотографии.
Если ты знаешь такие слова, как TDD, OOD, GoF, KISS, SOLID, дальше можно не читать. Наплюй на тестовое задание и заказывай такси до нашего офиса.
Итак, ты выучил пхп, придумал как решить ТЗ и написал код, молодец! Не спеши его отправлять, проспись. На утро перечитай свое письмо. Распакуй архив с решением, установи новый VirtualHost, Database, прочти свою инструкцию по установке, установи решение. Используешь нестандартный архиватор и кодировку? Представь, что ТЗ проверяют на макбуке :)

Теперь проверь его!

Все мы недолюбливаем тестеров. Но еще больше мы не любим тестировать косячные решения ТЗ. Поиграй пользовательским вводом. Проверь граничные условия, пустоту, буквы, цифры, отрицательные, комплексные:) абракадабру, sql injection, html/javascript injection. Если данные типизированные, поиграйся с типом. Ожидается дата - попробуй год сотворения мира, ожидается целое число - попробуй MAX_INT, ожидается урл - ты знаешь, что не все урлы одинаково распространены?
Теперь, когда ты исправил 3 sql injection и начал валидировать менее жестко...
Посмотри на свой код, как будто он не твой, покритикуй его.
Код должен выглядеть красиво и единообразно (стильно).

Запахи кода:


  • магические константы
    • if ($id < 3600) $id = $id + 12345
  • неговорящие названия или названия, несущие бред
    • тут примеров не будет
  • глобальные константы, кроме физических/математических/стандартизованных
    • const DB_NAME = ‘vasya’
    • некоторые вещи правда могут меняться
  • глобальные переменные
    • возможность порушить программу изнутри
    • неочевидность связей
    • трудность подмены
  • глобальные функции
  • статические методы
  • синглтоны
  • большие классы/методы/файлы
  • отсутствие хотя бы даже неявного MVC или альтернативы

Запахи - это еще не гарантия плохого кода. Но не стоит этим утешаться :)

Философия, не читать

Если тебя просят не использовать framework сейчас, это не значит, что твой код никогда не станет его использовать. Или не превратится в framework.
Нарисуй картинку со своими объектами, слоями или процессами и добавь стрелочек.
Если желание что-то изменить в коде появляется сразу - поддайся ему.

До встречи, друг!

1 комментарий:

  1. Прошу считать фразу "Все мы недолюбливаем тестеров" личным мнением автора, которое может не совпадать с.

    ОтветитьУдалить