wc项目(node.js实现)

Posted liujiamei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wc项目(node.js实现)相关的知识,希望对你有一定的参考价值。

一、github地址:https://github.com/Jasminejiamei/homework-wc

二、PSP

PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning 计划  40 30
· Estimate · 估计这个任务需要多少时间  30  25
Development 开发  790 710
· Analysis · 需求分析 20  20
· Design Spec · 生成设计文档  40  30
· Design Review · 设计复审   30  30
· Coding Standard · 代码规范  30  40
· Design · 具体设计  80  60
· Coding · 具体编码(学习新技术)  470  370
· Code Review · 代码复审  60  50
· Test · 测试(自我测试,修改代码,提交修改)  60  60
Reporting 报告 120 120
· Test Report · 测试报告  60  60
· Size Measurement · 计算工作量  30  30
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划  30  30
  合计  950  860

三、解题思路

刚开始看到题目,以为一定要用c语言或者java才可以实现一个.exe的工具,后来认真看才知道是模仿实现它的功能以及扩充即可,不限定语言。我比较熟的编程语言是javascript,但是浏览器中的JavaScript是没有文件操作的能力的, 而Node中的JavaScript具有文件处理系统的,对于读取文件这样的操作是很简便的,于是我想到了用node.js,此时我对node.js的了解还不是很深入。但是我认为快速学习这门语言还是可以的完成任务的,所以就用了node.js去完成这个项目。开发环境为:Visual Studio Code。

1. 如何用node去读取文件,如何读取用户在终端输入的命令行,其中统计的逻辑相对比较容易实现,于是我就去学习了node.js的fs文件系统,以及`process.argv` (获取命令行指令操作)的相关内容,找到了解决的思路。

 

2. 在node的包装工具npm的使用中,package.json文件是用于定义整个包的属性的,在测试的时候发现命令行自定义不了,在了解了其相关配置之后,添加了一个新的配置, "bin":"homework":"./index.js",正是因为缺少了这个配置,导致homework命令词无法被识别。

 

3. 对于用户输入-s命令呢,如果输入的信息不规范怎么办?

如果是对于-s命令输入不规范,则会返回相关能正确输入的信息给用户,例如:

技术图片

如果命令是系统本来不是自定义的,则不作处理,返回“没有该指令”;

 

4. 处理一个文件的信息统计容易实现,如何递归处理一个文件夹的内容呢,开始想得很复杂,但其实最终解决的方法很简单,做个是否为文件夹的判断之后,如果为文件夹,直接递归即可。

技术图片

 

5. 用node的语法不是十分熟悉,在完成高级功能的时候,不知道通过什么方式去打开一个界面,想到的第一种方案是写一个前端的界面,用node的搭建一个小型的后台,前端请求数据,后台返回即可,但是这样的方式并不实际,这样编码的时间会大大地超过预设的时间,在csdn的帮助下,找到一个可以用node画出图形界面的方式,直接调用命令行就打开图形界面。

 

四、设计实现过程

1.项目基本功能与拓展功能的系统流程图

技术图片

2.图形界面

 最初是用node写出了一个简单的http服务器,向里面写入内容,后面改成用homeworkWc -x  filename 运行即可自动打开一个html图形界面

技术图片

五、测试

测试基础指令:

1. homeworkWc -l filename

2. homeworkWc -w filename

3.homeworkWc -c filename

技术图片

技术图片

拓展要求指令:

1. homeworkWc -s -l/-w/-c  file

技术图片

 2.  homeworkWc -a  filename

技术图片

 测试高级功能的指令:

 技术图片技术图片

 六、总结

  在做此项目的过程中我熟悉了一门我想深入学习的语言,并且用这门语言完成了这个作业要求的功能,以后还要多尝试。同时从软件开发的角度来看,在这个项目的练习中体验了软件的需求分析,设计,开发和测试等过程,同时也更能体会一个产品可能他要实现的功能并不难,但是在开发的角度却要考虑很多。在实现这个项目的过程中遇到bug的时候有点心浮气躁,希望能够改掉这个不好的习惯,冷静分析问题,用更好的方案解决问题。

以上是关于wc项目(node.js实现)的主要内容,如果未能解决你的问题,请参考以下文章

模仿WC.exe的功能实现--node.js

Node.js:计算文件中的行数

node.js---sails项目开发

用node.js搭建一个静态资源站 html,js,css正确加载 跳转也完美实现!

java结合node.js非对称加密,实现密文登录传参——让前后端分离的项目更安全

Node.js 将文本作为 `spawnSync` 的标准输入传递