互联网程序员能力模型设计

互联网是高科技/崇尚技术的公司,意味着所有问题都可以通过/间接通过技术来解决,遇到问题后,优先选择技术方式进行处理

人是不可靠的,尽可能使用规则和制度进行限定,保证稳定的产出质量

理解需求的能力

通常产品经理会把需求落实为文字+图片的形式即PRD(Product Requirement Document)放在wiki上让程序员先预习

预习的质量直接决定着理解需求的能力,从技术角度有以下方式提高预习的质量

  1. 站在产品角度思考问题,思考产品在写下这个wiki时的状态,估算出wiki中缺少的信息,并自行进行查找相关资料进行验证

  2. 熟悉wiki系统的使用,比如confluence这个wiki系统的收藏功能

点击头像下拉菜单中的收藏即可进入收藏列表

Read more   2020/3/17 posted in  项目管理 业务

聚合支付系统架构设计和商业模型分析

参与了聚合支付业务系统的开发,总结一下

技术栈

  1. 使用ansible发布代码和配置
  2. 使用kong作为前端网关
  3. 使用jenkins做自动化测试
  4. 使用sonarqube做代码规范检查
  5. 使用gogs做代码版本管理
  6. 开发githook系统作为git事件的订阅器,自动化git事件的处理,比如发送钉钉通知
  7. 开发自己的框架系统,对源码比较了解,方便持续开发
  8. 使用xxl-job做定时任务管理系统
  9. 使用graphite, statsd, grafana做监控可视化系统
  10. 使用阿里云日志平台做日志存储,以后对日志的数据分析
  11. 使用阿里云MaxCompute大数据处理系统
  12. 使用supervisor管理持久运行的进程
  13. 使用ssh tunnel转发内网端口,使用内网服务器,可以减少云服务器花费
  14. 使用airflow作为任务编排系统
  15. 使用terraform管理kong网关配置
  16. 使用consul作为服务注册中心
  17. 使用钉钉做异常报警
  18. 使用beanstalk做消息队列
  19. 订单表使用程序进行分库分表
  20. 使用ldap做开发系统的用户中心,集成jenkins、gogos、grafana等系统
  21. 使用gitlab的issue做用户反馈的问题管理系统
  22. 使用mkdocs作为文档管理系统
  23. 使用gitbook生成开发平台文档
  24. 开发yum的server存放和安装自定义的rpm包

其中githook系统可能比较有特色,一般不会单独开发hook系统

核心交互流程图如下:

Read more   2019/7/31 posted in  一图胜千言 业务

仿金蝶,物料库存系统设计与实现思路

公司最近也在开发库存系统,就拿业界比较成功的金蝶来分析学习,提升自身的业务水平
库存系统最重要的就是入库与出库,成本与利润的计算

入库操作核心流程
入库操作时序图
出库操作核心流程
出库操作时序图

Read more   2019/5/11 posted in  业务

思普瑞特,小票打印机和标签打印机java网络驱动设计与实现

Read more   2019/5/6 posted in  业务

订单系统设计,消息队列幂等处理思路

技术栈

  1. spring boot 作为基础框架
  2. 阿里云rocketmq作为消息队列,处理延迟,分区,无序消息
  3. 使用了阿里云消息队列的spring boot库spring-boot-starter-alimq

订单系统在整个系统里的作用

  1. app: app作为下单入口,在app端生成订单后,通过消息队列传递到订单系统里生成订单
  2. 推送到店:订单系统生成完成订单后,将把订单发送到门店进行餐品制作,通过http调用推送到店里,店里的收银机等设备根据订单状态打印小票,标签,制作餐品等
  3. 店里将订单制作完成后,将把订单制作完成的状态回传订单系统

系统核心部分交互流程图
订单系统交互流程图

Read more   2019/4/24 posted in  业务

一图胜千言-订单业务系统架构图

右键新窗口打开可查看大图

订单业务系统架构图

2019/3/17 posted in  业务 一图胜千言

技术开发顺序

  1. 理解业务为王
  2. 业务实现技术方案第二
  3. 技术选型第三
  4. 具体实现代码第四
2017/5/20 posted in  业务