如何快速上手新项目?

我觉得可以遵循以下几个步骤:

1. 获取项目相关信息

进入一家新公司后,如果遇到不负责任的同事呢,可能直接甩给你项目地址,然后就让你自己研究了。这就好比产品经理直接甩给你一个需求让你直接上线一样,怎么实现我不管。

这种情况下,我们首先要做的事情是尽可能多地获取项目相关信息,来帮助自己了解项目。比如项目介绍文档、项目功能说明文档、业务流程图、项目历史迭代情况、项目架构文档、技术选型背景等等。

像我的话,就会询问同事:这个项目背景是什么呀?这个项目有没有啥文档呀?之类的。

不过有些公司或项目可能过于敏捷,平时光做需求,不写文档,逻辑全靠口口相传!

也没关系,请同事给你介绍一下项目的业务和技术信息就好。

刚进公司有问题一定不能憋着,要多问,让自己尽可能多地了解项目代码之外的东西。

2. 了解业务流程

技术是为业务服务的,千万不要连自己项目是干嘛的、有什么功能、为什么要做这个功能都不知道,就去看代码、想着快速把需求完成。最好不要把自己当成临时工,而是要当成项目的 负责人 。

我的话一般会先阅读文档或者请同事来给我介绍项目的 背景 ,即为什么要做这个东西;然后对着产品本身(可能是网页或者 APP)来体验项目的功能;最后再重点关注自己要做的业务、负责的功能模块,了解它的历史、业务逻辑等。

整体的思想就是从整体到局部,由大到小吧。

这里为什么我反复强调要了解项目的背景呢?聪明的朋友一定能想到。因为你刚进一家新公司或者一个新项目,如果自己啥都不懂,别人说啥你就做啥,就很有可能出现这个项目 / 功能本身根本没有任何意义、你只是帮忙收拾了个烂摊子的情况。。。

3. 阅读项目文档

阅读公司的项目过程其实和阅读开源项目是一样的,基本上项目的代码仓库都会有一个 README.md 文件。

这个文件往往会介绍项目的背景、功能、技术栈、如何启动、如何贡献代码等等。

我会先整体扫一遍文档的 目录 ,然后优先关注项目的技术栈以及如何启动。

一般 GitHub 等项目平台都会帮你生成文档目录,可以很快地跳转。也可以把文档下载到本地,用 Typora 之类的 Markdown 编辑器打开,从而清晰地看到文档的目录。

项目文档目录项目文档目录

因为如果你了解了项目用到的技术,而你正好会用这个技术的话,心里就多了几分底气,项目的架构也能大致了解了,后面再去看代码就轻松地一批。

举个例子,看到技术栈中出现了 Ant Design Pro,我正好用过!我就知道这个项目大概率使用了 React、Ant Design、Webpack、Dva、Umi 等技术了,它的代码结构如何、配置文件在哪里、页面文件在哪里、如何启动也差不多能 get 到。

Ant Design ProAnt Design Pro

像我平时在 GitHub 上找开源项目时,除了功能外,就是关注技术栈,如果项目文档中提到的技术我都会用,那么我就很有自信这个项目我肯定能学的动、学得懂。

所以这也是为什么要多了解和积累一些技术。

补充一下,如果作者没在文档中写明技术栈怎么办?这里有个小技巧,去看项目的依赖管理文件,比如前端的 package.json 、Java 的 pom.xml 或 build.gradle 等。

4. 先把项目跑起来

关于这点没什么好说的,先把代码拉下来、安装依赖、按照文档把项目跑起来,才能更好地了解和调试项目。

比较麻烦的点可能就是环境的搭建,比如本地安装 MySQL、Nginx 代理之类的。不过现在很多公司也会采用开发机、或者远程开发环境的模式,直接连接某个远程库就好了,能省很多事儿,也可以请教一下同事怎么搭建环境比较方便。

5. 阅读代码

终于到了读代码的环节,建议大家遵循两个原则:

由整体到局部:先了解整个项目的目录结构,每个目录都是做什么的,比如在哪里写页面?在哪里改配置?在哪里改接口?怎么切换环境等。

还要了解项目的模块划分,比如哪些代码是用户模块、哪些代码是订单模块,可以通过 JetBrains 等开发工具来自动生成 UML 类图,更清晰地了解。

结合业务:读代码的时候尽量不要裸读、按顺序读,而是可以配合系统去定位代码。比如阅读用户登录功能的后端代码时,可以在前端执行一次登录,然后在浏览器 F12 网络请求中找到登录对应的后端请求,再到代码中全局搜索这个请求即可。阅读用户下订单的代码时,可以先在前端模拟一次下单操作,了解整个过程,从而更好地理解请求之间的顺序和依赖关系。

6. 上手开发

最后也是最关键的一点,读代码不能只读代码,一定要多上手去写、去执行、去调试。

必要时可以专门新建一个分支,在这个分支里无论怎么 “为所欲为” 都不会影响到正常已上线的代码。可以自己复制代码去执行一遍、自己给代码流程加上一些日志来帮助理解数据流转过程、或者 Debug 调试等。

