Насколько я понял идеи Хорикова, он жестко разделяет слои доступа к базе данным и бизнес-логики. доступ к базе данных (и доступ к другим сервисам, если не путаю) необходимо реализовывать в виде "Простых объектов" - не содержащих бизнес-логики классов. Настолько простых, что там нечего тестировать. Что необходимо покрывать тестами - это расчеты, решения, бизнес-логику.
Если мы расчитываем продажи, то покрывать тестами надо классы, которые умножают количество проданного товара на цену, суммирует записи, и/или накладывает скидки и прочее по каким-то условиям. Вот этот класс, кроме как вычисляет, не должен обращаться к базе данных и прочим сервисам. Его и кроем тестами. Этот класс возвращает данные в виде простого объекта с полями и массивами чего-то. Данные возвращаются в "простой класс", который один к одному сохраняет данные в базу. Вот этот простой объект мы уже НЕ КРОЕМ тестами. Там нечего тестировать и нет смысла покрывать тестами.
Вот основная мысль Хорикова - мы разделяем класс на два класса - класс бизнес-логики, который кроем, и простой класс, сохраняющий в базу - который не кроем.
А вы кроете свои сложные классы (я знаю, что это такое, когда по ходу расчетов наш класс обращается к базе) тестами, прикручиваете прорву моков, которые на запросы к базе возвращают кучу данных и на методы сохранения в базу прикручиваете моки, которые проверяют, что вы пытаетесь сохранить а базу. Еще и пытаетесь наверное, протестировать, как sql-ки формируются.
Прекрасно понимаю, что это полная жопа.
И как решение, предлагаете тест-контейнеры... Они вам не помогут.
Апд. В идеальном случае, кстати, при таком подходе, результат расчета сохраняется в виде документа в NoSQL базу или в JSON-поле за один вызов.
Простите, если вы хотите бороться с преступниками, то боритесь с преступниками. Не надо под видом борьбы с преступниками (вольно или невольно) бить палками по голове законопослушных граждан (а это именно бьют всех подряд с прицелом, что и преступникам достанется). И тем более, не надо объявлять преступниками граждан, которые против того, что под видом борьбы с преступностью их бьют палкой по голове.
Чтобы не как с си-подобных, справа налево парсить и разбирать в уме, а четко слева-направо, и для любого объекта, параметры через двоеточие и через запятую.
Еще пример для переменной:
var
a: Integer, immutable; /* можно присваивать только один раз*/
А то вот в си и java разработка новых фич производится просто с такими мучениями, удивляешься. Например, добавление record для введения неизменяемости - для моей идеи просто для class добавилось еще одна характеристика immutable.
class Box: immutable;
begin
...
end;
Ну и так далее, после двоеточния и через запятую можно просто и понятно описывать все характеристики: static, final, abstract, singleton.
Как происходит компенсация debeting funds, когда выполняется этап crediting funds? Или компенсация crediting funds включает также все операции для debeting? Что произойдет, если возникнет ошибка при выполнении самой компенсации?
По Мобли и Морхаусу. Морхаус - черный (кто сказал "расизм"?!) гуманитарный университет, выпускающий отнюдь не спецов ИТ, а "новаторов и лидеров", то есть преподающий всякую ахинею. Какие претензии к ИИ-шке? Что она отсекает хлам? Ну да, это расизм!
А можно еще поинтересоваться? Много пришлось выбрасывать инфраструктурного кода Cobol и добавлять джавовского? Ну там, spring (или что там вы применили?). Сделали что-то распределенное, или все на одной машине работает?
Я не очень понял из статьи, ваша модель различает АИ-сгенерированное и 3D-сгенерированное? Фоточку с трансформером в самой статье она воспримет за настоящую или "нарисованную"?
Ну, если сравнивать с производством, если станочнику поставили более производительный станок, и при этом более высокая квалификация не требуется, никто даже не обсуждает повышение оплаты. Сфига ли? Повысят соответствующим образом норму выработки.
Про а). Тут какая-то логическая ошибка. То, что США применяли протекционизм, и страны-неудачники применяли протекционизм - но у неудачников не выстрелило - не означает, что США поднялись не потому, что протекционизм применяли. США поднялись именно из-за протекционизма, а у неудачников не получилось из-за каких-то факторов, которых у США не было.
Подождем, когда он что-нибудь сможет продать из того говна, который нагенерил.
Да, это годные аргументы, соглашусь. Спасибо.
Насколько я понял идеи Хорикова, он жестко разделяет слои доступа к базе данным и бизнес-логики. доступ к базе данных (и доступ к другим сервисам, если не путаю) необходимо реализовывать в виде "Простых объектов" - не содержащих бизнес-логики классов. Настолько простых, что там нечего тестировать. Что необходимо покрывать тестами - это расчеты, решения, бизнес-логику.
Если мы расчитываем продажи, то покрывать тестами надо классы, которые умножают количество проданного товара на цену, суммирует записи, и/или накладывает скидки и прочее по каким-то условиям. Вот этот класс, кроме как вычисляет, не должен обращаться к базе данных и прочим сервисам. Его и кроем тестами. Этот класс возвращает данные в виде простого объекта с полями и массивами чего-то. Данные возвращаются в "простой класс", который один к одному сохраняет данные в базу. Вот этот простой объект мы уже НЕ КРОЕМ тестами. Там нечего тестировать и нет смысла покрывать тестами.
Вот основная мысль Хорикова - мы разделяем класс на два класса - класс бизнес-логики, который кроем, и простой класс, сохраняющий в базу - который не кроем.
А вы кроете свои сложные классы (я знаю, что это такое, когда по ходу расчетов наш класс обращается к базе) тестами, прикручиваете прорву моков, которые на запросы к базе возвращают кучу данных и на методы сохранения в базу прикручиваете моки, которые проверяют, что вы пытаетесь сохранить а базу. Еще и пытаетесь наверное, протестировать, как sql-ки формируются.
Прекрасно понимаю, что это полная жопа.
И как решение, предлагаете тест-контейнеры... Они вам не помогут.
Апд. В идеальном случае, кстати, при таком подходе, результат расчета сохраняется в виде документа в NoSQL базу или в JSON-поле за один вызов.
Простите, если вы хотите бороться с преступниками, то боритесь с преступниками. Не надо под видом борьбы с преступниками (вольно или невольно) бить палками по голове законопослушных граждан (а это именно бьют всех подряд с прицелом, что и преступникам достанется). И тем более, не надо объявлять преступниками граждан, которые против того, что под видом борьбы с преступностью их бьют палкой по голове.
Статья интересная, но полностью противоречит идеям Хорикова.
Икону из Королёва можно уже делать только из аргумента "сперва добейся".
Когда value в Java появится?
Простите, какого законодательства? Что за законы? По каким законам мне запрещается смотреть xnxx? Или Ютуб?
Я, когда сочинял себе язык программирования, основываясь на oberon, придумывал, чтобы описание параметров функций-методов было вроде такого:
И договоренности для сахара
Чтобы не как с си-подобных, справа налево парсить и разбирать в уме, а четко слева-направо, и для любого объекта, параметры через двоеточие и через запятую.
Еще пример для переменной:
А то вот в си и java разработка новых фич производится просто с такими мучениями, удивляешься. Например, добавление record для введения неизменяемости - для моей идеи просто для class добавилось еще одна характеристика immutable.
Ну и так далее, после двоеточния и через запятую можно просто и понятно описывать все характеристики: static, final, abstract, singleton.
Как происходит компенсация debeting funds, когда выполняется этап crediting funds? Или компенсация crediting funds включает также все операции для debeting? Что произойдет, если возникнет ошибка при выполнении самой компенсации?
Про рукава и волны спасибо. Стало понятно.
В вашем движке было retry с задержкой на минуту-час-день? Помню, что применяли 7-ку ради только этого ключевого требования.
По Мобли и Морхаусу. Морхаус - черный (кто сказал "расизм"?!) гуманитарный университет, выпускающий отнюдь не спецов ИТ, а "новаторов и лидеров", то есть преподающий всякую ахинею. Какие претензии к ИИ-шке? Что она отсекает хлам? Ну да, это расизм!
А можно еще поинтересоваться? Много пришлось выбрасывать инфраструктурного кода Cobol и добавлять джавовского? Ну там, spring (или что там вы применили?). Сделали что-то распределенное, или все на одной машине работает?
Я не очень понял из статьи, ваша модель различает АИ-сгенерированное и 3D-сгенерированное? Фоточку с трансформером в самой статье она воспримет за настоящую или "нарисованную"?
В продакшене пробовали запускать? Что там с производительностью?
Так "не давали паспорта и не давали переехать" и "преследовали за нарушение паспортного режима" - это несколько разные вещи.
Ну, если сравнивать с производством, если станочнику поставили более производительный станок, и при этом более высокая квалификация не требуется, никто даже не обсуждает повышение оплаты. Сфига ли? Повысят соответствующим образом норму выработки.
Про а). Тут какая-то логическая ошибка. То, что США применяли протекционизм, и страны-неудачники применяли протекционизм - но у неудачников не выстрелило - не означает, что США поднялись не потому, что протекционизм применяли. США поднялись именно из-за протекционизма, а у неудачников не получилось из-за каких-то факторов, которых у США не было.
Интересно, а почему после войны тарифы упали?