编程语言的一些基础概念(一):静态函数式编程

世界上最好的编程语言是什么?

这就好像问 世界上最好的车是什么车?F1 比赛的,日常家用的和跑山路的最好的车显然是不一样的。同理,不同的编程语言也有他们最适合的使用场景,程序员们通常都会个几种语言,因为工作需要可能要学新的语言。不同编程语言之间是不是完全不一样呢?他们之间有没有什么共同点是不同语言间类似的呢?有没有一些最基本的概念?

最近在看了 Coursera 上的 Programming Languages, Part A,对于这个问题做了部分解答,这里做个阶段性的总结。

...more

如何给网站加 HTTPS ?

HTTPS 是在 HTTP 上加上 SSL/TLS,能更好的确保网站数据的安全性。最近想给个人网站加上 HTTPS,因为个人网站和博客都是在同一个服务器上,用 nginx 给两个网址做代理,不像只有一个网站那么直接,踩了一些坑,用一篇文章总结梳理一下。

...more

为什么一定要了解基础?

1

刚开始玩王者荣耀时,用后裔无脑走天下,按推荐出装站撸随便上分。差不多到黄金铂金,就遇到了瓶颈,一方面是对手变强了,一方面是自己对游戏了解太少,不懂英雄,不懂装备。

当时如果对面有个蔡文姬,游戏一开始,总有队友“善意”的提醒,「射手出个制裁」,然后我刷刷的开始翻装备,制裁?什么是制裁?干嘛用的?

...more

浅谈 RPC 和 REST: SOAP, gRPC, REST

在一次高盛面试中,被问到了一个问题,SOAPREST 之间的区别是什么?当时东一榔头西一棒槌的答了几条,总感觉很了解的很肤浅。怎么从一个比较全面的角度,去了解 SOAP 和 REST ?最近看了个专栏,文章里相对详细的介绍了他们,加上一些别的搜索和理解,在这里做个总结和梳理。

首先,第一个问题应该是 为什么会将 SOAP 和 REST 进行对比?为了搞清楚这个问题,这篇文章会先介绍 SOAP 基于的模式 RPC,然后依次介绍 RPC 框架 ONC RPC、SOAP、gRPC,最后讲讲 REST ,以及他们的对比。

...more

Linux 入门手册——《鸟哥的 Linux 私房菜》

对 Linux 的了解一直停留在简单的 command line 层面,比如 ls 能列出所有当前文件夹下的文件和文件夹,但这个功能是怎么实现的?能不能自己定义命令来简化日常的工作?在安装完一个软件后,安装在里哪里?比如说安装完了 node, 为什么在终端能使用 npm 指令了?在/目录下有 /bin, /var, /etc, /home, /dev 等文件夹,这些文件夹都是做什么用的?为什么要按照这种方式划分?有很多类似于这一类的关于 Linux 操作系统的问题一直得不到解答,有时花了不少时间才能解决一个小问题,所以这段时间就将操作系统的学习提上了议程。

...more

他心中的你,不一定是你 ——《定位》

1

「怕上火,喝王老吉」,这句脍炙人口的广告语是这本书在的典型应用,将本来不温不火的“凉茶”定位成“预防上火的饮料”,销售额从1亿涨到了200亿,除了王老吉,还有「滋补国宝,东阿阿胶」,把补血药物定位成“滋补国宝”,销售额也涨了将近200倍,从22亿到400多亿。运用了「定位」这个思想的公司很多都取得了不凡的成就。

...more

分布式负载测试实践

这篇偏技术,非技术的朋友可以选择不看 LOL。

上篇文章介绍了 Raft 共识算法,会去了解这些分布式的内容是因为工作上的需要。每个月代码总结也停了好久,用这篇文章完整总结一下前一段时间做的小工具:分布式定时负载测试,主要目的有一下几点:

  1. 测试内部开发 API 在不同请求发送速度和不同数量请求下的延迟,找出延迟过高的让开发程序员去优化。
  2. 不断增加请求的数量模拟增长的用户量,找出系统能处理请求数量的瓶颈。
  3. 监控系统在不同数量的请求下需要多少的资源:CPU, Memory等。

这个工具主要包括三部分:1. 负载测试,2. 定时器,3. 共识集群

...more