Pull to refresh
1
0
Send message
Будучи довольно близким коллегой автора статьи, регулярно сталкиваюсь с ощутимыми пробелами во всем, что не связано с алгоритмами из интервью. Так что надеюсь общественное порицание наберет достаточную силу, чтобы даже автор статьи всерьез обратил на него внимание.
возможно даже наоборот. Суть возмущения комментаторов в том, что они знают (как писать переиспользуемый понятный код без багов) и пытаются сказать людям, которые не знают, что на работу надо брать с этими знаниями.
Чем больше автор поста открыт к сомнениям и дискуссии, тем меньше желчи
Давайте попробуем поиграть в синьоров, пришедших в Яндекс, осваивающихся с кодобазой. Думаю, у меня будет слабая попытка, но отказать себе не могу.

… Давайте посмотрим несколько случайный мест в нашем гитхабе.

unigramHash = wordHash;

Странные названия, не находите? «uni-gram» это же дословный перевод «one-word». Зачем тут завелся синоним? И какой смысл в переменной unigramHash? Нет, давайте пока оставим только wordHash, lastWordHash и twoWordHash, остальное уберем. А репозиторий проверим на этот анти-паттерн.

ContainsStopHash(...stopHashes)

Подождите-ка, эта штука работает для всех хешей, а не только stop. Давайте убирать это уточнение. Убрали? Отлично, теперь эту функцию можно вынести в общую библиотеку и покрыть тестами.

Давайте посмотрим другой код, да, вот этот:
void Do(TMRReader* input, TMRWriter* output) override {...
Семплинг не вынесен в отдельную функцию. Похоже, что на него и тестов нет. Давайте поправим это.

А что с фронтом? Так… Код на пол-страницы, обрабатывающий урлы типа /action?param=&param=1;2;3&param=8? Вы серьезно? Во-первых надо срочно разобраться, как вообще такой url мог появиться? Там где он появился может понадобиться не одно ревью и разгребание велосипедов. Во-вторых, кто ревьюит ваш фронтовый код? Как такой велосипедо-обработчик вообще выжил? Давайте разместим вакансию синьор-фронтенда, нам нужны регулярные ревью.

Теперь к аналитике. Хорошо, что она на питоне, это удешевляет разработку.
result = bl.GetMainResult()
Автор наверное писал на С++ или JS, ну да ладно, читаем дальше.
if result.IsA('TWebResult'):

Какой странный фреймворк. Надо не забыть провести его ревью подробнее.
Да, похоже на маленький работающий код, какой аналитики пишут десятками в день.

Даже в этом достаточно простом случае от аналитика потребовалось уверенно владеть ассоциативными массивами, а также учесть некоторые особенности наших данных — в частности, проверить, что каждый элемент имеет правильный тип.


Вы уверены что ты это так называется? Надо пересмотреть код нашей аналитики. Похоже что предыдущим дифирамбам в адрес наших аналитиков стоило доверять чуть меньше.

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

Настоящие синьоры, пожалуйста, закидайте помидорами за напрасные претензии.

Information

Rating
Does not participate
Registered
Activity