Los programadores cambian al desarrollo de Golang sin fundamento, solo lea este artículo (que incluye notas del tutorial de autoaprendizaje 30G)

El desarrollo del lenguaje Go es cada vez mejor. Muchas empresas importantes usan Go como el lenguaje de desarrollo principal, y muchas personas han comenzado a aprender Go y están listas para cambiar al desarrollo Go.

Entonces, ¿cómo aprenderlo?

Descubrí que en la era de Internet, la dificultad de aprender no es que no haya materiales, sino que hay demasiados materiales y no sé cuál leer ni por dónde empezar.

Por eso, compilé una ruta de aprendizaje de Go. Esta ruta de aprendizaje no gana por cantidad, sino que se esfuerza por agilizarse. De básico a avanzado, de teoría a combate real, incluye los siguientes contenidos:

  • Tutorial de introducción
  • Tutoría avanzada
  • recomendación de libros
  • desarrollo web
  • Proyecto práctico
  • Utilidades
  • comunidad técnica

1. Tutorial de introducción

1.1. Sitio web chino del idioma Go: tutorial introductorio del idioma Go

Este conjunto de tutoriales de lenguaje Go es fácil de entender y fácil de entender. No solo es adecuado para lectores sin fundamento para comenzar rápidamente, sino también para programadores que han trabajado durante muchos años para verificar puntos de conocimiento.

1.2 Tutorial de Cainiao - Tutorial de idioma Go

Este sitio web no necesita presentación, ya que aquí se pueden encontrar muchos tutoriales introductorios para lenguajes de programación. En el proceso de escritura del código, si olvida un determinado punto de conocimiento, también puede consultarlo aquí.

1.3. W3Cshcool - Ir Tutorial

También es un sitio web completo de tutoriales de introducción a la programación, con mucha información y muy básico.

1.4、Ir por ejemplo

Muchos ejemplos de código, útiles para aprender los conceptos básicos. Puede consultar este sitio web para escribir código mientras lee la teoría, el efecto será mejor.

1.5 Documentación de Gopher

Se puede decir que es un sitio web de navegación para la programación de Go, y ha recopilado una gran cantidad de materiales de aprendizaje de Go. Incluyendo sitios web, libros, bibliotecas de código abierto, proyectos de código abierto, etc.

 

2. Tutoría avanzada

2.1 blog de mojotv

Muy buen blog, hay muchos artículos avanzados de Go, así como otros artículos técnicos, que vale la pena leer. Traté de encontrar la información del autor, pero no pude encontrarla.

2.2 Pescado frito - Filosofía de diseño del lenguaje Go

Combinando la información oficial y la propia comprensión del autor, el blog de Jianyu Daxie ha seleccionado una serie de artículos relacionados con el concepto y la filosofía del diseño del lenguaje Go.

2.3 Programación orientada a la fe: diseño e implementación del lenguaje Go

El blog de Zuo Shen tiene mucho contenido, si quieres convertirte en un gran dios, debes leerlo.

2.4 Ir a la lectura nocturna

Este es un proyecto de código abierto organizado por muchos Gophers senior, principalmente para interpretar el código fuente de Go. E insista en el código abierto, suba recursos relevantes a GitHub.

 

3. Recomendación de libros

La lista de libros contiene un total de 10 libros, divididos en 5 para principiantes y 5 para avanzados. He leído 7 de ellos, y aunque no he leído los otros 3, están más recomendados en Internet.

Aunque se divide en básico y avanzado, muchos libros contienen ambas partes. Cuando lo vea, puede sentar una base sólida primero y luego avanzar al nivel avanzado de acuerdo con su propia situación.

 Algunos libros son de código abierto y se pueden leer directamente en línea, y algunos tienen libros electrónicos, puede encontrar el método de descarga en GitHub aquí  . Si las condiciones lo permiten, lo mejor es comprar los originales.

3.1 Primeros pasos

①, "Ir a la guía de idioma interesante"

Este libro es un libro para principiantes del idioma Go, y el contenido es relativamente superficial, lo cual es muy adecuado para comenzar.

El libro presenta el conocimiento necesario para usar el lenguaje Go paso a paso, muestra muchos ejemplos vívidos e interesantes y proporciona muchos ejercicios para profundizar la comprensión de los lectores sobre el contenido descrito en el libro.

②, "Guía de inicio rápido"

 

El nombre en inglés de este libro es "The Way to Go", y el autor utiliza su tiempo libre para realizar trabajos de traducción. Es de código abierto con la autorización del autor original Ivo Balbaert.

③, "Ir a la programación de idiomas"

