20

实践出真知

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzI3NTYzNzQ0NA%3D%3D&%3Bmid=2247484480&%3Bidx=1&%3Bsn=8d017b9f3c9eb377f0f16e003731f584
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在工作当中,总是避免不了要学习新技术,应用新技术,为了避免使用中的一些问题,需要对技术提前做一些准备,名为调研,调查研究挺有意思的一个词。

新技术调研是有一定工作经验后,一定会遇到的一个工作,没有经验时确实还是挺具有挑战的一件事。做一件事要思考方式方法,闷头去做不是一种好的方式。

一个新技术直接去看源代码是不可取的,一下子掉入细节的汪洋大海,不是一种好的方式。直接去进行操作去实践是挺多人喜欢的一种方式,实践出真知,是一种比较好的方式,但如果只依赖实践去调研,视角会局部化,不够全局。

需要在一定实践基础上,去学习新技术理论。通过理论慢慢掌握全貌,通过全貌再去实践就会是一种效果更高的方式。理论结合实践是调研一个新技术比较好的方式。有些重实践同学对理论“不屑一顾”可能会掉进回字几种写法陷阱。

学习要循序渐进,需要尊重规律、尊重常识。有的时候学习一个东西就是需要时间不断去看理论,不断去写代码操作。才能不断递增对新技术的理解。

举个例子,调研一个管理平台类系统,先去理解平台操作,结合操作到细节,再通过整体理解系统后,去看代码就会事半功倍。最近在调研一个消息平台,开始就掉进了一下子就看代码的陷阱,看了半天得到信息不多。

把代码设置成  private 是一个极其糟糕的决策,会阻碍创新。大部分内部文档、代码应该都是默认可看、可下载,传播本身就会促进创新,可惜技术委员会不懂。

当然代码还是要多些,把理论变成实际代码是一种很好的学习方式。代码一下子写好还是挺难的,可能还是要通过多写来实现。写了之后也需要思考、总结。什么样的方式好的方式。

为了要深入理解一个技术原理,说是好定位问题、或者遇到问题能快速解决,不是一个很好的答案,经常会被问到这个问题,最近想到一个不错的答案,深入了解之后可以进行最佳实践,决策都是基于权衡利弊之后的。

前边参与大老板的会,学到不少知识,就是做事要做出亮点,而不是做成平庸的面,平庸的几个面,特别是在资源少的时候,对人挺有启发。一般情况下还是喜欢铺的大,铺的广。

分布式事务和分布式一致性差异,前边被小组同学问到,没有回答清楚,现在感觉更清楚一些了,对这个问题理解,试着回答一下。

分布式事务是为了实现在分布式系统下操作的 ACID (原子性、一致性、隔离性、持久性)。分布式一致性是副本之间保持数据一致性,数据复制一致性,这里面不存在计算操作,而分布式事务都是存在操作的,差异点在这。

对于分布式事务举个例子,前边用了一个系统,扣分并付钱,点击操作分扣了没用付钱,这就是没有实现分布式事务,实现了分布式事务没扣钱就一定会把扣分操作回滚,不过他是有补偿机制,会进行检查,后来进行了费用补交。分布式事务实现方式是 2PC 协议,两阶段提交协议,也存在其他很多方式更多是 2PC 协议变种。

分布式一致性是副本间数据一致性,相对来说还是比较好保证的,把数据同步或者异步进行数据复制操作就可以了。一般系统设计为主从式,简化系统设计,下面讨论是在这种设计前提下。难点在于怎么一直分辨出主从,这是个难点,主从选取就要基于分布式共识算法最出名的是 paxos、raft,他们都是出了名的复杂。

分布式原理有了一定理解之后,还是要深入去用,比如多用 zookeeper ,用之中再去体会思考原理。应是一种比较好的方式了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK