【站内原创】【文章】编程思维(一):先设计,再书写

网页使用JavaScript语言。在JavaScript中,网络通讯可以这样写:

如果点击某按钮:
    激活后台的某PHP文件。
    给该PHP文件传递某参数。
    如果该PHP文件回复消息:设消息为X,执行函数F(X)。

桌面软件一般使用C++或C#。在C++或C#中,如果想要制作一个聊天室或者论坛、要跟服务器通讯,那么需要这样写:

如果点击某按钮:
    给服务器发送某消息。

这带来了一个问题:服务器无法分辨该如何处理这个消息。

比如,如果用户在输入框输入“测试”二字,点击发送按钮,那么JavaScript可以直接给后台发送【测试】,而C++/C#需要给后台发送【输入:测试】。【输入】二字用来告诉后台【要把后面的文本视为用户输入的信息来处理】,从而将这条消息与其他发给后台的消息区分开来;其他消息不可以再以【输入】为标题。

但这带来了一个更深的问题:应该先写前台、还是先写后台?

如果先写前台,那么不确定应该以什么样的格式给后台发送消息。

如果先写后台,那么不确定一共需要哪些功能。

这个问题的答案是:既不先写前台,也不先写后台。而是先制定协议。制定协议,就是明确【通讯中一共有哪些类型的消息?这些消息的标题都是什么?内容都是什么格式的?】

比如,一个聊天室需要如下类型的消息:

【标题】 【发出与接收】 【效果】
输入 客户端发给服务器 用户发送聊天消息
下载 客户端发给服务器 用户要下载文件
请求消息记录 客户端发给服务器 用户点击了某一好友,要显示消息记录
消息记录 服务器发给客户端 客户端显示消息记录
好友列表 服务器发给客户端 客户端显示好友列表

还有添加好友、删除好友、建群加群等。每个功能都对应一种通讯消息类型。这些都需要先设计好。

设计完毕之后,再写前台后台的代码。

新手常犯的错误就是直接写代码,觉得可以边写边设计。的确,一般功能可以边写边设计,但当你遇到难以边写边设计的功能时(比如网络通讯),你不要觉得【编程好难】,不要想着【我是该放弃?还是该坚持?】,而要去先设计、再书写。你会发现编程并不难。

先设计,再书写。这是一个很好的方法,一个很好的习惯。

95 views
Comments
登录后评论
Sign In