Algorithm
主要是为了编程训练和学习。每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard)。进行编程训练,如果不训练你看再多的算法书,你依然不会做算法题,看完书后,你需要训练。关于做Leetcode的的优势,你可以看一下我在coolshell上的文章 Leetcode 编程训练 - 酷 壳 - CoolShell。
https://leetcode.cn/problems/string-to-integer-atoi/submissions/
- 使用正则的方法出现的过程问题:
- 没有考虑 + 号开头的情况
- 加了 + 之后,报错正则表达式错误: (-|+)? ,应该是[+-]?
- 使用自动状态机方法出现的问题:
- 没有更新状态
- 空格判断错误,写成’’,应该是’ ‘
总结自动状态机的解答过程:
- 定义状态表,即定义好状态 S 由因素 c 导致变为状态 S’ (S -> S’)
- 实现一个自动状态机 class,作用是处理状态变迁 S’ = update(S, c),期间根据不同状态进行数据的处理
- 开始遍历,依次处理每个因素 c
Review
主要是为了学习英文,如果你的英文不行,你基本上无缘技术高手。所以,需要你阅读并点评至少一篇英文技术文章,我个人最喜欢去的地方是http://Medium.com(需要梯子)以及各个公司的技术blog,如Netflix的。
Dan https://overreacted.io/npm-audit-broken-by-design/
Dan 批判了 npm audit
的设计不合理,认为 npm audit
报告出来的安全问题是“伪安全问题”,即实际上不可能会出现的问题。由 npm audit
的安全报告导致了初学者、开发者、项目维护者、以及用户等产生了不好的体验。他给出了目前存在的几个可能解决办法:
- 将开发环境的依赖放到 devDependencies。这个方案有个缺点:
npm audit
默认仍会审查 devDependencies,可以使用npm audit --production
来忽略 devDependencies中的依赖npm install
安装完之后还是会自动npm audit
一次,显示警告报告npm audit
冗余的安全报告会掩盖真正危险的问题
- 发布 package 时将依赖内联到构建包里,如此就不依赖 node_modules,并且还能加快启动和下载速度
- 提供一些屏蔽安全漏洞报告的方法
最后,作者呼吁 npm 官方重视并且能修复 npm audit
的问题。
Tip
主要是为了总结和归纳你在是常工作中所遇到的知识点。学习至少一个技术技巧。你在工作中遇到的问题,踩过的坑,学习的点滴知识。
// TODO
Share
主要是为了建立你的影响力,能够输出价值观。分享一篇有观点和思考的技术文章。
// TODO