·
JavaScript,PHP,Qt C++,Unity C# 喜欢反复重构自己的代码、尽力让代码思路清晰。 喜欢人工智能。但对人工智能算法了解不多,正准备学习。 喜欢写长篇的、逻辑完整且清晰的文档,不喜欢口头交流。 喜欢有充足的时间,自由的思考、自由的决定自己做什么。无业,不就业,无经济压力。 喜欢玩策略游戏,例如《异星工厂》《群星》《国标麻将》。不喜欢动作游戏。

1.3:代码逻辑的优美

如何描述QQ中的消息发送界面?

如果点击发送,那么在消息记录的右侧添加一条消息。
如果点击发送,那么让消息记录整体上移,然后在消息记录下方的右侧添加一条消息。
如果点击发送,那么:
    消息记录整体上移。
    设A=输入框中的内容。
    在消息记录下方的右侧添加一条消息,内容为A。

现在还有一个问题:跟你聊天的那个人的消息记录也需要修改。

如果点击发送,那么:
    消息记录整体上移。
    设A=输入框中的内容。
    在消息记录下方的右侧添加一条消息,内容为A。
    
    接收者的消息记录整体上移。
    在接收者的消息记录下方的左侧添加一条消息,内容为A。

这样的设计不优美。这个设计可以重构成另一种优美的设计:

有一个【公共消息记录】。
公共消息记录中,所有消息都排列在左侧,而非【一人在左,一人在右】。

显示消息记录时:
    第一步,生成一个【超高的此人视角消息记录】。
    这个消息记录中,此人的消息在右、对方的消息在左。但是没有滚动条。
    整个消息记录是一个超高的画布。
    第二步,截取这个【超高的此人视角消息记录】的下方区域,显示在QQ的消息记录窗口中。

如果点击发送:
    在【公共消息记录】中添加一条消息。
    让双方重新显示消息记录。