做了一个视频,介绍和演示了这个项目:https://www.bilibili.com/video/BV15P4y147Ce
此示例包含:
- 企业级应用的分层架构
- gin + 最新版gorm的示例 (gorm2相对于jinzhu包的第一版gorm)
- 四个middleware
1.1 cors
1.2 authentication
1.3 log
1.4 error message - ldap 登录功能
- 支持持久存储的postgre sql docker脚本
- 基于sqlite的自动化测试
- 初始化/客户化脚本
- DDD:
- controller
- service
- infrastructure
- The clean architecture https://zhuanlan.zhihu.com/p/64343082
- 自增优点:
- 存储空间小
- 查询效率高
- uuid优点:
- 分布式友好
- 避免暴露业务规模
- snowflake
https://www.ardanlabs.com/blog/2014/12/using-pointers-in-go.html
apache directory studio的使用: https://www.bilibili.com/video/BV1kh411h7yB?from=search&seid=4698533963557832110
包的名称用单数
https://rakyll.org/style-packages/
golang-standards/project-layout#7
for filename in find . -type f -name 'post*'
; do mv -v "$filename" "${filename//post/[replacement]}"; done
find ./ -type f -exec sed -i -e 's/post/[replacement]/g' {} ;
find ./ -type f -exec sed -i -e 's/Post/[Replacement]/g' {} ;
find ./ -type f -exec sed -i -e 's/Methed[Replacement]/MethodPost/g' {} ;
find ./ -type f -exec sed -i -e 's/"blog"/"[replacement]"/g' {} ;
find ./ -type f -exec sed -i -e 's/[replacement]gres/postgres/g' {} ;