<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
CSDN英雄大会召开前之随想
早春三月,江南大地虽然还是处于春捂时节,但万物复苏的清新感觉还是扑面而来.承蒙各位支持我的好友的投票,我在CSDN的MVB票选中获得了第二名,在即将到来的四月份,我荣幸的受CSDN的邀请参加其组织的英雄会.这是对我去年一年坚持写博的一份肯定和鼓励.
从事开发已经很多年了, 这么多年什么都搞过,从底层开发到分布式框架,各种常用语言,开发方法,什么都尝试过,才发现软件这个行业其实也就这样.
这么多年,对于中小开发者来说,我逐步认识了3件事情:
一.java不是万能的
曾经我们对java语言是那么的期待,作为一种比C++简化了的跨平台的面向对象语言.java似乎也没能承受我们的期待.首先在语言上,java的语法在不过的扩充,扩充的速度远远高于对代码本身效率优化的速度.
在桌面开发领域,Java似乎还不能突破VB,PB,DELPHI的包围,在Web领域,PHP,Ruby等语言也在主机托管等领域对java展开了大围剿.但似乎大家仍然把Java做为一个天生的王道,也许是因为那个带垃圾回收机制的虚拟机和大量免费的组件框架吧, 这个时代,尤其在不用M$的软件公司眼里,不用Java开发的系统也不好意思开个几百万.
但是对于绝大多数面向服务和快速应变的门户网站开发团队,PHP妖娆的身段实在有太大的魅力了.
当然java还抱着一个中间件的稻草。不过似乎在面向消息和ESB的架构中,EJB也很难翻身了。
二.开源不是万能的
从2002年开发,各种开源软件风起云涌.sf.net里面的开源项目数以万计.如果整理一下开源的MVC框架,找到100多个,那还是常见的。我们曾经抱着很大的热情去观察每一个开源软件.结果发现开源软件就像别人的饭一样,并不永远合你胃口。大浪淘沙,dwr + struts2 + spring +hibernate这样的框架最终胜出。(struts2虽然只是GA,但也比较成熟了,因为webwork2本身就很成熟,struts2是对webwork2的一次重购,基本上也就是改改包名字)
三.JCP不是万能的
JCP作为制定标准的组织,似乎从来就没有制定出什么让人真正感到实用的东西.从Portlet到JCR到JDO,似乎就没有什么真正用起来的。
Portlet标准最大的问题是没有定义更好的交互模型,JCR的问题是查询接口达不到SQL的强大。JDO,JPA之类,似乎也看不到什么真正的能够替代Hibernate的地方。
这么多年真正炒作起来的概念:
MVC
MVC成就了Struts,而且简直成了他的代名词,作为一个URL可以明确调用的框架,从目前来看还是远远超越tapestry,jsf这些框架的。当他发现webwork比自己实现的更便捷的操作之后,干脆把ww2跟自己合并起来。
ORM
搞java,你不建领域模型那就是没面子,建了领域模型就必然需要一个工具来填充他,Hibernate的确在这个领域做到了最精
IOC
这个概念纯粹是Martin提起来的,居然还就真的火起来了。不得不佩服这位大师。
IoC的前提就是任何希望被装载的组件都要生存在容器中。结果struts2的action也变成了spring的bean。
AOP
和IOC一样,AOP成就了SpringFramework,使用spring可以精简大量的代码
AJAX
靠着google的大力推广,ajax可谓红透半边天。
这几年没炒起来的概念:
门户
前几年,人人都提门户,政府门户,个人门户,个性化定制。
IT也借着这个概念炒Portal,但在中国我们发现,绝大多数门户其实也就是个内容管理系统或者简单的说一个网站,个性化定制似乎也没什么用处,最多也就是像google桌面一样用ajax订阅一些新闻,加上Portlet标准的不够完善,使得Portal很难获得更大的发展。
工作流
不能说工作流不成功,一个表单定制引擎加上表单流转引擎的确可以解决很多企业应用,但是这么多年,也没有一个工作流引擎能取得像hibernate,spring这些框架在各自领域取得的独领半壁江山的效果。--当时写的太快了,没来急推敲原话,改改句子,免得歧义 :)
据我浅薄的经验,我看过很多政府,单位都上OA,但真正用起来的并不多
对于公文流转类型的:绝大多数单位只是像邮件一样发文章
对于请假,批示的:小企业管理不好的,推广不下去;大企业上SAP的,有能用起来的
对于更加复杂的应用:由于对表单数据的要求比较高,通常都是开发者自己开发一套简易的适合项目的流转引擎,或者整个应用还是基于数据库实现。
目前比较国外普及的开源工作流jbpm,shark等都只适用于一些环境。
其实既然叫“工作流”,显而易见,工作的复杂是千差万别的,那又如何能指望有一个普适的工作流框架呢?如果你设计一个面向呼叫中心使用的工作流,面向单据签收类的工作流,面向发文类的工作流说不定还更可能有效。
规则引擎
应用的不成熟性,导致不能真正流行。
目前正在炒,未来还不确定的概念
ESB
ESB的使用环境是在一个有很多现成的应用,并且它们都提供了集成的接口,这时候如果要开发新的应用,可以使用ESB简化集成的操作。但是目前为止这个前提环境的条件在中国似乎也没有形成。所以ESB是否能火也还是一个未知数。
相关推荐
【8项合集】12月最新JavaGuide 面试指北 代码随想录八股文 面经 【8项全部打包】 【最新面试指北 + JavaGuide + 最新代码随想录八股文 + 50万字...7. 2024 一站式搞定Java技术和项目面试 8. Java大厂面试核心体系题
《代码随想录》是一本深受程序员喜爱的书籍,尤其对于即将参加秋季招聘的计算机科学和技术专业的学生们来说,它是提升编程技能和算法能力的重要资源。这本书深入浅出地讲解了编程思维和各种常见算法,旨在帮助读者...
【代码随想录最新第三版-最强八股文】是一份综合性的IT学习资料,包含了程序员面试必备的知识点,尤其适合准备大厂面试的求职者。这份文档详细涵盖了多个编程语言、算法、计算机基础和软件工程领域的重要概念,旨在...
7. 编程语言:可能会探讨不同编程语言的优缺点,如Java、C++、Python、JavaScript等。 8. 开源社区:开源软件的贡献方式、如何使用和管理开源项目。 9. 软件测试:单元测试、集成测试、系统测试、验收测试等。 10. ...
《代码随想录-最强八股文(第五版)》是一部综合性的编程知识合集,旨在帮助程序员,尤其是面试者,提升在前端、后端以及Java和Go等领域的技术素养。这一版本的内容涵盖了大量的面试常见问题,是程序员们准备技术...
《代码随想录-最强八股文(第五版)》是一部综合性的编程知识合集,旨在帮助程序员,尤其是面试者,提升在前端、后端以及Java和Go等领域的技术素养。这一版本的内容涵盖了大量的面试常见问题,是程序员们准备技术...
Java后端大厂面试八股文是一份针对Java程序员求职...总之,Java后端大厂面试八股文是一份全面而深入的面试准备资料,涵盖了从基础到高级的多个技术领域,对于希望进入大厂工作的Java开发者来说,是不可多得的学习资源。
LeetCode是一个在线平台,提供了一系列的编程挑战题目,涵盖了多种编程语言,包括但不限于Java、Python、C++等。这些题目主要针对算法和数据结构,对于准备技术面试、提升编程技能非常有帮助。 2. **刷题顺序**: ...
在移动端开发中,开发者需要考虑多平台兼容性,如Symbian、KJava、Android和iOS等,以确保应用能在各种设备上运行良好。一个典型的例子是微博客户端,其在短时间内进行了多次迭代更新,反映出移动应用快速发展的需求...
总结来说,"java图书管理系统"是一个基于Java Swing和可能的数据库技术构建的应用,适合初学者学习GUI编程和数据库管理。通过这个项目,你可以了解Swing组件的使用,JDBC API的操作,以及如何设计一个简单的数据库...
3. **多线程**:为了确保游戏流畅运行,五子棋程序可能采用了多线程技术。玩家的每一步操作都在一个独立的线程中进行,避免了阻塞主界面更新,提高了用户体验。 4. **棋盘逻辑**:五子棋的核心算法在于检查每步棋...
在开发此类软件时,开发者可能使用了如HTML、CSS、JavaScript等前端技术构建用户界面,后端则可能用PHP、Python、Java等服务器端语言处理数据交互,数据库可能采用MySQL、SQLite等。此外,为了提高用户体验,可能还...
### 二叉树原理及Java实现详解 #### 一、二叉树简介 二叉树是一种树形数据结构,其中每个节点最多...这些基础概念和技术在计算机科学的多个领域都有着广泛的应用。理解并掌握这些基本概念有助于解决更多复杂的问题。
根据提供的文件信息,标题和描述均为“计算机教育软件随想录给计算机专业学子的建议.pdf”,并伴有技术类标签。文件内容主要讨论计算机科学与技术领域的教育和实践,提到了众多业界知名人士、技术、公司和概念。以下...
以下是对这些书籍内容的摘要和随想,涵盖了多个热门的技术主题。 首先,我们来看“Scala”——一种多范式编程语言,它结合了面向对象和函数式编程的特点。Scala提供了强大的类型系统,使得代码更加安全和高效。在...
zxing.java源码解析 mytools 常用工具类 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 ...
对于C和C++代码,GitHub是一个常用资源库,而Java代码也有类似的平台。下载后,首先要在本地编译通过,生成可运行版本,这是验证代码功能的第一步。 接下来,深入阅读和理解代码是关键。这包括理解软件的工作原理、...
【java相关技术】 框架 【文章】 Spring cloud 和 kubenetes 系列 【主要是关于Spring cloud】 【Spring cloud 和 kubenetes】 【比较复杂的Spring cloud 和 kubenetes】 【其他的参考】 分布式系统 & 微服务 问题 ...