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

iMIS为什么会失败?

阅读更多

今天在和同事讨论系统的表结构设计,在回家的路上,我突然“顿悟”了。



大约在三年前,我在上一家公司里干得相当的不错,如鱼得水。我们开发了不少的Web项目,无论是速度还是质量,都能令人大家满意。我们在项目开发中不断地总结经验,打算将一直一来项目中采用的技术产品化、平台化。我踌躇满志地计划着下一个版本的设计,在过去PHP的基础上,我打算采用java进行开发,虽然我在此之前没有用java开发过软件或者网站,但是我当时的态度是:语言不过是工具,采用任何语言来实现我的这个框架都只有细节的区别。这个新的框架,我给它起了一个不错的名字:“iMIS——集成管理信息系统”。

当然,如果有PHP和java开发经验的朋友应该能够预感到,这个iMIS只怕前景不妙,因为PHP中的面向对象相比java的面向对象实在是太简陋了,而我当时的面向对象的基础实在是差得羞于见人。而在当时我是不这么认为的。

但是,不要误会,我的iMIS不是倒在实际的项目上,而是倒在了公司的决策会议上了。当时公司另外还有一个开发框架,名字也不错,叫做“carmot”。这个框架的设计者可不像我这么“外行”,他是正牌的java程序员,而且在来我们公司之前,是教java编程的教师。两个系统作为公司将来可能采用的备选开发平台竞争,我们公司的CTO的选择是显而易见的——现在回想起他当时跟我的数次长谈,我想他当时应该已经做到足够委婉了。

后来,我并不死心,还是在一个中等大小的房地产网站上开始了iMIS的试验,后来有将这个平台使用到了三四个项目之中。这三四个项目,并不失败,开发效率依然很高,而且都基本圆满的实现了用户的需求。因此我也从来没有真正想通过,为什么当初他们不同意采用我的iMIS?

后来我一怒之下,打算将iMIS开源,重新命名为“OpenIS”,还写了两个文档,打算找人帮我一起继续开发这个框架。
openis系统的历史、目标与方案的选择
openis 系统的特性


找帮手需要名气的,我打算到各大java论坛去打打名气,最先去的是CSDN,然后到了jdon,最后落户在了javaeye。名气渐渐是有了,帮手却始终没有找到,认识了很多真正的java高手(我在1年以前是不能算的),也学到了很多java的知识(之前的java代码现在看了都觉得脸红),唯独没有任何长进的是Hibernate的知识,我故意不去学习任何已有的O/R Mapping知识,因为我打算自己做的框架中自然包含着我自己的O/R Mapping。

暂时打住一下,各位可能会认为我这篇blog是篇“OO迷途羔羊”的忏悔吧,其实不是,我还是一点都没有觉得自己的思路有什么问题,只是逐渐地理解了自己为什么会失败而已。
思考软件开发(1)——面向对象的前前后后 
我也来发邮件

接着说,上面的两篇文章,是我最早发在javaeye的两篇讨论面向对象的文章。在经过这么长时间的与人讨论之后,我已经越来越意识到,我对于面向对象编程(OOP)的开发从来就不能算是主流的观点,当然随着后来AOP之类思想的兴起,我逐渐感到有了知音。这是我当年的iMIS失败的原因之一。

另外一方面,我对于数据库主流的看法也不是主流的数据库设计的思路,在我看来,经典的数据库设计理论,根本就未曾考虑过像我们现在这样的“必需要拥抱变化”的极限开发境况。数据库范式的设计者,几乎不考虑库结构需要不断变动的情况。而且为了尽可能的减少冗余数据,宁可多写代码,也不准多占磁盘空间。在经典的对象(Object)与经典的关系数据库(Relation)之间,有一条巨大的鸿沟,这就导致一个好的O/R Mapping工具,必须在“面向对象成为绝对主流”之后出现,来填平这一鸿沟。可以预料到的是:“Object与Relation之间的差距越大,Mapping工具就会越复杂。”

现在的Hibernate,正在越来越复杂,可以预见的是,要用好Hibernate,绝非一般程序员想象的那样:“不用再想数据库设计的问题了”,而是必须对面向对象和数据库都有非常深入的了解,才可能用好Hibernate。

回到我的iMIS上来,当初我的iMIS的设计之所以会遭遇不信任,并不是因为他不可行,而是因为没有人相信它可行,无论是一个java好手,还是一个数据库好手,都会很自然的将iMIS的设计理解为“不走正道”,“肯定没有好下场”。唉,关键在于观念的转变呀!

分享到:
评论

