注意
- 这个题目不是算法题,不要陷入复杂的算法细节,往简单了去想
- 可读性很重要,确保其他人可以在很短的时间内通过直接阅读代码搞懂你在做什么
- 尽可能地多次提交你的代码,最好 2-10 分钟提交一次,这会帮助面试官来理解你的构建思路
- 测试很重要,确保你的代码和测试一起提交。测试要可靠,以确保其他人可以只阅读测试就可以确认你的逻辑实现是没有问题的
在我们团队的开发过程中,我们的工程师注意到项目在构建时会出现一些编译警告。 尽管这些警告不会导致编译失败,但这些警告降低了我们的代码质量,所以我们决定清理它。 这些警告混杂在很长的构建输出中,给工程师查找它们造成了很大的困扰。 所以我们需要实现一个报警器程序,它接收一个文本文件作为构建信息的输入,分析出其中所有的报警信息,并以更容易阅读的格式打印在标准输出上。
这里有一份构建输出的日志,你可以下载然后保存为本地的 build.log
文件,然后通过一个脚本来解析其中所有的编译警告,输出在屏幕上,例如执行 node alerter.js build.log
你应该得到如下结果:
这里还有一份 样例输出,你的脚本执行结果应该和这个文件的内容 完全一样。
- Warning 的格式在题目中没有描述,这是故意的,你需要自己去整理 Warning 的 Pattern。这听起来有点模糊,但你可以利用 https://gist.github.com/e7h4n/2f242c3c3e85c8d4ddb3508564c26a39 中的内容