如何快速了解一个系统
引言:
有时候我们开发项目不是从项目一开始就参与的,那么,如何在项目进行到一半时,尽快的了解并上手这个项目,或者在项目已经完成的情况下,如何进行重构优化维护,这些都需要我们尽快了解项目。
------------------------------------------------------------------------------------------------------------------
1. 「当个小白」
把自己当做用户吧,看看自己的需求是什么,自己的问题是什么。这个会从宏观上决定你的大方向不会走偏,同时也可以很好的帮助你了解这个系统是干嘛的。
从用户的角度出发,我是干什么的,我平时都要做哪些事情,我现在有哪些问题需要解决,这个系统能帮我做哪些事情,这个系统用的是否容易上手……在这个体验的过程中,相信你就会清楚自己要干什么了。
2. 「开发文档 & 数据库」
目前个人认为,熟悉数据库是很快捷的一个方式。
因为数据库是根据需求来的,那些表,字段是不会无缘无故冒出来的,相信前面的程序员也是费了一些心思根据需求设计的。而且,从代码来看,实现方式多种多样,但是数据库还是比较固定的,各种逻辑功能都是以它为基础建立的。理清楚这些表的结构关系,每个字段的意义,这个系统你也就了解的七七八八了。
当然,开发文档,交接文档,这些前人留下来的资料也是很好的参考资料。而且,有时候, 本人指导也不如文档来的实际,因为本人记得没他文档记得全,同时文档的信息不会失真。
3. 「 模式 | 框架 | 架构 | 平台 」
很多时候项目难以上手的原因也在于不了解的项目中的设计模式、框架、架构、平台。
因为你可能知道每句代码是什么意思,但是放在一起就不知道它们在干什么。或者你知道它们在干什么,但是不知道为什么要这么写。如果让你写代码,你不知道怎么从哪里写,写些什么。
这时候你就需要知道,这个系统用什么设计模式了?为什么要用这个设计模式?这个系统的架构是什么?在这个架构上如何实现功能的?以及自己是否熟悉这个框架,这个平台。如果其中有不熟悉,查资料,看视频,尽快的去掌握这些。
4. 「走一条线」
很多人会说,走一条线你就明白这个系统了。
的确,在你上面的基础打好了之后,通过熟悉系统中的源代码。走几条线是一个很好的方法。上面的内容很像是理论,而这个就很像是动手实践了。
关于理论和实践,结合起来是一个很好的办法。这里我的个人经历就是,理论有时候过于抽象枯燥,难以结合实际;而实践有时候难以明白原理,或者与一反三。这时候,理论联系实践也需要结合自己的情况进行优化,可以上来简单的实践明白难点,提出问题,为理论学习提供方向,理论学习中也可以不断实践,验证自己的成果。
至于这个节奏,需要自己探索。
5. 「研究技术难点」
在上面的内容都完成之后,就可以上手开发或维护了,如果还是不知道怎么写,照着之前的代码写一条线就OK了。现在来说,应该可以说已经上手了。至于业务范围内的具体技术难点,自己研究就好了。
小结:
这里只是提供一个简单的流程以作参考,相信在做过一些项目之后,这些已经成为一种本能或者习惯。如果你是技术大牛,有多年工作经验的人,可能只需要了解一下需求,简单走一遍代码,就可以很好的上手了。所以,如果说经验较少,自己很不了解要做的项目,难以下手,可以参考一下流程,看看自己在什么问题上止步不前。
最后,希望通过不断的总结,将一些事情具体流程化,从而不断自己的效率。
如何快速了解一个系统相关推荐
- 灵魂 36 问,让你快速熟悉一个系统
简介: 面对一个完全陌生的系统,如何快速的熟悉并上手?本文将从三个方面进行总结,提供一个系统的方法,同时也可以用来 review 已有的系统,查漏补缺. 前言 开发人员经常会面临下面一些场景: 新人入 ...
- 如何快速了解一个系统?
前言 开发人员经常会面临下面一些场景: 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习?被拉过去参与一个陌生系统的迭代开发或者系统维护(bugfix),如何快速上手?同事离职或转 ...
- 如何快速熟悉一个系统
前言 开发人员经常会面临下面一些场景: 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习? 被拉过去参与一个陌生系统的迭代开发或者系统维护(bugfix),如何快速上手? 同事离职 ...
- 入职新公司,如何快速熟悉一个系统
文章末尾给大家留下了大量的福利 前言 大家都知道我们新入职一家公司,经常会面临下面一些场景: 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习? 被拉过去参与一个陌生系统的迭代开发 ...
- 如何快速接手一个系统?
常规的做法是看设计文档.了解背景.维护代码等.经过这一阶段的体会,总结到以下可行的方法. 1) 看设计文档.了解项目产生的背景,必须明白:主要是解决了业务什么问题,关键路径.接口是什么?核心数据是什么 ...
- C/C++ 如何快速解构一个系统的源码(如何看懂大型工程项目的源码)
问: 研究一个开源系统源码的时候,总是不知道该从哪里研究. 我现在看源码从index文件开始看起,遇到包含的文件,就去看包含的文件, 包含的文件中又引用了其它的文件,总是觉得看来看去,很没有逻辑性. ...
- linux box 信息发布,使用Instantbox快速搭建一个开箱即用的Web端临时Linux系统
说明:我们很多时候想学习下Linux或者程序搭建,然后出错了,不会解决的可能会直接重装系统,很麻烦,然后这里博主就找到了个可以解决该问题的工具instantbox,使用该工具可以让你仅通过浏览器的情况 ...
- 深度学习笔记:01快速构建一个手写数字识别系统以及张量的概念
深度学习笔记:01快速构建一个手写数字识别系统 神经网络代码最好运行在GPU中,但是对于初学者来说运行在GPU上成本太高了,所以先运行在CPU中,就是慢一些. 一.安装keras框架 使用管理员模式打 ...
- 如何快速搭建一个完整的移动直播系统?
**如何快速搭建一个完整的移动直播系统?** 原文连接:http://toutiao.com/a6301796359717945601/ http://toutiao.com/a62784095597 ...
最新文章
- 系统架构设计:平滑发布和ABTesting
- 安卓一键新机_安卓福音!微信终于推出这个功能,再也不用羡慕iPhone
- css写出三角形(兼容IE)
- 什么是Windows RT
- React开发(166):ant design form 设置值
- 前端学习(2517):子传父
- 死磕 java同步系列之开篇
- Java笔记-RabbitMQ的消息确认机制(事务)
- #运算符、不同的指针类型、数组和指针、指针运算、堆、栈、静态区、只读区、下标VS指针...
- 欧拉工程第60题:Prime pair sets
- 降维系列之 SNE与t-SNE
- linux音频alsa-uda134x驱动分析之一(over-view)
- 计算机必须设置默认打印机,电脑系统怎么默认打印机 默认打印机的设置教程...
- Mysql中Drop删除用户的名字_mysql中drop和delete方法删除用户的区别
- Potplayer倍速播放声音失真(回音)
- hypermesh分析流程
- 你真的理解函数式编程吗?
- Elliptic Labs宣布在Merkur Market正式挂牌交易
- 用友NC BeanShell远程代码执行漏洞复现
- 【收藏备用】控制理论结构图——一目了然全面了解控制理论
热门文章
- HIS(医院信息系统HospitalInformationSystem)
- 得到图片中的基本信息
- jpeg2000(j2k)图像编码解码:c++实现openjpeg内存流接口(memory stream)
- C/C++小程序学习:n*n魔方矩阵实现每行、每列、每一对角线上的元素之和相等
- 由LG 的G2手机浅析国产旗舰机的方向
- 赛博朋克2077配置要求2022
- 难复制薇娅李佳琦,如涵的网红牌何时能在资本市场出奇制胜?
- 监控摄像头1天存储计算机,如何计算一个摄像机一天占用多少的存储量?
- datasets: mnist
- 360浏览器极速模式自动_浏览器正在为网站带来自动暗模式