使用 ClickHouse 做去重加和,去重求和。使用 CK 做去重加和,去重求和。使用CH 做去重加和,去重求和。使用 SQL 做去重加和,去重求和。…

前几天被新浪的一位程序员刷屏了,婚礼现场还要跑去修 bug,这事得赖鹿晗。看到之后想起我的婚礼,那是一年前也是在国庆。距婚礼还有一个月的时候,心想这可是一辈子的大事,在众多亲朋好友面前搞点比较 cool 的事情,这样会不会让大家印象深刻点。 怎样会比较 cool 希望你看到这个标题不要以为是让基友拉着我私奔😱。让现场所有宾客都能参与进来,对,这应该比较 cool。根据以往参加别人婚礼的经验,流程大概是:主持人引导新郎新娘进场,新郎新娘立下海誓山盟,新郎新娘双方父母登台,然后全场一起举杯祝福新人,最后一直吃到婚礼结束。宾客除了那一次举杯,全程都是路人,参与感非常低。有的婚礼会有些互动,这完全看主持人的个人风格了。 要调动现场,站在台上撒红包这种土豪的做法显然不适合木讷的我。眼下几乎人人都有智能机,人人都有微信,…

HTML5中 Web Storage 的出现,主要是为了弥补使用 Cookie 作为本地存储的不足。Cookie 存储的数据量非常小,而且数据会自动携带到请求头里,但服务器端可能并不关心这些数据,所以会造成带宽的浪费。 Web Storage 提供了两个存储对象:localStorage 和 sessionStorage。 sessionStorage 存储的数据仅在本次会话有用,会话结束后会自动失效,而且数据仅在当前窗口有效,同一源下新窗口也访问不到其他窗口基于 sessionStorage 存储的数据。也是由于这些特性,导致 sessionStorage 的使用场景会比较少。 localStorage 可以永久存储,而且同源下数据多窗口也能共享。看起来很美好,但 localStorage…

匿名函数最早是LISP语言引入,后面发展为不仅是函数式语言所特有,在解释型语言和编译型语言中也越来越多地看到匿名函数的身影,它或许有个更潮的名字叫 lambda 表达式。 闭包多是用匿名函数实现,在匿名函数中引用了外部变量,那这个匿名函数就形成了闭包。由于闭包和匿名函数之间有着千丝万缕的关系,所以经常会把两者搞混淆。其实在 Js 中匿名函数、闭包、自执行函数、回调函数、箭头函数,这些概念似乎相同,却又不同,请读者朋友自行了解。 匿名函数拥有可动态编程的执行过程。巧妙使用可以让你的代码简约而不失优雅,灵活而不失约束。好了,正式切入本文的正题,巧用匿名函数重构代码。按照重构的惯例,先指出代码中的坏味(Bad Smell): * 定义冗长的重复配置 * 条件多变的集合过滤 * 说一不二的方法调用 定义冗长的重复配置…

这篇文章作为之前两篇文章的延续,来的稍微有点迟。 * 如何优雅地写js异步代码 * 如何优雅地写js异步代码(2) 时隔一年,以上两篇文章内容或有过时,请读者自行斟酌。好下面正式开始本文内容。 循环的方式 假设我们有个数组,包含 5 个数字:let times = [100, 150, 200, 250, 300]; 还有一个异步的睡觉方法:sleep(time, cb)。 import Promise from 'bluebird'; // 当没有 cb 时,返回一个 Promise 对象…