10 КРУТЫХ идей Go проектов для новичков
Если вы только перешли на го с другого языка, то для вас собрал десять крутых подробных идей для пет-проектов, и обозначил технологии, которые вам важно будет изучить.
Строго говоря это подборка именно для новичков в Go, и я ожидаю, что программировать на другом языке вы уже умеете 🙂. А если нет, то смело подписывайтесь, и я научу.
Идеи и описание
gRPC
Любое серверное ПО скорее всего будет как-то общаться с другими сервисами. И есть протокол, который позволяет вам делать это эффективно, быстро и независимо от языка: gRPC.
gRPC (gRPC Remote Procedure Call) - это высокопроизводительный фреймворк с открытым исходным кодом, разработанный Google для создания эффективных и масштабируемых API. Он использует протокол HTTP/2 для передачи данных и позволяет определять интерфейс сервиса с помощью языка описания интерфейса (IDL) под названием Protocol Buffers, обеспечивая типизированную, эффективную и независимую от языка программирования коммуникацию между клиентом и сервером.
Ключевые плюсы
- Компактность: gRPC обменивается данным в бинарном формате
- Расширяемость: в структуры Protocol Buffers очень легко добавлять новые поля без потери совместимости с прошлыми версиями
- Обмен данными в реальном времени со streaming функциями
Идеи
- Чат в реальном времени
- Мультиплеерный Flappy Bird
- Клон сайта "миллион чекбоксов"
- Удалённое управление и мониторинг своего компьютера
WEB
Огромная область, в которой го очень популярен – это веб.
Для работы с базой данных вам пригодится библиотека GORM: https://github.com/go-gorm/gorm.
Захотите обновлять информацию в реальном времени, тогда выбирайте WebSocket и библиотеку gorilla/websocket: https://github.com/gorilla/websocket.
Идеи
- Гостевая книга а-ля "Твиттер" или "X" с обновлением записей в реальном времени
- Библиотека книг и сериалов
- Генератор форм для опросов
- Библиотека отзывов
- Личная визитница
Данные
При разработке продукта у вас всегда появляются данные, которые нужно как-то хранить, и вы, как разработчик, должны знать разные структуры данных и чем они отличаются.
Для хранения в оперативной памяти можно начать с классических хеш-таблиц, и сосредоточиться на дизайне API и способах эффективного хранения разных типов.
Для постоянного хранения можно пойти в сторону LSM деревьев.
LSM (Log-Structured Merge) деревья - это структура данных, оптимизированная для быстрой записи и эффективного хранения большого объема данных на диске. Основная идея заключается в том, что новые данные добавляются в память в виде отсортированных блоков (называемых "сегментами" или "чанками"), а затем периодически сливаются с существующими данными на диске, образуя новые, более крупные отсортированные блоки.
Идея
Key-value хранилище или in-memory кеш.