Оптимальный способ освоить Golang — создавать проекты. Исследованиями показано, что учиться лучше на практике, это подтверждается и моим опытом. Вопрос в том, какие именно проекты создавать?
В сложном проекте застревают и разочаровываются, и мечта об освоении Golang улетучивается. В простом тоже многому не научишься, поэтому нужно выбирать правильный.
Прежде чем переходить к проектам, скажем пару слов о Golang, или просто Go. Это язык программирования с открытым исходным кодом и акцентом на простоте, эффективности, максимальной производительности и надежности.
Его разработали в Google в 2007 году Роберт Гриземер, Роб Пайк и Кен Томпсон.
Go официально сделали проектом с открытым исходным кодом и выпустили для широкой публики только в 2012 году. С тех пор он стал одним из самых популярных и современных языков программирования.
Изначально Golang был разработан для создания программ, связанных с сетями и инфраструктурой с целью заменить другие популярные и высокопроизводительные серверные языки вроде Java и C++.
Go также применяется для создания облачных или серверных приложений, DevOps и автоматизации надежности сайтов, в искусственном интеллекте и науке о данных, программировании микроконтроллеров, робототехнике и играх.
Инфраструктурные инструменты Kubernetes и Docker тоже написаны на Go. Основная причина его высокой популярности — принципиальная простота.
10 идей проектов на Golang для начинающих (с курсами)
Вот список лучших идей проектов на Golang для начинающих.
1. Создание веб-сервера
Это отличный проект для начала веб-разработки на Golang. Настраивая сервер для обработки HTTP-запросов и отправки ответов обратно клиентам, вы узнаете о маршрутизации, обработке HTTP-методов, парсинге параметров запроса, работе со статическими файлами.
Начните со встроенного пакета net/http
, этого надежного каркаса для создания HTTP-серверов. Настроив сервер, добавьте конечные точки для обработки GET-, POST-, PUT- и DELETE-запросов.
Получив в этом проекте практический опыт веб-разработки и фундаментальное представление о работе веб-серверов, вы сможете создать простой веб-сервис на Golang и Java с конечными точками для веб-запросов, считывать и удалять параметры запроса строки запроса URL.
2. Создание системы управления книгами YSQL
Это проект для эффективного управления книжными фондами.
Добавление, редактирование, удаление и поиск книг выполняются в высокопроизводительном, масштабируемом, отказоустойчивом хранилище данных БД YSQL. Безопасность системы обеспечивается аутентификацией и ролями пользователей, контролем доступа.
В целом это отличный проект для создания масштабируемых приложений баз данных, эффективный и простой в сопровождении благодаря Golang и YSQL.
Вы станете экспертом в управлении книгами YSQL, научитесь настраивать внедрение зависимостей, создавать веб-приложения на Go.
3. Создание «Slackbot» для загрузки файлов
Это проект для загрузки файлов на канал Slack, доступ к каналу получается через его API. Создается приложение Slackbot с настройкой его разрешений, а также сервер для обработки загрузки файлов, который интегрируется со Slackbot.
Ваша команда часто обменивается файлами в Slack? Тогда проект для вас: здесь это делается быстро и легко, не выходя из интерфейса Slack.
Вы научитесь работать с другими интегрированными средами разработки, а с этим полным руководством от разработки до развертывания — еще и создавать микросервисные приложения на Golang.
4. Создание «AWS Lambda»
Это проект для создания и развертывания бессерверных функций с помощью AWS Lambda, сервиса для запуска кода без подготовки серверов или управления ими.
Вы научитесь создавать простую лямбда-функцию в консоли управления AWS, настраивать ее триггеры, тестировать функциональность, а также упаковывать и развертывать лямбда-функции в интерфейсе командной строки AWS CLI, отслеживать и устранять их неполадки с помощью журналов AWS CloudWatch.
У вас будет четкое представление об AWS Lambda и создании с его помощью масштабируемых и экономичных приложений.
Вы научитесь создавать веб-приложения на Golang, в новом проекте AWS сохранять и получать данные с AWS Lambda.
5. Создание «HRMS Fiber»
Этот проект разработки системы управления персоналом с фреймворком Fiber — отличный способ освоить Golang.
За счет автоматизации процессов: управления данными о сотрудниках, отслеживания выходов на работу, учета рабочего времени, отпусков и отгулов, оценки эффективности работы и расчета заработной платы — системой оптимизируются административные задачи отдела кадров.
В веб-интерфейсе HRMS Fiber работникам доступна их информация и отправка запросов, а руководителям — отслеживание эффективности работников и принятие решений на основе точных данных.
Для создания надежной и удобной системы HRMS Fiber в проекте требуются знания Golang, Fiber, управления базами данных и веб-разработки.
Вы научитесь всему, что нужно знать о Golang, как установить линии связи между Go и схемой базы данных и создавать уровни изоляции и транзакции базы данных.
6. Создание бота с ИИ
В этом проекте за счет интеграции технологий машинного обучения и обработки естественного языка создается бот, способный понимать пользовательские запросы и отвечать на них, записывать на прием, выдавать персонализированные рекомендации. Для обучения бота на больших наборах данных понадобятся библиотеки машинного обучения вроде TensorFlow или PyTorch, а для понимания и обработки пользовательских запросов — библиотеки обработки естественного языка вроде NLTK или SpaCy.
К концу проекта вы приобретете ценный опыт создания бота с ИИ, научитесь интегрировать различные технологии для получения функциональной интерактивной системы.
Создавая бот с ИИ, вы выведете свои навыки на новый уровень, освоите Go с микросервисами и JSON, узнаете все, что нужно знать о Golang.
7. Создание «CRUD API»
Это обычный проект для бэкенд-разработчиков, где на Golang создается RESTful API с выполнением в базе данных всех операций CRUD. API применяется для взаимодействия с любым клиентским или мобильным приложением.
Вы внедрите базовую аутентификацию, а для обеспечения валидности сохраненных данных — проверку пользовательского ввода. Помимо этого, вы получите практический опыт создания API с нуля на Golang, этом популярном языке программирования для создания надежных, масштабируемых серверных систем.
Создавая CRUD API с использованием навыков Golang, вы выделитесь на фоне других и произведете впечатление на собеседовании, а кроме того, в проекте вы научитесь эффективно подчеркивать в резюме навыки применения Golang.
8. Создание «Slackbot» для вычисления возраста
Это интересный проект, в котором на основе даты рождения вычисляется возраст пользователя в годах, месяцах и днях.
В бот принимаются данные в удобных для пользователей форматах: текст, элемент выбора даты и т. д. Для обработки вычислений даты и времени в Golang применяется встроенный пакет time
, а Slackbot для большей функциональности интегрируется с различными API.
Этот проект аналогичен одному из рассмотренных выше, это отличная возможность освоить Golang, API и разработку Slackbot.
Вы научитесь развертывать серверные приложения в соответствии с лучшими практиками, получите отличные знания по основам веб-программирования.
9. Создание средства проверки электронной почты
Это полезный проект для чистоты списка адресов электронной почты компаний. Этим инструментом проверяется синтаксис и домен адресов электронной почты, активность и способность последних получать сообщения.
Проект создается на Golang с помощью пакетов net/smtp
и net
, расширяется для работы с различными API и поставщиками услуг электронной почты. Применяя средство проверки электронной почты, в компаниях снижают риск отправки электронных писем на неактивные или недействительные адреса, в итоге улучшаются качество доставки электронной почты и показатели вовлеченности пользователей.
В этом проекте с примерами и вопросами для собеседования вы научитесь всему, что нужно знать о Go.
10. Создание системы управления взаимодействием с клиентами Fiber
Это отличный проект для управления данными клиентов компаний с проектированием и разработкой масштабируемой, безопасной и эффективной системы обработки больших объемов клиентских данных. Ключевой функционал этой системы: лид-менеджмент, управление контактами, отслеживание возможностей, отчетность.
Благодаря высокой производительности Golang и встроенным средствам многопоточного программирования этот проект справляется с высокими требованиями по трафику и обработке данных современной системы управления взаимодействием с клиентами. К тому же в веб-фреймворке Fiber имеется оптимизированный и простой в применении интерфейс для взаимодействия пользователей с системой.
В целом создание системы управления взаимодействием с клиентами на Golang и Fiber — сложный и полезный проект для любого разработчика.
Вы станете экспертом в программировании на Golang, научитесь настраивать внедрение зависимостей, создавать веб-приложения, используя свои навыки программирования.
Заключение
Это были 10 проектов Golang для освоения языка программирования Go.
P. S. Имеется также совершенно бесплатный онлайн-курс освоения Golang, для доступа нужна только бесплатная учетная запись Udemy, более 10 500 человек уже записались на него.
Читайте также:
- Как создать свой Twitter или управляемое данными приложение с Golang и Kafka
- Как работает шлюз API на Golang: на примере одного симпатичного платья
- Простое объяснение интерфейсов на Golang
Читайте нас в Telegram, VK и Дзен
Перевод статьи javinpaul: 10 Projects You Can Build to Learn Golang in 2023