相关推荐

    项目管理软件捷为iMIS-PM

    【捷为iMIS-PM项目管理软件】是一款专注于项目管理的IT工具,它以任务管理为核心,旨在覆盖项目从立项到结束的全生命周期管理。软件通过分解项目计划为可执行的任务,分配合适的人员、信息、资源和进度,确保任务的...

    iMIS-PM集成研发项目管理系统介绍

    捷为iMIS-集成项目管理系统--- 一个可以让您每年节约10%-20%以上成本,10%以上时间的管理工具!(中国国际软件博览会金奖 &中国项目管理软件领导品牌)

    捷为IMIS项目型制造业解决设计方案.pptx

    6. 安全策略:为保护企业数据,iMIS会实施严格的安全措施,包括用户权限控制、数据加密和访问审计,确保信息的安全性。 7. 部署方案:可能包括云端和本地部署两种方式,根据企业需求和网络环境灵活选择。 8. 客户...

    捷为IMIS项目型制造业解决方案.pptx

    "捷为IMIS项目型制造业解决方案" 本解决方案旨在帮助项目型制造业企业实现信息化管理,提高企业的运营效率和管理水平。通过本解决方案,企业可以对项目进行有效的管理,实现业务流程的整合和优化,提高知识管理和...

    深圳地税启用iMIS-PM,助力政府项目管理信息化

    项目管理是一种实效的现代管理模式,项目管理已广泛应用于各行各业!

    捷为IMIS项目型制造业解决方案

    捷为IMIS项目型制造业解决方案以实践认知世界,以实事构架世界,捷为IMIS项目型制造业解决方案总能给你最...该文档为捷为IMIS项目型制造业解决方案,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看...

    imis.rar_inventory_库存管理_库存管理 java_库存管理信息系统_库存管理系统

    5. 库存分析:通过对历史数据的分析,系统能为企业提供库存周转率、库存成本等关键指标,帮助制定更科学的库存策略。 三、Java技术在库存管理信息系统中的应用 Java作为一种跨平台的编程语言,以其强大的网络支持...

    智能工厂整体解决方案iMIS.pdf

    ### 智能工厂整体解决方案iMIS #### 关于科远 科远股份有限公司是一家致力于推动工业自动化与信息化融合发展的高新技术企业。公司成立于1993年,并于2010年在深圳证券交易所上市(代码:002380)。科远秉持“让...

    HZMB-IMIS-质量管理子系统-infoPath管理员手册.doc

    HZMB-IMIS-质量管理子系统-infoPath管理员手册.doc

    novexe.imis.migration

    6. **前端与后端的协调**:在迁移过程中,前端(CSS)和后端(如数据库、服务器逻辑)的配合尤为重要。前端需要知道如何与新的后端接口交互,而后端则需提供符合前端需求的API。 7. **测试**:迁移过程中,全面的...

    iBubble for iMIS-crx插件

    语言:English该扩展程序可识别员工网站上的所有链接并创建工具提示此Chrome扩展程序可与ASI iMIS 20.2.26或更高版本一起使用。基本上,如果扩展过程将其识别为工作人员站点,则此扩展将标识您正在访问的页面,该扩展...

    会员管理系统设计——BJFU_IMIS PHP结课作业.zip

    软件开发设计:PHP、应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储...

    iBubble的提示「iBubble for iMIS」-crx插件

    当页面呈现时,它会查找页面中的所有超链接,并检查是什么类型的实体,然后将适当的事件添加到这些超链接来动态加载信息。 此外这个扩展有快速搜索功能,您可以通过名称搜索联系人。 支持语言:English

    IMS实际报文

    SCSCF还会与HSS(Home Subscriber Server)交互,以获取用户信息和服务配置。 ICSCF则在用户漫游时起到查询作用,确定用户应使用的SCSCF。ICSCF-194.cap文件可能记录了ICSCF与HSS或其他ICSCF之间的交互,以便正确...

    信息管理和信息系统学年论文.doc

    大数据不仅改变了信息处理的方式,还为教育领域带来了新的机遇与挑战。在这个背景下,IMIS专业的课程设置和教学策略需要进行适应性的改革。 一、大数据对IMIS专业的影响 1. 人才需求增加:大数据时代对信息管理和...

    1_011_a_infektionsfall_uebermittellung:IMIS(信息融合和信息系统),数字化和信息融合,大众传播,信息交流与发展

    管理信息系统信息融合和信息系统Dieses Projekt对Rahmen des -... 对master新提交将导致对staging.imis-prototyp.de新发布。 imis-prototyp.de的新版本不是由master上的提交触发的,而是由新的release标签触发的。

    房地产行业项目管理信息化案例(沿海地产)

    在这个案例中,沿海地产选择与捷为软件合作,利用捷为iMIS系统构建一体化的企业信息化管理系统,以应对日益增长的项目数量和不断提升的管理要求。 捷为iMIS是一款专为项目管理设计的软件系统,它在房地产领域的应用...

    大数据背景下信息管理与信息系统专业发展研究.zip

    在未来,IMIS专业的发展可能会更加注重实践性和跨学科性。与企业合作建立实习基地,让学生参与到真实的大数据项目中,可以提升他们的实战能力。同时,与其他领域如社会科学、医学、环境科学等交叉融合,可以产生更多...

    企业项目管理通用解决方案

    捷为科技的iMIS PM 项目管理软件是这种通用解决方案的具体实践,它以任务管理为中心,确保项目计划的执行和控制。系统通过将项目拆分为可操作的任务,并分配相应的人员、信息、资源和进度,使任务分配给项目团队成员...

Global site tag (gtag.js) - Google Analytics