Будучи довольно близким коллегой автора статьи, регулярно сталкиваюсь с ощутимыми пробелами во всем, что не связано с алгоритмами из интервью. Так что надеюсь общественное порицание наберет достаточную силу, чтобы даже автор статьи всерьез обратил на него внимание.
возможно даже наоборот. Суть возмущения комментаторов в том, что они знают (как писать переиспользуемый понятный код без багов) и пытаются сказать людям, которые не знают, что на работу надо брать с этими знаниями.
Давайте попробуем поиграть в синьоров, пришедших в Яндекс, осваивающихся с кодобазой. Думаю, у меня будет слабая попытка, но отказать себе не могу.
… Давайте посмотрим несколько случайный мест в нашем гитхабе.
unigramHash = wordHash;
Странные названия, не находите? «uni-gram» это же дословный перевод «one-word». Зачем тут завелся синоним? И какой смысл в переменной unigramHash? Нет, давайте пока оставим только wordHash, lastWordHash и twoWordHash, остальное уберем. А репозиторий проверим на этот анти-паттерн.
ContainsStopHash(...stopHashes)
Подождите-ка, эта штука работает для всех хешей, а не только stop. Давайте убирать это уточнение. Убрали? Отлично, теперь эту функцию можно вынести в общую библиотеку и покрыть тестами.
Семплинг не вынесен в отдельную функцию. Похоже, что на него и тестов нет. Давайте поправим это.
А что с фронтом? Так… Код на пол-страницы, обрабатывающий урлы типа /action?param=¶m=1;2;3¶m=8? Вы серьезно? Во-первых надо срочно разобраться, как вообще такой url мог появиться? Там где он появился может понадобиться не одно ревью и разгребание велосипедов. Во-вторых, кто ревьюит ваш фронтовый код? Как такой велосипедо-обработчик вообще выжил? Давайте разместим вакансию синьор-фронтенда, нам нужны регулярные ревью.
Теперь к аналитике. Хорошо, что она на питоне, это удешевляет разработку.
result = bl.GetMainResult()
Автор наверное писал на С++ или JS, ну да ладно, читаем дальше.
if result.IsA('TWebResult'):
…
Какой странный фреймворк. Надо не забыть провести его ревью подробнее.
Да, похоже на маленький работающий код, какой аналитики пишут десятками в день.
Даже в этом достаточно простом случае от аналитика потребовалось уверенно владеть ассоциативными массивами, а также учесть некоторые особенности наших данных — в частности, проверить, что каждый элемент имеет правильный тип.
Вы уверены что ты это так называется? Надо пересмотреть код нашей аналитики. Похоже что предыдущим дифирамбам в адрес наших аналитиков стоило доверять чуть меньше.
Похоже, здесь не задерживались люди с опытом разработки больших длительных проектов, надо узнать причины этого…
Настоящие синьоры, пожалуйста, закидайте помидорами за напрасные претензии.
… Давайте посмотрим несколько случайный мест в нашем гитхабе.
Странные названия, не находите? «uni-gram» это же дословный перевод «one-word». Зачем тут завелся синоним? И какой смысл в переменной unigramHash? Нет, давайте пока оставим только wordHash, lastWordHash и twoWordHash, остальное уберем. А репозиторий проверим на этот анти-паттерн.
Подождите-ка, эта штука работает для всех хешей, а не только stop. Давайте убирать это уточнение. Убрали? Отлично, теперь эту функцию можно вынести в общую библиотеку и покрыть тестами.
Давайте посмотрим другой код, да, вот этот:
Семплинг не вынесен в отдельную функцию. Похоже, что на него и тестов нет. Давайте поправим это.
А что с фронтом? Так… Код на пол-страницы, обрабатывающий урлы типа /action?param=¶m=1;2;3¶m=8? Вы серьезно? Во-первых надо срочно разобраться, как вообще такой url мог появиться? Там где он появился может понадобиться не одно ревью и разгребание велосипедов. Во-вторых, кто ревьюит ваш фронтовый код? Как такой велосипедо-обработчик вообще выжил? Давайте разместим вакансию синьор-фронтенда, нам нужны регулярные ревью.
Теперь к аналитике. Хорошо, что она на питоне, это удешевляет разработку.
Автор наверное писал на С++ или JS, ну да ладно, читаем дальше.
…
Какой странный фреймворк. Надо не забыть провести его ревью подробнее.
Да, похоже на маленький работающий код, какой аналитики пишут десятками в день.
Вы уверены что ты это так называется? Надо пересмотреть код нашей аналитики. Похоже что предыдущим дифирамбам в адрес наших аналитиков стоило доверять чуть меньше.
Похоже, здесь не задерживались люди с опытом разработки больших длительных проектов, надо узнать причины этого…
Настоящие синьоры, пожалуйста, закидайте помидорами за напрасные претензии.