Последний раз на бумажке код я писал в универе. С тех пор, как устроился на работу пользуюсь IDE, которые к слову стали широко используемыми задолго до приплетенных вами LLM(поясните, пожалуйста, при чем тут они?).
Даже собеседование лайвкодил в Idea, без всяких бумажек.
И с какого перепуга IDE - плохая гарантия? Я пользуюсь Idea с плагинами Go и SonarQube, и все там с гарантиями нормально. Все типичные ошибки(речь не о синтаксических) детектируются на ура. А для всего остального у меня есть голова на плечах, как у и любого хорошего разработчика.
Некоторые утверждения звучат так, будто автор не пользуется линтером и/или пишет код в обычном блокноте.
Реализация интерфейсов в нормальной IDE видна ещё на уровне редактора. Никогда не ошибался в написании реализации.
Забыл поставить defer? IDE и линтер тебе любезно скажут, что ты нехороший человек. А после определенного времени разработки на Go, рука уже сама пишет этот defer. У каждого языка есть свои особенности, к которым разработчик привыкает со временем.
Я не говорю, что Go лучше Rust. Каждому языку свое применение. И они оба нашли его и достаточно распространены. Наверное, это хороший признак того, что с помощью языка можно писать хорошие программы.
Потому что для рядовых запросов он освобождает от необходимости изобретать велосипед. В запросы надо передавать параметры, да ещё и в правильном порядке. Билдер следит за этим сам, от меня ему нужен только тип структуры. Плюс в коде это выглядит понятно и читаемо.
Если нужно написать сложный запрос, то я выберу чистый SQL. У билдера есть свой предел, где он становится неудобным. Но такие запросы не в каждом сервисе существуют.
Я за то чтобы использовать инструмент там, где он хорошо подходит.
Так sqlbuilder и делает статические запросы, если вы только сами не напишете цепочку сбора этого самого запроса динамической.
Билдер накидывает абстракцию над SQL и выражает ее в виде Go методов. И все рядовые запросы выглядят читаемо. Там все те же select, where и equals. И подстановки параметров там безопасные(через ?). Захотели переехать на другую бд- меняете диалект в настройках билдера.
К тому же, он умеет привязываться к гошным структурам через db тэги. Это выглядит ORM, но ограничивается генерацией запроса.
Есть ещё sqlbuilder. Умеет в разные диалекты. Таким образом, вместо того чтобы собирать SQL из разных фрагментов, собирается все с помощью Go-кода. Скорее всего, довольно сложные запросы он собрать не поможет, и понадобится решение наподобие вашего.
На то они и энтузиасты) Понимая что не масштаб не мировой, все равно сделали и поделились. Кому-то будет интересно в любом случае это увидеть.
Последний раз на бумажке код я писал в универе. С тех пор, как устроился на работу пользуюсь IDE, которые к слову стали широко используемыми задолго до приплетенных вами LLM(поясните, пожалуйста, при чем тут они?).
Даже собеседование лайвкодил в Idea, без всяких бумажек.
И с какого перепуга IDE - плохая гарантия? Я пользуюсь Idea с плагинами Go и SonarQube, и все там с гарантиями нормально. Все типичные ошибки(речь не о синтаксических) детектируются на ура. А для всего остального у меня есть голова на плечах, как у и любого хорошего разработчика.
Некоторые утверждения звучат так, будто автор не пользуется линтером и/или пишет код в обычном блокноте.
Реализация интерфейсов в нормальной IDE видна ещё на уровне редактора. Никогда не ошибался в написании реализации.
Забыл поставить defer? IDE и линтер тебе любезно скажут, что ты нехороший человек. А после определенного времени разработки на Go, рука уже сама пишет этот defer. У каждого языка есть свои особенности, к которым разработчик привыкает со временем.
Я не говорю, что Go лучше Rust. Каждому языку свое применение. И они оба нашли его и достаточно распространены. Наверное, это хороший признак того, что с помощью языка можно писать хорошие программы.
Потому что для рядовых запросов он освобождает от необходимости изобретать велосипед. В запросы надо передавать параметры, да ещё и в правильном порядке. Билдер следит за этим сам, от меня ему нужен только тип структуры. Плюс в коде это выглядит понятно и читаемо.
Если нужно написать сложный запрос, то я выберу чистый SQL. У билдера есть свой предел, где он становится неудобным. Но такие запросы не в каждом сервисе существуют.
Я за то чтобы использовать инструмент там, где он хорошо подходит.
Так sqlbuilder и делает статические запросы, если вы только сами не напишете цепочку сбора этого самого запроса динамической.
Билдер накидывает абстракцию над SQL и выражает ее в виде Go методов. И все рядовые запросы выглядят читаемо. Там все те же select, where и equals. И подстановки параметров там безопасные(через ?). Захотели переехать на другую бд- меняете диалект в настройках билдера.
К тому же, он умеет привязываться к гошным структурам через db тэги. Это выглядит ORM, но ограничивается генерацией запроса.
Есть ещё sqlbuilder. Умеет в разные диалекты. Таким образом, вместо того чтобы собирать SQL из разных фрагментов, собирается все с помощью Go-кода. Скорее всего, довольно сложные запросы он собрать не поможет, и понадобится решение наподобие вашего.