
sqlh — SQL в Go без boilerplate: пишем CRUD за 50 строк
> Zero-boilerplate SQL для Go. Опиши структуру тегами — и это всё.Если вы пишете на Go и работаете с SQL-базами, вы знаете эту боль. Каждый CRUD-запрос — ручной SQL-строка, rows.Scan для каждого поля,...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Вот важная новость с фронта ИИ: > Zero-boilerplate SQL для Go. Опиши структуру тегами — и это всё. Если вы пишете на Go и работаете с SQL-базами, вы знаете эту боль.
Каждый CRUD-запрос — ручной SQL-строка, rows. Scan для каждого поля, Begin/Commit/Rollback вокруг записи, и постоянная синхронизация DDL-схемы с кодом. Шаблонный код не заканчивается никогда.
Технические детали
Это рассказ о sqlh — библиотеке, которая убирает всё это, оставаясь в «золотой середине» между raw SQL (слишком много работы) и тяжёлыми ORM (слишком много магии). Проблема: Go + SQL = смерть от тысячи rows. ScanСтандартный database/sql в Go отличен.
Он даёт прочный, переносимый фундамент для любой SQL-базы. Но он намеренно оставляет тяжёлую работу за вами. Вот как выглядит простой CRUD на чистом database/sql:```go// 1.
CREATE TABLE — raw DDL-строка_, err := db. Exec(`CREATE TABLE IF NOT EXISTS user ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE, email TEXT, age INTEGER)`)// 2. INSERT — явные placeholder и аргументы_, err = db.
Отраслевые последствия
Exec( "INSERT INTO user (name, email, age) VALUES (? )", "Alice", "alice@example. GET по ID — QueryRow + ручной Scanvar u Usererr = db.
QueryRow("SELECT id, name, email, age FROM user WHERE id = ? LIST всех — Query + rows. Scan в циклеrows, err := db.
Query("SELECT id, name, email, age FROM user ORDER BY name ASC var users Userfor rows. Next() { var u User if err := rows.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





