百科问答小站 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是一个编辑器,也可以用它的控件来快速制作原型,但千万不要把这两件事搞混了。”

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




  

相关话题

  如何理解编程过程中的逻辑严谨性? 
  避免使用 eval、new Function 的方法可以降低 XSS 攻击的风险吗?为什么? 
  作为一个前端小白,应该从那些方面开始学习? 
  如何评价浙江大学三名教授及一名研究生申请利用 defineProperty 做数据双向绑定的专利? 
  为什么一直没有出现一个可以把现代 CSS 编译为支持老版本浏览器 CSS 的编译工具? 
  后端开发第一次做项目,该如何实现前端页面?可以拿别人开源项目的页面过来直接用,自己写后端接口吗? 
  如何让领导打消让UI写前端的念头? 
  有哪些短小却令人惊叹的 JavaScript 代码? 
  文本格式(txt、doc)的HTML,有什么办法快速读取出特定的标签及里面的内容? 
  vue等前端框架最直接的作用是什么?有大佬发表高见吗? 

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





© 2024-12-25 - tinynew.org. All Rights Reserved.
© 2024-12-25 - tinynew.org. 保留所有权利