Введение:

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

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

День 1–7. Создание RESTful API и подключение к базе данных SQL

Первая неделя плана посвящена изучению того, как создать RESTful API с использованием пакета «net/http» и популярной веб-инфраструктуры Go, такой как Echo или Gin.

Вы также узнаете о пакете базы данных/SQL Go, подключившись к базе данных SQL и создав операции CRUD для простой модели. Это даст вам прочную основу для создания более продвинутых веб-приложений на Go.

Некоторые идеи проекта, которые вы можете использовать для этого:

  1. Создайте простой RESTful API для приложения со списком дел, используя веб-фреймворк Echo или Gin. API должен поддерживать основные операции CRUD для элементов списка дел и использовать базу данных SQL для хранения данных.
  2. Создайте простой RESTful API для приложения блога, используя веб-фреймворк Echo или Gin. API должен поддерживать основные операции CRUD для постов и комментариев в блогах и использовать базу данных SQL для хранения данных.
  3. Создайте простой RESTful API для приложения для социальных сетей, используя веб-фреймворк Echo или Gin. API должен поддерживать основные операции CRUD для пользователей, сообщений и комментариев и использовать базу данных SQL для хранения данных.

День 8–14. Параллелизм и сетевые протоколы

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

Вы также узнаете о встроенной в Go поддержке сетевых протоколов, создав простую программу, использующую пакет «net» для реализации клиента или сервера TCP или UDP. Эти навыки будут полезны для создания высокопроизводительных параллельных систем на Go.

Некоторые идеи проекта, которые вы можете использовать для этого:

  1. Создайте простое приложение для чата, использующее горутины и каналы для обработки нескольких одновременных подключений. Приложение должно поддерживать базовые функции чата и использовать пакет net для реализации клиента или сервера TCP или UDP.
  2. Создайте простое приложение для обработки изображений, которое использует горутины и каналы для одновременной обработки нескольких изображений. Приложение должно поддерживать основные операции обработки изображений, такие как изменение размера и обрезка.
  3. Создайте простую многопользовательскую игру, в которой используются горутины и каналы для обработки нескольких одновременных подключений. Игра может быть простой карточной игрой, такой как «Война» или «Рыбак», или простой настольной игрой, такой как «Крестики-нолики».

День 15–21. Приложения командной строки, веб-сборка и просмотр веб-страниц

На третьей неделе вы узнаете о поддержке Go для создания приложений командной строки путем создания простого инструмента командной строки с использованием пакетов «flag» и «os».

Вы также узнаете о поддержке Go для создания приложений веб-сборки, создав приложение веб-сборки с помощью пакета «syscall/js», и узнаете о парсинге веб-страниц с помощью таких пакетов, как «colly» или «goquery».

Некоторые идеи проектов для этого:

  1. Создайте простой инструмент командной строки, который использует пакеты «flag» и «os» для реализации основных функций. Инструмент может быть простым файловым менеджером, калькулятором или приложением прогноза погоды.
  2. Создайте простое приложение веб-сборки, которое использует пакет «syscall/js» для доступа к API-интерфейсам JavaScript. Приложением может быть простая игра, например браузерная версия тетриса или змейки.
  3. Создайте простой веб-скребок, который использует пакет «colly» или «goquery» для сбора данных с веб-сайта. Скребок можно использовать для сбора данных по определенной теме, например, текущих новостных статей или последнего прогноза погоды.

День 22–28. Распределенные системы и параллелизм

На четвертой неделе вы узнаете о поддержке Go для создания распределенных систем путем создания распределенной системы с использованием встроенной в Go поддержки RPC или популярной среды Go RPC, такой как gRPC.

Вы также узнаете о поддержке Go для создания параллельных и параллельных систем, создав параллельную программу, используя встроенную поддержку параллелизма Go или используя популярную библиотеку параллелизма Go, такую ​​​​как «Go-Parallel».

Эти навыки будут полезны для создания масштабируемых высокопроизводительных систем на Go.

Некоторые идеи проекта для этого:

  1. Создайте простую распределенную систему, используя встроенную в Go поддержку RPC или популярную платформу Go RPC, такую ​​как gRPC. Система может быть простым файловым сервером, где несколько клиентов могут загружать и скачивать файлы с центрального сервера.
  2. Создайте простую параллельную программу, используя встроенную в Go поддержку параллелизма или популярную библиотеку параллелизма Go, например Go-Parallel. Программа может быть простым приложением для обработки изображений, использующим параллелизм для ускорения операций обработки изображений.
  3. Создайте простое распределенное хранилище ключей и значений, используя встроенную в Go поддержку параллелизма и распределения. Хранилище ключей и значений должно иметь возможность горизонтального масштабирования за счет добавления дополнительных узлов для обработки возросшей нагрузки.

День 29–30: Обзор и консолидация

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

Это даст вам возможность задуматься о своем прогрессе и увидеть, как далеко вы продвинулись. Вам также следует подготовить документацию, ознакомительные файлы и другую информацию для вашего портфолио.

Некоторые вещи, которые вы можете сделать для этого:

  1. Просмотрите все проекты, которые вы создали в течение 30-дневного плана, и попытайтесь выявить закономерности и общие черты в написанном вами коде.
  2. Закрепите свои знания, создав небольшой проект, в котором используются все концепции, которые вы изучили. Это может быть простое веб-приложение, объединяющее элементы всех других проектов, которые вы создали.
  3. Подготовьте документацию, ознакомительные сведения и другую сопутствующую информацию для вашего портфолио. Убедитесь, что все ваши проекты хорошо документированы и понятны другим.

Вывод:

Этот 30-дневный план — отличный способ начать создавать портфолио проектов Go. План разработан, чтобы помочь вам изучить основы Go и создать разнообразный набор проектов, которые вы можете добавить в свое портфолио.

Не забывайте документировать свой прогресс, делать заметки и сохранять фрагменты кода, которые вы считаете полезными, чтобы вы могли ссылаться на них позже. И выбирайте проекты, которые соответствуют области, в которой вы хотите сосредоточиться, или отрасли, в которой вы хотите работать. Цель этого плана — предоставить вам разнообразный набор проектов, чтобы продемонстрировать свои навыки разработчика Go.