mocha 的体验。只不过 nodemon
被 entr
取代,mocha
被 localjudge
取代,npm scripts
被 Makefile
取代。
项目虽小,其实要和玩算法的童鞋介绍起来,也要费一点劲儿。或者说可以通过这个小项目看看工作中的应用开发和他们玩的算法有什么不一样。
- 关注安装环境,这里是 linux,有终端的地方,项目发布出来别人要能用得起来。
- 尽量多用现成的工具,取自开源,回馈开源,自己不用造那么多轮子,如果说我用一个 nodejs 程序,实现全部功能可以吗?当然可以,但是 Make,entr,YAML 都是常用的,而且经过长时间历史验证的程序,为什么我要自作聪明去开发呢。正如杨绛所说“你的问题主要在于读书不多而想得太多”。作为工程师的话,如果找轮子,应用现有轮子的能力,其实比写轮子更重要,而且这些轮子是可以一直帮助你的,localjudge 的逻辑很简单,我相信任何一个能调用子进程的编程语言都能实现。只是我比较偏爱 js 一些。未来如果换其它语言,Make,entr,YAML 这些依然可以帮到你,这些轮子可以接着用,而我们开发的应用(localjudge)本身,只要关注把自己改作的事情做好。
- 自己应用的开发也是,nodejs 生态(npm)里面的包就很多能用,像 chalk, yaml 这些以前就积累了,pidusage 就是这回就是现学现卖的。项目不怕小,也配备一个基本的文档,才算相对完整一些。
- 写程序不是画界面,发现太多的编程入门课程都在学画UI,从我二十多年前的VB开始,到现在少儿学 python,至于 scratch 就更不用说了。问问自己核心的代码到底有多少?画界面也好,然后你就可以感觉画界面,维护界面是个多么费劲的事情。然后你就知道为什么命令行的功能远比GUI强大得多。所以,开发一个把自己的事情做好的小命令行工具(就像那么多 shell 命令)一样,比一个高大全的GUI应用具有更长的生命力。
- 作为前浪,希望后浪们多用 Linux,区分清楚编辑器(editor)和编译器(compiler),并且多和终端(shell)打交道
欢迎大家试试看 localjudge,也欢迎移步到 洛谷讨论区继续讨论。