项目架构

冷暖自知 提交于 2020-04-07 00:36:23

大多数的程序员,都是做业务开发的,我也是。每天的工作都围绕着产品的需求。我们总在不停地写需求,在不停地堆砌代码,还在不停地解决Bug。后来,我们越来越陷入细节,越来越不能把握全局。

对于一个新的项目,你准备怎么设计它?或者,对于一个新的需求,你准备怎么设计它?

代码的组织结构,本身也是一种架构,比如MVC。在实际工作中,我们都喜欢对代码进行分层,比如,将代码分成了如下几个部分,controller面向具体业务提供服务;service也提供功能的实现,但不针对业务;mapper主要针对数据层:

---- controller
---- service
---- mapper

然后,对于数据层,你会选择什么作为存储,MySQLMongo或者Redis。对于高QPS的场景,准备如何使用缓存?是否需要使用本地缓存?是否要使用异步进行处理?这些都应该属于架构的范畴。

或者说,先整体规划我们要实现哪些需求,给需求划定边界。然后,分析我们要扛住多大的并发,然后还要支持后续的扩展。

根据此,尝试简单描述现有的服务:我们代码上采用类似MVC的结构进行组织,根据Path来路由请求,底层目前主要使用MySQL作为存储,主要依赖MySQL的事物处理机制,对于一些其他的情况,我们还采用Kafka来实现异步处理。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!