2018走出架构误区

几年前还记得我发表的软件设计的几大误区吗?

随着时代的发展,orm被更多人接受,九十年代出来的设计模式也被动地融入到主流框架,以至于设计模式到现在发展成了架构模式和业务模式,而存储过程也被开发者更少地使用。

之前提到的误区到现在已经没有什么争议了。

但随着年代的变迁,从前的小程序员也成了有多年工作经验的大咖了,更多人的头衔从程序员贴上了架构师标签。

而在互联网如此火的今天,在这样一个年代里,我又要出来指出几个误区。

误区一:

一套开发框架代替架构师

首先我们来看下,架构师全称为“软件系统架构设计师”。

名字很长,但拆分开来是xxxxxx设计师,前面加上“架构”这一词突出了是一个从更高层次的考虑问题的设计师,最终还是个“设计师”。

更高层次是相对而言,相对ui设计、局部的功能设计,更高层次是总体的设计,并不是说架构设计要比ui设计厉害或重要。

“软件系统”则限定了在软件系统范围内的设计师,而不是弱电、土木工程等设计师。

一套开发框架只是代码架构,没错是架构,但实际开发中会对代码架构剪裁,这取决于需求的理解和系统的设计,类似嵌入式工程师对架构剪裁。

这其中最重要的因素还是在于人为的设计,而不是架构,所以这种思想是错误的,而且错得可怕。

从ejb、ssh、ssm,框架从来都没有解决过问题。

离开了优秀的设计师,项目不提早完蛋,成本也会很高。

误区二:

高并发、大数据是难点

主要是软件行业里伪程序员太多了,以至于这么基础的问题会成为一个难点。

其实问题很简单,属于大学教科书里的课后练习题。

大量培训学校,网络培训课程,以及混日子的大学生,和一波非专业对口人士转程序员,可能没有接触过。

然而随着时代发展,这一波伪程序员已经有了相当长的工作经验,在长达5年以上的业余时间里,并未系统地学习过,精力只够了解新框架,新技术,但为生活所迫留在这行业成为资深,甚至成为带团队的负责人。

然后团队开发模式非常落后,在这样的软件行业环境下,以至于程序有可能并发的情况下,程序运行出诡异的结果。

等到出现诡异的结果时,往往应用程序已经离当初开发完成到交付有了个把月的时间。

跑了一段时间后,互联网应用则会出现用户数量急剧上升所带来的问题,企业(zf)应用则需要导入历史数据或随着年代增长核心程序的业务数据堆积如山,导致海量数据性能问题需要解决。

因为这些非功能性需求导致的问题,会在开发交付半年后才慢慢体现,这些公司事前最多也只是在文档中或讨论中提到这些非功能性需求,但没有有效的测试办法去保证万无一失。

这也是我之前的一个误区,总以为我设计的软件是比别人高质量的,如何证明?请等半年或几年后看看我还维护得了,别人就得加班或跑路。

为什么不能通过测试,提前暴露这些问题,在交付部署以前?而不是凭借个人经验或个人能力。

交付部署以前,开发未完成时,除了对非功能性需求的考虑以外,还需要可量化的测试,用模拟的测试(mock)对服务对接点进行压力测试。

误区三:

流行微服务架构

如果说上几年是xxx+xxx+xxx的开发框架比较火,

那么这几年是微服务比较火,这也和并发要求高的大环境下有关,微服务通常提供了分布式服务的解决方案。

其实这货就是以前得soa基于服务的架构分布式升级版,并非是必选项,然后水平不够该躺的地方还是得躺。

通常误引入微服务的原因只是为了解决误区二里的高并发,高可用。

但是又跌进了另一个更大的坑:

1、比以前更吃资源,花费更多购买服务器的费用;

2、分布式事务一致性难以保证,由网络导致的调用失败更多;

3、设计师经验不足强行拆分带来的更多服务的交叉引用;

4、发布和部署到生产环境和运维工作量更多,带来更大成本;

如果误区二里分布式的问题不能在以前就解决,傻傻地引入微服务架构,最终结果还是一样的,还会付出更多代价。

要说微服务这东西还真不是什么突然冒出来的概念,多年以前我就开发了一个webservice作为类似注册中心的总线,所有独立的dll丢到目录下就当是注册了,然后通过网关或是反向代理工具去访问多个点部署的它,实现负载均衡。

只是它并不是真正的微服务,当然也不像微服务那样吃系统资源,但它却解决了高并发、高可用的问题。

可将它看作微服务的过渡版,正因为接触这种类型的soa,才知道分布式服务设计的难点所在,绝不是单单引入微服务就万事大吉了。

关键点还是在于人,在于设计师,在于团队开发模式。

------------------------------------------------------

没有实现不了功能的程序员,只有设计不出可靠软件的程序员。

没有带不了团队的程序员,因为每个程序员都能实现功能,并且总有更弱得新手可以带,难的是带出一个好的设计师,难的是带出一个能带人的设计师,从而带起整个公司甚至是行业。

原文地址:https://www.cnblogs.com/13yan/p/9142568.html

时间: 2024-08-30 13:53:41

2018走出架构误区的相关文章

第八章 巅峰对决-走出误区

今天是周日,昨天看了一天的<鹿鼎记>,荒废了一天,今天该花点时间学习了,不然整个人都不会好了.学习才是王道,不学习总感觉有一种负罪感. 这一章主要讲的是一些名字相近和功能相似的一些概念和技术的对比学习,作者将带领我们走出其中的误区,让我们更好更深入的理解其中的原理. 笔记 一.特性和属性 1.特性:公共语言运行时允许添加类似关键字的的描述声明,它对程序中的元素进行标注,可以用来在运行时描述代码,或者在程序运行时影响程序的行为.   属性:提供了对私有字段的封装,利用get和set访问器达到可读

