33__编程范式游记(4)-_函数式编程

从前三章内容中,我们了解到,虽然 C 语言简单灵活,能够让程序员在高级语言特性之上轻松进行底层上的微观控制,被誉为“高级语言中的汇编语言”,但其基于过程和底层的设计初衷又成了它的短板。

33__测试工具:为什么不应该通过QQ_微信_邮件报Bug?

你好,我是宝玉。十多年前,当我还是个野路子程序员时,我在外面接私活做项目,客户在使用过程中遇到了 Bug,直接就截个图,或者是用 Word 文档整理在一起,从 QQ 或者邮件上把 Bug 信息发送给我,我收到后再修复更新上线。

33__动手实现一个简单的RPC框架(三):客户端

你好,我是李玥。

上节课我们已经一起实现了这个 RPC 框架中的两个基础组件:序列化和网络传输部分,这节课我们继续来实现这个 RPC 框架的客户端部分。

在《31 | 动手实现一个简单的 RPC 框架(一):原理和程序的结构》这节课中我们提到过,在 RPC 框架中,最关键的就是理解“桩”的实现原理,桩是 RPC 框架在客户端的服务代理,它和远程服务具有相同的方法签名,或者说是实现了相同的接口,客户端在调用 RPC 框架提供的服务时,实际调用的就是“桩”提供的方法,在桩的实现方法中,它会发请求到服务端获取调用结果并返回给调用方。

33__服务效率提升:如何降低公司运营成本?

你好,我是庄振运。

我们都知道,支持大量用户的互联网公司,通常会部署相当规模的系统容量来运行各种服务。

如果你想要有效地运行业务,就应使业务的容量需求容量供应尽可能地相等。为什么这么说呢?如果容量供应不能满足需求,那么部分业务将​​因容量不足,不能部署或扩展。如果容量供应过多,那么公司基础设施的效率就降低了。

33__关于_Linux_网络,你必须知道这些(上)

你好,我是倪朋飞。

前几节,我们一起学习了文件系统和磁盘 I/O 的工作原理,以及相应的性能分析和优化方法。接下来,我们将进入下一个重要模块—— Linux 的网络子系统。

33__技术人的犯错成本

今天和你分享一下我和周围一些朋友在职场曾经犯过的错误,供你参考和反思。基于表述的方便,我会采用第一人称或我的同事或朋友的方式讲述,读者们无需对号入座。

33__解读TPU:设计和拆解一块ASIC芯片

过去几年,最知名、最具有实用价值的 ASIC 就是 TPU 了。各种解读 TPU 论文内容的文章网上也很多。不过,这些文章更多地是从机器学习或者 AI 的角度,来讲解 TPU。

上一讲,我为你讲解了 FPGA 和 ASIC,讲解了 FPGA 如何实现通过“软件”来控制“硬件”,以及我们可以进一步把 FPGA 设计出来的电路变成一块 ASIC 芯片。

33__跨站脚本攻击(XSS):为什么Cookie中有HttpOnly属性?

通过上篇文章的介绍,我们知道了同源策略可以隔离各个站点之间的 DOM 交互、页面数据和网络通信,虽然严格的同源策略会带来更多的安全,但是也束缚了 Web。这就需要在安全和自由之间找到一个平衡点,所以我们默认页面中可以引用任意第三方资源,然后又引入 CSP 策略来加以限制;默认 XMLHttpRequest 和 Fetch 不能跨站请求资源,然后又通过 CORS 策略来支持其跨域。

33__理论五:让你最快速地改善代码质量的20条编程规范(下)

上两节课,我们讲了命名和注释、代码风格,今天我们来讲一些比较实用的编程技巧,帮你切实地提高代码可读性。这部分技巧比较琐碎,也很难罗列全面,我仅仅总结了一些我认为比较关键的,更多的技巧需要你在实践中自己慢慢总结、积累。

33__临时对象池sync.Pool

到目前为止,我们已经一起学习了 Go 语言标准库中最重要的那几个同步工具,这包括非常经典的互斥锁、读写锁、条件变量和原子操作,以及 Go 语言特有的几个同步工具: