程序员如何快速上手一个自己不太熟悉的新项目

在知乎上看到的,由作者Jim Jin(奔四老码农,只想做点有意义的事情)写的。

原文出处:http://www.zhihu.com/question/38865497/answer/78625125

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

不知道你有没有经历过一个五年或者更长工作年限的开发人员半路加入团队的情况,可能第一两个星期他会问一些业务或者技术问题,不过一两个月他就可能在指导那些初级开发人员了。

什么原因呢?因为他已经从过往经验里面总结出来一些套路了。

那么套路是什么呢?

1. 绝大部分业务系统,不管他后端是oracle、mysql、nosql还是内存数据库,也不管他前端是web、h5、winform、android还是ios,它的核心功能都是由增删改查组成然后通过通信、运算和人机交互串起来的,系统的复杂度主要体现在系统规模、性能、稳定性、业务流程、通信等方面。(部分工具类、基础架构类系统可能不一样)

2. 绝大部份系统,不管是基于Java、.NET、C++还是Nodejs技术,都是遵循某种或几种设计模式分层进行开发的,最最常见的也就是MVC了。其他请参考一下设计模式教程。

那么怎么快速熟悉新的项目呢?同样也是套路。

1. 先搞清楚新的系统是搞什么的,就问简单几个问题,谁在用这个系统?用这个系统做什么?然后自己根据这些问题去文档找答案。

2. 弄清楚系统是怎么分层、分模块的,每层、每个模块都用到了什么技术和框架,之间是怎么通信的。有架构设计文档的话学习一下最好,没用过的技术先查查资料知道个大概。

3. 把开发环境搭起来,通过几个典型的功能弄清楚系统里面增删改查、通信、用户交互是怎么实现的。最简单的方法是根据系统的分层,先从前端到数据库把代码疏通一下,搞不清楚的话打开debug模式一步一步走一下。

4. 经过上面三个步骤基本上就可以改几个bug和照葫芦画瓢做个功能了。后面重点关注那些没用过的技术和组件:先搞清它的目的、背景、实现原理和功能列表,再照着文档做几个demo,平常工作时把它的文档建个快捷方式,随手查询学习一下。

5. 平常开发过程中如果遇到问题首先要相信:
1)绝大部分自己遇到的问题很多人已经遇到过并且解决了 。
2)绝大部分自己遇到的问题在当前系统里面已经有了答案。
3)绝大部分自己遇到的问题在你用的框架和组件里面都有现成的解决方案。

6. 对于规模比较大的系统或者系统集合,其实你平时工作接触到的也就是其中的一个系统或者模块,先把自己接触的部分搞定就行了。

7. 对于老系统,首先建议看一下我另外一个回答:在感觉项目代码的构架不行的时候,你们会怎么办? - Jim Jin 的回答
1)老系统其实满是宝藏,里面有很多你可以借鉴和学习的东西。
2)老系统也满是坑,一个看起来毫不悬念的代码改了以后可能会引发地震。
3)很多你看着不爽的代码其实都是有道理的。
4) 不要在老系统里面继续挖坑。
5)看不懂的代码不要动。
6)在你力所能及的范围内让老系统变的更美好。

上面这个套路应该符合百分之七八十的项目,题主可以试试看。

时间: 2024-10-19 12:08:24

程序员如何快速上手一个自己不太熟悉的新项目的相关文章

程序员如何快速上手一个自己不太熟悉的新项目?有什么技巧?

不知道你有没有经历过一个五年或者更长工作年限的开发人员半路加入团队的情况,可能第一两个星期他会问一些业务或者技术问题,不过一两个月他就可能在指导那些初级开发人员了. 什么原因呢?因为他已经从过往经验里面总结出来一些套路了. 那么套路是什么呢? 1. 绝大部分业务系统,不管他后端是oracle.mysql.nosql还是内存数据库,也不管他前端是web.h5.winform.android还是ios,它的核心功能都是由增删改查组成然后通过通信.运算和人机交互串起来的,系统的复杂度主要体现在系统规模

一个程序员如何快速赚到一百万?(转)

一个程序员如何快速赚到一百万,说的详细点儿就是: 一个固定工作者怎么跳出固有的模式,靠其他途径(投资.理财.生意.创意.外包等)赚得相对殷实的钞票? 80% 人都会问这种赚钱问题,但这种问题却太难回答,因为太难有个可标准化的模式去效仿或借鉴. 这个时代,赚钱不难,赚 100 万也不难,难的是要具备且能勤奋的执行的能够持续创造财富的思想方法:观察事物 - 分析分解事物 - 得出解决方案,且把每一个步骤一步一步"写"下来并踏踏实实实施,这个方法最笨,但是她是最踏实的,有了这个,钱是迟早的事

一个程序员如何快速赚到一百万?

