【吐槽】为什么不能写这样的代码



  • |center

    这是一段“男默女泪”的代码,看到它我完全是崩溃的!这段代码用 JavaScript 来创建 div 对象,设置样式,常规的做法应该是在 html 里声明 div,在 css 里面声明样式。

    这么做的问题在哪?

    我们可以考虑一下,程序的本质是什么?

    Pascal语言之父 Niklaus Wirth 在70年代提出:Program = Data Structure + Algorithm,

    随后逻辑学家和计算机科学家 R Kowalski 进一步提出:Algorithm = Logic + Control。

    左耳朵耗子陈皓总结:Program = Logic + Control, 程序的本质复杂性就是逻辑,非本质复杂性就是控制。

    我很喜欢这个定义,程序就是逻辑加上控制。所谓逻辑就是要 “做什么”,控制就是 “怎么做”。更具体一些,逻辑就是一个函数,输入与输出之间有映射规则,控制就是常见的流程控制(条件,循环,顺序等),程序的本质复杂性在于逻辑,而非本质复杂性在于控制。

    好的代码,应该尽量让逻辑和控制这两个维度保持正交性。我们造轮子的目的,也就是为了尽量简化控制,封装过程式的代码,暴露声明式的接口。

    上面这段代码的问题在于,反其道而行之。浏览就是器已经造好的轮子,让我们可以用 htmlcss 写出声明式的代码,javascript 被设计用来动态地修改它们。而这段代码是,用 javascript 生成静态代码,抛弃了 htmlcss 的声明式写法,使用过程式的写法,这可以叫做反轮子,写出了反轮子的代码。

    我对这种代码,嗤之以鼻!

    Reference

    https://coolshell.cn/articles/10652.html


  • 队委会

    666666



  • 男默女泪666


 

Copyright © 2018 bbs.dian.org.cn All rights reserved.

与 Dian 的连接断开,我们正在尝试重连,请耐心等待