# go18

课件的地址: https://gitee.com/infraboard/go-course/blob/master/v2.md#%E9%A1%B9%E7%9B%AE%E8%AF%BE


# 开发语言

1. 无数据结构解释型: Bash(没有数据结构), 简单的任务, 不适合做 API集成, 工作当中的提效工具(个人话)
2. 动态解释型: 脚本执行引擎(解释器): PHP, Python, Javascript, Lua, Perl, Ruby，Grovy 可以做项目, 逻辑简单的小型项目, 简单API任务的处理(高级脚本)
3. 静态解释型(gc): 大型运行时: Java, C# 大型项目(业务开发的主流, 框架成熟)
4. 静态编译型(gc)： Go, 仓颉 (LLVM)
5. 静态编译型(不带gc)：C, C++, Zig, Rust, Swift

程序设计:
1. 需求收集，具体问题分析, 给出具体的解
2. 问题抽象，建立这类问题的 通用解决模型(程序设计)
3. 架构与实现

## 关于项目 项目课整体介绍(16天)

+ Book Api Server
+ 用户中心
+ 应用中心
+ 审计中心
+ 资源中心(CMDB)
+ 发布中心
+ 应用流水线

## 项目课要求与注意事项，以及课件使用方式

项目课的环境: mac/linux, windows
+ go1.24.1
+ vscode
+ 我很多操作是在命令行

注意事项:
+ 代码要自己一行一行的写，不要copy代码, 如何学会排除问题，才是开发的起步
+ 思维的转变, 不怕报错，认真查看报错原因, 节奏AI工具帮忙分析: 程序一次写完，能正常运行是巧合，一运行 就报错 这才是正常情况
+ 持之以恒, 每天都写一点, 如果时间不够，写一个函数或者少写，程序开发 是吃熟练读的工作, 程序开发 是偏实践，需要大量练习
+ 项目里面 添加自己的文档和思考, 也会查阅 周边资料，都是你回顾的重要途径
+ 如何在群里面问项目相关的问题? 最后提出 项目的代码链接

关于项目的作业:
+ 创建一个自己的代码仓库: github/gitee, 要public, 然后给到我, 同学们相互参考
+ 作业评分(完成程度， 自己的思考(文档), 是否自己有扩展实现， 是否有demo), 成绩优秀者 有奖品

项目仓库使用方式:
+ 每一小节 打一个tag, 更加tag 来看 视频章节的代码
+ 可以随时浏览 项目代码，加深理解 (不要等到有环境的时候才开始看代码)
+ 程序中所有的项目都会放到 这个仓库, 这是为了方便你们好找项目代码，如果是自己做项目，就自己一个项目一个仓库，这才是企业里面的主流方式

整个Go18 是一个工程, 里面示例代码 分为多模块

```sh
# 你的这个包, 就能直接被 外部通过import使用
go mod init "122.51.31.227/go-course/go18"

# go mod init go18
```


## Gin + GORM 开发简单的Book API Server

从写脚本开始 与 学会合理使用包来组织你的项目工程
