Информация об изменениях

Сообщение Re[43]: Догонит ли net java? от 16.12.2022 12:43

Изменено 16.12.2022 12:53 Pauel

Re[43]: Догонит ли net java?
Здравствуйте, ·, Вы писали:

P>>Сам подумай, что это значит — кодогенераторы в общей массе отстой. И именно ты топишь за использование тех, которые отстой.

·>Спорить не буду, ибо не важно это. Мой тезис, что схемогенераторы — ещё более отстой, чем кодогенераторы.

У тебя нет аргументов.

P>>Очевидно, что не так. Я пишу — использовать проверенную оттестированую либу, но тебе мерещится "писать весь код руками"

·>Угу. Так используй проверенную оттестированную либу для кодогенерации. Кто запрещает-то?

Отсутствие таких в природе с силу принципиальной сложности кодогенерации.

P>>В противном случае лишняя строчка в манифесте или сломает клиент, или сломает сервер, или просто проигнорится

P>>И то, и другое, и третье есть проблема
·>И чем поможет схемогенератор?

Генератор схемы это не какая нибудь сложная вещь, легко покрывается тестами, в отличие от кодогенератора.
Когда имплементишь апи, то эту часть и так нужно покрыть тестами, что естественно.

P>>А раз не решает все, то часть останутся на проде. Гы-гы. Откуда и следует, что нужно тестировать и прод. Например — при обновлении 3rd party зависимостей.

·>Нет, не следует.

У тебя снова нет аргументов, поздравляю!

P>>·>Чтобы пускануть тесты в проде и выявить эту проблему, в этом самом проде уже должно оказаться их обновление.

P>> Алё — они поменяли свой сервис глядя в свои тесты. И подломали некоторые запросы твоего сервиса.
·>Это и лечится SIT.

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

P>>Это норма, а не проблема. Крупные вендоры апи имеют десятки и сотни тысяч консумеров. Ты для них один из сотен тысяч.

·>Про conformance tests я уже тоже рассказывал.

Ты же не собираешься запускать их на проде. А значит будешь тестировать "юзером".
У них тесты зеленые. А твоя система против их новой версии никогда не работала.
Приплызд.

P>>Пускаешь тесты прода и видишь, что емейлы таки глючат. Опаньки!

·>Нормальные вендоры предоставляют средства для тестирования. Ищем для первого упомянутого: https://docs.sendgrid.com/ui/sending-email/email-testing

Именно такие тесты и нужно пускануть после обновления с их стороны. Альтернатива — "у нас багов нет", это твой любимый вариант.

P>>Тогда это не признак большого проекта, а скорее признак тухлого проекта, который еле держится на плаву.

·>И что?

Ты говоришь про большой проект, а под признаки подходит любой, где нет денег. Например — 1 человек работает вместо команды и кое как справляется, на миграцию денег-времени нет.
То есть, ты просто накидываешь абы что.

P>>Мы уже выяснили — бредогенераторов для openapi 100500 единиц, и почти все из них или не подходят, или их нельзя использовать

·>И? В чём твой солюшн-то?

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

P>>Типичный кейс — понадобилась некоторая фича, а кодогенератор не поддерживает, приплызд

·>Я сам их подпатчивал и даже пулл-реквесты засылал, мелочёвку правда, и их даже мержили, не рокет-сайнс совершенно.

Именно что мелочевку. А что делать с большими фичами-багами — не ясно.
Обилие кривых кодогенераторов гарантирует затраты времени на выбор подходящего.

P>>Экспорт АПИ — это ты предоставляешь АПИ своего сервиса внешним консумерам.

·>Хорошо, уже теплее. Ради чего стараться-то? Что внешние консьюмеры будут с этим твоим экспортированным АПИ делать будут?

Что им надо делать, то и будут.

P>> Теоретик?

