Go 非常适用于开发 Web 应用程序,但是因其简单的语言特性,入门经常会遇到问题,以至于让人觉得不知所措。
你有没有这样的情况:
在阅读了无数悠长的课程 如 《Go 入门指南》 、大量的免费快速入门的博文(语法、数据库连接、标准库教程等…),以及看了无数代码示例后,仍在疑惑自己是否真正掌握 Go 编程?
问题在于 我们阅读的每个教程都过于简化,我们需要的是一门综合课程,展示所有部分如何协同工作。
学习 Go 语法或简单的示例无法让你学会构建 Web 应用。这有点像有人递给你一个工具箱,教我如何使用每种工具,你仍然无法掌握『盖房子』一样。
开发 Web 应用需要复杂的系统性知识。涉及的知识点非常广泛,例如表单验证、登录授权验证、共享数据库连接、密码哈希、代码组织(MVC/RESTful)等,我们需要利用一个项目,把这些知识点组合在一起。
本课程,我们会开发 goblog 这个项目,从打地基开始,一起感受盖房子的所有过程。
本课程虽是构建 Web 程序,但也可作为学习 Go 编程的入门课程。
编码上我们遵循 Go 官方推荐的编码规范和最佳实践。
功能的开发上,我们会优先使用 Go 标准库来解决一些特定问题,且会告诉你标准库的局限性,然后我们会使用第三方库来做重构,以期在掌握 Go 基础知识的同时告知你解决此问题的最佳方案。Go 标准库好用,但是大部分情况下我们会选择构建在其之上的第三方库来完成任务,因为工作中我们就是这么干的。
我们构建的不是一个玩具项目,而是可直接拿来用在生产环境中,或者作为某个大型项目的地基项目。而构建此项目的知识,你可以放心的在工作生产中使用。
git clone https://github.com/summerblue/goblog.git
cd goblog
cp .env.example .env
使用编辑器打开 .env 文件,并对里面的信息做相应配置,尤其是数据库信息。
go run .