热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

VCL已死,RAD已死(2)

VCL已死,RAD已死——SD2C中未能尽言的话题<<<--上一节二、分层,真的改变了你的思想了吗?-----分层思想提出来了——这在操作系统的设计上可以上溯到上

 

VCL已死,RAD已死

——SD2C中未能尽言的话题



<<<-- 上一节


二、分层,真的改变了你的思想了吗?
-----
分层思想提出来了——这在操作系统的设计上可以上溯到上个世纪50年代,但在应用软件开发上
却并不太久。一个比较稳定的分层系统是“交互、业务和数据”三层,当然,与实际需要相关的
还有更多层、更多更多层。

分层没有什么不好。正如我说WIMP没有什么不好一样。但是,厂商们开始掺合了。为了让我们的
程序员成为RAD中的SuperMan,以及表明我们这些厂商直接就是超人学校,并提供超人道具。所以
我们的开发工具加上了各种各样的RAD工具:数据库可以拖、网络接口可以拖、应用框架可以拖、
设计模板可以拖。厂商们宣传:只要往界面上一拖,我们的开发人员就可以回家睡大觉了,三天
后系统就可以Build出来。

老板们相信了这样的鬼话,并且认为那些没有按这样的方式为客户“生产”出产品的程序员都是
笨蛋,应该立即开掉并招聘另一批RAD的SuperMan进来。按照RAD对时间节省的功率来看,客户给
出的时间富富有余,重复开发三五回都没问题。

但是,结论是:我们失败了。在所有的分层上,由同一个厂商,在同一个工具,使用同一个或一
类开发人员来完成产品的理论和实践,通通的倒掉,死掉,一个不留。

没有人是超人,没有人能象孙猴子那样从天上打到地下,从龙宫打到阎罗殿。我们是在写软件,
不是在制造神话。相信这一点,你就知道在各个分层上由同一方案来解决是不合理的。分层是伟
大的思想,只是工具产商们胃口大到了极点,因而无视于这伟大思想背后的深意。

纵向的切分带来了模块与模块间的隔离,可以将系统由大而化小,从而分解了“系统的复杂性”,
这与把一个住宅小区分成几十橦大楼,以及无数的生活设施是一个道理。同样的,横向的切分带
来了专业领域,以及领域间的界面,这与把楼房看成砖瓦等构件是一样的。但砖瓦等构件带来的,
是砖头工、瓦匠,以及木工、电工。无视于领域存在的人,只配去建猪舍,在那样规模的建筑上,
不需要“术业有专攻”,而且项目失败成本的边界无过于:

压死一头猪,或一群猪。


大厂商们以牺牲一头或一群猪的风险成本与战略眼光,以及战术思想,要让我们——开发人员去
建设一橦大楼,或一片小区。这就是现实。

分层,带来模块的分解,以及领域的切分。而你的求职简历上还写着:熟悉二十种语言、各种开
发工具、设计工具、调试环境、性能分析测试以及服务器端部署……

开玩笑啊,如果你的工作经验未能超过150年,而你的老板还敢雇佣你,那么活该他项目做死掉。


下一节 -->>>

 
 
 
 


推荐阅读
  • 解析程序员与软件工程师的角色差异
    本文深入探讨了程序员与软件工程师之间的主要区别,包括它们的职业定位、技能要求以及工作内容等方面的不同,旨在帮助读者更好地理解这两个角色的特点。 ... [详细]
  • 本文详细探讨了在Windows Server 2003环境下遇到MySQL连接失败(错误代码10061)的解决方案,包括通过卸载特定的Windows更新和调整系统注册表设置的方法。 ... [详细]
  • 解决getallheaders函数导致的500错误及8种服务器性能优化策略
    本文探讨了解决getallheaders函数引起的服务器500错误的方法,并介绍八种有效的服务器性能优化技术,包括内存数据库的应用、Spark RDD的使用、缓存策略的实施、SSD的引入、数据库优化、IO模型的选择、多核处理策略以及分布式部署方案。 ... [详细]
  • 本文档详细介绍了服务器与应用系统迁移的策略与实施步骤。迁移不仅涉及数据的转移,还包括环境配置、应用兼容性测试等多个方面,旨在确保迁移过程的顺利进行及迁移后的系统稳定运行。 ... [详细]
  • SonarQube配置与使用指南
    本文档详细介绍了SonarQube的配置方法及使用流程,包括环境准备、样本分析、数据库配置、项目属性文件解析以及插件安装等内容,适用于具有Linux基础操作能力的用户。 ... [详细]
  • 解决CSS因MIME类型不匹配导致的加载失败问题
    本文详细介绍了在Web开发过程中,遇到CSS文件因MIME类型不匹配而无法正确加载的问题及其解决方案,适合前端开发者阅读。 ... [详细]
  • 本文介绍了NHibernate中通过定义接口和实现类来管理会话工厂的方法,包括接口的优势、模型文件夹的结构以及具体的代码示例。 ... [详细]
  • 深入理解Hibernate延迟加载机制
    本文探讨了Hibernate框架中的延迟加载(懒加载)特性,分析其对程序性能的影响及实现原理,同时提供了具体的代码示例来说明如何配置和使用延迟加载。 ... [详细]
  • 深入浅出:Java面向对象编程
    本文详细介绍了Java语言的核心特性——面向对象编程。探讨了Java的基本概念、平台无关性、丰富的内置类库及安全性,同时深入解析了类加载器、垃圾回收机制以及基本数据类型和其包装类。 ... [详细]
  • 本文详细探讨了字符编码的发展历程,从最早的8位字节编码到现代的UNICODE和UTF8,解释了各种编码方式的原理及其在不同场景下的应用。 ... [详细]
  • 本文探讨了如何利用脚本文件高效管理Oracle数据库,包括脚本文件的创建、编辑及运行方法,旨在为数据库管理人员提供实用指导。 ... [详细]
  • 本文详细介绍了Android平台上的动态加载技术,包括其定义、分类及具体实现步骤。通过动态加载技术,开发者可以在不更新应用的情况下,向用户推送新的功能或修复bug,从而提升用户体验。 ... [详细]
  • 自从踏入编程领域,设计模式这一术语便频繁出现在耳边。初听时或许感到陌生且高深,但随着经验的积累,逐渐意识到其重要性。本文旨在探讨设计模式的基础知识及其在实际开发中的应用价值。 ... [详细]
  • 评估Kotlin的学习价值及其在大厂面试中的作用
    本文探讨了Kotlin这门编程语言的学习必要性,并分析了其在移动开发领域的地位,特别是在求职大厂时的影响。 ... [详细]
  • 本文详细介绍如何在Android模拟器上安装TaintDroid的过程,包括解决源代码链接失效及服务器文件变动等问题,旨在帮助后续用户避免不必要的麻烦。 ... [详细]
author-avatar
mobiledu2502929447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有