Pull to refresh
90
0
Сергей Аксёнов @SergeAx

Создатель и руководитель инженерных команд

Send message

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

Во-первых это действительно большое изменение, особенно на фоне того, чем в итоге обошлись мы. Во-вторых, и это важнее, бинарный протокол сложно отлаживать. Если это Protobuf — нужно централизованно хранить proto-файлы и подкладывать их прокси-серверу, через который идёт дебаг клиента. А сжатие потом поверх всё равно пришлось бы делать, поскольку выигрыш Protobuf vs JSON в дикой природе составляет всего 10%-30%.

Для сути рассказа это на самом деле роли не играет, важны относительные изменения при раскатке на 100% пользователей. Я взял метрику с двух наших граничных роутеров, слил в одну серию данных и просуммировал по суткам, вот и всё. Кажется комментарий ниже правильный, это весь трафик за 24 часа.

Свою последнюю позицию инженера-разработчика я получил, блестяще сделав тестовое задание. Оно было несложным, а я люблю писать код, поэтому вложил в него весь свой опыт: сделал в виде модуля, отформатировал и откомментировал код, покрыл тестами, написал документацию. Получил оффер через два часа, и первое, что услышал от новых коллег: "чувак, классное тестовое задание", то есть ещё и заработал небольшой стартовый авторитет.


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


К сожалению, хорошее CV и толковый разговор о технологиях говорят только о навыках составления CV и умении разговаривать.

ThingJS отличает от других платформ архитектура, позволяющая создавать устройства от любительского до профессионального уровня.

Извините, но это как минимум тавтология, а как максимум — передёргивание. Платформы от Microsoft, IBM, Amazon, Oracle, Google, Cisco конечно же позволяют работать с собой и профессионалам, и любителям. В чём вообще, по вашему, отличия профессиональных устройств от любительских? Что одни включают-выключают освещение в аквариуме, а другие — ядерные реакторы? Какие особенности платформы могут позволить функционировать одним и не позволить — другим?

Вы эмоционально пишете, что статью для набора кармы писали 4 часа, а основную — 3 недели, при этом выхлопа от первой получили намного больше, чем от второй. И из этого делаете вывод, что пользователям Хабра интересны только котики и мемы, а серьёзные тексты — неинтересны.


Я вам отвечаю, что пользователям Хабра интересны интересные тексты и неинтересны неинтересные) Про IoT-платформу — отдельным тредом.

Кстати, вы немного кривите душой, когда говорите, что статью для набора кармы написали за 4 часа. На самом деле вы потратили два года жизни, занимаясь аквариумными кораллами, освещением и контроллерами для них, чтобы потом за 4 часа написать эту статью. Вы наверняка не сможете написать 10 таких статей за 40 часов и точно не сможете написать 100 за 400 часов, хобби не хватит)


Она, кстати, и правда интересная. А статья про IoT-платформу — правда неинтересная, потому что не отвечает ни на один вопрос, который возникает у человека, занимавшегося IoT: что это такое? зачем это надо? почему надо использовать это вместо уже существующих 14 отраслевых стандартов?

Я прочитал исходную статью, на которую написан этот дисс. Она отличная: список вопросов просто прекрасный, объяснения рядом с ними достаточно хороши, чтобы включить процессы в голове и помочь найти ответы. Как известно, ответ, просто выданный вместе с вопросом, забывается через несколько дней. Найденный самостоятельно ответ запоминается надолго.


Автор исходной статьи, очевидно, хороший эксперт в своей теме, и нормальная реакция на тексты такого уровня должна быть "ЧУВАК, СПАСИБО за то, что потратил своё время и силы, придумал как сконденсировать и подать свои обширные знания, написал всё это, отформатировал и выложил". Если кто-то реагирует в духе "как ты смел оценивать МЕНЯ" — эти кто-то просто напыщенные дилетанты с раздутым ЧСВ.


Теперь по поводу этой статьи. Роман, прошу вас сверить свой словарь. "Хайп" — это когда в анонимных телеграм-каналах появились фотографии трусов Бузовой, а кто-то на этой информационной волне выкладывает фотографию своих трусов с рекламой вебинара "Как копаться в грязом белье". А когда эксперт пишет интересную и полезную статью на важную тему, а в конце даёт ссылку на ближайшую конференцию, где будет выступать — это точно называется как-то по-другому.

"-а" означает добавить все изменённые файлы в коммит. Работает только с теми файлами, которые уже есть в репо, и не работает с вновь созданными.

А что с ним? Я не знал про такой синтаксис, и, честно говоря, сходу не разобрался.

Мне этот абзац сначала понравился, а потом я вспомнил про нарциссические расстройства личности) Вот она, сила неправильных аналогий!


Красивая (правильнее будет сказать — облагороженная) история сама по себе ценности не имеет. А вот удобство код-ревью и сохранение важной смысловой информации для тех инженеров, кто будет читать этот код через 5 и даже 10 лет — очень даже пересчитываются в деньги и время.

Хороший лайфхак!


Что до чистоты истории, то в перспективе девятилетней кодбазы, которую мы развиваем в iFunny, чистота не так важна, как понятность. Если фича сложная, то разбить её на несколько атомарных коммитов — гуманно по отношению к инженеру, который будет смотреть в этот код через 3-4 года. Squash-коммит приведёт его к тикету на разработку фичи, а почему было сделано именно такое изменение в коде — не факт что станет ясно.

Спасибо, хорошее уточнение. А Sublime merge умеет их делать на уровне строк? Потому что например Atlassian SourceTree умеет, но на уровне hunks, т.е. таких законченных кусков изменений.

А как на Хабре заблокировать автора? Чтобы его статьи не было видно ни в анонсах, ни в рекомендуемых, ни в популярных, а главное — они не приходили в рассылке?

Автор как раз топит за то, чтобы писать тесты, которым эти комментарии не нужны) Но мы тоже так делаем, чего уж)

Мы внутри себя считаем, что Lombok — это плохо, привносит лишнюю магию и плохо отражается на читаемости. Но если вам с ним ок — то да.

Спасибо за полезный комментарий и ссылки. Мы в FunCorp дрейфуем от Java в Kotlin как на бэкенде, так и на Android, поэтому я когда кидал ссылку на оригинал во внутренний чат — сделал акцент на отдельные приёмы для Kotlin. А при переводе уже машинально поставил хаб.

Можете привести пример, когда рандомное число выявит баг, который был бы пропущен параметризованным тестом из 4-5 кейсов?

У нас тоже бэкенд на Котлине, есть вакансии Котлин-бэкендеров и есть соискатели на эти вакансии. Котлин применим чуть менее чем везде, где применима Java.

Автор оригинальной статьи считает Wordpress за фреймворк. "Да, но нет", конечно, но доля WP в мировом интернете колоссальная, вся экосистема PHP живёт с оглядкой на этого слона в посудной лавке.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity