百科问答小站 logo
百科问答小站 font logo



为什么 Dreamweaver 这类所见即所得的编辑器会生成很多垃圾代码? 第1页

  

user avatar   huangz 网友的相关建议: 
      

说Dreamweaver不愿意生成更漂亮的代码,真是太冤枉了,相信我,Adobe的Dreamweaver开发者(乃至世界上所有的WYSIWYG软件开发者)肯定是想尽一切办法让自己软件生成的代码更加漂亮。

但这里面有一个根本性问题,就是软件生成的代码也许永远都不可能达到和人类代码相同的水平——很多自动代码生成器,剥开它美丽的外表,隐藏在下面的通常都是肮脏的实现。如果哪一天,人类只需要对软件说出需求,然后软件就能自动生成软件,而且自动生成的代码不但高效,还很漂亮,那全世界的程序员就失业了。(再然后就是科幻小说的剧情:计算机统治了地球,人类沦为电池。。。)

Dreamweaver成为众矢之的、屡屡挨批的原因,除了因为受众广泛,很大程度跟使用者对它的定位错误有关:Dreamweaver是一个编辑器,有一个方便的WYSIWYG界面,它还有控件功能,可以只通过拖拖放放就生成一个网站,但这种控件自动生成的代码是用于制作原型的,且仅应该用于制作原型。

比如某天你灵感涌现,想出了下一个价值500亿美元的网站,你花了3天把程序写好,然后开始构思界面,但是你拿不准宽度该用960像素,还是1020像素,背景该用蓝色还是绿色,诸如此类,而且你也不想找美工商量,免得他/她只是画几个图就分走你50%的股份,于是你调出Dreamweaver,用控件拖拖放放,改几个属性,拼凑弄出你想象中的设计——在这个过程中,你不关心控件生成的代码是否美观,是否符合W3C标准,因为你只是想要个原型,一个能看的草图,仅此而已。

来回几次,你终于把样式决定下来,Dreamweaver的控件功能高效地完成了构建原型的作用,现在它的历史任务完成了,你祭出你的所有装备武装自己:VIM、FIREBUG、十个不同种类的网页阅览器、等等,对着Dreamweaver上的原型小心翼翼地编写一个优美的、符合标准的、使用最新最酷的HTML5和CSS3功能的网页,然后把这个网页用到你的程序上。(如果你喜欢Dreamweaver的语法感知功能,你当然也可以用Dreamweaver来写,但任何时候,你都知道自己不应该依赖控件生成的代码)。

之后网站开始上线运营,BETACN、SOLICOM和Counter-Strike DN用大篇幅报道了你的神来之作,10cent和摆渡试图抄袭你,但最终失败,某天你正在DEBUG之际,接到了一个不熟悉的电话,你说你很忙,没有空做采访,电话那一头的家伙说自己开了一个什么工场,你觉得似乎在哪个地方听说过这个名字,于是决定给他三分钟解释自己。。。

在城市的最高层建筑上举办上市庆功宴之际,有个无名小记向你请教创业心得,你拒绝了他的采访,可他仍然紧追不舍,你很感动,回忆起自己当初落魄之时,对着录音笔久久不能言语,最后终于开口:

“Dreamweaver是一个编辑器,也可以用它的控件来快速制作原型,但千万不要把这两件事搞混了。”

小记还想向你索要签名,但你只是挥了挥手,转身离开,这次小记没有再追上来,转而在自己的速记本上写上“当他说完这句话之后,眼睛泛起了泪光,久久不能自已,最后失声痛哭离场,留下一个孤单的背影。。。”




  

相关话题

  2018年一个合格的前端应该是什么样的? 
  初期学习前端有合适的电脑推荐么? 
  CSS Grid 布局那么好,为什么至今没有人开发出基于 Grid 布局的前端框架呢? 
  为什么 Vue 的更新记录没有中文,中文文档也一直滞后? 
  本人后台开发,前端说改个东西要两天,但我感觉撑死2小时,怎么破? 
  如何评价知乎 2017 年 1 月 的改版? 
  ES6 await为什么建议用try...catch捕获错误? 
  前端工程师讨厌写 CSS 是什么心态? 
  前端的未来: 后端会越来越同质化, 只是一个数据库, 大部分功能都挪到前端吗? 
  现在整个 Web 前端是「屎山」吗? 

前一个讨论
刚上网的那个年代遇到过什么趣事或囧事?
下一个讨论
主持人播报失误有惩罚制度吗?





© 2025-04-02 - tinynew.org. All Rights Reserved.
© 2025-04-02 - tinynew.org. 保留所有权利