架构师速成6.4-开发框架

经历了非常多公司,看过好多代码。

传统行业公司普遍都有自己一套统一的开发框架,封装的非常傻瓜化。门槛极低,便于不同的项目高速开发上线。比方有一个银行业框架封装到开发者仅仅须要在界面上拖拽就完毕大部分工作,然后在拖拽好的模块里面加入一些业务代码就ok了。用友。华为也是类似。当然传统行业缺点是。一套框架用n年,老掉牙了也在用。有时候跟不上时代。

小的互联网公司有时候就不太注重,基本就以高速上线为主。草草完毕功能就能够了。阿里巴巴在开发框架封装方面做的也不是非常好。跟发展历史有关。也跟商业驱动有关,这个就不多谈了。

开发框架一说,有做java就觉得spring就ok了,或者spring我简单封装一下就ok了。

大错特错。做框架的目的是把与业务无关的全部细节隐藏掉,让开发者以最快最简单的方式完毕业务。拿做一个站点来说,抛开架构,仅就单机开发一个java站点,须要做的事情就非常多。

我认为起码须要规范或封装的部分:

  1. 后端

    • 后端编码规范
    • 分层规范 controller service dao。这个很重要
    • 基础工具类 xxUtil
    • Ioc aop spring能够实现
    • mvc spring能够实现
    • 数据库 数据源 事务 这个能够通过spring实现
    • 日志记录 通过spring aop记录耗时日志,參数日志等
    • 模板封装 jsp或vm等
    • 数据校验
  2. 前端
    • 前端js/css编码规范
    • 前端统一字体、样式、控件规范
    • 前端模块化开发 比如:sea.js
    • form 校验
    • ajax
    • 无js化,參见angularjs jui(国内前端框架)
  3. 前后端结合
    • 分页
    • 异常处理及展示
    • 页面跳转规范或ajax load规范
  4. 业务
    • 单点登录
    • 权限判定
    • 评论
    • 等等

总之有非常多。一定须要封装到让一个刚毕业的学生在2-3周就能够熟练开发。并且框架代码由专门的框架开发者进行升级维护及培训,保持框架的活力。

封装框架能够增强对设计模式及面向对象,aop的理解,仅仅有当你成功的完毕了一个框架的封装,你才干够继续往架构的方向前进。

当然对此有开发者颇有争议。我见过非常多程序猿,当他从一个公司离开后,发现脱离了公司的框架自己什么也不会。

这个说明2个问题:

  1. 他们公司框架做的好,让他了解的细节足够少。
  2. 他没有合理的利用时间,去把框架掌握到手。

跟阿里的同事也有讨论。结果大家都比較认同:

  1. 一个团队必须有自己的开发框架,尽管再去为阿里全集团做一套统一的框架非常难,但自己团队内部必须有一套框架。能够帮助团队高速开发。

    事实上支付宝是有一整套开发框架的。这是由于支付宝沿袭自金融行业。
  2. 另外要组织全团队的框架培训,让每一个人都对框架有足够的熟悉,甚至提出改进意见。
  3. 通过框架节省下的时间,能够研究更先进的技术,反哺框架本身。
时间: 2024-10-10 13:14:11

架构师速成6.4-开发框架的相关文章

架构师速成-架构体系

经过这段时间的反思和整理,终于对架构有了一个较为明确的理解.架构是产品从无到有以及慢慢壮大过程中所需要的全部技术体系总称,架构过程: 配置.编码.测试.运维.监控分析.安全.运营等一系列技术体系的选型.取舍 技术选型基础上进行规划.设计.实现.迭代.制定相关规范 相关技术及规范运用到产品开发的整个过程中,并在产品迭代过程中对架构进行迭代优化 架构不止包含技术的框架,比如有人用了spring就觉得我已经是架构师了,其实架构并不是这么简单.我们以做一个新浪微博类似产品为例,现实应该是这样的: 产品初

架构师速成6.6-知识的收集整理学习

知识如何学习前面已经讲了2节,这节主要讲知识的整理和沉淀. 其实我之前也一直没有好好的思考过这个问题,今天在整理自己的wiz知识库的时候突发灵感,所以有了这一节. 其实知识获取的过程分为搜索->收集->整理->精化->应用->分享,前一部分跟时间管理的收集也很相近吧.知识获取的思路适用于有目的的知识收集和日常的备忘性的知识收集.当然你随机收集一些资料记录下来其实效果并不是很理想,重要的是你要有目的的学习才能最大的发挥你的心智以及潜意识.当你主动要学习一项知识时,你的潜意识会主

架构师速成8.2-架构师要懂产品

