我所看见的面向对象,还有软件开发。
最近吵得沸沸扬扬,这那那这的那些技术问题。有了FS和他的那位帮腔的高手高高手,搞来搞去也颇热闹。闹到最后最后想起小风的一句话:你到处宣传什么啊,总是显示你很牛吗?鄙视你。
唉…… 我是值得他鄙视的。
室友说了一句话不错:你看现在的大学都成了职业培训学校了,大学就是传授理论的地方,学习许多基础理论知识。
是啊,面向对象的软件开发其实在大学里就应该教授,因为它是一种基础理论,跟随软件工程。应该是每个以后有软件开发意向的人去学。可是现在呢?
室友举了个例子,是他的数学老师说的:一切的理论的出现,其实都是为了一点,因为它简单。
这样的老师才是大学的老师。
是的,其实面向对象也是。Delphi也是因为它们的简单。。
昨天终于找到Kingron了,这个家伙消失了那么久。劈头就给我一句话:编程凑合就成,最重要的是需要和你编程的内容相关的知识。
如此高深的话叫我半天没有反应过来,我愣了好一阵子……
今天我用 ModalMaker 建模,是啊,按照设计模式设计,非常易用易管理,初期的良好设计,将会省去后面许多烦恼。
看着我弄得一堆 procedure 和 function 的名字,那些关键方法的begin end中间什么代码都没有。空的,面向对象的UML到这里还有什么作用呢?面向对象的关键之处就是把程序的核心显而易见的突出出来。而关键中的关键是对所写的内容有关的周边知识,否则,面向对象提供的只是一具空壳,空壳啊。
假设我没有计算机各种基础理论,懂了面向对象又如何?假设我没有我所作的这个软件内容的相关知识,会灵活运用UML又如何?
新来的实习的小孩,我给他说,你好好看看Object Pascal的内容,学会什么是面向过程的软件开发,然后再去看什么对象化设计。我不知道他在干什么,反正搞来搞去总感觉缺点什么。我发现了,其实就是基础,说不出来的感觉,因为缺的这个东西就是对程序的一种感性的认识。不应该教他面向对象的…… 而且我不后悔我刚开始学编程的时候那些不堪入目的Basic代码、C、FoxBase的代码。尽管它们已经不存在了。
增竟有个人说:不要去学Delphi,你会学成一个只会拖拉控件的三流程序员。
是的,如上面那位老师说的,他们都是简单方便的。简单的为什么不给初学者学?
我想起了我们小时候的基础数学理论是从对数字的加减乘除四则运算开始的而且有许多应用题,为什么不直接告诉他们方程式得了,用未知数来算灵活度很高。其实不然,告诉孩子们方便的,他们可能会学的不扎实,并且没有对数学计算的感性认识。小时候,我爸爸曾说,能不用方程式就不用方程式。现在想起是很对的……
回到面向对象,面向对象本来就和软件工程密不可分,本来就是和企业级的开发相关连。有个帖子有人质疑面向对象。
http://expert.csdn.net/Expert/topic/2830/2830899.xml
可是Ehom一句话就点破要害:你还完全不懂什么是面向对象,那又怎么能知道自己是否需要?你写的软件估计还没有一个超过1万行代码吧?你写软件都没有分析,设计这类过程吧?那又怎么会知道OOA,OOD?
对了,这个就是OO的作用,他就是要管理大量的代码。存在必有其原因。
我拿着螺丝刀,又叫改锥。对着他看。我拿着网钳,对这那四把网钳看。前一阵子给公司布网络这几个用得最多。我突然想,如果螺丝不存在,还存在改锥吗?如果方便的电话接线模块不出现,如果RJ45接口不出现还有网钳吗?他们为了简单工作而存在。如果没有成千上万行的代码的存在,还存在抽象的面向对象吗?
是的,面向对象是为了管理大量的代码而存在的。
不,其实程序设计有个更好的词,维护。是维护代码而存在。
编程之道里面有这么一句话:即便你的代码有三行长,总有一天不得不维护它。
我总感觉我们的人们总有一种随大流的感觉,说OO,UML,大家就都去对他感冒。什么才是最重要的?对Delphi来说就是begin end;中间的这些东西。如果用:站都不会还去学跑来形容,再贴切不过了。
把基础学好了,其实面向对象是顺其自然就会理解很透彻的,看了那么基本面向对象的书之后。补习基础理论确实困难,学习程序所实现的内容确实是繁琐。不过当写下许多不堪入目的代码之后,对面向对象的需要是自然而然的,对面向对象有了一种感性的认识之后那才是对他的最好理解。
我听过一句话:你问我什么是面向对象?我知道但是我说不出来……
其实这个才是高手……
不过再跳出面向对象来看程序设计的出现,不还是为了简单?程序为了什么而存在呢?
我的头给我说:干吗搞得这么复杂,能写一个函数解决,为什么要写一个类?
我的头毕竟是的高才生,他说的话我还是听得。。。。。。