neolee / pilot

进入编程世界的第一课
584 stars 840 forks source link

利用前端三件套重写对话机器人 #1522

Open pyz610173878 opened 1 year ago

pyz610173878 commented 1 year ago

最近在学习前端技术,想利用前端三件套重写对话机器人,通过搜索,发现有几种类型的存在形式。

  1. 各种APP上面的对话机器人,自动机器人。
  2. 通过调用微软的Web chat实现
  3. 纯HTML上面的对话机器人。(点进去有些网页,会自动弹出一个对话框,然后你可以跟他进行对话,他会回答。)

为了降低难度,打算先写一个纯HTML界面的。我下意识地第一个思路就是,采用课程讲过的方式。经过初步的尝试与探索,发现以下相同点与不同点。

  1. 依旧是输入处理输出的方式。不同的只是,交互方式的改变(不是在命令行里面了,而变成了浏览器界面)与语言的不同写法,(用HTML显示问题,JavaScrip显示答案) image这是自己的尝试结果。我尝试找出他们之间的共性,进行泛化。发现都需要获取标签,选择事件,以及执行事件的效果。但我不知道,该以什么方式进行类似的泛化与责任分离。想听听老师的思路。

image

neolee commented 1 year ago

你的问题可能要更具体一点……

pyz610173878 commented 1 year ago

image 想练习UDB程序设计方法,练习这个方法的思考模式。但不用python进行实现,利用HTML CSS,js。三种语言设计出责任分离的模块化设计,包括各个模块的职责、实现思路以及将各模块粘合起来的方法,但卡在不知道该如何设计出责任分离的模块。

neolee commented 1 year ago

卡在不知道该如何设计出责任分离的模块

这个不用执着,先努力想办法实现你要的功能,先实现最最基本的一点点功能,然后不断加功能直到完成你的目标。

在这个过程中你会发现有些地方改起来特别麻烦,这时候就可以想想如何优化你的系统架构,哪些东西可以抽取出来变成公共模块,哪些可以合并起来处理,哪些可以利用面向对象和面向函数的思想来优化抽象层次,等等。

顺便:Web前端技术栈用来学习抽象思维,是比较难的,因为配套的工具不是为这个设计的,初学者比较容易陷入到工具的细节中。

pyz610173878 commented 1 year ago

谢谢老师