经历了很多公司,看过好多代码。传统行业公司普遍都有自己一套统一的开发框架,封装的非常傻瓜化,门槛极低,便于不同的项目快速开发上线。比如有一个银行业框架封装到开发人员只需要在界面上拖拽就完成大部分工作,然后在拖拽好的模块里面添加一些业务代码就ok了。用友,华为也是类似。当然传统行业缺点是,一套框架用n年,老掉牙了也在用,有时候跟不上时代。
小的互联网公司有时候就不太注重,基本就以快速上线为主,草草完成功能就可以了。阿里巴巴在开发框架封装方面做的也不是很好,跟发展历史有关,也跟商业驱动有关,这个就不多谈了。
开发框架一说,有做java就认为spring就ok了,或者spring我简单封装一下就ok了。大错特错,做框架的目的是把与业务无关的所有细节隐藏掉,让开发人员以最快最简单的方式完成业务。拿做一个网站来说,抛开架构,仅就单机开发一个java网站,需要做的事情就很多。
我觉得起码需要规范或封装的部分:
- 后端
- 后端编码规范
- 分层规范 controller service dao。这个非常重要
- 基础工具类 xxUtil
- Ioc aop spring可以实现
- mvc spring可以实现
- 数据库 数据源 事务 这个可以通过spring实现
- 日志记录 通过spring aop记录耗时日志,参数日志等
- 模板封装 jsp或vm等
- 数据校验
- 前端
- 前端js/css编码规范
- 前端统一字体、样式、控件规范
- 前端模块化开发 例如:sea.js
- form 校验
- ajax
- 无js化,参见angularjs jui(国内前端框架)
- 前后端结合
- 分页
- 异常处理及展示
- 页面跳转规范或ajax load规范
- 业务
- 单点登录
- 权限判定
- 评论
- 等等
总之有很多,一定需要封装到让一个刚毕业的学生在2-3周就可以熟练开发。而且框架代码由专门的框架开发人员进行升级维护及培训,保持框架的活力。
封装框架可以增强对设计模式及面向对象,aop的理解,只有当你成功的完成了一个框架的封装,你才可以继续往架构的方向前进。
当然对此有开发人员颇有争议,我见过很多程序员,当他从一个公司离开后,发现脱离了公司的框架自己什么也不会。这个说明2个问题:
- 他们公司框架做的好,让他了解的细节足够少。
- 他没有合理的利用时间,去把框架掌握到手。
跟阿里的同事也有讨论,结果大家都比较认同:
- 一个团队必须有自己的开发框架,虽然再去为阿里全集团做一套统一的框架很难,但自己团队内部必须有一套框架,可以帮助团队快速开发。其实支付宝是有一整套开发框架的,这是因为支付宝沿袭自金融行业。
- 另外要组织全团队的框架培训,让每个人都对框架有足够的熟悉,甚至提出改进意见。
- 通过框架节省下的时间,可以研究更先进的技术,反哺框架本身。
时间: 2024-10-26 17:55:41