一个程序员如何快速赚到一百万,说的详细点儿就是: 一个固定工作者怎么跳出固有的模式,靠其他途径(投资.理财.生意.创意.外包等)赚得相对殷实的钞票? 80% 人都会问这种赚钱问题,但这种问题却太难回答,因为太难有个可标准化的模式去效仿或借鉴. 这个时代,赚钱不难,赚 100 万也不难,难的是要具备且能勤奋的执行的能够持续创造财富的思想方法:观察事物 - 分析分解事物 - 得出解决方案,且把每一个步骤一步一步"写"下来并踏踏实实实施,这个方法最笨,但是她是最踏实的,有了这个,钱是迟早的事

【知乎】怎么成为一个优秀的程序员,而不是一个优秀的码农?

怎么成为一个优秀的程序员,而不是一个优秀的码农? 9 条评论 分享 默认排序按时间排序 98 个回答 3844赞同反对,不会显示你的姓名 萧井陌 微信公众号:炼瓜研究所 技术社区 - 3844 人赞同 优秀的程序员会告诉你打根基的重要性,会劝你在厚积薄发前要隐忍. 优秀的码农会告诉你学啥底层.啥啥啥一拖就好了,学了python还要啥自行车啊,数据结构排序函数二分搜索这不都内置了吗?工作中永远用不到,学算法有啥用啊?成为高手有很多种方法汇编是个屁啊? +++基础的分割线+++ 列举几个我认为比较重

经验浅谈,新人如何快速上手一个新项目

经验浅谈,总结下自己如何接手一个新项目: 1.向同事问清楚当前的开发环境,而且现今的发展,要区分64位和32位2.搞明白当前项目的运行环境,如果是多项目的话,要搞清楚依赖关系3.让同事帮忙搞定本机可运行项目的环境4.当环境都弄好.项目能启动后,开始代码之旅,也是最重要的一步. a)看配置.通看一遍配置文件,了解当前项目用了哪些框架,做到心中有数 b)学业务(重点*).了解各页面间的跳转及异步请求,写一个临时Filter,拦截/*的所有请求,在doFilter()方法中,打印出每次请求的路径( S

有人认为,“中文编程”,是解决中国程序员编程效率的一个秘密武器,请问它是一个“银弹“吗?

银色子弹(英文:Silver Bullet),或者称“银弹”“银质子弹”,指由纯银质或镀银的子弹.在欧洲民间传说及19世纪以来哥特小说风潮的影响下,银色子弹往往被描绘成具有驱魔功效的武器,是针对狼人,吸血鬼等超自然怪物的特效武器.后来银色子弹常被用做致命武器的代言词.被比喻为具有极端有效性的解决方法,作为杀手锏.最强杀招.王牌等的代称. IBM大型机之父弗瑞德.布鲁克斯(Frederick P. Brooks, Jr.)在1986年发表的一篇关于软件工程的经典论文,便以<没有银弹:软件工程的本质

快速上手一个第三方控件,工具等

我也曾苦苦追寻一个通用的流程,怎么去快速上手一个新的第三方的东西,真的很难啊,文档看不懂,也不知道重点在哪. 虽然一直在用C1控件,但基本对于如何上手云里雾里,基本是摸黑瞎找的,现在突然在其官网发现了如何使用,真是,,,太特么晚了. 总结一下:可以从这几个方面去着手. 1.产品演示程序.根据产品演示可以快速知道哪个控件是自己想要的,这个控件有哪些自定义的设置,属性设置的效果是怎样的.查询能够实现自己正在找的功能.设置. 2.产品开发文档.根据官方文档,可以对控件的开发.使用由更加准确的掌握,缺点

作为一个C#程序员, 你应该上手Kotlin

Kotlin最近火了, 在Google IO大会 Kotlin宣布Kotlin将会成为Android官方开发语言之后, Kotlin这样一个JVM上的新*(其实从诞生到现在已经有5年历史的)语言. 终于出现在程序员的视野里, 成为一门成熟的热门的语言. 对于大多数C#程序员来讲, 比如像我这样一个多年在.Net平台从事开发工作的程序员来说, 大多数时候往往都是对Java社区和JVM平台上的各种语言包括JAVA本身的发展抱着一种隔岸观火的态度. 我们目睹了早已被我们用烂的Java lamda特性终

Coding girl一个老程序员谈到的一个女程序员的故事

因为有人说我给一个女程序员的建议不靠谱,我不服,因为我的工作经历中的一些女程序员都很不错,比那些男程序员都强,所以,我在新浪微博和twitter上征集女程序员的故事和想法,这两天来,我收到了好几封邮件,让我很感动.其中,有一个故事让我回味很久,在脑海里挥之不去,可能是因为她的经历和我很相似,她的想法和我很有共鸣. 本来,我想通过收到的这些故事然后编辑成一篇关于女程序员的文章,但是我觉得这个故事已经足够好了,任何的编辑都是对这个故事的不尊重,所以,我原封不动,一字不改地把这个故事转到这里.我把一些