首页
宇行信
取消

基于Hacker News的内容热度推荐算法

前言 近期公司产品需要做一个内容推荐的功能,但限于人员和能力有限,经过调研,确定了一个简单相对我们可以实现的方案。一篇文章产生,随着用户浏览、点赞、分享、收藏、评论,热度逐渐攀升,进入榜单到推荐页面,但随着时间的推移,这篇文章也不能永久的霸占榜单,让后面新产生的文章没有机会到推荐页,因此也就有了时间衰减的因素,从而可以让榜单能够动态的变化,除了上面基本的原理以外,还需要人为干预因素,通过加权...

关于Code Review的一些思考总结

Code Review 提高代码质量 提前发现bug 统一代码规范 提高团队成员代码技能 总之,前期找问题(代码规范、潜在缺陷、BUG,代码设计等等),后期演变成开发者技术交流和员工成长 如何开展 代码规范:明确Coding规则 检视清单:结合业务特点,check重点 总结优化:透明问题,持续优化 激励措施:激发主观能动性 开展方式 ...

JavaScript基础之数组与类数组梳理

JavaScript中数组的API纷繁复杂,其中还有不少坑,这里一起做个总结。 构造器 通常我们使用对象字面量的方式创建一个数组,例如var array = [];,但是,有的时候对象字面量不能满足我们要求,比如,我想给数组限制长度,用对象字面量就无法创建了,这时候只能使用构造器: new Array(arg1,arg2,…),参数长度为0或者长度大于等于2时,传入的参数将按照顺...

JavaScript基础之闭包原理

闭包是JavaScript中重要的概念,并且与作用域紧密相关,这里做个总结。在闭包之前,我们先对作用域做下基本介绍。 作用域 JavaScript 的作用域通俗来讲,就是指变量能够被访问到的范围,在 JavaScript 中作用域也分为好几种,ES5 之前只有全局作用域和函数作用域两种。ES6 出现之后,又新增了块级作用域。接下来我们一一介绍。 全局作用域 在编程语言中,变量通常被分...

JavaScript基础之new、apply、call、bind实现原理

在 javascript 中,new通常被用来创建一个对象,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。而bind 是返回对应函数,便于稍后调用;apply 、call 则是立即调用 。 new关键词原理 new 关键词的主要作用就是执行一个构造函数、返回一个实例对象,在 new 的过程中,根...

JavaScript基础之继承实现

继承可以使得子类具有父类的方法和属性,同时也可以重新定义父类的某些属性,并重写或者覆盖某些属性和方法。使得子类具有与父类不同的属性和方法。 接下来我们就来一起看看实现继承的几种方式 1. 原型链继承 原型链继承是比较常见的继承方式之一,其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。其中涉及的构造函数、原型和实例,三者之间存在着一定的关系,即每一个构造函数都有一个原型...

JavaScript基础之原型与原型链的理解

理解原型与原型链对于我们实现继承、new关键字原理、甚至代码优化等非常重要,接下来我们对这块做一个总结。 概念 我们都知道,访问一个对象实例上的属性和方法时,首先在实例本身查找。 如果没有找到,会到实例对象的隐式属性__proto__上查找,就是该实例的构造函数的原型对象。如果还没有,会继续访问原型对象的原型,直到Object.prototype.__proto__(null)为止。这也...

JavaScript基础之对象深浅拷贝原理以及实现

我们知道JavaScript数据类型分为基本数据类型和引用数据类型,对于基本数据类型,变量存储的是基本类型的值,而对于引用数据类型, 变量存储的是其在内存中的地址,而通常拷贝一个对象,又分为浅拷贝和深拷贝两种,下面我们分别来讨论这种拷贝的区别。 浅拷贝 复制一个对象,如果对象属性是基本数据类型,复制的就是基本类型的值给新对象,但如果是引用数据类型,复制的就是内存中的地址,如果其中一个对象...

JavaScript基础之数据类型及检测和转换

数据类型 JavaScript数据类型一共分为8种: Number(数值,包含NaN) String(字符串) Boolean(布尔值) Undefined(未定义/未初始化) Null(空对象) Symbol(独一无二的值,ES6 新增) BigInt (大整数,能够表示超过 Number 类型大小限制的整数,ES 2020新增) Object(对象。...

关于fastlane已存在的证书复用问题

前言 iOS开发在团队项目协作中,面临着许许多的挑战,除了被大家诟病的nib文件和故事板以外,还有就是今天要说的证书管理问题,相信做过iOS开发的用户对fastlane已经不陌生了,它提供了很多有用的功能来帮助开发者从繁琐的重复性劳动中解脱出来,这里列举出一些: deliver: 上传截图, 元数据, app应用程序到App Store supply: 上传Android app...