为什么架构师都在偷偷练系统思维?

兄弟们,有没有发现那些在技术圈里叱咤风云的顶级架构师,一个个都跟开了挂似的,总能把复杂的系统玩得团团转?他们设计的系统,不仅稳定可靠,还能轻松应对各种变化。难道他们有什么秘密武器?嘿嘿,别猜了,今天咱就来揭秘一个他们偷偷修炼的 “武功秘籍”—— 系统思维。

一、啥是系统思维?先从生活说起

您先别急着听技术,咱先从生活里的例子说起,这样更容易懂。比如说,您要装修一套房子。如果您没有系统思维,可能就会这儿想装个豪华的吊灯,那儿想弄个漂亮的背景墙,结果装完了发现,电路走得乱七八糟,空间利用也不合理,住起来那叫一个别扭。但如果您有系统思维,就会先考虑整个房子的布局,水电怎么走,家具怎么摆放,风格怎么统一,甚至还要考虑以后的生活需求变化。这就是系统思维,说白了,就是把一个东西看成一个整体,考虑它各个部分之间的关系,以及它和外部环境的关系。

放到咱们的技术世界里,一个软件系统就好比一套房子,它由无数个模块、组件、接口等等组成。系统思维就是让咱们从整体的角度去看待这个系统,理解各个部分是怎么相互作用的,怎么和外部的环境(比如用户、其他系统)交互的,还要考虑这个系统未来的发展和变化。

继续阅读为什么架构师都在偷偷练系统思维?

发布于

架构设计过程中的十点体会

在软件工程领域,任何脱离实际业务需求的架构设计都是一种不负责任的行为,甚至可以称之为”技术层面的形式主义”。这种设计倾向往往表现为过度追求技术新颖性、盲目采用复杂架构模式,或者为了架构而架构的设计理念。很多技术债务也是由于架构设计与业务需求脱节造成的。

多年的实践,经历了很多的项目和工程架构实现,整理了10点体会,可能不对,可能片面,都来自于过去的经验。

1.每个人都是凡人,无关职位

许多人从小就被灌输”要做一个听话的孩子”的观念,这种观念往往会在潜意识中形成对权威的畏惧心理。然而,随着互联网时代的到来,平等、开放、共享的互联网思维正在重塑新一代年轻人的思维方式。

事实上,在当今这个信息高度对称的时代,真正的权威往往更倾向于倾听不同的声音,因为创新往往来自于多元观点的碰撞。每个人都是独特的个体,都拥有值得分享的经验和见解。当我们能够以平等的姿态进行交流时,不仅能更好地表达自己的观点,也能从对话中获得更多启发。

在跨部门协作或多方参与的会议中,建立正确的角色认知至关重要。我们首先应当认识到,无论职位高低、资历深浅,所有参与者都是平等的,其次才是各自承担的特定角色——无论是负责技术架构的软件架构师、专注实现的工程师、把握产品方向的产品经理,还是统筹全局的项目经理。这种认知能够帮助我们摒弃职位带来的心理隔阂,营造开放、包容的讨论氛围。

继续阅读架构设计过程中的十点体会

发布于

微信纯血鸿蒙版正式上架华为应用商店!历时295天,鹅厂新开发团队曝光:超资深骨干与华为团队手搓代码,限量内测的原因找到了

鸿蒙原生版微信终于正式上线!

