Артем Гартунг, я давно в стеке LAMP ничего не делал. Но мне кажется что такие типичные
настройки как троттлинг запросов и фильтрация пользовательского клиента уже должны
были стать частью стека.
Тоесть грубо говоря - дефолтное приложение должно быть защищено из коробки от типичных школьников.
Платные решения типа Cloudflare идут отдельной категорией. Их тут обсуждать не интересно. Речь
как раз о том что можно сделать в самом простом кейсе.
Вот тут в каждом слове последний символ заменен не какую-то чепуху. Если-б это была проблема только
кодировок то тогда в слове обновление все буквые е выглядели-бы по другому.
pfg21, JVM - этож не регистровая а стековая машина. Это как-бы уровень абстракции
над ассемблером. И если вы ее будете реализовывать вам все равно нужно прокладывать
прокладку между семантикой стека и регистрами. А современные процессоры - более
тяготеют к регистрам. Просто в силу архитектуры Фон-неймана.
Возможно это реализовано Форте надо посмотреть. Но я ни разу не видел и не знаю как
работают Форт-компилляторы.
denisland, молодец. И постарайся так часто не использовать слово костыль... Когда
джуны "вворачивают" слово костыль, это.... выглядит как будто твоя бабушка и дедушка
начинают говорить словечками типа ROFL, при тебе. А тебя - передергивает...
yraiv, мне кажется что тебе просто рано этим заниматься. Знаешь это как в науке. Если сильно-сильно непонятно - то надо идти в школу. Университет. И потом в высокую науку.
U235U235, ну да. Ее можно строить просто для того чтобы не работать со всеми 800
точками а взять хотя-бы 100 которые реально влияют на Bounding Box. Внутренние точки - в игнор.
И для большого числа точек я-бы брал генетический алгоритм. Где хромосома - это вектор
типа { α, β, γ } с эйлеровмы углами ну фитнес - это объем параллелепипеда.
isgenderli, помнишь какой диалог просиходил между Алисой и Чеширским котом?
-Это зависит, главным образом от того, куда ты хочешь попасть,-сказал Кот. - Мне не так уж важно, куда - начала Алиса. - Тогда неважно, какой дорогой идти,- сказал Кот.
Владимир Красносельских, ну я-бы предложил создать отдельный проект или модуль. Типа BusinesEntities. И в нем
описать все структуры в виде некого описательного языка. И включить его как главную
зависимость во все 5 сервисов. Пускай они его процессят и генерируют GraphQL или Pojo,
или DTO или любые другие сущности на основании главного модуля. Причем коммит
в этот проект должен вызывать некий алерт или уведомление для всех заинтересованных лиц.
С другой стоорны сама идея о том что вы хотите удалять 10 полей не выдерживает никакой
критики. И здесь бизнес должен понимать не только свои идеи но и стоимость их реализации
и поддержки. Вот BigData например не запрещает вносить изменения в схемы таблиц но
вводит понятие Schema Evolution. Это скорее принцип по которому мы не запрещаем
внесение изменений в схему но лишь рекомендуем чтоб была совместимость в обратную сторону.
Например хотите добавить +2 поля в историческую таблицу (в ней уже несколько петабайт строк
и самые старые датируются 20 летним сроком). Пожалуйста. Добавляйте. Дефолтные значения для
старых периодов при этом заполнятся NULL. Хотите увеличить разрядную
сетку INT -> LONG - да это можно. Ничего не нарушает с точки зрения истории. Хотите расширить семантику
типа данных (был NUM а стал STRING) - да это тоже можно. Алгоритмы такое поддержкат и ничего
деструктивного здесь не будет. Просто новые partitions будут более широко трактовать тип поля.
А вот удалять поле - нельзя. И сужать семантику типа тоже нельзя. Если был STRING то его уже нельзя
превратить в INT. История такого изменения не потерпит.
Вот и благодаря таким принципам историческая таблица одинаково читаема на всей истории существования. Я конешно не предлагаю вашему бизнесу следовать Schema Evolution но просто
обсудите такие вот удаления 10 полей. Кстати формат сетевого обмена AVRO тоже поддерживает
эволюцию схем. И это позволяет стримы с Kafka сообщениями обрабатывать без сбоев от эволюции
месседжа.
"отсутствуют архитектурные и структурные решения для бизнес логики"
Да. Подобного рода отписка - это издевательство. Беря во внимание что никто не в состоянии
формализовать архитектуру и структуру. По крайней мере я не встречал нигде чек-лист
чтоб это можно было как-то проверить.
Видимо вы им просто не нужны. И я-бы не стал сильно переживать по этому поводу.
И как всегда можно подтвердить еще раз мой тезис о том что тестовые задания никто никогда не смотрит.
Потому что если-бы смотрели - то был-бы выдан список code-review points с пожеланиями.
std::cout << person.Age._value << std::endl;