`
cherami
  • 浏览: 212275 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

也谈Java基础的重要性

    博客分类:
  • Java
阅读更多

呵呵,看到JDon上正在讨论j2se基础的重要性,忍不住也来说两句,可以这么说,我是完全反对banq的说法的。
我不知道banq的功底到底如何,但是对于指导初学者,我觉得他完全不合格。
编程,在大多数情况下是简单的,这个可以从印度大量使用高中生编程照样可以开发出稳定大型的系统可以看出来,而且以我的经验来看,做对日外包也是一样,因为他们的设计文档已经写得足够的详细,他们提供的底层框架已经足够傻瓜(和设计文档相配合),在这种情况下,编程并不需要太多的技能,显现水平的方式就是对框架API和底层API的熟练程度,熟悉了那些API差不多就可以了(而且本来就有详细的API文档),只要可以编译通过,基本上就是验证业务逻辑是否符合需求的问题,再拔高一点,万一框架出现问题,是否有能力解决问题,这个就是全部了。
而banq先生才是恰恰误导了广大的初学者,把编程和设计混为一谈,banq先生一直考虑的都是上层的事情,都是架构和框架方面的内容,这个不是所有的程序员需要掌握和有机会掌握的,我看得太多的程序员工作了好多年,但是对于如何设计一个完整的系统还是一无所知,当然这个也不能全怪程序员,因为这个社会的大部分分工都是金字塔型的,顶层的人员的需求总是少数的,也永远只有少数人有机会去一探上层的内容。

回到编程,banq先生说OO是自然的,这个绝对是荒谬的,一个人做事情,他是按照一定的工序做的,这就像流水线一样,所以在完成简单工作的时候,OP才是自然的,你查看任何OO的系统,系统中把OO连接起来的那些代码绝对是OP的,只是这个过程,是代理给一些对象完成的,但是总归会回到主流程,为什么Java需要一个main方法?因为这个是这个过程的开始点。计算机处理程序也永远是过程式的,计算机不会理解对象,也不会理解对象之间的关系到底是怎么样的?那么为什么现在OO流行呢?因为OP在处理复杂系统的时候力不从心,这个是一个人为的提升过程,其实就是将OP中相关的方法和变量进行更好的封装,增加了一些OP所没有的特性(继承,信息封装),这样,我们在完成复杂系统的时候,代码的关系更加的清晰,我们也不用在程序执行的过程中声明太多的变量,也不用把一个过程定义得太复杂,OP这个过程中需要使用到得信息和方法被切分成很多独立的对象了,外围的程序通过调用这些OO的内容完成原来的OP的同样过程或者类似的过程。OO并不是最近才出现的,而是很早就出现的,可能和OP的出现一样早,为什么OP先流行呢?因为它“自然”简单,从头到尾一目了然,为什么OO那个时候没有流行起来,因为它理解起来比较别扭,而早期的计算机系统处理的任务都非常的简单,很多都是完成数学计算的。而计算机的速度越来越快以后,我们让计算机做的事情越来越多,越来越复杂,这样的系统的设计实现使用OP来做已经很难维护了,使用OO的方法就可以把系统切分开,很多人完成,定义相互之间的关系,然后使用OP的机制把他们连接起来达到我们的目的。

以装修为例,古代的装修很简单,可能就是编个挂毯挂上就行,任务的完成过程很简单,现在的装修呢?需要监理、水电工、泥工、木工、油漆工等等,监理负责任务的调度,什么时候水电工到场,做到那个程度,然后泥工做什么,木工做什么,在这个过程中,工种之间还需要协调配合,如果把所有的这些都丢到工地上(材料、人员和工具),会是一个什么样的局面?假设我们那么做了,可能工程还是可以完工,但是这个风险要比经过良好调度和分配的过程大得多。材料就好比对象的属性,人就好比对象,工具就好比私有方法,而他干的工作类型就是公共方法(例如木工做一个柜子,做门套,泥工拼地砖墙砖),监理就好比外围的程序(有时候监理也是对象,如果从房东的角度看的话,只是他需要的材料就是那些“工人”,对外的公共方法就是装修完,也有状态查询方法),监理关心的是人的调度以及让他干什么,而人知道怎么完成自己分内的工作,怎么用自己需要的材料和工具。


作者: 解惑/Cherami
原载: 也谈Java基础的重要性
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
分类: Java
分享到:
评论
3 楼 fyting 2007-09-10  
不喜欢他每次一本正经地开口闭口就是模式,并且每每以专家自居,好像他说的就是正确的,误导太严重了……
2 楼 cherami 2007-04-17  
呵呵,我没有直接谈基础是否重要,我批驳的主要是他对于OO的看法,以及他对初学者的误导,没有基础,使用DSL也会很有难度,而且充其量也是能使用,根本不能理解为什么这样设计,有什么好处等等。
1 楼 hideto 2007-04-17  
banq的意思是项目中大多数时候是在利用在j2se基础上构建的DSL来开发,就像Rails的api和ruby的api不同一样,所以并不太看重j2se了,再说查api文档也不是什么难事。
当然基础不行还是不行,不然很痛苦,就像我们项目组现在直接边看《Agile Rails》边写代码,而对Ruby数据结构和控制流程等底层api都一知半解一样。

相关推荐

    浅谈高职高专Java基础教学.pdf

    浅谈高职高专Java基础教学 Java 语言是高职高专教学中的一门重要课程,然而由于学生的整体水平和层次相对较低,学习的主动性和自觉性较差,使得教学工作变得非常困难。因此,笔者结合教学经验和思考,总结了个人的...

    总结一——浅谈Java的类与对象

    在Java编程语言中,类与对象是核心概念,它们构成了面向对象编程的基础。这篇博文将深入探讨这两个概念,以及它们如何...通过阅读“浅谈Java的类与对象”这篇文档,你将能更深入地了解这些核心概念,提升你的编程技能。

    浅谈java中的四个核心概念

    ### 浅谈Java中的四个核心概念 随着信息技术的飞速发展与互联网的普及,Java作为一门面向对象的、跨平台的编程语言,在软件开发领域占据了举足轻重的地位。Java不仅仅是一门语言,它更是一个庞大的技术平台。为了更...

    由浅入深学Java—基础、进阶与必做260题

    4. 实战练习的重要性:在描述中提到“通过练习,让你快速掌握java”,这表明大量的实战练习是掌握Java不可或缺的一个环节。通过解决实际问题,可以更好地理解Java语言的使用场景和编程思维。 5. 职业规划:在描述中...

    候捷谈Java反射机制

    Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时获取和操作任何已知名称的类的内部信息。这一机制使得Java具备了一定的动态性,虽然在传统的分类中Java被视为静态类型语言。通过反射,开发者可以在...

    浅谈java面向对象和引用

    ### 浅谈Java面向对象与引用 在Java学习过程中,对于面向对象的理解和引用机制的掌握是至关重要的。本文将围绕这两个概念进行深入探讨,并针对初学者常见的疑惑点进行解答。 #### Java面向对象基础 Java是一种...

    java-大数据基础面试思考.pdf

    在大数据开发领域,Java一直是一个重要的语言,因为它在集合类方面的强大功能为大数据的处理提供了便利。集合类是Java编程中非常重要的数据结构,用于存储、操作和检索数据集合。在大数据处理中,集合类的性能尤为...

    浅谈Java字符串Java开发Java经验技巧共11页.p

    标题中的“浅谈Java字符串Java开发Java经验技巧共11页”表明这是一份关于Java编程,特别是关于Java字符串处理的深度技术文档。在Java中,字符串是编程中经常遇到的基本数据类型,对于任何Java开发者来说,理解和掌握...

    浅谈java!

    - **泛型与注解**:了解泛型和注解的使用方法及其重要性。 #### 二、数据结构与算法 与JavaSE学习同步进行的是对数据结构与算法的学习。这部分内容虽不直接属于Java语言本身,但对于提高编程能力和解决实际问题...

    java基础PPT

    11. **JNI与JVM原理**:浅谈Java Native Interface(JNI),用于在Java程序中调用本地(非Java)代码,以及JVM的工作原理,包括类加载、内存管理和垃圾收集。 12. **案例分析**:可能包含一些简单的编程实例,帮助...

    浅谈Java技术学习方法.pdf

    "浅谈Java技术学习方法.pdf" Java是一种简单易用、完全面向对象、有平台无关性、安全可靠的开发工具。自1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。Java技术和应用发展很快,在...

    浅谈Java技术中的数据库应用

    Java技术在数据库应用中扮演着重要的角色,尤其是在Web应用程序中,通过B/S(浏览器/服务器)架构实现在线数据库交互。Java Database Connectivity(JDBC)是Sun Microsystems为了解决Java与不同数据库之间的通信...

    2022年10年回顾-世界各地开发高手谈JavaJava教程.docx

    关于Java的WORA理念,随着时间的推移,其重要性有所变化。尽管Java虚拟机(JVM)在实现跨平台兼容性方面取得了显著成果,但不同平台间的细微差异和性能优化仍然存在挑战。 Bruce Tate指出,Java虚拟机的概念是强大的,...

    计算机基础-java

    计算机基础是IT学习的重要起点,Java程序设计是其中的核心部分,尤其对于初学者而言,掌握这两者至关重要。在这个主题中,我们将深入探讨计算机基础知识以及Java编程语言的关键概念。 首先,让我们从计算机基础谈起...

    浅谈Java中的几种随机数

    在Java编程语言中,随机数的生成是...以上这些知识点涉及了Java中随机数生成的基础方法、并发场景下的随机数生成以及随机数分布的均衡性处理等方面,开发者在实际编程实践中需要根据具体情况选择合适的随机数生成方式。

    浅谈Java程序设计在线开放课程.zip

    "浅谈Java程序设计在线开放课程"这个主题,将深入探讨Java语言的核心概念、编程实践以及如何通过在线平台有效地学习这门技术。 Java以其“一次编写,到处运行”的跨平台特性,成为了企业级应用开发的首选语言。课程...

    浅谈Java多线程编程.pdf

    "浅谈Java多线程编程" 从标题和描述可以看出,这篇文章的主题是讨论Java多线程编程的相关知识点。 多线程编程的概念 Java语言的一个重要特点是支持多线程机制,这使得Java程序可以支持多程序并发执行,从而提高...

    Java同步机制浅谈

    ### Java同步机制浅谈 #### synchronized关键字的作用及应用 在Java多线程环境中,`synchronized`关键字扮演着至关重要的角色。它可以帮助开发者确保多线程环境下的数据一致性,防止因并发访问导致的数据错误。本...

    java培训教程-浅谈java虚拟机.pdf

    同时,JVM也是许多其他语言如Groovy、Scala和JRuby的运行基础,因此熟悉JVM对于这些语言的开发者也同样重要。 总的来说,Java虚拟机是Java语言能够实现跨平台、高效运行的关键。通过其独特的设计,JVM不仅简化了...

Global site tag (gtag.js) - Google Analytics