为了账号安全,请及时绑定邮箱和手机立即绑定

C# 怎么才能高效,快速的看懂别人写的项目?

C# 怎么才能高效,快速的看懂别人写的项目?

幕布斯7119047 2018-11-21 09:11:53
拿到一个项目的源代码,可能是winForm,也可能是Web项目,一般都是怎么看才能快速的了解这个项目?你们拿到项目时是按F11来阅读的吗?我是菜鸟,求指导!
查看完整描述

2 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

这个要看源代码质量如何了,如果质量很差,那没办法,很难~~

如果质量很好,个人认为要按Top-Down的方式来看:

1. 了解需求

2. 看项目结构,一般项目结构会体现中系统结构上的层次,并根据经验和项目命名猜测作者的设计思想

3. 然后展开项目看目录,同样,根据经验和目录命名猜测作者的设计思想,例如,如果看到一个目录为Caching,那它就是和缓存有关,若是Data,则可能和数据访问有关,在你看目录的时候,就都是看目录,不要去看其中的类的实现细节

4. 然后展开目录浏览文件,根据文件名猜测该文件是做什么用的,对于部分感兴趣的文件可打开看详细,但大部分暂不用看那么细

5. 通过以上几步,对项目的整体构造应该有了一些了解,这时可以随手找一些接口、抽象类走马观花式的查看,不用太细,只为加深一点理解和印象

6. 然后找一个入口点,比如界面上的某个操作,通过代码看他大概调用了哪些文件,如果这件代码中嵌套调用了其它接口、类和方法,则先不用看嵌套调用的那些,先只看当前文件,比如现在在看一个名为CreateOrder()(创建订单)的方法:

public void CreateOrder(...) {    if (IsValidUser(user)) { 
       var orderId = OrderIdGenerator.GenerateId();       var order = new Order(orderId);
       ...
    }
}

其中嵌套调用了IsValidUser(),GenerateId()这两方法,但我们先不用去看它们的细节,因为从名字上看,就已经可以知道它是在验证用户,生成一个OrderId,当前的目标就是了解CreateOrder,看完了CreateOrder,才再考虑是否再看看GenerateId()的细节以了解Id的生成方法。

综上所述,原则上是采用至顶向下的方法,一层一层往下剖析,在看上层时,先不用太了解下层的细节,例如,看目录时就是看目录,不用马上打开里面的类看实现细节(也可以说我们要采用广度优先的方式查看代码,而不是深度优先:-))。一般也不用看到最底层,因为项目的开发过程中会慢慢了解底层细节,一般了解了大体结构就可以接手开始做了。


查看完整回答
反对 回复 2018-11-25
?
Helenr

TA贡献1780条经验 获得超3个赞

项目,

1\先了解业务;

2\结合业务整理数据库

3\结合业务将系统流程走一遍

4\结合代码,数据库,业务进行全面了解.

工具方面:

可以借助Recharper进行看,主要功能:转到定义,转到实现,找到文件在解决方案中的目录位置,快速找到项目中的文件等.


查看完整回答
反对 回复 2018-11-25
  • 2 回答
  • 0 关注
  • 2091 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信