首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >20181104_ARTS_week19

20181104_ARTS_week19

作者头像
Bob.Chen
发布2018-12-06 09:50:43
2980
发布2018-12-06 09:50:43
举报

第 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 个月的重构,而且老项目单元测试,文档,自动化测试都相对缺失,重构的质量进度都不好把控。

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Algorithm
  • Review
  • Tip
  • Share
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档