产品和架构两个截然不同的职业,好像风马牛不相及,其实不是这样的.产品的思想需要经过技术的手来成为现实,在成为现实之前,需要技术理解.评估.碰撞.优化.把控.验证等等.当然架构师就承担了这一系列技术的责任,而且在一个产品的实现过程中,技术架构并不是很重要的,前期可以没有架构,简单快速验证,只有在用户多了之后,架构才有真正的用处.在初创公司,很多架构师都等不到用户多了的那一天,来实现自己的架构梦.所以产品这一关架构一定要把好,只有你把好了,后面才有机会让你去架构. 当然架构师的懂产品,是懂产品的生命

架构师速成7.3-devops为什么很重要

evops是一个很高大上的名字,其实说的简单点就是开发和运维本身就是一个团队的,要干就一起把事情干好.谁出了问题,网站都不行.作为一个架构师,必须要devops,而且要知道如何推行devops. 首先要自动化,举个阿里的例子,阿里通过aone系统来实现半自动化部署: 开发人员开发代码先自测通过后,提交代码到git. 在aone中一键部署到日常环境.部署是自动化扫描依赖冲突,系统安全等问题. 测试接到部署成功的通知,进行测试,如果测试通过,则审批通过,可以线上发布. 线上运维人员一键部署到线上,部

架构师速成8.3-架构师必须要了解的规则(转)

作为一个架构师,有些规则是必须要掌握的,这就想软件的公理,如果你学物理不知道牛顿定律,那就不要学了.在软件行业也有类似的东西,我称之为软件定律.例如: ACID,CAP,BASE ACID 传统数据库系统中,事务具有ACID 4个属性 (1)原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行. (2)一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态.这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性:事务

架构师速成4.2-幼儿园要学会如何高效学习

<如何高效学习>,这本书的作者是scotthyoung,最知名是的1年内自学完成4年麻省理工学院计算机科学的33门课程,同时也写了一个学习方法的Blog,他使用费曼技巧来加强理解和学习. 费曼技巧有很多种理解,最简单的是: 拿张白纸; 在白纸顶部写上你想理解的某想法或某过程: 用你自己的话解释它,就像你在教给别人这个想法. 最要紧的是,对一个想法分而化之,虽然可能重复解释某些已经弄懂的知识点.但你最终会到达一个临界点,无法再解释清楚.那里正是你需要填补的知识缺口.为了填补这个缺口,你可以查课本

架构师速成5-小学

很高兴你很快的进入了小学,小学的东西会让你更加的耀眼. 阶段: 小学 学时:2-3个月 升学标准 能自己制定目标及计划,get thing done. 可以轻松制作一个让你身旁人惊叹的ppt 能做一个简单的网站(或者客户端软件),数据能保存到数据库. 实践经验干货来了. 先说ppt吧,这个上一期已经讲了,如果你ppt做到出神入化,基本不需要做架构这么苦逼的事情了.因为你很容易成为老板的心腹,军师,走上人生正道.作为一个苦逼的小学程序员,很羡慕吧.那就再努力学一下,不用多久,你就会升职加薪,当上总

架构师速成7.4-架构师为什么要带团队

有人说架构师明明只需要做架构,干嘛要扯出来带团队,带团队不是项目经理或者CTO之类的管理人员干的事情吗? 其实这个是一个误区,架构师其实是一个全栈的特殊人物,应该项目开发的所有的环节和角色都有深入了解,尤其是带过团队对你的帮助会更大.那种只做架构,而且仅会做架构的架构师,是大公司畸形的产物,在我看来,不太接地气.大公司人员体系庞大,分工明确而且细致,技术只是负责技术就好了,管理自然有专门的管理人员来做.我简单列举一下架构师带团队的优势: 架构设计时会从整个项目的角度考虑 开发人员使用更方便 测试

架构师速成4.4-我该学什么语言

该学什么语言好呢?很多人都很纠结,其实我建议学习java,为什么呢?文档多,上手容易,教程也多. 当然一开始最好学这样的语言,但随着你知识的增长,我的建议是能学多少学多少,但是有几个是必须的,如下: 前端html,js,css sql 至少会一门脚本语言,python,ruby等等 shell 至少会一门后端语言,类似java,scala是个不错的选择 语言学的越多越好,你可以总结各个的优缺点,另外最后你发现语言都是想通的,学一门新语言很容易. 当然上面的语言是为了你做架构师准备的,如果你说我想

架构师速成4.2-幼儿园要学会如何学习

<如何高效学习>,这本书的作者是scotthyoung,最知名是的1年内自学完成4年麻省理工学院计算机科学的33门课程,同时也写了一个学习方法的Blog,他使用费曼技巧来加强理解和学习.费曼技巧很简单: 拿张白纸; 在白纸顶部写上你想理解的某想法或某过程: 用你自己的话解释它,就像你在教给别人这个想法. 最要紧的是,对一个想法分而化之,虽然可能重复解释某些已经弄懂的知识点.但你最终会到达一个临界点,无法再解释清楚.那里正是你需要填补的知识缺口.为了填补这个缺口,你可以查课本.问老师.或到互联网