P>>1 Тебе надо держать в уме возможности кодогенератора. Заюзал ты ResponseHeaders, а у тебя такое не поддерживается. Гы-гы.
·>То же и со схемогенератором. Или он у тебя универсальный всемогутер?

Схемогенератор это вещь намного проще. Типичный разработчик искаропки умеет генерировать json по набору данных, все приложения состоят из такой логики. А вот внятную кодогенерацию сделать — это вещь нетривиальная.

P>>2 Метаданные парсить не нужно, это типизированый интерфейс, по которому генерить что угодно легко и просто.

·>А надо-то генерировать не что угодно, а только то, что умеет openapi.

В слова решил поиграть?

P>>3 Вместо схемогенератора у тебя кодогенератор, при чем — два штуки, каждый со своими особенностями, клиент и сервер.

·>У тебя не просто схемогенератор, а схемогенератор+кодогенератор. Иначе генерить схему без последующей кодогенерации — зря электричество жечь.

Мне нужна генерация схемы + тесты по этой схеме. Тестировать конкретным генереным клиентом в корне неверно.

·>Сделать два кодогенератора проще, чем схемогенератор+кодогенератор.


Нужен только схемогенератор — апи будет тестироваться не абы чем, а конкретным тулом который умеет openapi.
Ты не знаешь ни версию кодогенератора у клиента, ни платформу, ни даже язык программирования.

>>И оказывается, что именно здесь получается бред, который ты сам же и описал.

·>Так у тебя бреда получается ещё больше.

Главное что ты сам себе противоречишь.

P>>Я например писал и то, и другое. Кодогенератор это хтонический ужос по сравнению с генерацией джсон по метаданным.

·>Спекогенератор без кодогенератора не нужен.

Ты так и не сказал, зачем кодогенератор есть уже есть генератор спеки.

P>>Генерится не из произвольно написаного кода, а из метаданных которые предоставляются либой. Они по своей природе навешиваются на что угодно без проблем.

·>Я знаю. Только это всё усложняет.

А я вижу, что облегчают.

P>>Он пишет про другое — ты внимательно прочитай.

·>Я прочитал и понял именно так. Если у тебя есть другая интерпретация, выкладывай.

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

P>>А его нет. Гы-гы. Надо писать новый генератор, потому что допилить напильником не выходит из за GPL лицензии.

·>Ну зашли пулл-реквест.

И чем тебе пулл реквест поможет если лицуха GPL ? Такой софт не факт что можно в любой конторе использовать.

P>>Еще раз — не надо придумывать метаданные. Алё, ты вообще читаешь? Берем проверенную либу, закладываемся на её возможности.

·>Это не я их предлагаю придумывать, а Ночной Смотрящий, ему это и советуй.

Это твои домыслы. У него ничего не сказано, либу он берет, или врукопашную чегото делает.

P>>Снова теоретизирования Нам нужно проверить, что схема валидная. Мы берем готовый тул, который умеет слать запросы по такой спеке, и пишем под него тесты. Здесь у нас ровно 0 генеренного кода.

·>Тесты можно писать проще, без схемы и специальных тулов.

Нам нужно не просто абы что абы куда послать, а дать гарантии, что тест посланый согласно спецификации OpenAPI будет понят твоим клиентом.
В противном случае получится так, что тесты зеленые, потому что девелоперы-тестеры намастырили их по записям со стейджа, а у клиента ничо не работает, т.к. он шлет в строгом соответствии со спекой.

P>>Ты высек сам себя — по твоей ссылке пример работы бредо кодогенератора. Этот бредогенератор такое нагенерил, что ни руками вычистить, ни внятно использовать нельзя.

·>Ты читать точно умеешь? https://restapi.moedelo.org/docs — это именно что сгенерённая swagger схема. Которую невозможно ни для чего полезного применить, даже глазками почитать и то проблема, тулзы на ней затыкаются.
1. есть схема
2. какие то кодогенераторы с ней не справляются
С чего ты взял, что она генерированая? Подробнее. Я видел и бОльшие простыни, созданные вручную.
Re[43]: Догонит ли net java?
Здравствуйте, ·, Вы писали:

