#Others# 和新项目相爱相杀

#Others# 和新项目相爱相杀

夸张的修辞手法.jpg((( Happy 7*24 Day 🤟


前言

来你🐧正式打工不知不觉已经十天了,比起实习的时候工作内容已经大有不同,再见已是工具人小黄bot(此工具人非彼工具人thx。

今天主要记录一下理解和熟悉新项目的过程,希望在未来接触新业务也会有所帮助。

前置条件

本人司职 Golang 后台开发,下面内容仅供参考。

编程语言

  1. Golang:业务开发的主要语言
  2. Shell:工具运维的主要语言

基础知识

  1. GitLinux
  2. 云原生、高并发、分布式、微服务
  3. 算法分析、数据结构
  4. 计算机网络、操作系统、数据库概论
  5. 设计模式、软件架构
  6. 敏捷开发、项目管理

开发框架

  1. gin:基于 API
  2. go-micro:基于微服务

数据库操作及驱动

  1. MySQL:关系型数据库
  2. MongoDB:文档型数据库
  3. Redis:键值型数据库

其它的中间件

  1. 消息队列
  2. 注册中心

相关系统

  1. upstream:对接内部产品
  2. downstream:前端项目

迭代流程

  1. Unit TestMock Test
  2. Coding Standard
  3. CI / CD

需求分析

需求分析阶段主要是从需求层面来了解项目,知道项目在做什么

可用资产

  1. 产品手册
  2. 产品原型
  3. 需求文档

阶段目标

  1. 理解和区分关键的领域概念
  2. 明确产品的主要功能和主要流程

方案设计

方案设计阶段主要是从方案层面来解构项目,思考项目该怎么做

可用资产

  1. 技术文档
  2. 接口文档
  3. 数据库表

阶段目标

  1. 整理项目的整体设计(项目本身),包括功能、架构和流程
  2. 整理项目的局部设计(对应特定场景的具体解决方案),包括功能、架构和流程
  3. 了解接口文档(dto如何与业务相结合起来
  4. 了解数据库表(po如何与业务相结合起来

代码实现

代码实现阶段主要是从代码层面来落实项目,有依据地搞好细节

可用资产

  1. 项目代码

阶段目标

  1. 梳理项目代码层次,比如 routerapi controller/cron job/message queueservicedao/driver 等等
  2. 对应需求和方案,从 api controller/cron job/message queue 来入手,巩固理解业务,了解实现细节
  3. 遇到复杂且核心的代码,可画流程图等专门记录和分析

模拟开发

模拟开发阶段主要是从实践层面来运行项目,过一遍工作的流程

可用资产

  1. 项目代码
  2. 环境信息

阶段目标

  1. 本地和远程可以跑通项目代码
  2. 熟悉完整的开发流程:编写文档 → 生成代码 → 业务开发 → 单元测试 → 代码规范 → 提交代码 → 代码评审 → 合入代码 → 代码打包 → 部署 → 测试

代码重构

代码重构阶段主要是从理想层面来优化项目,提升自己和新项目

可用资产

  1. 项目代码

阶段目标

  1. 学习或改进项目代码,大到架构模式,小到算法结构,同时也要关注代码规范

致谢

感谢晓清哥成为我的伯乐,让我有机会在喜欢的地方做喜欢的事情,在工作中和生活上也给了我很多鼓励;感谢风哥在我回来之后依然让我觉得对这里很有归属感,风哥也会一直是我的榜样(in every aspect;感谢远哥,亦师亦友,为全世界坠好的 mentor 打 call;感谢各位不嫌弃我菜的同事,有你们在,有风哥选的 Macbook Pro,有智神送的 Windows,每天到了工位都觉得这一刻一定要为 HK0700 卖命(bushi。

上一次分别时,其实自己感到蛮有压力,一方面担心要被炒鱿鱼了(现在也,另一方面是因为有偶像包袱(xs开始给自己加戏。但是无论如何地说,我最应该做的就是——好好工作。在热爱的事业里实现价值(我最好是,同时也希望大家因为我的存在而感到开心(一丢丢也行,btw愿下一次没有分别 :)


Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×