其实刚进一家新公司时通常不会给你安排太复杂的工作,基本就是增删改查、或者给你一个小页面小功能去做,帮助你熟悉代码。有些时候,哪怕你不理解整个项目的架构,通过复制同事已经写过的代码也能完成工作。不过还是建议大家,为了长远的发展,不要只局限于自己负责的小功能,可以多了解系统的上下游和整体架构,提高自己的全局观。

如何快速上手新项目?相关推荐

  1. 新人如何快速上手新项目?

    按楼主的经验和知识,本文总结了应用开发中的各种存储架构,从易到难,从起步到起飞.如有不对之处,欢迎留言. 1.单库 最简单的初始架构,适用于千万级以下的数据,并发量低的场景. 单库.单表 或单库.多个 ...

  2. 快速上手Springboot项目(登录注册保姆级教程)

    本文章对SpringBoot开发后端项目结构做了简单介绍,并示范了使用SpringBoot+MySQL实现登录的后端功能,与本博客的另一篇文章 Vue 实现登录注册功能(前后端分离完整案例) | Ma ...

  3. HTML5游戏引擎(二)02-egret引擎之hello world——快速上手-清理项目 程序入口 绘制单色背景 调整屏幕的适配模式 添加文字 响应用户操作-让文字变色

    HTML5游戏引擎(二)02-egret引擎之hello world--快速上手-清理项目 & 程序入口 & 绘制单色背景 & 调整屏幕的适配模式 & 添加文字 &am ...

  4. 测试工程师如何快速上手新工作

    测试工程师如何快速上手新工作 测试工程师换到一份新工作,如何快速进入状态呢,自己最近换了新工作,踩过了很多坑才度过了适应期.为此分享一些自己的心得,供大家借鉴,主要有以下几点: 1.在新工作的第一天, ...

  5. iOS runtime实用篇:让你快速上手一个项目

    2019独角兽企业重金招聘Python工程师标准>>> 前言: 对于一个大项目而言,最烦恼的就是在众多界面难以找到对应的viewController,要改个东西都要花好长的时间去找对 ...

  6. 如何快速上手一个项目

    作者:Jim Jin 链接:https://www.zhihu.com/question/38865497/answer/108163546 来源:知乎 著作权归作者所有,转载请联系作者获得授权. 不 ...

  7. 研发新人如何快速熟悉新项目和业务

    进入一家新公司后,最头疼的就是如何快速了解公司的业务和项目架构. 如果碰到一个特别热心的老员工,事无巨细地给你讲,随时在你身边答疑解惑,那可能还好.但很可惜,我没有碰到这样的人,在加入新公司后,带我的 ...

  8. 程序员快速熟悉新项目和业务逻辑的技巧

    很多新人进入一家新公司后或进入一个新的项目组,最头疼的就是如何快速了解公司的业务和项目架构,或者说不要求快速,即便有足够的时间,也很难在庞大的业务中整理出思绪.当然,如果你碰到一个特别热心的老员工,事 ...

  9. 前端工程化: 脚手架+物料库快速生成新项目

    零.前言 美团有乐高, 京东有通天塔,阿里有飞冰,大厂都在尝试用自动化工具减少人工,看完这一篇,考虑给你的团队搭建一套自动化开发工具吧! 一.背景 笔者所在公司并非大厂, 发现一些痛点. 1.前端研发 ...

最新文章

  1. 单片机c语言NTC温度查表程序,STM32查表法读NTC值并显示温度
  2. 操作分布式文件之六:如何解析远程文件
  3. $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 区别
  4. 【蓝桥杯Java_C组·从零开始卷】第四节、一维数组与二维数组
  5. LINUX内核之普通自旋锁
  6. 怎么学好MYSQL的查和改_mysql学习【第3篇】:数据库之增删改查操作
  7. Bailian2758 菲波那契数列(2)【递推】
  8. 2022年最新版java 8(jdk1.8u321)下载及安装
  9. Vue导出excel表格设置样式的解决方案
  10. 什么是南大核心、北大核心、科技核心、人文核心、省级期刊和国家级期刊
  11. 一文搞懂深度学习所有工具——Anaconda、CUDA、cuDNN
  12. 总结几个Linux系统中拷贝文件内容的方法
  13. 2.SpringCloud学习(二)——Spring Cloud Eureka 服务注册中心
  14. ubuntu16.04中 vim8 backspace键删除功能失效
  15. archlinux音量管理
  16. org.apache.dubbo 2.7.7 服务端处理请求及时间轮(失败重试)
  17. 8086CPU学习笔记:8086的寻址方式
  18. 智加助力解放完成“自动变道”国标验证,唯一量产自动驾驶重卡过考
  19. 细说设计模式七大原则(7):合成复用原则
  20. python网络爬虫——使用selenium抓取东方财富网上市公司公告

热门文章

  1. 专家分享|物联网正如何改变物理安全的面貌
  2. matlab pso svm,MATLAB 使用PSO优化LSSVM的程序
  3. HEUR/Malware.QVM03.Gen木马是360专有的误报
  4. 网络基础——OSI模型
  5. dokuwiki安装插件主题设置
  6. 逗号运算符和赋值运算符
  7. Visual Studio code 运行c++/c语言
  8. 05 【eCharts样式定制系列】自定义地图
  9. flashi及其其他多媒体对象
  10. 微信逆向分析(二)——逆向分析的方法