引言
信任很多程序员在入门的时候都听过相似这样的一句忠告 “这是一个单调的作业,如果要做,必定要有充足的兴趣动力”。是的,在外行人乃至程序员的印象中,程序员是一批单调的人,编码是一个费脑的作业,他们有自己的小国际。相较于其他作业看得见摸得着。程序员的作业内容仿佛是不知道的地外星系。
过年在老家时,有亲戚就问我,你的作业都是做什么,这些东西都是怎么做出来的?我拿着手机上的APP,一个页面一个页面的操作,告知他们这些都是咱们做出来的。但至于怎么做出来的,不管怎么讲他们也不是很清楚的了解。我陷入了考虑,编码和其他方向互通的地方在哪?咱们是与世隔绝的小国际吗?
程序与人体
今天,在公车上读刘末鹏的《暗时间》,有一段关于人体健康管理体系的描绘,内容大概是这样,由于咱们的免疫体系需求耗费能量来构建起防护网(制作免疫细胞等),对人的身体而言,保护一个免疫体系是一笔庞大的开销,再加上咱们的祖先所日子的水深火热的环境,咱们的身体总是要面临未来不可知的病毒的侵袭,所以免疫体系出动杀敌时并不会倾巢而出,而总是有所保存,至于保存多少,出动多少,是依据什么来调理这个闸口呢?心理学家汉弗莱以为多种线索会触发身体内的这个调控体系,他把这个调控体系成为健康管理体系。
书中汉弗莱所指的体系其中一个特色便是会针对人体面临的不同场景,做出不同的决议计划,合理的分配资源。例如在冬天时打猎收集都很困难,免疫体系会调理为等级低运转,宁可让伤风细菌在体内苟延残喘也不会大举进攻。在春夏时免疫体系替换为高级运转,当然,免疫体系这样做的终究意图是为了确保咱们人体这套体系的安稳性。
编码中很多优秀的规划都与健康管理体系相似,如负载均衡,它的责任像免疫体系一样,针对大流量的场景它会分配更多的资源来应对,当某一个机器呈现毛病时,合理的分流请求消除单点毛病。以确保体系服务的安稳性。
乃至免疫体系面临未来不可知的保存也像极了咱们在日常编码中强调扩展性的体验。对未来的不确定性保存咱们尽或许的应对战略,使体系或许人体更加可靠、安稳。
程序与武器
了解军事的朋友或许传闻 “模块化火力渠道” 概念,它来源于美国在暗斗晚期研制的M8装甲火炮体系(ps:坦克),其中有一项理念是 “可生长的防护性”。包括两方面,一是M8将采用三级装甲防护的规划,能够依据任务需求和战场要挟灵活快速换装不同的装甲组件,以获得最为恰当的防护才能。另一方便是所谓的“可生长性”。这点其实非常好了解,经过随时替换最新的附加装甲,以确保防护才能获得继续提升。
编程中有一个模块化思维,和坦克的模块化殊途同归。它的意图是为了解耦,把全体(页面)拆分成多个个别(组件),别离个别的鸿沟和责任,便于独立晋级迭代。咱们组在上一年对内部的组件乱象发起了一次组件治理作业,这项作业的内容便是在项目中、项目之间遵循模块化思维。把合适拆开的组件独立封装,到达随时替换、快速接入的作用。编程模块化和武器模块化在终究意图上也一样,经过提高灵活性来增强战斗力是它们的底子意图。
程序与制度
前史上,中国存在了近千年的封建皇帝体系,它的呈现有地舆、民族、文化等等多维度的原因。隋朝来源的三省六部制在不断的王朝迭代中不断完善,贯穿了中国封建统治的前史周期。它是一套组织紧密的中央官制。三省指中书省、门下省、尚书省,六部指尚书省下属的吏部、户部、礼部、兵部、刑部、工部。每部都有各自的专业责任,一起受尚书省的统一分配。他们终究都向皇帝负责。
前端的朋友或许听过cocos,它是一个国内的游戏引擎,首要应用于小型游戏的制作。而且它支持TS语言编写。在cocos的ts项目中,会有不同的类文件,这些类文件具有单一责任且鸿沟清晰,例如幕布背景、引导动画、音频播映、业务动画等等,它们服务于中心文件,承受中心文件的分配并终究展现到界面上。类比三省六部制,类文件像六部承受三省的领导分配,程序员是皇帝,具有终究的决议计划权和解释权。那如何写好这个游戏,很重要的原因是在责任鸿沟的合理区分、中心文件的统一分配。
最终
共享一下个人的观念。有的人以为编码是在发明新国际。我倒以为恰恰相反,是大国际成就了编码小国际,咱们在不断改变大国际而且发明价值获得收益。编码和大国际是互通有无的,优秀的体系规划、代码编写这些具有的特色在其他职业中或许自然界都有迹可循。在编码小国际和大国际之间的探索生长也是我的兴趣动力来源。