基类与愚公移山

基类与愚公移山

文/高焕堂
 
基类(Base Class)又称为超类(Super Class)是软件应用框架(Application Framework)的核心组件,它预留了许多虚空之处,就如同畚箕一般,让愚公把泥土填入其中,挑去填北海。在Google推出的Android手机平台的应用框架里就含有成百上千个基类,例如最常用的Activity基类,Android应用程序员就依据用户需求而撰写子类(Sub Class)去把基类预留的虚空填实,就成为用户可用的软件程序了。
我并不是说写子类的程序员是愚公,只是想藉家喻户晓的愚公移山故事凸显我们常常忽略掉基类(畚箕),注意力偏重于用户需求和子类。当我们持着这个观点时,就会竞争比较谁擅用畚箕、谁挑得最快、唯有愚公才能毕其功而不功亏一篑。君不见,我们的畚箕和扁担五千年来似乎没多少新花样;反观英国的大英博物馆里收藏的马铃薯销刀就多达3000种花样。如果我们把焦点放在畚箕,则可得到另一个观点:众人皆淘金,唯我做牛仔裤。据说LEVI*S和Microsoft公司都持此观点。当我们持着这个观点时,就会竞争比较谁能做出更酷又炫的畚箕,并提供巨额奖金鼓励更多愚公来移山,这样很快就把山移完了。
虽然基类与子类里都是代码,但是前者挖空务虚,后者填满务实,在心法和工法上都是相反而互补。挖空就是洞悉潜在用户需求未来会变,然后预留卡榫;填满就是用户出现了,将其特殊相插入卡榫里。
基类也像雀巢咖啡包,而子类像是以咖啡包加糖而泡出来的一杯咖啡。当软件产业长期忽略基类时,就只能依赖外国提供,软件公司变成开咖啡厅,向客人收小费。意味着整个IT产业偏向于信息产业,而软件本业可能会逐渐式微。就拿飞机产业来比喻吧,信息产业相当于航空业(如深圳航空公司),软件本业就相当于飞机业(如波音公司)。
《礼记·学记》里提到:良弓之子,必学为箕。如果礼记的观点是合理的话,则唯有能做出好的箕,才能做出好的弓。亦即,软件产业之子,必学撰写基类。俗语说:见微知着,如果产业里很少程序员负责撰写基类给别人用的话,可能意味着该产业偏向愚公移山的观点,竞相比较谁擅长于用别人的基类(如Google Android应用框架)撰写子类来服恃用户。当用户规模愈大,软件产业就愈仰赖外国的基类了。
 
高焕堂,台湾软件架构设计大师,从事IT行业近30年,被称为“台湾OO技术教父级代表人物”。曾经创办MISOO对象教室及《SoSE杂志》,现于MISOO软件开发与管理顾问公司担任CSA职务。
本文摘自《程序员》杂志08年6期“评论”栏目。
 
  
 
已标记关键词 清除标记
课程简介: 历经半个多月的时间,Debug亲自撸的 “企业员工角色权限管理平台” 终于完成了。正如字面意思,本课程讲解的是一个真正意义上的、企业级的项目实战,主要介绍了企业级应用系统中后端应用权限的管理,其中主要涵盖了六大核心业务模块、十几张数据库表。 其中的核心业务模块主要包括用户模块、部门模块、岗位模块、角色模块、菜单模块和系统日志模块;与此同时,Debug还亲自撸了额外的附属模块,包括字典管理模块、商品分类模块以及考勤管理模块等等,主要是为了更好地巩固相应的技术栈以及企业应用系统业务模块的开发流程! 核心技术栈列表: 值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大部分常用技术,包括Spring Boot、Spring MVC、Mybatis、Mybatis-Plus、Shiro(身份认证与资源授权跟会话等等)、Spring AOP、防止XSS攻击、防止SQL注入攻击、过滤器Filter、验证码Kaptcha、热部署插件Devtools、POI、Vue、LayUI、ElementUI、JQuery、HTML、Bootstrap、Freemarker、一键打包部署运行工具Wagon等等,如下图所示: 课程内容与收益: 总的来说,本课程是一门具有很强实践性质的“项目实战”课程,即“企业应用员工角色权限管理平台”,主要介绍了当前企业级应用系统中员工、部门、岗位、角色、权限、菜单以及其他实体模块的管理;其中,还重点讲解了如何基于Shiro的资源授权实现员工-角色-操作权限、员工-角色-数据权限的管理;在课程的最后,还介绍了如何实现一键打包上传部署运行项目等等。如下图所示为本权限管理平台的数据库设计图: 以下为项目整体的运行效果截图: 值得一提的是,在本课程中,Debug也向各位小伙伴介绍了如何在企业级应用系统业务模块的开发中,前端到后端再到数据库,最后再到服务器的上线部署运行等流程,如下图所示:
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页