P>>Сам подумай, что это значит — кодогенераторы в общей массе отстой. И именно ты топишь за использование тех, которые отстой.

·>Спорить не буду, ибо не важно это. Мой тезис, что схемогенераторы — ещё более отстой, чем кодогенераторы.

У тебя нет аргументов.

P>>Очевидно, что не так. Я пишу — использовать проверенную оттестированую либу, но тебе мерещится "писать весь код руками"

·>Угу. Так используй проверенную оттестированную либу для кодогенерации. Кто запрещает-то?

Отсутствие таких в природе с силу принципиальной сложности кодогенерации.

P>>В противном случае лишняя строчка в манифесте или сломает клиент, или сломает сервер, или просто проигнорится

P>>И то, и другое, и третье есть проблема
·>И чем поможет схемогенератор?

Генератор схемы это не какая нибудь сложная вещь, легко покрывается тестами, в отличие от кодогенератора.
Когда имплементишь апи, то эту часть и так нужно покрыть тестами, что естественно.

P>>А раз не решает все, то часть останутся на проде. Гы-гы. Откуда и следует, что нужно тестировать и прод. Например — при обновлении 3rd party зависимостей.

·>Нет, не следует.

У тебя снова нет аргументов, поздравляю!

P>>·>Чтобы пускануть тесты в проде и выявить эту проблему, в этом самом проде уже должно оказаться их обновление.

P>> Алё — они поменяли свой сервис глядя в свои тесты. И подломали некоторые запросы твоего сервиса.
·>Это и лечится SIT.

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

P>>Это норма, а не проблема. Крупные вендоры апи имеют десятки и сотни тысяч консумеров. Ты для них один из сотен тысяч.

·>Про conformance tests я уже тоже рассказывал.

Ты же не собираешься запускать их на проде. А значит будешь тестировать "юзером".
У них тесты зеленые. А твоя система против их новой версии никогда не работала.
Приплызд.

P>>Пускаешь тесты прода и видишь, что емейлы таки глючат. Опаньки!

·>Нормальные вендоры предоставляют средства для тестирования. Ищем для первого упомянутого: https://docs.sendgrid.com/ui/sending-email/email-testing

Именно такие тесты и нужно пускануть после обновления с их стороны. Альтернатива — "у нас багов нет", это твой любимый вариант.

P>>Тогда это не признак большого проекта, а скорее признак тухлого проекта, который еле держится на плаву.

·>И что?

Ты говоришь про большой проект, а под признаки подходит любой, где нет денег. Например — 1 человек работает вместо команды и кое как справляется, на миграцию денег-времени нет.
То есть, ты просто накидываешь абы что.

P>>Мы уже выяснили — бредогенераторов для openapi 100500 единиц, и почти все из них или не подходят, или их нельзя использовать

·>И? В чём твой солюшн-то?

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

P>>Типичный кейс — понадобилась некоторая фича, а кодогенератор не поддерживает, приплызд

·>Я сам их подпатчивал и даже пулл-реквесты засылал, мелочёвку правда, и их даже мержили, не рокет-сайнс совершенно.

Именно что мелочевку. А что делать с большими фичами-багами — не ясно.
Обилие кривых кодогенераторов гарантирует затраты времени на выбор подходящего.

P>>Экспорт АПИ — это ты предоставляешь АПИ своего сервиса внешним консумерам.

·>Хорошо, уже теплее. Ради чего стараться-то? Что внешние консьюмеры будут с этим твоим экспортированным АПИ делать будут?

Что им надо делать, то и будут.

P>> Теоретик?

P>>1 Тебе надо держать в уме возможности кодогенератора. Заюзал ты ResponseHeaders, а у тебя такое не поддерживается. Гы-гы.
·>То же и со схемогенератором. Или он у тебя универсальный всемогутер?

