 
 获得徽章 13
- 之前承诺大家的:“你不知道的Chrome调试技巧”小册已经整理写作完成进入审核阶段啦!!!
 小册分为18小节,定价为 "0" 元,
 具体上架时间等待掘金官方的通知哦~ 大家也可以关注我的掘金账号
 新的进展都会在第一时间发出~展开66171
- 有道云笔记除了可以多端同步笔记,还能作为图床使用:
 在普通格式的笔记中上传本地图片,然后分享这篇笔记的链接,打开链接就能获得图片的地址:note.youdao.com* 
 此外,云笔记的markdown还能解析html,因此即使不充会员,也能实现在md文件中放置图片展开114
- 【携程Redis容器化实践】携程的Redis使用规模有200T+,并且每天有百万亿次的访问频率,如此大规模的Redis容器化对于我们来说是个不小的挑战,本文分享携程Redis容器化落地的一些实践经验。评论11
- 【码云开源项目推荐丨高性能的 JavaScript 组件视图框架】Ale (中文:啤酒) 是一套用于以组件的形式构建用户界面的渐进式框架。与其它大型框架不同的是,Ale 只需要你将关注点放在数据上,并不需要关心任何与视图有关的内容。当你更新数据时,视图中任何使用到它的地方都会得到更新。评论7
- 安利一个字体:Monoid
 larsenwork.com 
 最大的特点就是"字体特性可以自定义",就是可以在线选择"$"字符的样式,数字1和小写字符"l"的样式,是否开启 Ligatures (即连字)特性,字距和行距也有几档可选,同时页面也提供了常见语言(js、C、Py、HTML等)的预览,可以选好以后看顺眼了再下载。展开112
- 有的人不能理解为什么函数式编程更简洁,他们看起来似乎很臃肿。
 我发现主要是两个原因:
 1. 很多人并没有使用纯正的函数式编程语言写函数式,比如用JS或者Java,函数式很多特性他们没有,需要去借助一些东西实现,因此略显臃肿。
 2. 更重要的原因是他们对函数式不够熟悉,可能只是接触了皮毛。 我举个简单的例子。
 假如我要实现一个功能,判断一个值是否为空对象。
 ```js
 function isObject(a) {
 return a.toString() === "[object Object]";
 }
 function isEmptyObject(a) {
 return isObject(a) && Object.keys(a).length === 0;
 }
 ```
 那我现在想是一个功能,判断一个对象为非空对象呢?
 ```js
 function not(func) {
 return (...a) => {
 return !func(...a);
 };
 }
 const isEmptyObject = not(isEmptyObject);
 ```
 这个not函数可以和很多其他判断逻辑进行组合派生出无数的函数。
 这种是`逻辑上的简化,而非概念上的简化`。
 所以说函数式编程最最难的是用函数式的思维去思考问题。展开712