05__大类:如何避免写出难以理解的大类?
你好,我是郑晔。
上一讲我们讲了长函数,一个让你感受最直观的坏味道。这一讲,我们再来讲一个你一听名字就知道是怎么回事的坏味道:大类。
一听到大类,估计你的眼前已经浮现出一片无边无际的代码了。类之所以成为了大类,一种表现形式就是我们上节课讲到的长函数,一个类只要有几个长函数,那它就肯定是一眼望不到边了(长函数的话题,我们上一讲已经讨论过了,这里就不再赘述了)。
你好,我是郑晔。
上一讲我们讲了长函数,一个让你感受最直观的坏味道。这一讲,我们再来讲一个你一听名字就知道是怎么回事的坏味道:大类。
一听到大类,估计你的眼前已经浮现出一片无边无际的代码了。类之所以成为了大类,一种表现形式就是我们上节课讲到的长函数,一个类只要有几个长函数,那它就肯定是一眼望不到边了(长函数的话题,我们上一讲已经讨论过了,这里就不再赘述了)。
你好,我是葛俊。今天,我将与你分享优化流程中,代码入库前的开发流程。
代码入库之前的开发活动,主要包括编码、调测调优、静态检查、自动化测试、代码审查等。这是开发者编写代码的步骤,自然是提高研发效能的关键环节。
工作中,相信你一定有听同事展示或汇报产品、项目、报告等工作成果的经历,他们在说完之后,多半会表示有意见尽管提,但是这时候,如果你特别老实,真砸了一堆负面意见过去,换来的很可能是不欢而散。如果你的意见中还包含了很多语气助词,估计还会引发争执。
你好,我是陈东。
试想这样一个场景:假设你已经熟读唐诗 300 首了。这个时候,如果我给你一首诗的题目,你可以马上背出这首诗的内容吗?相信你一定可以的。但是如果我问你,有哪些诗中同时包含了“极”字和“客”字?你就不见得能立刻回答出来了。你需要在头脑中一首诗一首诗地回忆,并判断每一首诗的内容是否同时包含了“极”字和“客”字。很显然,第二个问题的难度比第一个问题大得多。
你好,我是吴磊。
在日常的开发与调优工作中,为了充分利用硬件资源,我们往往需要手工调节任务并行度来提升 CPU 利用率,控制任务并行度的参数是 Spark 的配置项:spark.default.parallelism。增加并行度确实能够充分利用闲置的 CPU 线程,但是,parallelism 数值也不宜过大,过大反而会引入过多的调度开销,得不偿失。
你好,我是何小锋。上一讲我分享了网络通信,其实要理解起来也很简单,RPC 是用来解决两个应用之间的通信,而网络则是两台机器之间的“桥梁”,只有架好了桥梁,我们才能把请求数据从一端传输另外一端。其实关于网络通信,你只要记住一个关键字就行了——可靠的传输。
你好,我是伟忠。今天我来和你聊聊正则断言(Assertion)。
什么是断言呢?简单来说,断言是指对匹配到的文本位置有要求。这么说你可能还是没理解,我通过一些例子来给你讲解。你应该知道 \d{11} 能匹配上 11 位数字,但这 11 位数字可能是 18 位身份证号中的一部分。再比如,去查找一个单词,我们要查找 tom,但其它的单词,比如 tomorrow 中也包含了 tom。
你好,我是于航。
在上节课的最后,我举了一个简单的例子,来帮助你理解了 Wasm 二进制模块内部字节码的基本结构。在这短短的几十个十六进制数字中,我们看到了组成 Wasm 模块所不可或缺的“魔数”与“版本号”编码,以及组成了各个 Section 结构的专有编码。
你好,我是聂鹏程。今天,我来继续带你打卡分布式核心技术。
首先,我们来回忆下上篇文章的分布式选举。分布式选举问题,是从多个节点中选出一个主节点,相关的选举方法几乎都有一个共同特点:每个节点都有选举权和被选举权。大部分选举方法采用多数策略,也就是说一个节点只有得到了大部分节点的同意或认可才能成为主节点,然后主节点向其他节点宣告主权。
你好,我是李玥。
上节课,我和你一起通过账户系统学习了数据库事务,事务很好地解决了交易类系统的数据一致性问题。
事务的原子性和持久性可以确保在一个事务内,更新多条数据,要么都成功,要么都失败。在一个系统内部,我们可以使用数据库事务来保证数据一致性。那如果一笔交易,涉及到跨多个系统、多个数据库的时候,用单一的数据库事务就没办法解决了。