Appearance
小红书本地生活入驻项目总结
架构设计
- 架构设计上,遵循高内聚低耦合的设计思路。基于 DDD 设计了比较优秀的系统方案,将非入驻域关注的事情,最大程度地解耦出去,比如专业号开通,门店认领等,
- 通过优化流程,将项目交付时间缩短了 20%。
- 提出了数据快照的概念,用户的每一次提交都作为一个数据快照,
- 保留了用户提交记录的可追溯性,
- 也简化了和审核的交互
- 设计了业务流转的状态机。技术选型选了cola的状态机组件,既保留了状态机实现的简单性,又降低了维护的复杂性 参考
- 建立了校验规则库,并且设计流式的规则校验器。做到了规则的复用
系统稳定性设计
- 通过区分系统异常和业务异常,做了比较直观的报表,区分了可靠性和可用性,做到了针对大部分问题可以一眼定位。并切把这部分沉淀了下来,做成了二方包,提供给了其他业务
- 对所有的RPC调用,添加了防腐层,提高了系统的可靠性
- 做了分表,入驻前使用申请ID,入驻后使用sellerId分表
- 做了搜索和数据的分离,听过binlog把数据同步至ES,支持搜索请求
项目业绩
- 带领团队,历时三个月,完成了从方案设计到交付的全流程
- 并且得到了同事们的高度认可
- 通过优化流程,将项目交付时间缩短了 20%。
- 制定了比较合理的项目计划,项目里程碑都在预期内达到了
- 做到了比较好的风险管理,通过合理安排周会、日会,保证了项目推进的稳定
账号项目
- 完成了账号、账户不分,升级为账户、账号拆分的方案
- 制定了标准的登录态接入方案,并推广
- 治理了冗杂的B端登录,做了统一,并降低了系统异常登出率
设计原则 单一职责原则 开闭原则 里氏替换原则 依赖倒置原则 合成复用原则 迪米特法则
技术栈:
- java rpc用的 thrift
- redis
- mysql
- es
- rocketmq vs kafka
mvcc 怎么实现可重复度
DDD 怎么做的
项目分层
- start
- application
- domain
- infrastructure等
应用层对外,对内和领域层交互
领域层内,实现各个域的业务逻辑
商家入驻上下文
- 审核
- 财务账户
- 合同
- 商品
- 类目
- 门店
- 资质
- 店铺
领域划分
- 申请作为聚合根的基类,聚合各个核心子域
- 核心子域内如果需要访问外部域上下文的信息,应当通过领域层内定义的facade接口获取,从而实现对外部上下文的防腐。
怎么优化提高的项目交付进度的
- 做有向无环图,把项目拆解成一个个小的任务,然后制定计划,按计划执行
- 日会紧盯进度
- 突发事件,及时响应
- 先紧后松
描述下个人的优点和缺点
- 优点:
- 有足够的经验,有项目经历
- 技术水平还行,WEB的基本知识点都懂
- 缺点
- 不够细心,我经常忽略一些小事,这是不细心的表现
- 比较想成事情,有时候会操之过急