2018走出架构误区

13yan 13yan     2022-11-21     314

关键词:

 

 

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

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

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

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

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

 

误区一:

一套开发框架代替架构师

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

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

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

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

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

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

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

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

 

误区二:

高并发、大数据是难点

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

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

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

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

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

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

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

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

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

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

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

 

误区三:

流行微服务架构

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

 

http连接:三次握手四次挥手!你真的了解吗?全新讲解,走出误区!不再害怕面试官...

...握手、四次挥手!你真的了解吗?全新讲解,走出误区!HTTP四次挥手异同整体挥手过程Q&A附录HTTP连接:三次握手、四次挥手!你真的了解吗?全新讲解,走出误区!在计算机编程中,网... 查看详情

《走出软件作坊》吕建伟codercioerpoa架构管理趋势用友

善于记录,善于总结——《走出软件作坊》读后感_思考,行动,再思考,再总结-CSDN博客_走出软件作坊心得https://blog.csdn.net/philofly/article/details/6567462走出软件作坊_百度百科https://baike.baidu.com/item/走出软件作坊/8626528走出软件作坊... 查看详情

3网站架构设计误区

在大型网站架构发展过程中有如下几个容易岀现的误区。1一味追随大公司的解决方案由于大公司巨大成功的光环效应,再加上从大公司挖来的技术高手的影响,网站在讨论架构决策时,最有说服力的一句话就成了“... 查看详情

关于软件知识存在认识上和方法上的误区

...是有生命的,这可能是老调重弹了,但是因为它事关分层架构的原由,反复强调都不过分。  一个有生命的软件首先必须有一个灵活可扩展的基础架构,其次才是完整的功能。  目前很多人对软件的思想还是焦点落在后者:... 查看详情

搭建中台架构的几个误区

...部业务流程、自上而下进行变革的工程来执行。02、中台架构简单,无须完善很多公司由于经费有限、人员不定及数字化转型决心不足,在初定中台建设方案时希望先从价格便宜、功能简单的架构开始,慢慢再过渡到... 查看详情

今天给大家带来新手学java常见的误区

...高内聚,低耦合    调整方法:写代码时采用MVC架构MVC架构模式讲解:我个人总结大概就是这个 查看详情

hpc走出全新路线:《开放架构hpc技术与生态白皮书》注解

文|智能相对论作者|叶远风数字经济大时代,创新驱动大环境,HPC已不再是阳春白雪,而受到越来越多人的关注。HPC,即HighPerformanceComputing,高性能计算。对普通人来说,没有听过HPC,但肯定都听过超... 查看详情

架构师说低代码:走出半生,归来仍是“毒瘤”!

...来,它经历过无人问津,也曾置于食物链上层。走出半生,归来仍被视为“毒瘤”,归根结底原因何在?架构师来了为低代码正名!CSDN金牌技术访谈栏目《架构师说》第四期即将上线,本期邀请到众安... 查看详情

,架构-架构的误区,如何做前端架构,以及如何架构unity3d项目(代码片段)

前端与后端架构之间的共性前后端架构的目标都是,高性能、高可用、可扩展、安全、可容错。对于前端来说除了这些目标特性外,我们还需要加入更多的用户体验,包括视觉效果和操作灵敏度。作为前端工程师࿰... 查看详情

边缘计算的三大误区

...过边缘计算改变我们对云基础设施的看法,从而挑战传统架构。事实上,Gartner预计超过40%的企业IT组织将采用边缘计算策略,比去年增加了1%。  在当今世界,边缘计算继续引领行业讨论,由于越来越多的传感器、移动设备... 查看详情

[人工智能-深度学习-66]:架构-人工智能的学习误区与正确思路方法

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122116482目录前言:第1章常见的学习的误区1.1自学论文:1.2自学... 查看详情

架构的本质!

内容介绍:01什么是架构和架构本质02架构分层和分类03架构的级别04 应用架构的演进05 衡量架构的合理性06常见架构误区07架构知识体系01什么是架构和架构本质====================在软件行业,对于什么是架构,都有很多的争... 查看详情

程序员不得不知的十大职场误区

文章目录1技术好就工资高2我的职业规划是架构师3我是老员工,掌握核心代码,公司不会开我4每年都会涨薪5公司很稳定,我会一直在这家公司干下去6老板如果听了我的想法肯定能干成这个事情7抱怨之前写的代码垃圾8坐... 查看详情

5g低延时的误区和机会——从理论到工程落地的数据差异

我们有幸请到虎牙直播的5G首席架构师——林正显老师,为我们介绍5G低延时的误区和机会。本文从介绍5G低延时原理开始,一步步解开大众对5G低延时的5个误区,最后分享了虎牙直播在建设低延时确定性网络技术的想法以及5G在... 查看详情

架构随聊

阅读目录架构的定义如何开始设计一个架构一个好架构的特点做架构中的误区结语 一、架构的定义  所谓一千个架构师中有一千种“最好的架构”模式。  “架构”是我们这行业种一个很常见的词,表明其... 查看详情

汇总

前言(1):服务端高并发分布式架构演进之路前言(2):什么是微服务?前言(3):分布式的坑1.大型网站架构演化2.大型网站架构演化的价值观3网站架构设计误区4网站架构模式5大型网站核心架构要素6网站性能测试7Web前端性能优化8应... 查看详情

技术架构文章汇总

前言(1):服务端高并发分布式架构演进之路前言(2):什么是微服务?前言(3):分布式的坑1.大型网站架构演化2.大型网站架构演化的价值观3网站架构设计误区4网站架构模式5大型网站核心架构要素6网站性能测试7Web前端性能优化8应... 查看详情

鲁班学院最新架构师资料《java架构师vip课程》

鲁班学院最新架构师资料《Java架构师VIP2019课程一期》 课程目录:├─01.并发专题(一)│2018-09-11(1)-Java内存模型│2018-09-13(2)-synchronized原理│2018-09-16(3)-volatile实现机制│2018-09-18(4)-DCL-单例模式│2018-09-21(5)-并发基础-AQS、CAS2│2... 查看详情