16|目录规范:几万行的大文件,如何重构目录结构?
徐逸

你好,我是徐逸。
上节课我们学习了如何拆分项目,不过对于复杂系统来说,即便拆分了项目,每个子项目里的文件庞大且复杂,管理和维护都非常困难。这时候我们就需要学会如何抽丝剥茧,为这样的文件建立一个合理的目录结构。
今天我就用分层架构的思想,带你将一个包含订单、商品、用户业务逻辑,有好几万行代码的大文件,一步步重构成一个合理的项目目录结构。

图1 逻辑复杂的大文件 main.go
假如现在产品提了个需求,在获取用户订单的时候,需要将订单涉及的商品信息一起返回给前端展示。
为了找到修改点,我们需要从几万行代码的大文件里面,找到获取订单逻辑。这是一个效率非常低的事。我们要么从 main.go 文件的开头,一行行浏览代码,找到获取订单逻辑。要么通过 order 关键词进行搜索。但对于有几万行代码的文件来说,可能会搜索出来大量的 order 关键词,需要一个个去辨别。
有什么方法能快速定位到订单获取业务逻辑呢?
三层目录结构:数据访问逻辑复用
我们可以把接口里面的业务逻辑从 main.go 文件拆出来,并把业务逻辑按业务功能归类到一个个文件里,比如下面的 order_handler.go、product_handler.go 文件。再将这些文件放到 handler 目录中。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结

1. 通过分层架构的思想,将一个包含订单、商品、用户业务逻辑的大文件重构成一个合理的项目目录结构,提高代码管理和维护效率。 2. 采用三层目录结构,将业务逻辑按功能归类到不同文件,并放置到handler目录中,使得代码定位和维护更加高效。 3. 避免业务逻辑重复,将从商品表查询商品信息的逻辑下沉,抽象出一个数据访问层,专门负责数据库等外部存储交互以及所有表的增删改查。 4. 经典的后端三层架构思想,包括Controller层、Service层和DAO层,有助于提高代码的可维护性和可扩展性。 5. 通过四层目录结构,将商品信息缓存读写的逻辑放在一个service目录,实现业务逻辑的复用,避免代码逻辑重复. 6. 项目目录结构对于一个项目,只有一个应用程序的情况,基本够用,但在一个项目存在多个应用程序时,需要考虑如何组织项目结构. 7. 通过合理的目录规范和架构设计,可以提高代码的可读性、可维护性和可扩展性,从而更好地应对复杂系统的开发和维护挑战. 8. 重构后的目录结构反映了传统MVC三层架构和经典的后端三层架构思想,为项目的开发和维护提供了良好的指导和实践经验. 9. 通过抽丝剥茧,建立合理的目录结构,可以提高代码的组织性和可维护性,为复杂系统的开发和维护提供有效的解决方案.
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 服务开发高手课》,新⼈⾸单¥59
《Go 服务开发高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论