Anton Yarkov @optiklab
Software developer, Team lead, Engineering manager
Information
- Rating
- Does not participate
- Location
- Таганрог, Ростовская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Backend Developer, Fullstack Developer
Lead
C#
.NET
ASP.Net
.NET Core
SQL
MongoDB
Microsoft SQL Server
AWS
C++
Docker
Вспоминается, что именно у Toyota несколько лет назад было множество исков по поводу качества лапше-кода и даже смертельные исходы (https://www.edn.com/toyotas-killer-firmware-bad-design-and-its-consequences/, https://devm.io/programming/the-dangers-of-spaghetti-code-117807).
То ли это такая дикая экономия из-за кризисов и пандемий, то ли кто-то не делает выводов в ИТ-инфраструктуре...
К вопросу зачем все это: пример просчета боя самолетов сухой и американской F-серии https://www.linkedin.com/posts/allangrosvenor_digitaltransformation-artificialintelligence-activity-7031388428608946178-EcU2
Кстати, поделитесь ссылкой на публикации "Робокросса", интересно :)
На странице с полным списком команд можно перейти на страницу каждой из них и внизу найти Whitepaper, где описана история команды (её достижения или прошлые разработки), организация команд и решение которое они планируют испытать или опробовать. У некоторых есть аккаунты с кодом на GitHub, у некоторых аккаунты в Instragram, LinkedIn и проч. В общем, если поискать, то кое что можно "нарыть".
Удачных раскопок в обфусцированном коде клиентского приложения... Выводы статьи слишком прямолинейные, есть подозрение на заказ.
Но представленный пример выглядит как попытка «обыграть» программу, которая лишь пытается помочь. Это один из инструментов автоматически (и быстро) показывающий потенциальные проблемы. Никто не отменял код ревью, на котором ревьювер тыкнет носом в «накрученную» логику.
Важно не забывать в чем цель. Если цель не в качественном отражении логики в коде, а в том чтобы не получить штрафов, то как по мне это довольно странно.
Хорошее саммари.
Мне понравилось как в книге "Чистая архитектура" у Роберта Мартина ещё детально описано почему именно так:
Зависимости всегда направлены в сторону большей устойчивости. Компоненты, с трудом поддающиеся изменениям не должны зависеть от любых изменчивых компонент. Нестабильный всегда зависит от стабильного, но не наоборот. При этом, устойчивость компонента пропорциональна его абстрактности. Неустойчивый компонент всегда должен быть конкретным. Устойчивый - абстрактным. В итоге, зависимости будут идти в сторону абстрактности (имеется ввиду направление зависимости, а не направление контроля, само собой).
Бесплатные клиенты под Windows и MacOS, все мобильники, а также веб ( то бишь Linux, тоже не вопрос). Хранию и форматированный тект, и картинки, и ссылки, и просто дофига всего с раскладкой по разделам и древовидной структурой.
Формат, конечно, не открытый, но бэкапить свои заметки никто не запрещает, багов особо найдено не было (а потому текущей версией можно пользоваться, не ожидая подвоха от микрософтовцев).
Таким образом, при нечетном количестве байт в потоке, возможен BufferOverflow. Я на всякий случай добавил доп. проверку.