20181202_ARTS_week23

Posted on 2018-12-02 in ARTS by yucongchen

本周算法题 Length of last word;看了一篇讲 ES6 结构以及应用场景的文章;分享使用 npm audit 来检查项目中依赖的风险;分享了『程序员到一定年龄之后竞争力是什么』的一点想法。

Algorithm

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLastWord = function (s) {
    s = s.trim();
    let words = s.split(" ");

    return words[words.length - 1].length
};

console.log(lengthOfLastWord("Hello World"))
console.log(lengthOfLastWord("a "))

这个没啥特别好说的,还是比较容易的,就是一开始要去掉头尾的空格。

Review

ES6: Understanding the destructuring assignment syntax in Javascript

https://hackernoon.com/understanding-the-destructuring-assignment-syntax-in-javascript-c3bf8e1e908a

这篇文章讲了 ES6 中解构语法的作用。

比如结构 object:

const car = {
  brand: 'ferrari',
  type: 'sportscar',
  horsepower: 600,
  wheels: 4
};

const { brand, type } = car;

console.log(brand); // ferrari
console.log(type); // sportscar

同时还介绍了一些使用场景:

const carFunction = ({ brand, engine: { horsepower, liters }}) => {
  return `${brand} with engine of ${horsepower} horsepower and ${liters} liters`
}

const car = {
  brand: 'ferrari',
  type: 'sportscar',
  engine: {
    horsepower: 600,
    liters: 4,
    fuel: 'gas'
  },
  wheels: 4
};

console.log(carFunction(car)); // ferrari with engine of 600 horsepower and 4 liters

如果对解构语法不是很了解的话,推荐看看。

Tip

最近爆出了 npm 包 event-stream 被人恶意篡改,依赖中加入了恶意代码,而这些依赖代码会窃取用户的数字货币。

严重的是 event-stream 被很多很多前端流行框架和库使用,包括 Vue 的脚手架 vue-cli。

其实 npm 6 之后,有加入相关的支持。可以使用 npm audit 命令来检查你的项目是否有风险。必要条件需要 package-lock.json,如果项目里面没有这个文件可以用 npm i --package-lock-only 来创建一个。

这个命令之后也会提示现有项目的依赖是否有什么风险:

found 53 vulnerabilities (18 low, 20 moderate, 14 high, 1 critical)
  run `npm audit fix` to fix them, or `npm audit` for details

更多信息可以看 npm 的文档 https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities

Share

最近在想一个问题:程序员到一定年龄之后竞争力是什么?

当然,我现在也只有一点朦朦胧胧的想法,还不是很具体,也可能很一厢情愿。

可能有人觉得竞争力是编程经验,但是老实说,技术世界瞬息万变,如果不努力学习,经验很可能变成枷锁。比如以前一直以为 Hibernate 会是 Java 语言和数据库交互的第一选择,然而不过几年,MyBatis 的受欢迎程度已经远远超过了 Hibernate。

也有人觉得可能是学习能力,但是老实说,学习能力并不完全随着年龄增长,甚至在一定年龄之后有太多东西让你分心,家庭,孩子,父母,自己的身体等等,你能投入学习的时间精力也会被压缩。冲劲往往也比不过一些年轻人了。

到最近因为一些事情,让我开始有一点朦胧的想法,我觉得有可能是产品力。 可能很多人会觉得我就写好代码,产品的事情产品做就好了。其实不然,如果你只闷头写代码,只是一个完成需求的机器,也就是真正的码农。

而正因为你年纪大了,经历的产品多了,用过的产品多了,同时也懂技术,有眼界有视野,这样往往能有一些特别的想法,不再仅仅局限于一个程序员,而是能围绕整个产品有想法,这种能力不是年轻努力就能达到的,一定程度上说,也是有独特竞争力的。

暂时也只有这种朦胧的想法,还是要继续去思考。


碎碎念

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

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

公众号ID : MonkeyCoder-Life

程序员的诗和远方