Баннер мобильный (3) Пройти тест

Что написать на Go: идеи для pet-проектов

И примеры пет-проектов, которые стали известными продуктами, — для вдохновения

Подборка

25 декабря 2024

Поделиться

Скопировано
Что написать на Go: идеи для pet-проектов

Содержание

    Go, или Golang, — это язык программирования, который завоевал популярность благодаря своей простоте, высокой производительности и широким возможностям для разработки серверных приложений, инструментов и микросервисов.

    В этой статье мы поделимся идеями для пет-проектов на Go — от небольших инструментов для автоматизации до более сложных приложений, которые помогут углубить знание языка, улучшить навыки и, возможно, создать что-то, что пригодится в реальной работе или станет основой для портфолио.

    Немного о языке Go 

    Язык Golang или Go появился в 2009-м, его создатели — разработчики из Google. Они преследовали цель создать простой синтаксис, который будет несложно читать, редактировать и обслуживать. При этом язык должен был быть мощным, производительным и эффективным. 

    Несмотря на сравнительно молодой возраст, Go часто входит в топ-10 востребованных языков для разработчиков по версии индекса TIOBE. Так, в рейтинге декабря Go оказался на седьмом месте. 

    Относительная простота Go (особенно для тех, кто уже имеет опыт в разработке) позволяет изучать его параллельно, «для души», с другими более сложными языками. 

    И можно совместить приятное с полезным: изучить Go и сразу реализовать на нем pet-проект. 

    Основными чертами, благодаря которым синтаксис завоевал признание среди программистов, стали: 

    1. Простота. Язык достаточно прост в изучении и понимании основных концепций. Особенно если у изучающего есть опыт в изучении кода. 
    2. Высокая производительность. Go обладает фичами, которые ускоряют его работу. Например, наличие автоматического сборщика мусора или многопоточное выполнение задач. 
    3. Минимальное количество фреймворков. В Go практически не работают с фреймворками — готовая, «вшитая» библиотека дает все необходимое для разработки. 
    4. Концепция и синтаксис. Go входит в C-подобную группу языков, а это делает его легким для обучения среди разработчиков. Особенно для тех, которые ранее писали на C++, Java, C#. 
    5. Большое комьюнити и поддержка. У языка огромное и активное сообщество разработчиков. А это способствует появлению новых модулей и библиотек, обучающих материалов. Также Go активно продвигает сам Google, поддерживает его развитие.

    Зачем создавать pet-проекты

    Pet-проекты (от англ. pet — домашний питомец) — это проекты, которые специалист создает «по любви, для души» в свободное время. Как правило, они помогают отвлечься от рутины, экспериментировать с новыми инструментами и знаниями, оттачивать навыки. Pet-проекты могут быть командными или индивидуальными. 

    Каждый программист сам решает, зачем тратить личное время на разработку после восьми часов рабочей разработки.

    Но вот несколько причин, почему стоит уделить время пет-проекту: 

    • Творческая реализация. Разработчик преодолевает рамки своего повседневного функционала, уходит от шаблонности и тренирует креативность. Например, создать чат-бота, который подбирает нужные изображения по запросу. 
    • Профессиональная реализация. Программист «на досуге» решает рабочую задачу через пет-проект. И если тот успешно закрывает задачу, его можно показать команде. Кто знает, вдруг это принесет финансовое или карьерное поощрение. 
    • Рост привлекательности резюме. HR охотнее позовет на работу человека, который развивается в своей сфере, постоянно что-то генерит. 

    Какие pet-проекты можно написать на Go 

    Go идеально подходит для создания различных проектов, от простых утилит до более сложных систем. Даже если вы только начинаете изучать этот язык, существует множество идей для пет-проектов, которые помогут вам развивать навыки и понять основные возможности Go. Вот несколько интересных проектов, которые можно реализовать, даже имея базовые знания языка:

    1. Консольный калькулятор
      Простая программа, которая позволяет выполнять базовые арифметические операции. Этот проект поможет вам освоить работу с переменными, операторами и условными конструкциями, а также научиться обрабатывать ввод данных.
    2. Парсер веб-страниц (Web Scraper)
      Напишите парсер, который будет извлекать информацию с веб-страниц, например заголовки новостей или курсы валют. Этот проект позволит вам ознакомиться с библиотеками для работы с HTTP-запросами и парсинга HTML, такими как net/http и golang.org/x/net/html.
    3. Менеджер задач (To-Do List)
      Создайте приложение, которое будет хранить список задач, позволяя пользователю добавлять, удалять и помечать задачи как выполненные. Этот проект научит вас работать с файлами или базами данных для хранения информации, а также с горутинами для параллельного выполнения операций.
    4. Чат-бот для Telegram
      Разработайте чат-бота, который будет взаимодействовать с пользователями через Telegram. Этот проект поможет вам освоить работу с API, а также даст практический опыт в создании серверных приложений с использованием Go.
    5. Сервер для хранения заметок
      Реализуйте простой сервер, который будет позволять пользователям добавлять, редактировать и удалять текстовые заметки. Это может быть веб-приложение, использующее Go в качестве backend-части, что поможет вам понять, как создавать RESTful API и работать с HTTP.
    6. Мониторинг серверов
      Напишите программу для мониторинга состояния серверов или сервисов, которая будет собирать данные о состоянии системы (например, использование CPU, память, дисковое пространство) и отправлять уведомления при достижении критического значения. Это поможет вам освоить работу с системными метриками и сетевыми запросами.

    Эти проекты можно расширять и адаптировать под ваши интересы, а также использовать как основу для более сложных решений. Главное — не бояться экспериментировать и учиться на практике!

    От пет-проекта до успешного продукта

    Проекты на Go, которые сначала были Pet, но превратились в полноценные и известные продукты.

    1. Docker

    Docker — это ПО для контейнеризации приложений, которая упрощает их развертывание и управление. Оно позволяет «поместить» приложение со своим окружением и зависимостями в контейнер, который затем можно поднять на любой Linux-системе

    Использование Docker упрощает процесс разработки, тестирования и развертывания приложений, обеспечивает их переносимость и дает дополнительную безопасность. 

    Язык Go «вписался» в проект за счет параллелизма и производительности для эффективного управления контейнерами. 

    2. Hugo

    Hugo — генератор статических веб-сайтов из текстовых и других типов контента. Высокая мощность языка Go позволяет генерить средний веб-сайт за 1 секунду. Кроме того, внутри Hugo есть встроенные шаблоны для работы с SEO, оптимизацией и аналитикой. А это упрощает процесс создания и настройки веб-сайтов.

    3. Gogs 

    Gogs — это легковесный git-сервис. У продукта практически аналогичный функционал, как у GitHub и BitBucket, но с меньшими системными требованиями и простотой в установке и настройке. Именно быстрый компилятор Go и простой синтаксис сделали Gogs простым в установке и использовании.

    4. Kubernetes

    Kubernetes — это открытая система для автоматизации развертывания, масштабирования и управления контейнеризованными приложениями. Разработанный Google, Kubernetes позволяет эффективно управлять контейнерами в облачных средах, обеспечивая их автоматическую оркестрацию и мониторинг. Он поддерживает управление большими и сложными распределенными системами и значительно упрощает процесс развертывания приложений в продакшн-средах.

    Pet-проекты можно писать только на Go? 

    Нет, для пет-проектов можно использовать любой язык — все зависит от того, какой продукт вы хотите создать. Поэтому перед созданием «проекта для души» твердо решите, что именно хотите написать, с каким функционалом. 

    Например, разработчик задумал игру, а в качестве языка выбрал Go. Конечно, такое развитие событий возможно. Но для ускорения процесса, улучшенного качества игры лучше использовать C++ или Unity. Эти языки имеют более развитые игровые движки и экосистемы. Go в этом случае можно не вычеркивать, а отвести ему второстепенную роль. 

    Собрали список языков, которые также можно использовать для пет-проектов. Кроме того, эти языки напоминают про основные концепции программирования или дают представление о них. А это пригодится, если вы новичок и решили развиваться в Go, который взял ряд ключевых особенностей у более старшего синтаксиса.

    Языки, на которых можно писать pet-проекты и заодно тренировать понимание Go:

    1. Python

    Python — в меру простой язык, что делает его отличным введением в программирование. Go взял из Python простоту разработки и лаконичность кода.

    1. C++

    C++ дает понимание, как работает низкоуровневый доступ к памяти и ресурсам. Go заимствовал у C++ фичи, которые отвечают за скорость работы с памятью и производительностью. 

    1. Java

    Java является объектно-ориентированным языком. С его помощью можно понять основные концепции программирования, например классы и объекты. Go также использует ряд концепций из Java, например интерфейсы и методы.

    1. JavaScript и C#

    JavaScript поможет в понимании основ работы с асинхронным программированием и параллелизмом. А C# дает опыт работы с объектно-ориентированным программированием и многопоточностью, что пригодится для понимания аналогичных концепций в Go. Go использует горутины и каналы для параллельного выполнения задач. Это напоминает работу с асинхронными функциями в JavaScript и многопоточностью в C#. 

    Подборка

    Поделиться

    Скопировано
    0 комментариев
    Комментарии