Ir al idioma del 0 al 19|Ir al mes del tema

Gestión de Ingeniería

Continúe aprendiendo sobre gestión de ingeniería en lenguaje Go. ¡He estado trabajando horas extras últimamente!

organización de ingeniería

La gestión de la organización del proyecto de golang utiliza completamente la estructura del directorio y el nombre del paquete para deducir la estructura del proyecto y el orden de construcción.

GOPATH

La variable de entorno GOPATH es algo que debe mencionarse antes de discutir la organización de ingeniería. La mayoría de las funciones de Gotool ya no son para el directorio actual, sino para el nombre del paquete, por lo que la forma de localizar el código fuente correspondiente recae en GOPATH. El entendimiento literal es encontrar la ruta del nombre del paquete a través de GOPATH, para ubicar el código fuente del que se debe depender.

Supongamos que tiene dos códigos de proyecto Go. Por ejemplo, mi proyecto generalmente se lee y se coloca en el directorio de trabajo en Documentos locales. /Users/leixiaohong/Documents/work/go-juejin1Otro proyecto Go está en /Users/leixiaohong/Documents/gowork/go-juejin2GOPATH y se puede configurar para:

export GOPATH=/Users/leixiaohong/Documents/work/go-juejin1:/Users/leixiaohong/Documents/gowork/go-juejin2
复制代码

Después de esta configuración, puede compilar los dos proyectos anteriores en cualquier ubicación. De hecho, creo que es un poco como configurar variables de entorno.

Estructura de directorios

Un proyecto de lenguaje Go estándar contiene los siguientes directorios: src, pkg y bin. El directorio src se usa para contener todo el código fuente, que es una regla obligatoria de Gotool, mientras que pkg y bin no necesitan crearse manualmente. Si es necesario, Gotool creará automáticamente estos directorios durante el proceso de compilación.

<calcproj> 
    ├─README 
    ├─AUTHORS 
    ├─<bin> 
        ├─calc 
    ├─<pkg> 
        └─<linux_amd64> 
            └─simplemath.a 
    ├─<src> 
        ├─<calc> 
            └─calc.go 
        ├─<simplemath> 
            ├─add.go 
            ├─add_test.go 
            ├─sqrt.go 
            ├─sqrt_test.go
复制代码
  • LÉAME: Todos los proyectos de código abierto tienen LÉAME, que es principalmente una breve introducción al proyecto. Por lo general, lo primero que hay que ver en el proyecto es leer este documento.
  • LICENCIA: El protocolo de distribución adoptado por este proyecto.Todos los proyectos de código abierto suelen tener este archivo.
  • src: todo el código fuente, por ejemplo, significa que el código original se divide en calcdos paquetes y simplemathel código fuente xxx.go se almacena en él, respectivamente.
  • bin&pkg: Generalmente, los directorios bin y pkg se pueden crear sin crearlos, y el comando go los creará automáticamente.

gestión de documentos

Para los programadores, lo que llamamos documentación se refiere a comentarios, funciones y descripciones de entrada, salida, función y parámetros de la interfaz en el código, que juegan un papel crucial en el mantenimiento y la reutilización posteriores. Escriba el comentario y ejecute el godoc -http=:90 -path="."comando directamente, y luego acceda al enlace en el navegador http://localhost:90/para ver el documento de la página comentada. Para extraer comentarios como documentos, siga las reglas básicas a continuación.

  • 注释需要紧贴在对应的包声明和函数之前,不能有空行
  • 注释如果要新起一个段落,应该用一个空白注释行隔开,因为直接换行书写会被认为是正常的段内折行。
  • 开发者可以直接在代码内用// BUG(author): 的方式记录该代码片段中的遗留问题,这些遗留问题也会被抽取到文档中。

其实我觉得对于程序员来说最好的注释文档就是看代码,代码简洁到能看懂就ok。Go语言在这方面做的足够好。

工程构建

在有GOPATH配置的前提下,直接用go build命令来执行构建,但需要注意的是,在你构建可执行程序工程时,会在你所在的目录中生成可执行程序。如果你不希望calc到处都是,就选择一个你期望的目录, 比如go-juejin1目录下的bin目录。

$ go build calc
复制代码

下一步是将构建成功的包安装到恰当的位置,具体指令如下:

$ go install calc
复制代码

如果之前没有执行过go build命令,则go install会先执行构建,之后将构建出来的calc可执行文件放到bin目录下。如果目标工程是一个包,则会放置到pkg目录中对应的位置 pkg/linux_amd64/simplemath.a:

$ go install simplemath
复制代码

后话

先写到这里,其实这个活动快到尾声了,说点心里话吧其实参加这个活动开始是看上奖品,其实有想过去刷题,但是我对Go语言语法不懂,对我自身没有任何好处,所以我选择看书,然后再加上自己的小小理解,写文章,写的很多不对的地方见谅,但是对我来说我多少学到了很多Go语言的知识,Go的函数多返回值,和对Error的处理,对我印象很深刻,包括Go的多线程编程,线程之间的通信等都让我眼前一亮,我发现自己很多知识知道但是不知道怎么表达出来,我准备在掘金把我表达不出来的java知识写出来这是后话,看书写文章,然后通过写文章把知识讲出来,来达到理解的程度。也是监督自己读书的一个习惯吧。自己看一遍,再写一遍,然后发布的时候我为了检查错别字还需要看一遍文章,一个知识点读三遍,比看一遍有作用多了吧!好了废话凑的都快400字了,闪了。

备注

本文正在参与「掘金Golang主题学习月」, 点击查看活动详情

Supongo que te gusta

Origin juejin.im/post/6954576579808722952
Recomendado
Clasificación