Ну и ещё одно замечание. Если, скажем, декодирование ввода-вывода — это 10% ваших затрат процессорных ресурсов, то оптимизация на 10% даёт… 1%. С ценой в новую зависимость в вашем проекте.
Просто «не доверяйте» — это общие слова. А тут приведен хороший список вполне конкретных граблей. Плюс ещё описано, что данные должны храниться в сыром виде, а необходимые трансформации должны делаться на вводе/выводе. Причём encoding должен делаться именно на выводе. Это всё совершенно правильные вещи, в которых сплошь и рядом программисты делают ошибки, которые приводят к уязвимостям разного рода.
Интересно, почему статью минусуют. Она, конечно, никакого отношения к играм не имеет, но как ликбез по хранению и вводу/выводу данных веб-приложения — вполне правильная.
Затем, что презентация данных не всегда делается через HTML. Может быть, вам надо будет текстовое письмо отправить, может в JSON завернуть, чтобы в API выдать, может в мобильное приложение передать и т.д. Данные должны храниться всегда в сыром виде.
А порядок обработки сообщений из очереди роли не играет? Сколько вокеров разгребают сообщения из очереди? Что будет, если несколько воркеров выгребут события, относящиеся к одному пользователю, и будут их одновременно молотить? Как запись синхронизируется?
Всеми руками и ногами поддерживаю автора! Зависимости — настоящий бич любого более-менее сложного проекта. Но с одной оговоркой. Когда предметная область, решаемая библиотекой, сложна сама по себе (например, реализация HTTP), то каждая новая библиотека обречена проходить по всем граничным случаям.
Я как-то раз пилил процедурную генерацию 3D-моделей и мне надо было сделать объединение многогранников. Там зубодробительная математика — ошибок элементарно было наделать кучу, решил библиотеку использовать. На выбор было несколько библиотечек — пара маленьких и один огромный пакет для вычислительной геометрии. Решил маленькую использовать — вот геморрой был. Одна так и не завелась, только время потратил. Вторая заработала. А потом началось веселье: попадается вырожденная грань — глючит, многогранники касаются — падает. В каком-то из случаев вообще напоролся на TODO в коде. Пришлось использовать монстроидальную библиотеку — зато всё заработало сразу.
Класс, с удовольствием прочитал, спасибо. Интересно, как про наше время будут лет через 50 писать. Наверное, что-то вроде: «Ещё 50 лет назад люди могли пропасть из онлайна на минуты или даже часы! Они зависели от наземной инфраструктуры и порой даже не имели возможности вызвать помощь в горах или лесу. А ещё им для жизни постоянно приходилось носить с собой множество электронных устройств, называемых гаджетами — люди обвешивались ими, как новогодние ёлки: гаджет для связи, гаджет для чтения, гаджет для открывания машины, гаджет для просмотра времени, гаджет для навигации. Их зарядка была целым ритуалом — их надо было выкладывать стройными рядами на стол и подключать к домашней сети. И делать это не раз в год, а каждый день!»
Эти контроллеры гарантируют срабатывание автоматики в жёстко реальном времени. Если ваша конфигурация слишком сложная, чтобы эту гарантию предоставить, программа просто не «скомпилируется». То же самое можно, естественно, сделать и на языке общего назначения, но это требует очень высокой квалификации программиста. Один программист наворотит какой-нибудь модный асинхронный движок, другой хитрую систему обработки прерываний, третий где-нибудь напишет неэффективный код, который может задержать критическую операцию и т.д. — вариантов выстрелить себе в ногу — миллион. А если у вас газотурбинный генератор, то сбой софта стоит очень много денег. Я уж не говорю про сбой в какой-нибудь ABS в машине — это вообще жизней стоить может.
Супер статья, подпишусь почти под всем. Единственное, не надо путать C и C++ — это совсем разные языки с похожим синтаксисом. И платы не обязательно на клеммах собирать — можно заказывать изготовление. Это чуть дороже, но во-первых не сильно, а во-вторых работать с качественной платой в разы приятнее и проще.
Не обязательно в «академическом» порядке. Можно сначала разобраться с программированием, потом с устройством процессора (и воскликнуть: «Ага! Так вот как оно работает!»), потом с физикой (" А… Вон оно как все просто, а я думал — магия...")
Я лично, понимая, как влияет карма на возможность писать на хабр, ставлю плюс авторам, которые пишут статьи, которые мне интересно читать. Минус — тем, кого не интересно. Даже если автор пишет популярные статьи про «как меня обманул сбербанк», которые не выходят из топов, мне это не интересно.
В статьях аналогично — плюс тем, которые я хочу, чтобы другие увидели (чтобы сделать хабр чуточку лучше для людей типа меня), и минус, которые наоборот, хорошо бы убрать. Согласие или несогласие с автором тут вторично. Иногда пишут весьма спорные вещи, но качественно. Иногда тема провокационная, и в комментах много интересного. Ну и т.д. Это хорошие статьи.
Чем больше людей пользуется аналогичной стратегией, тем больше хабр будет адаптироваться к мнению большинства (если оно существует).
Я как-то раз пилил процедурную генерацию 3D-моделей и мне надо было сделать объединение многогранников. Там зубодробительная математика — ошибок элементарно было наделать кучу, решил библиотеку использовать. На выбор было несколько библиотечек — пара маленьких и один огромный пакет для вычислительной геометрии. Решил маленькую использовать — вот геморрой был. Одна так и не завелась, только время потратил. Вторая заработала. А потом началось веселье: попадается вырожденная грань — глючит, многогранники касаются — падает. В каком-то из случаев вообще напоролся на TODO в коде. Пришлось использовать монстроидальную библиотеку — зато всё заработало сразу.
то желание так делать у них быстро пропадает.
В статьях аналогично — плюс тем, которые я хочу, чтобы другие увидели (чтобы сделать хабр чуточку лучше для людей типа меня), и минус, которые наоборот, хорошо бы убрать. Согласие или несогласие с автором тут вторично. Иногда пишут весьма спорные вещи, но качественно. Иногда тема провокационная, и в комментах много интересного. Ну и т.д. Это хорошие статьи.
Чем больше людей пользуется аналогичной стратегией, тем больше хабр будет адаптироваться к мнению большинства (если оно существует).