阐述
这个题目看起来非常具体,局限思维之后,就是一个从事IT行业的人士编码人员考虑的问题,进一步讲,看到这个题目的开发者会再次把自己限制在自身的编程领域,编程语言内部,比如如何写好java,如何写好javascript,等等。
大多数人肯定是这个反应,为什么?因为想法的涌现是基于脑子里的知识激发出来的,我只能想到我脑子里已经有的东西,简单说就是你的认知决定了你的所见。
那再仔细想想,这个问题往大了讲会怎样?类似于这样的问题模式是不是有很多?
怎样做好投资?怎样才能提高学习成绩?等等再往上升就会变成一个哲学问题。
扯远了,简单来说,这个问题是 你的认知水平在具体世界的呈现问题。
标准答案
这个题目去网上搜索是有标准答案的,很多文章会告诉你如何写出 简单、易懂、高效的代码,比如:
- 统一编码规范(代码风格,架构等)
- 高内聚、低耦合(各种设计模式)
- 组件化、模块化(各种分层技术)
类似的文章有一大堆,看的时候如痴如醉,热血沸腾,感觉受益匪浅。那到底有用吗,有用也没用,有的人有用,有的人没用。
没用的人在实际工作的时候,会感觉疑惑,代码还是一如既往的凌乱,为什么?
好像看懂了很多,可到底为什么用不上?
答案非常简单,这些知识点还并不属于你,你只是看到了而已,并没有理解消化转成你的认知。
代码很实在啊,不会骗人,它就是你真是认知能力水平的体现。
像王者荣耀,一个英雄就3个技能,技能描述几十个字,大家都能看懂。可是这个每个人的“懂”是一样的吗?为什么有的人秀的飞起,带飞全场,你却只能冲上去送死呢?有想过为什么吗?
你看主播打的风生水起,你觉得你也可以,下场实操,被人一顿虐,你觉得你的队友不配合你,你觉得王者匹配机制有问题,是,可能存在这样的问题,可是大家生存的环境不是一样的吗?
大家说要有意识,要看小地图。这个意识是什么,是对英雄机制,技能机制,装备机制,游戏机制,环境等全方位的理解,领悟。脑子里没有相关数据,判断不出攻击力,防御力,只知道看小地图有什么用。
说那么多,只想说明一点,很多事物的样子是个人认知水平的体现。
你说一个人不愿意把代码写好吗?并不是,但是他只能写出这样的代码。你讲设计模式,讲内聚耦合,不领悟就不是你的,只不过记住了几个名词而已。
下面讲的也是,懂得就能懂。
说点实际的
说点技术相关,我尽量不整一些复杂概念术语,能把东西讲白了才行。
架构设计
架构设计这个词就很“术语”,我们这里以偏概全,简单说,就是要分层。
分层比较好理解,很多领域都会用,比如电子生产工厂的流水线,从上游到下游分割成好几段,每个区间段,也就是每条线只做一件事,比如喷漆的只做喷漆,拧螺丝的只拧螺丝。
好处显而易见,关注点分离,职责单一。
这个时候,如果有一个人来参观工厂,这个人并不知道你们在生产什么产品,但是他依然知道,这条线在喷漆,那条线在拧螺丝,对吧,非常清晰。
Vue和React的组件化思想都是基于这个,每个组件就是一个小节点,然后进行聚合成大组件,最终构造组件树,概念非常简单。
至于是从上到下设计,还是自下向上设计,这个具体情况具体对待,这个问题也非常复杂,有一大堆文章介绍。
中间件机制
中间件的概念比较常见,到处都在应用,简单说就是在输入到输出之间,做一系列处理。
比如redux提供的中间件机制,比如express的中间件,比如webpack的loader加载器或者插件机制等
上面哪个流水线工厂依然也遵从这个模式,喷漆就是其中的一个中间件,就是一道中间工序麽。
通信机制
之前通信大部分都是通过 发布订阅模式完成的,全局通用,适用一切复杂场景。
在Vue和React的UI模式组件中,附加一种 从上到下的props流式传递。
还有一些状态机方式,本质上都大同小异,都是信息生产者 和 消费者之间的关联。
错误捕获机制
上面提到了分层化,组件化,中间件等机制,所以每一个节点做好自身的错误捕获处理,防止错误向上传递,致使整个系统崩溃
...
编不下去了。。。以后再编吧
这篇本来也不是讲技术的,只是说明一个浅显的道理,认识决定了世界的样子。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。