持续集成交付部署

持续集成

Continuous Integration

持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试、打包等步骤。根据反馈的测试结果,我们可以知道新代码和原有代码能否正确地集成在一起。

持续交付

Continuous Delivery

持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境( production-like environments )」中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中进行更多的测试。如果代码没有问题,接下来就可以继续手动部署到生产环境中。

持续部署

Continuous Deployment

持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。

我个人觉得持续集成、持续交付、持续部署非常值得推广。开发过程中最怕集成时遇到问题导致返工,而持续集成、持续交付、持续部署恰恰可以做到问题早发现早解决,从而可以避免这样的麻烦。另外,持续集成、持续交付、持续部署的流程高度依赖自动化工具,所以这种开发方法也可以大大提高开发人员的工作效率。

21副GIF动图让你了解各种数学概念

“让我们面对它;总的来说数学是不容易的,但当你征服了问题,并达到新的理解高度,这就是它给你的回报。”

——Danica McKellar

数学是很难的科学,但因为它是科学家用数学来解释宇宙的语言,我们无可避免的要学习它。看看下面的这些GIF动图,它们提供了视觉的方式来帮助你理解各种数学技巧。

1、椭圆的画法

img

2、杨辉三角问题(Pascal triangles)解法

img

3、使用“FOIL”轻松的解决二项式乘法

img

4、对数解法技巧

img

5、矩阵转置的技巧

img

6、勾股定理

img

7、多边形的外角之和总是等于360度

img

8、圆周率π

img

9、一弧度就是长度刚好等于半径的一段圆弧所对的圆心角

img

10、在Y轴上使用正弦(红色),在X轴上使用余弦(蓝色),则在XY轴平面上画出的环形如下图(黑色)

img

11、同前一原理,但更简单

img

12、这是将sin和cos运用到三角形上

img

13、余弦是正弦的衍生物

img

14、正切线

img

15、同上,但翻个面看,更容易理解

img

16、将一个公式从笛卡尔坐标转换成轴坐标

img

17、画抛物线

img

18、黎曼和(Riemann sum)约等于其曲线下的面积

img

19、双曲线

img

20、将双曲线表现成3D形式,也许你不相信,它完全是用直线画成的

img

你甚至可以做成这样的效果:

img

趣图三幅:负载均衡算法需要改进

图一:负载均衡算法需要改进

负载均衡算法

图二:开发人员 vs 测试人员,一张很诡异的图片

开发人员 vs 测试人员

爱喝啤酒的程序员是如何学习数据结构的

如果在相亲时你说你是程序员,对方——一般是女的——会投来异样的眼光。程序员在其他人的眼中的形象一般是思维逻辑有问题,或木纳,或有点儿轴,或是书呆子。但凡事都在变化,程序员也在变化,英语中的Programmer这个词在国外现在流行写出Brogrammer。Brogrammer和Programmer的区别是,前者很时髦、很酷。Brogrammer有很多典型特征,比如说编程时戴墨镜,听摇滚乐,喜欢参加派对,喜欢啤酒等,如果你想知道你自己是否符合Brogrammer标准,你可以到这里测试一下自己

一般来说,程序员喝酒是大忌,因为编程需要用脑子,要逻辑清晰。但就像之前说的,凡事都在进化,一方面,编程环境、编程工具越来越发达完善,对程序员的要求越来越低,另一方面,有些人喝完酒后更兴奋,脑子更活。下面这几幅图描绘的是一个爱喝啤酒的程序员是如何学习数据结构的,你可以看出,他酒喝了,数据结构也掌握了。

二叉树

二叉树

不平衡树

不平衡树

重新平衡树

重新平衡树

数组

数组

矩阵

矩阵

链接表

链接表

稀疏矩阵

稀疏矩阵

堆

栈