工程思维的核心有两点:系统化,也就是全局观,要从站在整个项目的高度去看问题,不能做井底之蛙;结构化,也就是有步骤、有节奏得做事情的意识
中美之间贸易战以来,我们被人掐脖子的核心在于大型软件和芯片的生产设计方面,为什么搞不出来呢?有很多原因,但是最核心的就是驾驭复杂系统工程的能力不够,特别是工程里面最复杂的软件工程,即便是对于华为这样的企业。
软件工程的根本问题,是人的问题。主导软件开发的这个人,必须得能够理解高度复杂的东西才行。--《没有银弹》
一款通用的操作系统,比如window,需要组织大概2000人,在长达几年的时间内进行持续的开发迭代,不仅仅需要雄厚的财力基础,工程能力也是非常重要的。
Win 7 大约50,000,000行代码。win 7开发的时候有23个小组,每个小组约40人,也就是将近1000人,加上测试人员大概1800人左右。研发成本超过200亿美元,周期长达6年。
几千万行代码的工作量是个什么概念?举个参照系吧,很多人在用的金山的WPS代码行数约有150万行,而金山软件公司重写这个级别的办公软件WPS,用了3年时间。
工程师思维的核心正是我说的模块化系统思维。系统性思考不仅仅要做到有系统、有条理,它更需要你能理解在生活中,没有什么事物是真正静止的,一切皆有关联。一个系统因为各个组成模块之间的关系而成为一个整体,这样的整体是不能通过单独分析各组成部分就能理解的。
举例来说,模块化系统思维的一种特殊技巧是解构(把一个较大的 系统打散成一个个模块)和重构(把这些模块重新组合起来)的功能性 组合。其重点是确定哪些是强连接,哪些是弱连接(模块如何运作、如 何不运作或如何才可能运作),以及如何把这一知识变成对工程师有用 的结果。一个相关的设计理念是逐步求精,这是软件工程师所常采用 的。工程师对一种产品或服务所做的每一步改进,都会促成一个更好的 结果或有助于替代方案的开发。即便在这个产品开发框架中,也有一种 自上而下的设计策略——“分而治之”,分别解决每个子任务,逐步进 展,直至实现最终目标。与此方法相对的是自下而上的设计策略,即把 各个模块重新组合起来。
工程思维的最大特点是“解构、建构及找到最优解”,是具体的、实例化的;而第一性原理思维的目的是找到最基础的“公理”,是抽象的、理论化的。
工程思维的三个基本特征
工程思维的核心是抽象化、模块化,主要有三个基本特征:预见结构、约束、取舍。
- 在没有结构的情况下“预见”结构的能力
从日本俳句到高层建筑,我们的世界依赖于结构。
这个结构可能是已经存在的,也可能是不存在的,预见这个结构,都不是一件容易的事情
《王者荣耀》中的结构
匹配地图是“镜像模式”,在你的视角里,你永远只能是“蓝色方”,对面在你的视角里是红色方。反之,对于敌方来说也是这样。这样就比英雄联盟等类dota游戏降低了很大的难度。
在手机游戏中,有一个限制条件,如果
需要两只手配合操作,操作键必须在左下角和右下角。要不然手机就会掉下来。这样一来,要是不用镜像模式的话,红方的视角会有一定的损失。
在你的视角里,你永远只能是“蓝色方”,对面在你的视角里是红色方。反之,对于敌方来说也是这样。
- 在约束条件下进行设计
是解决现实生活中的某些实际问题,所以必然受到“约束”。
这里的约束,首先是科学规律的约束。还有时间约束,财力约束,拥有资源的约束,竞争的约束,人类行为的约束,投入产出的约束,等等
《王者荣耀》的地图(扭转)、每一局的时间、手机游戏
他的上路VS下路
降低了游戏的操作难度,不需要太多的技巧。比如补刀机制、技能释放(连招)等等
吸引大量的女玩家,据统计,王者荣耀的女性玩家占比已经超过50%
竞技性不足,损失一部分高端玩家
ProxyAdapter是上线后加入的,最开始上线只有四个大区,手Q、微信、Android、iOS四个环境,最早Android的玩家也不能和iOS开黑。开始Android和iOS分开也有一定原因,我们之前设想Android会先更新,iOS后跟新,以保持版本更新的稳定性。但后来我们希望Android和iOS的玩家可以因为关系链一起开黑。
- 经过深思熟虑后对解决方案和备选方案做出决断的能力
资源和时间都是有限的,必须根据重点进行分配,要将弱目标从强目标中分离出 来
取舍是一场可行性、可能性、期望与限制之间的拔河比赛。
更艰难的情况是,如何在已知条件不足的灰度状况下做决策。
工程师经常是完美主义的,程序也总是精确的,但是现实总会有不完美的地方,这个时候就需要作出一些取舍
常见的取舍:互联网产品由于上线时间等原因有时候会选择带bug上线,当然这个在不影响整体用户体验的情况下,虽然不鼓励,但是有时候也是没办法的事情。
作为一名技术人,工程师思维是必不可少的,但是工程思维,并不仅仅限于在做工程领域。
日本天妇罗之神早乙女哲哉也是用了工程思维
天妇罗外面裹的一层面糊,术语叫做「衣」。在食材包裹着天妇罗面衣下到油锅里的时候,面衣会快速定型。
结构化拆解:食材本身也是可以分解的,比如炸虾,一只虾一定要切成半,分开炸,一为虾头,一为虾身。因为虾头的壳硬,需要炸久一点;而虾身壳薄,不能炸久
天妇罗炸鱼时,可以是鱼头和鱼身子分开的,就是对系统进行解构。把步骤进行解构,每一步炸多久
约束条件,必须炸多少秒口感才会好
选择,时间/口感
“光是面对一种天妇罗食材,我大概就能萌生出200到300种不同的想法。”为什么呢?在一般人眼里,一种食材就是一个元件而已;而在他眼里,一种食材还能向下分,分成不同的组成部分,也就是说,在他眼里,真正的元件是在更细小的层次上。就拿炸虾来说,一只虾一定要切成半,分开炸,一为虾头,一为虾身。因为虾头的壳硬,需要炸久一点;而虾身壳薄,不能炸久。根据早乙女哲哉的长期摸索,他发现炸虾身天妇罗,只需要炸24到25秒,刚刚好,这时捞出,虾肉里有一种甘甜味,时间
再久就没有了。炸鱼块天妇罗也一样,每块鱼肉其实都不尽相同,一是鱼肉有厚薄之分,厚一点的要炸久一点,薄一点的要炸快一点。还有,一块鱼肉往往一面是鱼皮,一面是鱼肉,鱼皮有韧性,比鱼肉更难熟,但是这一块鱼又是一个整体,怎么同时让鱼皮和鱼肉都熟度正好呢?早乙女哲哉想出的办法,就是在鱼皮上抹的面粉少一些甚至不抹,鱼肉上抹的面粉多一些,这样同样一块鱼下油锅后,不同部位的受热强度是不一样的,就做到了鱼肉和鱼皮两者兼顾。
油温170度-180度左右,寻求恒温的最佳途径,就是一直保持油锅的沸腾 -- 但相应地,过高的油温会让食材表面快速脱水,甚至发焦变黑,但食材中心却尚未成熟。
菜籽油/大豆油等食用油,沸点是250摄氏度,成本比较低
芝麻油的沸点是在215度,价格比较贵,但是可以最大限度的发挥天妇罗师傅的技巧
网友评论