引言:

有时候我们开发项目不是从项目一开始就参与的,那么,如何在项目进行到一半时,尽快的了解并上手这个项目,或者在项目已经完成的情况下,如何进行重构优化维护,这些都需要我们尽快了解项目。

------------------------------------------------------------------------------------------------------------------

1. 「当个小白」

把自己当做用户吧,看看自己的需求是什么,自己的问题是什么。这个会从宏观上决定你的大方向不会走偏,同时也可以很好的帮助你了解这个系统是干嘛的。

从用户的角度出发,我是干什么的,我平时都要做哪些事情,我现在有哪些问题需要解决,这个系统能帮我做哪些事情,这个系统用的是否容易上手……在这个体验的过程中,相信你就会清楚自己要干什么了。

2. 「开发文档 & 数据库」

目前个人认为,熟悉数据库是很快捷的一个方式。

因为数据库是根据需求来的,那些表,字段是不会无缘无故冒出来的,相信前面的程序员也是费了一些心思根据需求设计的。而且,从代码来看,实现方式多种多样,但是数据库还是比较固定的,各种逻辑功能都是以它为基础建立的。理清楚这些表的结构关系,每个字段的意义,这个系统你也就了解的七七八八了。

当然,开发文档,交接文档,这些前人留下来的资料也是很好的参考资料。而且,有时候, 本人指导也不如文档来的实际,因为本人记得没他文档记得全,同时文档的信息不会失真。

3. 「 模式 | 框架  | 架构 | 平台 」

很多时候项目难以上手的原因也在于不了解的项目中的设计模式、框架、架构、平台。

因为你可能知道每句代码是什么意思,但是放在一起就不知道它们在干什么。或者你知道它们在干什么,但是不知道为什么要这么写。如果让你写代码,你不知道怎么从哪里写,写些什么。

这时候你就需要知道,这个系统用什么设计模式了?为什么要用这个设计模式?这个系统的架构是什么?在这个架构上如何实现功能的?以及自己是否熟悉这个框架,这个平台。如果其中有不熟悉,查资料,看视频,尽快的去掌握这些。

4. 「走一条线」

很多人会说,走一条线你就明白这个系统了。

的确,在你上面的基础打好了之后,通过熟悉系统中的源代码。走几条线是一个很好的方法。上面的内容很像是理论,而这个就很像是动手实践了。

关于理论和实践,结合起来是一个很好的办法。这里我的个人经历就是,理论有时候过于抽象枯燥,难以结合实际;而实践有时候难以明白原理,或者与一反三。这时候,理论联系实践也需要结合自己的情况进行优化,可以上来简单的实践明白难点,提出问题,为理论学习提供方向,理论学习中也可以不断实践,验证自己的成果。

至于这个节奏,需要自己探索。

5. 「研究技术难点」

在上面的内容都完成之后,就可以上手开发或维护了,如果还是不知道怎么写,照着之前的代码写一条线就OK了。现在来说,应该可以说已经上手了。至于业务范围内的具体技术难点,自己研究就好了。

------------------------------------------------------------------------------------------------------------------

小结:

这里只是提供一个简单的流程以作参考,相信在做过一些项目之后,这些已经成为一种本能或者习惯。如果你是技术大牛,有多年工作经验的人,可能只需要了解一下需求,简单走一遍代码,就可以很好的上手了。所以,如果说经验较少,自己很不了解要做的项目,难以下手,可以参考一下流程,看看自己在什么问题上止步不前。

最后,希望通过不断的总结,将一些事情具体流程化,从而不断自己的效率。

