夸张的修辞手法.jpg((( Happy 7*24 Day 🤟
前言
来你🐧正式打工不知不觉已经十天了,比起实习的时候工作内容已经大有不同,再见已是工具人小黄bot(此工具人非彼工具人thx。
今天主要记录一下理解和熟悉新项目的过程,希望在未来接触新业务也会有所帮助。
前置条件
本人司职
Golang
后台开发,下面内容仅供参考。
编程语言
Golang
:业务开发的主要语言Shell
:工具运维的主要语言
基础知识
Git
、Linux
- 云原生、高并发、分布式、微服务
- 算法分析、数据结构
- 计算机网络、操作系统、数据库概论
- 设计模式、软件架构
- 敏捷开发、项目管理
开发框架
gin
:基于 APIgo-micro
:基于微服务
数据库操作及驱动
MySQL
:关系型数据库MongoDB
:文档型数据库Redis
:键值型数据库
其它的中间件
- 消息队列
- 注册中心
相关系统
upstream
:对接内部产品downstream
:前端项目
迭代流程
Unit Test
、Mock Test
Coding Standard
CI / CD
需求分析
需求分析阶段主要是从需求层面来了解项目,知道项目在做什么。
可用资产
- 产品手册
- 产品原型
- 需求文档
阶段目标
- 理解和区分关键的领域概念
- 明确产品的主要功能和主要流程
方案设计
方案设计阶段主要是从方案层面来解构项目,思考项目该怎么做。
可用资产
- 技术文档
- 接口文档
- 数据库表
阶段目标
- 整理项目的整体设计(项目本身),包括功能、架构和流程
- 整理项目的局部设计(对应特定场景的具体解决方案),包括功能、架构和流程
- 了解接口文档(
dto
)如何与业务相结合起来 - 了解数据库表(
po
)如何与业务相结合起来
代码实现
代码实现阶段主要是从代码层面来落实项目,有依据地搞好细节。
可用资产
- 项目代码
阶段目标
- 梳理项目代码层次,比如
router
、api controller/cron job/message queue
、service
、dao/driver
等等 - 对应需求和方案,从
api controller/cron job/message queue
来入手,巩固理解业务,了解实现细节 - 遇到复杂且核心的代码,可画流程图等专门记录和分析
模拟开发
模拟开发阶段主要是从实践层面来运行项目,过一遍工作的流程。
可用资产
- 项目代码
- 环境信息
阶段目标
- 本地和远程可以跑通项目代码
- 熟悉完整的开发流程:编写文档 → 生成代码 → 业务开发 → 单元测试 → 代码规范 → 提交代码 → 代码评审 → 合入代码 → 代码打包 → 部署 → 测试
代码重构
代码重构阶段主要是从理想层面来优化项目,提升自己和新项目。
可用资产
- 项目代码
阶段目标
- 学习或改进项目代码,大到架构模式,小到算法结构,同时也要关注代码规范
致谢
感谢晓清哥成为我的伯乐,让我有机会在喜欢的地方做喜欢的事情,在工作中和生活上也给了我很多鼓励;感谢风哥在我回来之后依然让我觉得对这里很有归属感,风哥也会一直是我的榜样(in every aspect;感谢远哥,亦师亦友,为全世界坠好的 mentor 打 call;感谢各位不嫌弃我菜的同事,有你们在,有风哥选的 Macbook Pro,有智神送的 Windows,每天到了工位都觉得这一刻一定要为 HK0700 卖命(bushi。
上一次分别时,其实自己感到蛮有压力,一方面担心要被炒鱿鱼了(现在也,另一方面是因为有偶像包袱(xs开始给自己加戏。但是无论如何地说,我最应该做的就是——好好工作。在热爱的事业里实现价值(我最好是,同时也希望大家因为我的存在而感到开心(一丢丢也行,btw愿下一次没有分别 :)