인기 있는 소프트웨어를 다시 작성하여 Golang 기술 향상

13863 단어 tutorialprogramminggo
배우는 가장 빠른 방법은 직접 해보는 것입니다. Golang 언어에 대한 기술과 지식을 향상시키기 위해 무엇을 해야 할지 잘 모르겠다면 이 기사에서 Golang을 사용하는 널리 사용되는 소프트웨어를 다시 작성하는 방법을 보여주는 몇 가지 문서를 소개하겠습니다.



이러한 자습서는 Github 저장소Build Your Own X에서 제공됩니다. 인기 있고 유용한 Github 리포지토리입니다.

BitTorrent 클라이언트 구축



위키백과에서:

BitTorrent is a communication protocol for peer-to-peer file sharing, which enables users to distribute data and electronic files over the Internet in a decentralized manner.



아래의 이 자습서는 Golang 언어를 사용하여 BitTorrent 소프트웨어를 작성하는 데 도움이 됩니다.

Building a BitTorrent client from the ground up in Go .



블록체인/암호화폐 구축



우리가 암호화폐에 대해 안다면 블록체인은 아마도 새로운 것이 아닐 것입니다. 이것은 최근 몇 년 동안 뜨거운 주제였습니다. 다음은 Go를 사용하여 블록체인을 구축하는 방법에 대한 자습서 시리즈입니다.

Building Blockchain in Go .



빌드 명령줄 도구



다음으로 CLI 도구 구축에 대한 이 자습서에서는 CLI 도구를 작성할 때 운영 체제를 더 잘 이해할 수 있습니다. 다음은 네 가지 CLI 도구를 빌드하는 방법을 보여주는 네 가지 자습서입니다.

Visualize your local git contributions with Go .

Build a command line app with Go: lolcat .

Building a CLI command with Go: cowsay .

Go CLI tutorial: fortune clone .



컨테이너 구축



Go로 컨테이너 런타임을 작성하는 방법에 대한 튜토리얼은 내가 읽은 것 중 최고입니다. 이 기사에서 저자는 컨테이너 작동 방식과 Golang을 사용하여 컨테이너를 빌드하는 방법을 설명할 것입니다. 이 게시물은 훌륭합니다. 이것은 Golang 언어와 Linux OS의 작동 방식을 좀 더 이해하는 데 도움이 되는 기사입니다. Julian Friedman과 Liz Rice에게 감사드립니다.

Build Your Container Using Less than 100 Lines of Go .

.



빌드 게임



Golang을 사용하여 게임을 작성할 수 있다고 생각한 적이 있습니까? 그렇지 않은 경우 이 문서에서 안내해 드립니다.

.



신경망 구축



AI를 한다면 Neural Network를 알아야 합니다(몰라요 😂). 아마도 우리는 종종 Python으로 AI 모델을 작성합니다. 도전하고 싶다면 Go로 AI 모델을 구축해 보세요.

Build a multilayer perceptron with Golang .

How to build a simple artificial neural network with Go .

Building a Neural Net from Scratch in Go .



빌드 쉘



셸에 대한 가장 간단한 설명은 키보드에서 명령을 받아 운영 체제에 전달하여 수행하도록 하는 프로그램입니다. 아래 문서는 Go를 사용하여 셸 인터페이스를 작성하는 방법을 안내하며 읽은 후 셸 작동 방식을 더 잘 이해할 수 있습니다.

Writing a simple shell in Go .

이 자습서에서 Simon Jürgensmeyer는 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()
}


부하 분산기 빌드



Load Balancer는 서버에서 작업하는 여러분에게 낯설지 않을 것입니다. 로드 밸런서는 서버 앞에 있는 트래픽 분할 역할을 하고 모든 서버에서 클라이언트 요청을 라우팅합니다. Load Balancer를 작성하면 LB에 대한 많은 지식을 더 잘 이해하는 데 도움이 됩니다. Go를 사용하여 직접 Load Balancer를 구축하는 방법에 대한 자습서입니다.

Let's Create a Simple Load Balancer .



결론



이 기사에서는 아직 읽지 않은 위의 많은 기사를 배우고 기술을 향상시키는 데 유용한 리소스를 소개하고 싶습니다 😁. Go 외에도 위에서 소개한 Github 리포지토리에는 다른 언어로 작성된 다른 좋은 기사가 많이 있으므로 가서 확인하십시오. 매우 유용합니다.

좋은 웹페이지 즐겨찾기