如何快速了解一个系统相关推荐

  1. 灵魂 36 问,让你快速熟悉一个系统

    简介: 面对一个完全陌生的系统,如何快速的熟悉并上手?本文将从三个方面进行总结,提供一个系统的方法,同时也可以用来 review 已有的系统,查漏补缺. 前言 开发人员经常会面临下面一些场景: 新人入 ...

  2. 如何快速了解一个系统?

    前言 开发人员经常会面临下面一些场景: 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习?被拉过去参与一个陌生系统的迭代开发或者系统维护(bugfix),如何快速上手?同事离职或转 ...

  3. 如何快速熟悉一个系统

    前言 开发人员经常会面临下面一些场景: 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习? 被拉过去参与一个陌生系统的迭代开发或者系统维护(bugfix),如何快速上手? 同事离职 ...

  4. 入职新公司,如何快速熟悉一个系统

    文章末尾给大家留下了大量的福利 前言 大家都知道我们新入职一家公司,经常会面临下面一些场景: 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习? 被拉过去参与一个陌生系统的迭代开发 ...

  5. 如何快速接手一个系统?

    常规的做法是看设计文档.了解背景.维护代码等.经过这一阶段的体会,总结到以下可行的方法. 1) 看设计文档.了解项目产生的背景,必须明白:主要是解决了业务什么问题,关键路径.接口是什么?核心数据是什么 ...

  6. C/C++ 如何快速解构一个系统的源码(如何看懂大型工程项目的源码)

    问: 研究一个开源系统源码的时候,总是不知道该从哪里研究. 我现在看源码从index文件开始看起,遇到包含的文件,就去看包含的文件, 包含的文件中又引用了其它的文件,总是觉得看来看去,很没有逻辑性. ...

  7. linux box 信息发布,使用Instantbox快速搭建一个开箱即用的Web端临时Linux系统

    说明:我们很多时候想学习下Linux或者程序搭建,然后出错了,不会解决的可能会直接重装系统,很麻烦,然后这里博主就找到了个可以解决该问题的工具instantbox,使用该工具可以让你仅通过浏览器的情况 ...

  8. 深度学习笔记:01快速构建一个手写数字识别系统以及张量的概念

    深度学习笔记:01快速构建一个手写数字识别系统 神经网络代码最好运行在GPU中,但是对于初学者来说运行在GPU上成本太高了,所以先运行在CPU中,就是慢一些. 一.安装keras框架 使用管理员模式打 ...

  9. 如何快速搭建一个完整的移动直播系统?

    **如何快速搭建一个完整的移动直播系统?** 原文连接:http://toutiao.com/a6301796359717945601/ http://toutiao.com/a62784095597 ...

最新文章

  1. 系统架构设计:平滑发布和ABTesting
  2. 安卓一键新机_安卓福音!微信终于推出这个功能,再也不用羡慕iPhone
  3. css写出三角形(兼容IE)
  4. 什么是Windows RT
  5. React开发(166):ant design form 设置值
  6. 前端学习(2517):子传父
  7. 死磕 java同步系列之开篇
  8. Java笔记-RabbitMQ的消息确认机制(事务)
  9. #运算符、不同的指针类型、数组和指针、指针运算、堆、栈、静态区、只读区、下标VS指针...
  10. 欧拉工程第60题:Prime pair sets
  11. 降维系列之 SNE与t-SNE
  12. linux音频alsa-uda134x驱动分析之一(over-view)
  13. 计算机必须设置默认打印机,电脑系统怎么默认打印机 默认打印机的设置教程...
  14. Mysql中Drop删除用户的名字_mysql中drop和delete方法删除用户的区别
  15. Potplayer倍速播放声音失真(回音)
  16. hypermesh分析流程
  17. 你真的理解函数式编程吗?
  18. Elliptic Labs宣布在Merkur Market正式挂牌交易
  19. 用友NC BeanShell远程代码执行漏洞复现
  20. 【收藏备用】控制理论结构图——一目了然全面了解控制理论

热门文章

  1. HIS(医院信息系统HospitalInformationSystem)
  2. 得到图片中的基本信息
  3. jpeg2000(j2k)图像编码解码:c++实现openjpeg内存流接口(memory stream)
  4. C/C++小程序学习:n*n魔方矩阵实现每行、每列、每一对角线上的元素之和相等
  5. 由LG 的G2手机浅析国产旗舰机的方向
  6. 赛博朋克2077配置要求2022
  7. 难复制薇娅李佳琦,如涵的网红牌何时能在资本市场出奇制胜?
  8. 监控摄像头1天存储计算机,如何计算一个摄像机一天占用多少的存储量?
  9. datasets: mnist
  10. 360浏览器极速模式自动_浏览器正在为网站带来自动暗模式