走出水清与硝化菌有关的误区

养鱼是一门科学.随着科学养鱼理念的普及,人们对鱼缸生态系统.生化过滤.生物滤材.硝化菌等越来越重视,都在努力的为鱼儿营造一个舒适的生活环境,使其能把最美丽的一面展现给我们.但是在论坛待久了,发现很多鱼友对硝化菌的认识存在误区,我给大家举两个例子: 例一:为什么我清洗滤材后水就变混了? 答:清洗滤材后硝化系统受到破坏,硝化菌大量死亡,所以水会变混. 例二:为什么我开缸后水一直比较混浊不清呢? 答:这是因为硝化系统还不健全,硝化菌的数量比较少,所以水不清,等硝化系统健全后水自然就清澈了.以上的两个案

书写更加高效的CSS,走出误区

根据一些CSS写作经验,如何提高渲染效率及所占用消耗的资源,我们来浅谈一下CSS的渲染效率,书写高效的CSS. 1.十六进制的颜色值对位数与大小写 编写十六进制颜色值时你可能会用小写字母或省略成3位数,关于这写法没找到确实的数据证明对浏览器的渲染效率是否有影响,但十六进制的颜色值默认标准是大写及6位数标注. 在未知情况下不希望冒险而降低了渲染的效率. * 不赞成 - color:#f3a; * 建议用 - color:#FF33AA; 2.display与visibility的差异 他们用于设置

Sql Server查询性能优化之走出索引的误区

据了解绝大多数开发人员对于索引的理解都是一知半解,局限于大多数日常工作没有机会.也什么没有必要去关心.了解索引,实在哪天某个查询太慢了找到查询条件建个索引就ok,哪天又有个查询慢了,再建立个索引就是,或者干脆把整个查询SQL直接发给DBA,让DBA直接帮忙优化了,所以造成的状况就是开发人员对于索引的理解.认识很局限,以下就把我个人对于索引的理解及浅薄认识和大家分享下,希望能解除一些大家的疑惑,一起走出索引的误区 误区1.在表上建立了索引,在查询时用到了索引的列,索引就一定会生效 首先明确下这样的

走出浮躁的泥沼:关于技术与工作 选择与热爱

http://www.nowamagic.net/librarys/veda/detail/2339我觉得,技术与工作最理想的结合状态是,自己能学习到新的技术,这些技术也能应用到工作中:工作的内容又不那么枯燥,都那么具有挑战性. 程序员的工作首先应该是富有挑战性的 有这么一句名言: 工作,它之所以成为工作,是因为你只需要工作而不需要思考. 你也许会对这句话有异议,但是大部分人和大部分工作确实是这样的.工厂员工在流水线上机械地组装,服务员每天重复着招待客人,厨师日复一日地烹制菜肴,等等.工作,就是

三五个人十来条枪 如何走出软件作坊成为开发正规军

三五个人十来条枪 如何走出软件作坊成为开发正规军(转载) 自从发了上一篇博文,这几天收到很多朋友的来信. 大家从各个开发语言的优缺点和适用领域,一直讨论到设计模式.框架.重构.单元测试,乃至敏捷编程,最后都讨论到了软件开发过程管理,甚至都谈到了盈利模式和中国软件 的悲哀. 最后不了了之,都觉得改善中国内地现在的软件生产状况不可能. 为什么呢? 我重新把这几天大家的讨论留言翻了一遍,发现大家的软件团队都存在着这样一种普遍现象 1大部分人所在的公司,开发人员仅3-5人,多的在10人.别看就这几条枪,

软件开发从业者如何走出自己的安逸环境[转]

过去的几个月里发生的几件事情,让给政府做软件开发的人感受到压力的陡增,一些事情让我回忆起曾经作为政府程序员的经历,以及这段经历如何变成一种一直督促我努力工作的思想动力. 我曾在某个政府部门维护过一个写于1990年代的老系统.当一个新的系统启动开发来替代部分的老系统功能时,很多的程序员对开发新系统的工作产生的严重的抵制心里.起初,我并不知道为什么他们会有这么大的反感.对这个系统维护一段时间之后,我才慢慢明白,有些程序员是专门维护系统(如crm系统),时间长达15年之久.当被邀请开发新系统时,他们对

走出寂寞,变卖所有

青山原不老,为雪白头,绿水本无忧,因风邹雨.赚钱的同时,也是魔鬼侵入的时候,一位房产老板很羡慕读书的多么纯洁,美好,走上社会,轿车,孩子有了,人已经头发秃顶,已经变成老头,过早的衰老,这是我想要的生活,上帝呀,怎么会是这样,寂寞随之而来.无奈,变卖所有,轿车豪华房产变卖了,过着乡下人的生活,简朴,远离城市的硝烟.这样才踏实 走出寂寞,变卖所有,布布扣,bubuko.com

[haoi2014]走出金字塔

在探险的过程中,考古学家Dr. Kong 无意地被困在一个金字塔中.金字塔中的每个房间都是三角形.Dr. Kong可以破壁走到相邻的房间去. 例如,如果他目前处于三角形(2,2)房间,那么他可以破壁走到三角形(2,1).(2,3)或(1,1)房间.但破壁一面墙需要花费K分钟时间,而考古学家Dr. Kong 的体能只能支持他到S分钟.好在Dr. Kong手中有这个金字塔地图,他发现金字塔有许多出口,一旦他进入一个有出口的三角形房间,他再用1分钟就可以走出金字塔.现在,你能否帮助Dr. Kong找到