03__揪出隐藏在背后的那些子项目

你好,我是温铭。

我们先来揭晓上一节最后留下的思考题,如何把 Lua 代码从 nginx.conf 里面抽取出来,保持代码的可读性和可维护性呢?

操作其实很简单。

我们先在 geektime 的工作目录下,创建一个名为 lua 的目录,专门用来存放代码:

03__矩阵:为什么说矩阵是线性方程组的另一种表达?

你好,我是朱维刚。欢迎你继续跟我学习线性代数,今天我们要讲的内容是“矩阵”。

在开始学习之前,我想先问你个问题,你觉得,学习矩阵有什么用呢?你可以先自己想一想。之后我们讲任何一个知识的时候,你都可以从这个角度出发,自己先思考一下,这样有助于你对所学内容理解得更深刻。

03__科技巨头和初创公司的产品经理有什么不同?

其实对于不同的公司来说,产品经理的定义可能会差非常多。在科技巨头当一个产品经理,和在一个刚刚成立的小公司做,需要的技能和要求其实非常不一样。

在科技巨头做产品经理

像谷歌、Facebook 这样的公司,至少有几百个产品经理,上万名员工,一般每一个技能都会有专门的人来对应,而且划分地非常细。

03__可扩展架构:如何打造一个善变的柔性系统?

你好,我是王庆友,今天我和你聊一聊如何打造可扩展的架构。

在实际工作中,业务需求总在不断变化,因此,你经常会面临以下这些问题:

  1. 如何快速地上线新业务?老板很可能明天就想看到效果。
  2. 对某个功能进行修改,如何不影响到系统其它的功能?

对于新的需求变化,我们一方面要快快搞定,另一方面要稳稳接住。但问题是软件虽然姓“软”,但也不是想变就能变,如果事先没有经过良好的设计,调整起来,往往牵一发动全身,导致系统到处出问题。

03__库源码文件

你已经使用过 Go 语言编写了小命令(或者说微型程序)吗?

当你在编写“Hello, world”的时候,一个源码文件就足够了,虽然这种小玩意儿没什么用,最多能给你一点点莫名的成就感。如果你对这一点点并不满足,别着急,跟着学,我肯定你也可以写出很厉害的程序。

03__领导特质:一个合格经理人应有的4个待人处事原则

你好,我是许健。

前面我们聊了领导力和经理权。基本问题我们现在理清楚了,今天我们来聊聊一个合格经理人应有的 4 个待人处事原则。

事实上,很多性格不同的人能够胜任同样的工作,但是千千万万的“领导特质”总有一些共性的内容。我不敢说自己是成功的领导者,这里我更多的是基于自己这么多年的管理经验,总结的一些经理人普遍具有的优秀特质。

03__轮询与长连接:如何解决消息的实时到达问题?

你好,我是袁武林。

我在前面第一篇文章中,从使用场景的需求方面,讲到了 IM 系统的几个比较重要的特性。其中之一就是“消息到达的实时性”。

实时性场景是所有的 IM 系统绕不开的话题,为了支持互联网的“实时互联”的概念,大部分的 App 都需要实时技术的支持。

03__每个工程师都应该了解的:A_B测试

说到 A/B 测试,不论你是工程师、数据科学家、还是产品经理,应该对这个概念都不陌生。

简单来说,A/B 测试是一种数据分析手段,它可以对产品特性、设计、市场、营销等方面进行受控实验。在实验中,数据样本被分到两个“桶”中,分别加以不同的控制和处理,然后对采集回来的信息进行对比分析。

03__面试官的面试逻辑是什么?

你好,我是白海飞。今天的主题是“面试官的面试逻辑”。在上一篇,我介绍了招聘的全过程,以便让你做到心中有数。今天我们聚焦在面试环节,仔细看一下面试官是如何考查应聘者能力的。

03__面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?

在上一节课中,我们讲到,要具备编写高质量代码的能力,你需要学习一些编程方法论,其中就包含面向对象(我们可以把它看成一种设计思想)、设计原则、设计模式、编程规范、重构技巧等。而我们整个专栏的内容也是围绕着这几块展开讲解的。所以,今天我就先来简单介绍一下这几个概念,并且说一说它们之间的联系。