Este libro presenta principalmente las características del lenguaje Go, y los ejemplos intentan utilizar la práctica habitual del autor, en lugar de una muestra de demostración de gramática sin mucha importancia práctica. Al hacer una comparación horizontal con C++ y Java, puede ver de manera más intuitiva la diferencia en sus conceptos de diseño.

El autor Xu Shiwei es el ex arquitecto jefe de Jinshan WPS, ex investigador del Instituto de Innovación Shanda y actualmente es un reconocido experto en el idioma Go en el círculo de práctica del idioma Go nacional. Varios autores que participaron en la redacción de este libro son desarrolladores de proyectos desarrollados en lenguaje Go y tienen una gran experiencia práctica.

④, "Ir Idioma 101"

Es una guía de programación (preparada para Go 1.17) que se centra en la semántica de la sintaxis de Go y los puntos de conocimiento relacionados con el tiempo de ejecución. Este libro tiene como objetivo ayudar a los programadores de Go a comprender el lenguaje Go de la manera más profunda y completa posible.

Este libro también recopila muchos detalles sobre el lenguaje Go y la programación Go, algunos de los cuales nunca se mencionan en la documentación oficial.

Este libro es adecuado tanto para principiantes de Go como para programadores de Go experimentados.

⑤, "Ir a la programación de idiomas"

Este libro está coescrito por el autor Kernighan y Alan Donovan, director del equipo Go de Google, y es un libro de nivel de guía para aprender el lenguaje Go. El contenido es informativo y completo, cubre todo el contenido básico y vale la pena leerlo.

3.2 Avanzado

①, "Ir a combate de lenguaje"

Comparado con otros libros técnicos, este libro es muy delgado. Obviamente, este no es un libro que incluye todo, pero da en el clavo.

En el proceso de lectura, mi mayor sentimiento es que muchas preguntas que encontré en el proceso de lectura de conocimientos básicos, y es difícil encontrar respuestas a través de los motores de búsqueda, han sido respondidas aquí.

②, "Ir a la programación web"

Aprender un idioma no es el objetivo, pero poder utilizar este idioma para trabajar y ganar dinero es el objetivo. Por lo tanto, tengo que aprender la aplicación de Go en la programación Web.

Este libro fue traducido por Huang Jianhong. Este traductor también escribió el libro "Diseño e implementación de Redis". El libro analiza la estructura de datos y las ideas de diseño utilizadas por Redis de una manera simple, lo cual es realmente excelente.

③, "Ir a la programación avanzada del idioma"

Cubre temas avanzados como CGO, ensamblaje Go, implementación de RPC, marcos web, sistemas distribuidos y más. No existe una fuerte conexión entre los capítulos del libro. Cada capítulo es un conocimiento independiente y se puede leer a pedido.

④, "Ir a las notas de estudio de idiomas"

El autor es el Sr. Yuhen, disertante en la primera conferencia GopherChina en 2015.

Este libro está dividido en dos volúmenes:

El primer volumen analiza cuidadosamente los detalles relevantes de la especificación del lenguaje, para que los lectores puedan comprender profundamente los métodos de uso y las precauciones de las funciones relacionadas con el lenguaje.

El segundo volumen realiza un análisis en profundidad del código fuente del tiempo de ejecución y guía a los lectores para que comprendan a fondo el entorno de soporte y el sistema operativo detrás de las funciones del lenguaje, como la asignación de memoria, la recolección de elementos no utilizados y la programación simultánea. Este libro no es adecuado para principiantes en programación, puede usarse como referencia para aquellos que tienen experiencia real en programación o están trabajando con Go.

⑤, "Análisis de los principios subyacentes del lenguaje Go"

Este libro utiliza un lenguaje fácil de entender y una gran cantidad de imágenes para presentar en profundidad el uso y los principios subyacentes de los módulos, como la compilación del lenguaje Go, el sistema de tipos, las características gramaticales, las especificaciones de llamadas a funciones, la programación concurrente, la gestión de memoria y la recolección de elementos no utilizados. y ejecución de la supervisión del estado.

Para los estudiantes que desean comprender los principios subyacentes de Go y leer el código fuente, pueden leer este libro, pero no es fácil comprender completamente el contenido del libro.

