为什么会看不懂别人的源码(怎么看懂源码)
本文目录一览:
为什么别人写的代码换个人就看不懂呢?
你们公司存在别人写的代码换个人看不懂的情况吗?有什么解决办法吗?�0�2�0�2�0�2�0�2 我觉得这个问题,在中国的很多企业,特别是作坊式的小企业都会存在的情况。人员离职了,留下来的代码别人很难读的懂。为什么会出现这样的情况呢?我记得曾经听过这样一个故事:说是印度的学生写出的代码看上去几乎都是出自一人之手,而中国学生写出的代码五花八门。国内很多企业也在追求所谓的ISO9000或者CMMI,设有QA、Code Review等岗位,可是为什么还会有这样的情况?恐怕这就是所谓的中国特色吧。不能说中国人只追求形势主义,只注重表面的东西,结合中国软件业的现状,我们不难发现,大部门的软件企业都是作坊性质的,规模较小,利润也是比较低的。特别是在做一些项目,而不是做产品时。不可能也没有这个实力完全按照ISO9000或者CMMI的标准化去做,只要能完成,实现功能就ok,所以会出现这样的问题。�0�2�0�2�0�2�0�2 这就要求我们一些企业在开发流程中加入一些过程控制、质量管理、规范约束等方面的工作,而且随着企业能力的上升,对这方面的工作也多多的投入。而对于开发人员来说,就是在没有公司规则制度的情况下,也要规范自己的开发过程,提升自己的职业素养。这样才是软件业良性的发展。
php大神请进 为什么我学完PHP 看一些别人开源的网站为啥看不懂呢?
分享一下我的经验吧:
1.一般看一个开远程,先看它的结构目录,先弄明白每个目录都放那些文件,如果不知道的话就上网搜该开远程的相关开发文档(一般都会有目录介绍以及文件分布的)。这样一来就明白整个程序的架构了。
2.看他的主要核心数据表结构,大致明白他的程序架构以及数据结构后,在去读他的源代码比较容易些;
3.用一款可以追踪源码的开放工具;更方便看源码;
每个人读源代码习惯不同,这个是我平时的习惯,感觉效率还可以,如果有更好的方法读源代码,记得也告诉我一声哦;
最后祝福一下,2014年到了,希望你在这一年里有更大的收获,万事如意,新年快乐
如何读懂别人写的源代码
引用楼上为什么会看不懂别人的源码的话: 前提是你明白C++为什么会看不懂别人的源码的语法,不明白为什么会看不懂别人的源码的话只能从基础学去.(不要以为你一点都不了解C++,就想读懂C++为什么会看不懂别人的源码的代码,那是没有可能的事.如果你学了C++的话,那下面为什么会看不懂别人的源码我就教你一种看别人代码的方法.
首先,我给一个简单的代码,
#include iostream
using namespace std;
class MyClass1
{
public:
virtual void Output()
{
cout "MyClass1" endl;
}
};
class MyClass2 : public MyClass1
{
public:
void Output()
{
cout "MyClass2" endl;
}
};
int main()
{
MyClass1 myCls1;
myCls1.Output();
MyClass2 myCls2;
myCls2.Output();
return 0;
}
首先,我们看一个程序的时候,一点要最先看main(),因为程序总是从它开始.
然后一句一句往下,
像这样,
首先 用MyClass1 定义了一个 myCls1 的实例
然后调用了 myCls1 里面的Output 成员函数,
这样我们就要看看Output 这个函数事做些什么的,
看完这个,就继续看main的下一句,就这样看,直到看完main函数,你的程序也就看完了.
一定不能从程序的开头往下看到结尾啊,这样你永远不了解程序的来龙去脉的.
这种方法也适合调试程序.
编程看不懂代码,迷茫。
其实看不懂才是正常的,看懂才是不正常的。即使已经学习编程多年,即使做软件开发多年。
总结一下你问题的核心——源代码。
很多人在说多练习、多学习基本上都与源代码有关。
但是,这对你软件开发能力没有太实质性的提高。
首先我们要清楚,编程或者编程语言的作用时什么?它不是为了编程而编程。我们为了实现某种软件功能,需要通过编程来实现。而软件是为了解决实际人无法解决或花费很大成本的工作,由软件可以很容易解决或成本比较低。
而编程和编程语言只是实现这个软件的一种工具、方法。
为什么说“看不懂才是正常的”?
现在随便一款具有实际功能的软件,就需要几百、几千甚至几万个源代码文件,而每个源代码又有几百、几千甚至几万行源代码。计算机源代码不是小说,从头看到尾就行了,源代码内部会形成复杂的关系,函数之间互相调用、函数使用公共变量、类之间的继承等等。在这么复杂的系统里,能把源代码看懂是非常困难的。
同时通过阅读源代码来理解这个软件的完整功能,这种方法效率低、收效低。
源代码是通过某种编程语言书写,而源代码中必然包含与这种编程语言相关的语言特征,而这些特征往往与这款软件的功能没有实际上的关系。也就说,源代码中包含了大量对我们理解软件功能没有用,甚至反作用的信息。就好像我们要在一万本书里找一本我们需要的书中的一页。想想效率多么低。
软件设计资源也是分层次,它是在不同的工作阶段产生,例如前期有软件需求信息,之后有软件设计信息,而源代码几乎是最某端的产品。
而有时很多人要了解的是软件设计信息,但是我们却要通过阅读源代码来了解软件设计信息,而在这个过程中阅读者必须将源代码中很多多余的信息给去掉,则能总结成软件设计信息。想了解软件需求信息也是同理。
总之很多时候我们在一个层次上去了解另外一个层次上的信息,这难度是非常难的。看源代码只应该解决与这个源代码相关的细节问题。
宏观问题由宏观方面解决,微观问题由微观方面解决。而源代码是微观内容,而软件设计信息、设计意图等属于宏观内容。
至于你看不懂源代码没有关系。
并且写源代码也不是问题,写源代码不是为了写而写。只要清楚你写什么,写本身就不是难度。而软件开发中需要写什么呢?就软件开发前期阶段的分析和设计。而分析和设计的结果就是软件的解决方案,而这种解决方案就是写源代码的依据。
《UML2.0实战教程(Trufun)》
《面向对象分析与设计(UML.2.0版)》
《UML与软件建模》
不知道你有没有看过UML语言(统一建模语言),它是现在面向对象设计理论方法最常见的语言。虽然它叫语言,但是它不是编程语言,它与软件分析和设计有关的语言,是用于描述软件解决方案的语言。
《UML2.0实战教程(Trufun)》中就简单的介绍了使用UML进行面向对象设计的方法。而它所形成的软件解决方案,就可以通过某种方法转换成编程语言。《UML与软件建模》第十二章中有介绍。