聊天服务器-需求分解

Posted by 周思进 on July 20, 2019

上周时间规划里计划本周对聊天服务器进行下需求细化,具体要完成的功能点如下:

聊天服务器

大致将需求分三个模块:注册、登入、聊天,重新梳理需求后如下:

聊天服务器

个人试练项目,建议使用迭代模型,每次迭代有一个可用版本,每次在前一个迭代版本基础上新增功能实现。这样可以让自己早早的先有一个基础可用版成果物,能够让自己更有信心,更有动力去完成后面的工作。如果一开始就想着上来完成所有的需求细节,可能需要耗费太久的时间也迟迟看不到最基础的聊天功能,这很有可能会耗尽自己的耐心,失去动力,导致项目夭折。

因此第一个版本,我先从上面细化的需求点中,找出哪些是基础必要的,考虑后如下:

聊天服务器

除了基础必要实现的考虑,还需要考虑实现方式的选择,既然是要快速出成果物,那前期就按最简单的方式来实现。

先从登入说起,因为是通过telnet ip:port的方式进行的登入操作,而telnet协议本身是明文传输的,所以涉及的用户名和密码也就是明文暴露在网络中了。这对于正式项目肯定是不可以的,不过自己试炼的项目也就先按该方式实现,后期可以再考虑修改登入方式。

注册模块中的用户名和密码保存,虽然在传输过程中已经是明文不安全了,但本地存储都不应该明文存储用户名和密码信息。不过同样基于试练项目,也就考虑按最简单的方式实现,先明文保存,后面再考虑加密存储。而存储这块,也先用最简单的文本方式存储,不考虑用数据库实现。

其它几点暂时没有考虑到需要在实现方式上做什么大的选择。

确认了要完成的细化点,接下来就是对需求实现编写相应的概要设计,而不是急于上手编程。没有想好完整的实现方案,就直接上手开发,往往会因为考虑的不周全,导致后期各种问题。下周针对注册模块先输出个概要设计文档,然后将其实现。

这个项目目前只能基于命令行交互式输出的方式展示,后期还得好好学下前端知识做个web界面,做成一个真正说的过去的项目,在此给自己立个flag!