我有到时候去浏览招聘广告,请什么高级工程师要求精通什么语言....OOP,什么一两年开发经验(我这人极少说粗话,但我要说句“狗屁不通”),有时候去面试一些人(有开发经验),问:如何看待“类型”与“对象”,回答的五花八门,基本上书是如何说他们就怎么说。
也许我的要求太高,但不管理如何,抽象与建模是做为一个初级软件开发工程师,所必须了解或熟知的运用的概念。(如果不具备也顶多是个高级程序员的价)
题外话:在先进国家的软件教育的科目中甚少使用一些热门的语言进行教学,有甚者使用内部的语言进行教学,目的在于抛离形式语言上依赖,更注重编程思想的建立与发展。
在接下来的话题中,我会更多简要的说下,我自己对抽象与建模概念的理解,如果那里说的不对,我非常高兴接受大家的指教。
A。抽象
抽象这一词在面向对象的语言中经常的提到,那么,什么是抽象?
我是这样理解的,在众多的事物中,如果存在(发现)一个或多个共同点(可以是任何东西),这些共同点通过某种方式可推算或验证的(也可以假定,如果不这样就没法子开发了),
那么抽取这些共同点就成为这些事物的抽象(真理)。
从词面意思:抽取类似(象)的
这似乎与我们实际的开发没有一点联系,就算不知道抽象,还是可以进行需求分析,程序设计(建库,建类),编码... 最后还是按时按地的交付了项目;
我对这个毫不否认,事实上的确如此,可是会遇到:
*.需求与实现不相符(客户客气的说:这个软件与我想象中的有一点不一样)
*.设计过于死板,没有适当的分离(高藕合度)