我们打个比方,假如你去到一家公司,然后一开始,要下载公司的旧代码,接下来就是熟悉公司的旧代码,假如这个项目是两三年前做的,那么一直搞到现在,假设有10万行代码,那么让你来熟悉这些旧代码,然后在旧代码的基础上,增加新的功能模块,是非常苦逼的,有时候,都不懂怎么入手.如果你想从上往下一行一行的来阅读,那么当你花了大量的时间去阅读完之后,一无所获,看完之后,都忘了.这时候,就显得非常的悲催... 方法:搜索 这样我们就能不用读懂别人的代码就能改需求.将我们搜索到的页面,将页面截图和控制器,做成笔记,保
以下,根据V2EX讨论整理. 熟悉业务,走通流程,把业务分块,知道项目主要是干什么的 走到程序入口,一步步来看 代码级别记得走一遍调试的流程,看看是怎么走得,加log,哪里不会加哪里 在其中修改些小bug,增加些小功能,修改大一些的bug,增加大功能 其中可以画流程图理清业务,debug一些核心模块, 从包名可以获取一些信息,从超类分析 慢慢构建UML图和思维导图,不断回顾,总结 继承核心类,尝试修改逻辑 在写得过程中,总结写一下文档. 不到必要时候,不直接修改代码,做好备份. 写文档的时候,
来到和睦的公司家庭已经一个月出头了,从技术层面来说,公司项目PC端是我目前来说接触的最大最复杂的项目了,德老师也说这个不断开发更新迭代的项目的代码量相对于全国的web来说是蛮多的,对于快速熟悉这样的大项目需要一定的时间.我是真的深有体会了,因为自己刚开始开发vue的实战经验很少,刚开始做公司这个项目所花的时间中,三分之二是在读代码,而且还有很多没看懂的.但随着接触的模块不断增加,不断在代码中踩坑脱坑,不断地在和PC端大管加朝夕相处的日子里渐渐的摸清它的架构,其中积累了一些快速读懂项目架构.模块组
看到ITFriend中有些小伙伴刚进入公司,面对大量的项目代码,往往手足无措,有点慌,我说下我的经历. 声明:我从事的是C++开发工作,阅读的代码都是基于客户端/服务器的,以下谈的是C++项目代码的阅读方法多些 希望懂java的小伙伴分享下java公司项目代码的阅读方法,小弟感激不尽. 编译代码把项目跑起来 代码到手以后,先尝试着编译一下,无非就是库的配置,库路径的配置,缺少某个文件,或者头文件包含路径不正确,一般公司给你的代码都可以编译成功,windows平台下一般使用vs工具来编译,集成调
看到ITFriend中有些小伙伴刚进入公司,面对大量的项目代码,往往手足无措,有点慌,我说下我的经历. 声明:我从事的是C++开发工作.阅读的代码都是基于client/server的,下面谈的是C++项目代码的阅读方法多些 希望懂java的小伙伴分享下java公司项目代码的阅读方法.小弟感激不尽. 编译代码把项目跑起来 代码到手以后.先尝试着编译一下,无非就是库的配置.库路径的配置,缺少某个文件,或者头文件包括路径不对,一般公司给你的代码都能够编译成功,windows平台下一般使用vs工具来编
1:如何设置vs默认的快捷键方式: 2:重新设置resharper的F12及其其它选项设置: 3:通过以上两步,就可以使用默认的vs快捷方式和resharper的常用功能设置了. Resharper的配置(习惯使用了VS的F6编译和F12(快速非resharper查询编译代码)转到定义的默认设置)[设置了好多次resharper的使用了,特此记下简单的思路],布布扣,bubuko.com
原题 一开始楼主傻BB直接求解,思路惨不忍睹,各种循环啊有木有?还写了个计算是否整除扩展方法以为重复复用很了不起啊(其实是傻...) 二逼青年的代码 1 #region so1 2 int[] count = new int[100]; 3 string[] s4 = new string[] { "Fizz", "Buzz", "Whizz" }; 4 for (int
应用场景 相信大家遇到过这种场景:旧代码中已经有一堆的if-else或者switch-case了:产品却要求在这段流程里增加一个新的功能. 这种时候大家会怎么做?我的建议是: 重构这段代码.在重构的基础上,加入新的功能. 肯定会有人说: 工期本来紧张,再对原有代码进行重构,岂不会更加捉襟见肘? 这里介绍的(也是我在实践中经常使用的)这种方式,我称之为"接口-分发器模式".它可以在尽量减少重构工作量的同时,完成大部分重构工作. 类图 接口-分发器类图 接口 这个模式首先将旧代码/功能抽取
最近接手了一个旧的系统,各种陈旧的问题比较多,其中最棘手的就是操作数据库的部分,具体如下: 1.核心库是一个最后修改时间为2008年的库,先不说有多陈旧,现在这个库只是一个DLL文件,没有源码,也已经没人知道里面都实现了些啥功能,就算你怀疑数据库读写有问题,也无法验证和调试,反编译出来的源码也没法用. 2.这个库用的是System.Data.OracleClient操作Oracle,问题很明显,依赖于Oracle客户端,区分32位和64位,一旦客户的Oracle客户端出点问题,系统就歇菜了,而且