03__哪些人比较容易走上管理岗位?

也许你早就决定做一名管理者,又或者你刚刚有这个打算,不管哪种情况,你是否已经和你的上级交流过这个问题呢?在我调研过的几百位新经理中,只有百分之十几的比例和上级表达过管理意愿,而我自己培养的几十位新经理中,明确表示自己想做管理的,大约只有 20% 左右,这个比例很低。虽然我可能没法立刻满足他们,但在有合适岗位的时候,我的确会优先考虑他们,因为对于做管理来说,个人意愿很重要。

03__判断与循环:给你的程序加上处理逻辑

你好,我是胡光,咱们又见面了。不知道上一讲的内容,你自己做练习了么?你是否还觉得 C 语言枯燥无味呢?不管你有没有练习,我都还要啰嗦下,学习编程,就像是学骑自行车,你只看别人怎么骑,你只看自行车的原理,那永远也不可能学会骑自行车,对于你来说,唯一的捷径就是多练习,多思考。在上一讲小试牛刀之后,今天我将带你领略一下算法和逻辑层面的小惊喜。

03__评估诊断:成功迈出敏捷推进的第一步

你好,我是宋宁。从今天这一讲起,我要给你讲一下具体怎么推进敏捷,并结合案例,通过四讲来介绍推进敏捷所涉及的评估诊断、团队敏捷试点、大规模推广这三大步骤。今天,我们先来看推进敏捷的第一步:评估诊断。

03__瀑布模型:像工厂流水线一样把软件开发分层化

你好,我是宝玉,我今天分享的主题是:瀑布模型,像工厂流水线一样把软件开发分层化。

可以这么说:**瀑布模型算是现代软件工程的起源,软件工程的发展,很大部分都是构建于瀑布模型的基础之上的。**我们后面所学的软件工程的很多内容,都是源自瀑布模型的衍生,或者其中某个阶段的细分。

03__容量指标分析经典5问:响应时间真的是越短越好吗?

你好,我是吴骏龙。今天咱们多聊聊干货,我会与你分享和解答容量指标分析的几个经典问题。

有名言道“数据是钢,分析是铸造”,容量指标只是摆在桌面上的数据而已,要让这些数据产生价值,需要通过分析挖掘出背后深藏的容量隐患。如果能练就一双火眼金睛,从这些纷繁复杂的指标中快速识别出潜在的容量隐患,就能最大程度上规避可能发生的容量事故。你不仅将成为一名高手,还能为公司创造巨大的价值。

03__什么是单元测试?如何做好单元测试?

今天我要跟你分享的主题是单元测试,如果你没有开发背景,感觉这篇文章理解起来有难度,那你可以在学完后续的“代码级测试”系列的文章后,再回过头来看一遍这篇文章,相信你会有醍醐灌顶的感觉。

03__声明式图形系统:如何用SVG图形元素绘制可视化图表?

你好,我是月影。今天,我们来讲 SVG。

SVG 的全称是 Scalable Vector Graphics,可缩放矢量图,它是浏览器支持的一种基于 XML 语法的图像格式。

对于前端工程师来说,使用 SVG 的门槛很低。因为描述 SVG 的 XML 语言本身和 HTML 非常接近,都是由标签 + 属性构成的,而且浏览器的 CSS、JavaScript 都能够正常作用于 SVG 元素。这让我们在操作 SVG 时,没什么特别大的难度。甚至,我们可以认为,SVG 就是 HTML 的增强版

03__事务隔离:为什么你改了我还看不见?

提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱。

转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这 100 块钱,完全可以借着这个时间差再查一次,然后再给另外一个朋友转账,如果银行这么整,不就乱了么?这时就要用到“事务”这个概念了。

03__授权服务:授权码和访问令牌的颁发流程是怎样的?

你好,我是王新栋。

在上一讲,我从为什么需要授权码这个问题开始,为你串了一遍授权码许可流程整体的通信过程。在接下来的三讲中,我会着重为你讲解关于授权服务的工作流程、授权过程中的令牌,以及如何接入 OAuth 2.0。这样一来,你就可以吃透授权码许可这一最经典、最完备、最常用的授权流程了,以后再处理授权相关的逻辑就更得心应手了。现在呢,让我们开始这一讲。

