Java学习之路全攻略——编程本质论-Java基础-Java-编程开发
来源:互联网 发布:linux基本指令 编辑:程序博客网 时间:2024/05/03 03:39
这几年各种新的技术井喷一样的涌现出来。身处这样一个时代的我们,难免就有一种拔剑四顾,心下茫然的感觉。在某一方面的做到精专已属不易,全才似不可能,那么究竟又该何去何从?这篇文章目的是探讨编程过程中一些本质的东西,已期对大家的学习有所帮助。
个人以为,从编程这一职业诞生开始一直至今,其本质就没有改变过。对概念的抽象对逻辑的描述始终都是编程过程中最核心的东西。
程序为解决某一问题而存在。而问题可拆分成某些概念和逻辑关系。而结构化程序设计和面向对象程序设计不过是对概念和逻辑进行表达的不同方式。而程序中逻辑关系的复杂程度随程序的规模而增加。
程序的本质不是各种技巧。就算你把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";
}
}
[1][2]
- Java学习之路全攻略——编程本质论-Java基础-Java-编程开发
- Java打印程序设计全攻略-Java基础-Java-编程开发
- java基础学习之网络编程全双工
- Java学习之路:不走弯路,就是捷径-Java基础-Java-编程开发
- java学习笔记之java编程基础
- java winform开发之JTable全攻略
- Java IO学习基础之读写文本文-Java基础-Java-编程开发
- java编程基础学习
- 零基础如何学习JAVA编程开发
- Java传说之风云再起-Java基础-Java-编程开发
- Java传说之风云再起-Java基础-Java-编程开发
- Java传说之风云再起-Java基础-Java-编程开发
- Java基础学习——网络编程
- java基础学习—网络编程
- Java入门学习指导之最佳方向-Java基础-Java-编程开发
- Android学习路线之Java编程基础
- JAVA基础学习之UDP网络编程
- JAVA基础学习之TCP网络编程
- Java基础-Java语言的Socket类详细介绍-Java基础-Java-编程开发
- Java基础-Java语言的Util类详细介绍-Java基础-Java-编程开发
- Java抽取Word,PDF格式文件的四种武器-Java基础-Java-编程开发
- 编程需要注意陷阱:Java继承是有害的-Java基础-Java-编程开发
- AJAX技术之如何处理书签和翻页按扭-Java基础-Java-编程开发
- Java学习之路全攻略——编程本质论-Java基础-Java-编程开发
- Java十大经典中文图书-Java基础-Java-编程开发
- Java IDE-NetBeans IDE 4.1 入门指南-Java基础-Java-编程开发
- 学习使用J2EE Web应用的事件功能-Java基础-Java-编程开发
- 彻底学习Java语言中的覆盖和重载-Java基础-Java-编程开发
- Jcrontab - java定时程序进阶学习-Java基础-Java-编程开发
- Java的模板引擎Velocity初体验-Java基础-Java-编程开发
- 从Java应用程序动态生成PDF文件-Java基础-Java-编程开发
- Java Web应用中如何实现任务有效调度-Java基础-Java-编程开发