Размер организации:
Вид бизнеса:
Особо акцентированные проблемы среди опрошенных - это структурирование проекта (54%) и лучшие практики (47%). Большинство разработчиков на Go при создании нового проекта начинают с нуля (37%), либо копируют базовую структуру проекта из похожего проекта (33%).
“Finding an appropriate structure and the right abstraction levels for a new project can be quite tedious; looking at high-profile community and enterprise projects for inspiration can be quite confusing as everyone structures their project differently” — Professional Go developer w/ 5 – 9 years of Go experience
Решение проблемы - предложение структуры проекта с примерами, подключением к СУБД, тестами.
Обработка ошибок - по прежнему дебатируемая тема. Тут наблюдается некоторый раскол. Чуть больше половины (55%) удовлетворено обработкой ошибок в Go. Однако, значительная доля опрошенных считает обработку ошибок слишком многословной (43%). 31% опрошенных предлагает рассмотреть упрощение, например, оператор ? в Rust (31%).
ML/AI стремительно адаптируется сообществом для (список не полный):
В этом году команда Go решила в опросе измерить как много опрошенных разработчиков использует микросервисы. Разработчики из больших компаний (>1000 сотрудников) преимущественно адаптируют микросервисную архитектуру. 43% опрошенных ответили положительно. 28% применяют как микросервисную архитектуру, так и монолиты. 21% работают над монолитами.
Интересны результаты по количеству микросервисов. 4% имеют всего один микросервис (мкрсв) в своем приложении. 2-5 мкрсв у 40% опрошенных. 6-10 мкрсв у 20%. 10+ мкрсв у 37%. Мне очень хотелось бы узнать у разработчиков, у которых 10 и менее микросервисов почему они выбрали эту архитектуру.
Самые большие проблемы (данные опроса) этой архитектуры - это тестирование, отладка (46%), инфрастуктура (38%), консистентность данных (30%).
Чаще всего вместе в микросервисном решении помимо Go используют Python (33%), Node.js (28%), Java (26%). 26% пишет только на Go.
Модели коммуникации в микросервисной архитектуре (не полный список):
Вышла стабильная версия пакета https://github.com/zombiezen/go-sqlite для работы с SQLite3. Главная особенность пакета - нет зависимости от C, т.е. сборка без CGO. Это не единственный проект. Я знаю по крайней мере 3 таких. Однако, исторически сложилось так, что самый популярный - это https://github.com/mattn/go-sqlite3. И это CGO пакет.
Чем же плох CGO?
До версии 1.21 Go еще и отличался очень медленным C FFI (foreign function interface) оверхедом. 500 млн запросов к C функции в Go выполнялся медленнее других ЯП: 36 секунд. В Go 1.21 это время сократилось до 7 секунд, что все еще медленно по сравнению даже с java.