03__索引:如何用哈希表管理亿级对象?

你好,我是陶辉。

上一讲我们谈到,Ptmalloc2 为子线程预分配了 64MB 内存池,虽然增大了内存消耗,但却加快了分配速度,这就是以空间换时间的思想。

在内存有限的单片机上运行嵌入式程序时,我们会压缩数据的空间占用,以时间换空间;但在面向海量用户的分布式服务中,使用更多的空间建立索引,换取更短的查询时间,则是我们管理大数据的常用手段。

03__体验设计的模型:找到体验设计的关键规律

你好,我是相辉。

在前面的两讲中,我们了解了商业阶段和商业化价值对于体验设计策略的影响。那么接下来最重要的,就是为体验设计构建模型了。利用体验设计的模型,可以帮助我们理解用户体验是如何构成的,进而帮我们寻找到产品体验的规律,定位体验问题,优化和改进产品。

03__通过你的CPU主频,我们来谈谈“性能”究竟是什么?

“性能”这个词,不管是在日常生活还是写程序的时候,都经常被提到。比方说,买新电脑的时候,我们会说“原来的电脑性能跟不上了”;写程序的时候,我们会说,“这个程序性能需要优化一下”。那么,你有没有想过,我们常常挂在嘴边的“性能”到底指的是什么呢?我们能不能给性能下一个明确的定义,然后来进行准确的比较呢?

03__问题设计(上):三大原则理清面试考察方向

你好,我是四火。

相信你在学习了第 02 讲的面试计划之后,心中对于它已经有了更深入的理解。

我们在面试计划中,谈到了规划合适的面试内容,来帮助我们获取面试重点所对应的数据。而在技术面试中,技术问题就是这个面试内容的直接体现。

03__系统设计目标(一):如何提升系统性能?

提到互联网系统设计,你可能听到最多的词儿就是“三高”,也就是“高并发”“高性能”“高可用”,它们是互联网系统架构设计永恒的主题。在前两节课中,我带你了解了高并发系统设计的含义,意义以及分层设计原则,接下来,我想带你整体了解一下高并发系统设计的目标,然后在此基础上,进入我们今天的话题:如何提升系统的性能?

03__线程池:业务代码最常用也最容易犯错的组件

你好,我是朱晔。今天,我来讲讲使用线程池需要注意的一些问题。

在程序中,我们会用各种池化技术来缓存创建昂贵的对象,比如线程池、连接池、内存池。一般是预先创建一些对象放入池中,使用的时候直接取出使用,用完归还以便复用,还会通过一定的策略调整池中缓存对象的数量,实现池的动态伸缩。

03__限界上下文:定义领域边界的利器

你好,我是欧创新。今天我们重点学习“限界上下文”。

在 DDD 领域建模和系统建设过程中,有很多的参与者,包括领域专家、产品经理、项目经理、架构师、开发经理和测试经理等。对同样的领域知识,不同的参与角色可能会有不同的理解,那大家交流起来就会有障碍,怎么办呢?因此,在 DDD 中就出现了“通用语言”和“限界上下文”这两个重要的概念。

03__效能度量:如何选对指标与方法,真正提升效能?

你好,我是葛俊。今天,我来和你聊聊如何正确使用效能度量。

在上一篇文章,我给你介绍了效能度量的定义、作用,以及几个使用误区。我们先简单回顾一下:

  • 软件系统异常复杂,度量指标无法覆盖其所有参数,从而容易被“数字游戏”欺骗。
  • 竖井指标的提高不等于全局指标的提高,局部优化不等于全局优化。
  • 研发效能度量指标一般用来衡量软件产品的生产过程和产品质量,但公司真正需要关注的是能否产生用户价值。这两者之间存在着难以跨越的鸿沟。

正是因为这种种看似难以解决的问题,业界甚至有人认为研发效能的度量是一个无解的问题。但我并不这样认为。如果使用得当,效能度量可以给公司的研发带来非常大的好处。