3.3 Resumen de la lista de libros

  1. "El lenguaje de programación Go" --- Alan AA Donovan, Brian W. Coynihan
  2. "Ir a la programación de idiomas" --- Xu Shiwei
  3. "Pase a la acción" --- William Kennedy, Brian Ketterson, Eric St. Martin
  4. "Programación del núcleo del lenguaje Go" --- Li Wenta
  5. "Go Language Study Notes" --- Rain Trace
  6. "Ir a programar la concurrencia en la práctica" --- Hao Lin
  7. Primeros pasos con Go
  8. "Ir a la biblioteca estándar de idioma"
  9. "Ir a la programación web"
  10. "Go Language Blog Practice"
  11. "Ir a las notas de estudio de idiomas"
  12. "Programación Avanzada en Lenguaje Go"
  13. 《Ir efectivo》
  14. "Learning Go" versión en inglés => "Learning Go" versión en chino
  15. "Tutorial de Comando Ir"
  16. "Programación de red con Go" => Versión en chino
  17. 《Criptografía práctica con Go》
  18. 《Una introducción a la programación en Go》
  19. 《Ir a Bootcamp》
  20. 《Dominar la concurrencia en Go》 Julio de 2014 Nathan Kozyra
  21. 《Ir a los planos de programación》 23 de enero de 2015
  22. 《El lenguaje de programación Go》 Publicado el 30 de octubre de 2015, Aún no publicado
  23. 《Go práctico: consejos del mundo real para escribir programas Go que se puedan mantener》
  24. "Go Language Bible (versión china)"
  25. "Programación Concurrente en Lenguaje Go"
  26. "Análisis en profundidad de Go"

4. Desarrollo web

Go es un lenguaje de programación de código abierto que facilita la creación de software simple, confiable y eficiente. Además por su sencillez, confiabilidad y eficiencia, tiene las siguientes ventajas al utilizar el lenguaje Go para desarrollar aplicaciones web:

  1. más simple
  2. Mayor capacidad de compilación
  3. mayor rendimiento
  4. Buena compatibilidad con IDE y funciones de depuración
  5. La gramática es simple y fácil de usar.

A continuación se presentan 5 frameworks web de código abierto, los criterios para seleccionarlos son: más estrellas en GitHub, mantenimiento activo, más uso y fácil de encontrar información.

4.1, Ginebra

Dirección del proyecto:  https://github.com/gin-gonic/gin

Un marco web HTTP escrito completamente en lenguaje Go, que proporciona un marco de desarrollo web en lenguaje Go más rápido y de mayor rendimiento.

Este marco es fácil de usar para los principiantes, y entre los marcos web, las estrellas son las más y muchas personas lo usan.

4.2, Términos

Dirección del proyecto:  https://github.com/beego/beego

Beego es un marco de desarrollo de aplicaciones Go de nivel empresarial fácil de usar desarrollado por el experto en desarrollo de lenguaje Go Asta Xie. Tiene un sitio web oficial y tutoriales en chino.

A diferencia de otros lenguajes de marco, Beego no solo proporciona tutoriales gráficos, sino también tutoriales en video, que son muy amigables para los desarrolladores nacionales.

4.3, Iris

Dirección del proyecto:  https://github.com/kataras/iris

El marco Iris se describe en su sitio web oficial como el marco web más rápido para el desarrollo de Go, y se proporciona una comparación de rendimiento entre múltiples marcos y múltiples idiomas.

Si elige un marco de desarrollo web en lenguaje Go con buen rendimiento, liviano y fácil de usar, Iris es una buena opción.

4.4、Eco

Dirección del proyecto:  https://github.com/labstack/echo

Echo es un enrutador HTTP rápido (asignación de memoria dinámica cero) y un pequeño marco web para Go.

Tiene un enrutador HTTP rápido, admite middleware extendido y también admite servicios de archivos estáticos, WebSocket y admite la formulación de funciones de enlace, la formulación de funciones de representación correspondientes y permite el uso de motores de plantillas HTML arbitrarias.

4.5, GoFrame

Dirección del proyecto:  https://github.com/gogf/gf

GoFrame es un marco de desarrollo basado en Go modular, de alto rendimiento y de nivel empresarial. GoFrame no es un marco WEB/RPC, sino un marco de desarrollo básico de propósito general. Es un nivel de extensión mejorado de la biblioteca estándar de Golang, que incluye componentes de desarrollo básicos comunes.

Las ventajas son el combate real, la modularización, la documentación completa, los módulos enriquecidos, la gran facilidad de uso, la gran versatilidad y la orientación al equipo.

En general, este proyecto tiene una documentación completa en chino y bibliotecas de desarrollo periférico, un área activa de discusión de problemas y un buen diseño modular del proyecto.

Estos cinco proyectos de código abierto tienen sus propias ventajas y desventajas.Algunos han sido verificados por el mercado y son ampliamente utilizados, algunos son estrellas en ascenso y se desarrollan rápidamente.

Puedes elegir lo que te interesa aprender y usar.

5. Proyecto práctico

Después de aprender la teoría, el siguiente paso es el combate real y comenzar a trabajar en proyectos. Además del desarrollo web, hay muchas direcciones para elegir, como db, cache, im, etc. Y como proyecto de práctica, no debe ser demasiado complicado, de lo contrario no se entenderá en absoluto, dañará la confianza y no logrará el efecto del ejercicio.

