Совершенствуйте свои навыки работы с Golang, переписывая популярные программы

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

Эти руководства взяты из репозитория Github Build Your Own X. Популярный и полезный репозиторий Github.

Создание BitTorrent-клиента

Из Википедии:

BitTorrent — это коммуникационный протокол для однорангового обмена файлами, который позволяет пользователям децентрализованно распространять данные и электронные файлы через Интернет.

Этот учебник ниже поможет вам написать программное обеспечение BitTorrent, используя язык Golang.

Создание клиента BitTorrent с нуля на языке Go.

Построение блокчейна/криптовалюты

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

Создание блокчейна в Go.

Построение инструмента командной строки

Далее эти уроки по созданию инструментов CLI, при написании инструментов CLI мы будем лучше понимать операционную систему. Здесь представлены четыре урока, которые покажут вам, как создать четыре различных CLI-инструмента.

Визуализация локального вклада в git с помощью Go.

Создание приложения командной строки с помощью Go: lolcat.

Создание команды CLI с помощью Go: cowsay.

Учебник по Go CLI: fortune clone.

Сборка контейнера

Учебник о том, как написать свой Container Runtime с помощью Go — лучшее, что я читал, в этой статье автор объясняет нам, как работают контейнеры, и как использовать Golang для их создания, этот пост великолепен. Это та статья, которая поможет вам немного лучше понять язык Golang и то, как работает Linux OS. Спасибо Джулиану Фридману и Лиз Райс.

Создайте свой контейнер, используя менее 100 строк Go.

Создание контейнера с нуля в Go — Видео.

Построение игры

Думали ли вы когда-нибудь, что Golang можно использовать для написания игр? Если нет, то эта статья поможет вам.

Игры с помощью Go — видео.

Построение нейронной сети

Если вы занимаетесь искусственным интеллектом, вы должны знать нейронные сети (я не знаю их 😂). Возможно, мы часто пишем модели ИИ на Python, если вы хотите бросить себе вызов, попробуйте построить модель ИИ с помощью Go.

Постройте многослойный перцептрон с помощью Golang.

Как построить простую искусственную нейронную сеть с помощью Go.

Построение нейронной сети с нуля на Go.

Построение оболочки

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

Написание простой оболочки на языке Go.

В этом руководстве Саймон Юргенсмайер покажет вам, как перекодировать простую оболочку менее чем за 80 строк кода.

package main

import (
    "bufio"
    "errors"
    "fmt"
    "os"
    "os/exec"
    "os/user"
    "strings"
)

func main() {
    reader := bufio.NewReader(os.Stdin)
    for {
        path, err := os.Getwd()
        if err != nil {
            fmt.Fprintln(os.Stderr, err)
        }

        hostname, err := os.Hostname()
        if err != nil {
            fmt.Fprintln(os.Stderr, err)
        }

        currentUser, err := user.Current()
        if err != nil {
            fmt.Fprintln(os.Stderr, err)
        }

        path = strings.Replace(path, "/home/"+currentUser.Username+"", "~", -1)

        fmt.Printf("%s@%s:%s$ ", currentUser.Username, hostname, path)

        // Read the keyboad input.
        input, err := reader.ReadString('n')
        if err != nil {
            fmt.Fprintln(os.Stderr, err)
        }

        if err := execInput(input); err != nil {
            fmt.Fprintln(os.Stderr, err)
        }
    }
}

func execInput(input string) error {
    input = strings.TrimSuffix(input, "n")

    args := strings.Split(input, " ")

    switch args[0] {
    case "cd":
        if len(args) < 2 {
            return errors.New("path required")
        }

        return os.Chdir(args[1])
    case "exit":
        os.Exit(0)
    }

    cmd := exec.Command(args[0], args[1:]...)

    cmd.Stderr = os.Stderr
    cmd.Stdout = os.Stdout

    return cmd.Run()
}
Вход в полноэкранный режим Выход из полноэкранного режима

Построение балансировщика нагрузки

Балансировщик нагрузки, вероятно, не знаком вам, ребята, работающие на сервере. Балансировщик нагрузки действует как разделитель трафика, сидя перед вашими серверами и маршрутизируя запросы клиентов между всеми серверами. Написание своего балансировщика нагрузки поможет вам лучше понять многие знания о LB. Это руководство о том, как самостоятельно создать балансировщик нагрузки с помощью Go.

Давайте создадим простой балансировщик нагрузки.

Заключение

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

Оцените статью
devanswers.ru
Добавить комментарий