目前的版本号已经来到了1.0.3.42。从更新说明来看,这次功能上新之后,与普通版微信的使用体验几乎相差无几!(具体的几个差别我们将在下文展开讲讲

目前,基础通讯、社交、微信支付(以及大家特别关注的能否在春节期间领上红包)、公众号、小程序、视频号、直播等功能已经配齐,绝大多数的使用场景是cover上了!

鸿蒙原生版的微信界面是这样婶儿的:

由于微信产品的体量之大、功能之复杂,其鸿蒙原生版的开发与上架一直备受关注!

我们从去年10月8日公测版鸿蒙上架时,就一直在报道其进展,仍然觉得这是一个漫长的等待。

对于不太关注这方面的朋友,很多人的感受更可能是:

“原来还没正式上架?”

或是:

其实,鸿蒙原生版微信的开发实属不易,团队成员@客村小蒋将其工程量形容为“三峡大坝”。

鸿蒙系统采用了一套全新的技术框架和独特的ArkTS编程语言,这意味着微信团队要从头开始“手搓”应用。

“不过,对微信团队来说,学习新的编程语言,可能是整个适配工作中,最不算困难的事情之一。

在一个全新的平台上,做一款要支撑海量用户、高并发的通讯需求,同时有支付、小程序、视频平台等多个大功能模块的应用,还要满足极高频使用下的稳定性,是更大的挑战。”客村小蒋这样写道。

继续阅读微信纯血鸿蒙版正式上架华为应用商店!历时295天,鹅厂新开发团队曝光:超资深骨干与华为团队手搓代码,限量内测的原因找到了

发布于

世界上最完美的两个软件,太厉害了

今天给大家介绍两个软件,一个体现了人类在软件开发流程上的极致,另外一个则体现了程序员个体能力的巅峰。

一、航天飞机飞控软件

先来说第一个,航天飞机飞行控制软件,就是下图这个大家伙。

航天飞机重达120吨,还携带着2000吨的燃料。

它有四台硬件相同,软件也相同的计算机对发射过程进行精准控制,从几千个传感器中提取信息,每秒做出几百个决定,并且对每个决定进行投票。

第五台计算机,则运行着不同的软件,随时待命,准备替换其他发生故障的计算机。

这些计算机要确定什么时候对主发动机点火,什么时候下令固体火箭助推器点火,火箭姿态控制….

每次发射,软件都控制着价值40亿美元的设备,六名航天员的生命,以及国家的梦想。

这个软件不能崩溃,不能重启,最小的误差都不允许:一个三分之二秒的计时错误就会使航天飞机偏离航线近5公里。

洛克希德马丁公司的航天飞机小组实现了目标:软件几乎没有错误,接近完美。

软件的最后三个版本,每个版本(42万行代码)只有一个Bug。

最后的11个版本一共有17个错误,同等复杂度的商业程序有5000个。

这样的软件是如何炼成的呢?

答案是极为苛刻软件流程。

洛克希德马丁公司的航天飞机软件小组有260名员工,这些人创造了一种完全不同的开发文化。

没有超级明星程序员,开发软件的整个流程都是有意设计的,不依赖任何特定的人。

这个流程使得他们过上正常的生活,满足最后期限,交付完全符合其承诺的软件。

继续阅读世界上最完美的两个软件,太厉害了

发布于

代码审查,从Unix设计哲学到编码设计原则

随着研发团队规模的逐步扩大,新项目及新成员越来越多,如何做好 code review,把控研发人员的代码质量很是关键。

相信大部分团队,谈到 code review 时候就会面漏哀状:

“上线时间倒排,研发工期这么紧,连码代码的时间都不够了,你还要我CR?”

“上版的需求,这版就变了,代码生命周期太短,烂就烂吧,反正能用就行啦”

最近在团队内 CodeReview 过程中遇到一些案例,感觉挺有意思的,记录分享下来跟大家分享下,希望能给大家的工作带来一些借鉴和思考~

本文关键内容:
1、为什么要做CodeReview?
2、为什么大家要重视Review中的思考和总结最佳实践
3、几种代码变坏的根源情况
4、形成思考、总结很重要
5、从Unix设计哲学到编码设计原则
6、实践出真知

为什么技术人员包括 leader 都要做 code review

‘Talk Is Cheap, Show Me The Code’。

知易行难,知行合一更难。

嘴里要讲出来总是轻松,把别人讲过的话记住,组织一下语言,再讲出来,很容易。

绝知此事要躬行。设计理念你可能道听途说了一些,以为自己掌握了,但是你会做么?有能力去思考、改进自己当前的实践方式和实践中的代码细节么?不客气地说,很多人仅仅是知道并且认同了某个设计理念,进而产生了一种虚假的安心感—自己的技术并不差。但是,他根本没有去实践这些设计理念,甚至根本实践不了这些设计理念,从结果来说,他懂不懂这些道理/理念,有什么差别?变成了自欺欺人。

代码,是设计理念落地的地方,是技术的呈现和根本。同学们可以在 review 过程中做到落地沟通,不再是空对空的讨论,可以在实际问题中产生思考的碰撞,互相学习,大家都掌握团队里积累出来最好的实践方式!

当然,如果 leader 没时间写代码,仅仅是 review 代码,指出其他同学某些实践方式不好,要给出好的实践的意见,即使没亲手写代码,也是对最佳实践要有很多思考。

继续阅读代码审查,从Unix设计哲学到编码设计原则

发布于