Algorithm

主要是为了编程训练和学习。每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell

https://leetcode.cn/problems/string-to-integer-atoi/submissions/

  • 使用正则的方法出现的过程问题:
  1. 没有考虑 + 号开头的情况
  2. 加了 + 之后,报错正则表达式错误: (-|+)? ,应该是[+-]?

image.png

  • 使用自动状态机方法出现的问题:
  1. 没有更新状态
  2. 空格判断错误,写成’’,应该是’ ‘

总结自动状态机的解答过程:

  1. 定义状态表,即定义好状态 S 由因素 c 导致变为状态 S’ (S -> S’)
  2. 实现一个自动状态机 class,作用是处理状态变迁 S’ = update(S, c),期间根据不同状态进行数据的处理
  3. 开始遍历,依次处理每个因素 c

Review

主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。所以,需要你阅读并点评至少一篇英文技术文章,我个人最喜欢去的地方是http://Medium.com(需要梯子)以及各个公司的技术blog,如Netflix的。

Dan https://overreacted.io/npm-audit-broken-by-design/
Dan 批判了 npm audit 的设计不合理,认为 npm audit报告出来的安全问题是“伪安全问题”,即实际上不可能会出现的问题。由 npm audit 的安全报告导致了初学者、开发者、项目维护者、以及用户等产生了不好的体验。他给出了目前存在的几个可能解决办法:

  1. 将开发环境的依赖放到 devDependencies。这个方案有个缺点:
    1. npm audit 默认仍会审查 devDependencies,可以使用 npm audit --production 来忽略 devDependencies中的依赖
    2. npm install 安装完之后还是会自动 npm audit 一次,显示警告报告
    3. npm audit 冗余的安全报告会掩盖真正危险的问题
  2. 发布 package 时将依赖内联到构建包里,如此就不依赖 node_modules,并且还能加快启动和下载速度
  3. 提供一些屏蔽安全漏洞报告的方法

最后,作者呼吁 npm 官方重视并且能修复 npm audit 的问题。

Tip

主要是为了总结和归纳你在是常工作中所遇到的知识点。学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识。

// TODO

Share

主要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的技术文章。

// TODO