Схемогенератор это вещь намного проще. Типичный разработчик искаропки умеет генерировать json по набору данных, все приложения состоят из такой логики. А вот внятную кодогенерацию сделать — это вещь нетривиальная.

P>>2 Метаданные парсить не нужно, это типизированый интерфейс, по которому генерить что угодно легко и просто.

·>А надо-то генерировать не что угодно, а только то, что умеет openapi.

В слова решил поиграть?

P>>3 Вместо схемогенератора у тебя кодогенератор, при чем — два штуки, каждый со своими особенностями, клиент и сервер.

·>У тебя не просто схемогенератор, а схемогенератор+кодогенератор. Иначе генерить схему без последующей кодогенерации — зря электричество жечь.

Мне нужна генерация схемы + тесты по этой схеме. Тестировать конкретным генереным клиентом в корне неверно.

·>Сделать два кодогенератора проще, чем схемогенератор+кодогенератор.


Нужен только схемогенератор — апи будет тестироваться не абы чем, а конкретным тулом который умеет openapi.
Ты не знаешь ни версию кодогенератора у клиента, ни платформу, ни даже язык программирования.

>>И оказывается, что именно здесь получается бред, который ты сам же и описал.

·>Так у тебя бреда получается ещё больше.

Главное что ты сам себе противоречишь.

P>>Я например писал и то, и другое. Кодогенератор это хтонический ужос по сравнению с генерацией джсон по метаданным.

·>Спекогенератор без кодогенератора не нужен.

Ты так и не сказал, зачем кодогенератор есть уже есть генератор спеки.

P>>Генерится не из произвольно написаного кода, а из метаданных которые предоставляются либой. Они по своей природе навешиваются на что угодно без проблем.

·>Я знаю. Только это всё усложняет.

А я вижу, что облегчают.

P>>Он пишет про другое — ты внимательно прочитай.

·>Я прочитал и понял именно так. Если у тебя есть другая интерпретация, выкладывай.

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

P>>А его нет. Гы-гы. Надо писать новый генератор, потому что допилить напильником не выходит из за GPL лицензии.

·>Ну зашли пулл-реквест.

И чем тебе пулл реквест поможет если лицуха GPL ? Такой софт не факт что можно в любой конторе использовать.

P>>Еще раз — не надо придумывать метаданные. Алё, ты вообще читаешь? Берем проверенную либу, закладываемся на её возможности.

·>Это не я их предлагаю придумывать, а Ночной Смотрящий, ему это и советуй.

Это твои домыслы. У него ничего не сказано, либу он берет, или врукопашную чегото делает.

P>>Снова теоретизирования Нам нужно проверить, что схема валидная. Мы берем готовый тул, который умеет слать запросы по такой спеке, и пишем под него тесты. Здесь у нас ровно 0 генеренного кода.

·>Тесты можно писать проще, без схемы и специальных тулов.

Нам нужно не просто абы что абы куда послать, а дать гарантии, что тест посланый согласно спецификации OpenAPI будет понят твоим сервисом.
В противном случае получится так, что тесты зеленые, потому что девелоперы-тестеры намастырили их по записям со стейджа, а у клиента ничо не работает, т.к. он шлет в строгом соответствии со спекой.

P>>Ты высек сам себя — по твоей ссылке пример работы бредо кодогенератора. Этот бредогенератор такое нагенерил, что ни руками вычистить, ни внятно использовать нельзя.

·>Ты читать точно умеешь? https://restapi.moedelo.org/docs — это именно что сгенерённая swagger схема. Которую невозможно ни для чего полезного применить, даже глазками почитать и то проблема, тулзы на ней затыкаются.
1. есть схема
2. какие то кодогенераторы с ней не справляются
С чего ты взял, что она генерированая? Подробнее. Я видел и бОльшие простыни, созданные вручную.