Java学习之路全攻略——编程本质论

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

这几年各种新的技术井喷一样的涌现出来。身处这样一个时代的我们,难免就有一种拔剑四顾,心下茫然的感觉。在某一方面的做到精专已属不易,全才似不可能,那么究竟又该何去何从?这篇文章目的是探讨编程过程中一些本质的东西,已期对大家的学习有所帮助。

个人以为,从编程这一职业诞生开始一直至今,其本质就没有改变过。对概念的抽象对逻辑的描述始终都是编程过程中最核心的东西。

程序为解决某一问题而存在。而问题可拆分成某些概念和逻辑关系。而结构化程序设计和面向对象程序设计不过是对概念和逻辑进行表达的不同方式。而程序中逻辑关系的复杂程度随程序的规模而增加。

程序的本质不是各种技巧。就算你把EffectiveC++,MoreEffectiveC++中的每一条款都应用到了你的C++程序中,假如没有对逻辑关系的良好组织,你的程序也可能糟不可言。可能高耦合低内聚,可能不可扩充?D?D?D。

上面这段文字提到了四个概念,他们分别是:问题、概念、逻辑和技巧。

我来举个例子来说明这四个概念都代表些什么。

现在假设我们需要根据已知的一个文件名产生一个临时文件名。假如输入为prog.dat,mydir,hello.,oops.tmp,end.dat那么相应的输出为

prog.dat=>prog.tmp

mydir=>mydir.tmp

hello.=>hello.tmp

oops.tmp=>oops.xxx

end.dat=>end.tmp

(这里使用了TheC++StandardLibrary中第11章的例子)

什么都不做的程序是不存在的,程序总要解决客观世界中的某些问题。这里的问题就是要为一个已知的文件名产生相应的临时文件名。

解决这个问题时涉及的概念主要有两个:字符串和扩展名。扩展名可以用字符串进行表示。

解决这个问题的逻辑之一可用下面的伪代码来表述:

if(输入文件名没有扩展名)

{

用输入文件名、'.'号和"tmp"生成临时文件名;

}

else

{

得到输入文件名的扩展名;

if(扩展名为空)

{

用输入文件名和"tmp"生成临时文件名;

}

elseif(扩展名为"tmp")

{

把"tmp"替换为"xxx";

}

else

{

把文件名'.'以后的部分替换为"tmp";

}

}

QQread.com

推出各大专业服务器评测 Linux服务器的安全性能

SUN服务器

HP服务器

DELL服务器

IBM服务器

联想服务器

浪潮服务器

曙光服务器

同方服务器

华硕服务器

宝德服务器

当然你还可以有其他的实现逻辑,而这种逻辑总是可以独立于语言、操作系统的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航