20181104_ARTS_week19

栏目: Node.js · 发布时间: 5年前

内容简介:第 19 周,算法题 Search Insert Position,看了一篇对比 Yarn 和 npm 的文章,介绍了 JavaScript 中 new 运算符的一些坑,分享了对于业务和技术重构的一些看法。比较简单的一题,数组都排好序了,直接 loop 一下就好。Yarn vs npm - which Node package manager to use in 2018?

第 19 周,算法题 Search Insert Position,看了一篇对比 Yarn 和 npm 的文章,介绍了 JavaScript 中 new 运算符的一些坑,分享了对于业务和技术重构的一些看法。

Algorithm

/**
 * Search Insert Position
 * https://leetcode.com/problems/search-insert-position/
 *
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
var searchInsert = function(nums, target) {
    for (var i=0; i<nums.length; i+=1) {
        if (target <=nums[i]) {
            return i
        }
    }
    return  i
};

console.log(searchInsert([1,3,5,6], 5)) // 2

比较简单的一题,数组都排好序了,直接 loop 一下就好。

Review

Yarn vs npm - which Node package manager to use in 2018?

https://blog.risingstack.com/yarn-vs-npm-node-js-package-managers/

文中作者分别对比了 Yarn 与 npm 的优缺点,最后推荐了 npm。

在我看来,相比 npm,Yarn 最大的优点是会把装过的包缓存下来,这样下次再用到的时候就不用等待漫长的下载时间了。

不过由于 npm 是直接打包在 node 里,而且已经是 node 中使用最广泛的包管理工具,所以我还是建议优先使用 npm。

Tip

分享个 JavaScript 中关于 new 运算符的特性。 一般情况下 new 运算符会返回一个对象:

function Thing() {
  this.one = 1;
  this.two = 2;
}

var myThing = new Thing();

myThing.one // 1
myThing.two // 2

但是如果我们尝试在 Thing() 中 return 一个值:

function Thing() {
  this.one = 1;
  this.two = 2;

  return 5;
}

var myThing = new Thing();

myThing.one // 1
myThing.two // 2

会发现 return 的值不见了,并没有什么用。

如果我们换一种方式,尝试 return 一个对象。

function Thing() {
  this.one = 1;
  this.two = 2;

  return {
    three: 3,
    four: 4
  };
}

var myThing = new Thing();

console.log(myThing); // Object {three: 3, four: 4}

结果返回的对象取代了原本我们的对象。 这可以说是 new 运算符的一个特性,如果返回的是原始类型(数字,string 等)就会被忽略,而如果返回的是非原始类型(Object,Array,function 等)就会替代原来的对象。

这个『特性』需要注意,一不小心就踩到坑了。

Share

这周思考一个问题,对于接手一个旧项目是否要彻底重构?

新接手几个项目,组里有人想彻底重构一把。对于这个问题我是这样看的,最好是分步骤来,遇到页面有较大改动的,可以进行重构。

因为业务不等人,不可能有机会停下来让你做 2-3 个月的重构,而且老项目单元测试,文档,自动化测试都相对缺失,重构的质量进度都不好把控。

其实,很多做技术的人只关注技术,总想用最新最酷的技术。能和业务情况结合当然最好,如果不能,技术还是要做些妥协的,毕竟业务做好了,公司活下来是一切的基础。

碎碎念

记录一些所思所想,写写科技与人文,写写生活状态,写写读书心得,主要是扯淡和感悟。 欢迎关注,交流。

微信公众号:程序员的诗和远方

公众号ID : MonkeyCoder-Life

20181104_ARTS_week19


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Linux内核设计的艺术

Linux内核设计的艺术

新设计团队 / 机械工业出版社华章公司 / 2011-6-20 / 79.00元

关于Linux内核的书已经不计其数,但这本书却是独树一帜的,它的内容代表着Linux内核研究成果的世界顶尖级水平,它在世界范围内首次提出并阐述了操作系统设计的核心指导思想——主奴机制,这是所有操作系统研究者的一笔宝贵财富。本书可能也代表着同类图书的顶尖水平,是一本真正能引导我们较为容易地、极为透彻地理解Linux内核的经典之作,也可能是当前唯一能从本质上指引我们去设计和开发拥有自主知识产权的操作系......一起来看看 《Linux内核设计的艺术》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具