Aquí he elegido proyectos 5. En general, la cantidad de código no es muy grande y la dificultad es moderada. Y diferentes proyectos pueden aprender diferentes puntos técnicos, puede elegir lo que le interesa probar.

5.1, creador de id

Dirección del proyecto:  https://github.com/yongxinz/id-maker

Un sistema distribuido de generación de ID único desarrollado en Go.

La cantidad de código es pequeña y la dificultad general del proyecto es pequeña. A través de este proyecto, puede adquirir conocimientos sobre httpServer y gRPC.

5.2, caché2go

Dirección del proyecto:  https://github.com/muesli/cache2go

Una biblioteca de caché relativamente simple con una pequeña cantidad de código, adecuada para que los principiantes aprendan. A través de este proyecto, puede aprender sobre bloqueos, rutinas y otros conocimientos.

5.3

Dirección del proyecto:  https://github.com/flower-corp/rosedb

rosedb es un motor de almacenamiento kv integrado, rápido, estable y de alto rendimiento que admite múltiples estructuras de datos, incluidas cadenas, listas, hash, conjuntos, conjuntos ordenados, y el estilo de nombre de la interfaz es similar a Redis.

El proyecto está implementado en Golang puro, y se incluyen la mayoría de los puntos básicos de conocimiento del lenguaje Go. Creo que debe ser un muy buen proyecto para aprender y consolidar Golang.

Además, hay algunas implementaciones de estructuras de datos en el código, por lo que también puede aprender sobre estructuras de datos al mismo tiempo.

5.4, ​​wechat-go

Dirección del proyecto:  https://github.com/songtianyi/wechat-go

Esta es la implementación del lenguaje Go de la API de la versión web de WeChat, que simula las funciones de inicio de sesión/contacto/envío y recepción de mensajes de la versión web de WeChat, que puede hacerse cargo por completo de los mensajes recibidos por WeChat y personalizar su propio contenido de envío.

Creo que este proyecto es bastante interesante. Puede usarse para operar WeChat y experimentar más diversión de aprendizaje.

5.5, gin-vue-admin

Dirección del proyecto:  https://github.com/flipped-aurora/gin-vue-admin

gin-vue-admin es un sistema de administración de fondo de pila completa que usa gin + vue para un desarrollo extremadamente rápido. El fondo usa el marco gin, y el front-end usa principalmente vue.

La estructura de directorios del proyecto es muy clara y el nombre del paquete es semántico, lo que puede ayudarlo a aprender rápidamente.

Este proyecto también utiliza algunas bibliotecas populares de código abierto y middleware de Go, como:

  • gin: el marco web de lenguaje Go más popular
  • gorm: middleware de operación de base de datos
  • zap: biblioteca de registro de código abierto de uber para el lenguaje Go
  • caché redis:kv

Además, este proyecto también tiene documentos chinos detallados y videos de enseñanza de apoyo, que vale la pena aprender.

6. Herramientas prácticas

A medida que el editor se vuelve más y más poderoso, las funciones de algunos sitios web pequeños y hermosos han sido reemplazadas por el editor, pero aún no impide que me gusten, y los recomiendo a todos a continuación.

6.1, Estructura JSON to Go

Enlace del sitio web:  JSON-to-Go: convierta JSON to Go al instante

6.2, Estructura YAML to Go

网站链接:  YAML-to-Go: Convierte YAML to Go al instante

6.3, Estructura Table to Go

Enlace del sitio web:  https://github.com/gohouse/converter

Hay dos formas de usarlo, a saber, llamando desde la línea de comando y escribiendo código Go.

6.4, Regresar

Enlace al sitio web:  http://regoio.herokuapp.com/

Vaya a la prueba regular de idiomas en línea.

6.5, plantUML

Enlace al sitio web:  Dumels

Este sitio analiza un proyecto Go y genera diagramas UML de interfaces y estructuras. Con esta imagen, básicamente tiene un concepto básico de la relación general del proyecto, y luego lee el código fuente, será relativamente más fácil.

6.6, Zona de juegos

Enlace al sitio web:  Go Playground - El lenguaje de programación Go

El código de idioma Go se ejecuta en línea.

7. Comunidad técnica

Ahora, la comunidad técnica puede ver cada vez menos gente y no es tan activa. Desde mi experiencia personal, lo mismo es cierto.Si tiene alguna pregunta, puede buscarla directamente en Google y, básicamente, no irá a la comunidad técnica para verificar y preguntar.

Aquí hay algunos que creo que son bastante buenos, y puedes navegar en tu tiempo libre.

Supongo que te gusta

Origin blog.csdn.net/Cloud_Native/article/details/128022626
Recomendado
Clasificación