阅读更多

14顶
5踩

编程语言

翻译新闻 向 JavaScript 说“不”

2013-02-22 17:40 by 副主编 wangguo 评论(14) 有11201人浏览
技术发展日新月异,JavaScript已经今非昔比,它从过去一个装饰性的网页脚本语言,成为了今天Web开发举足轻重的主流编程语言。现在在一些大型、复杂的程序中也有JavaScript的身影。

如今JavaScript可以说是无处不在,并已经开始向移动领域渗透,随着HTML5技术的逐渐成熟,JavaScript也将成为移动Web应用开发的中坚技术。

尽管JavaScript非常强大,但也要有节制地使用,不要滥用。开发者Rob Bazinet在博客中说出了他的观点

这些年,Rob一直从事Rails项目的开发,他表示,JavaScript是这些项目中不可避免的一个痛点。成堆的jQuery插件、无处不在的AJAX等等,除非这些技术的实现都非常完美,否则会留下一大堆问题。

Rob列出了他在Rails项目中大量使用JavaScript的后果:

  • 大量的JavaScript代码,导致应用程序变得很慢;
  • 大量的继承,代码变得难以调试、维护。作者发现他的一些Rails项目中,或多或少都用到了一些不同的JavaScript框架,并且有些框架是第一次使用。
  • 遗留了很多坏代码,且难以解决。有些代码真的很难以理解了解,导致维护和增强也变得困难。
  • 想在项目中玩一些新技术,但都消耗了一些学习成本,并且都需要花时间来维护。

Rob还引用了一句话“你可以,并不意味着你应该”。他表示这句话适用于很多事情,特别是JavaScript。

每天有大量的新框架如雨后春笋般出现,其实我们不需要这么多框架,只需要有一个更好的使用方式即可,比如标准、成熟的使用模式、众所周知的接口、已公布的最佳实践等等。

滥用JavaScript不会给所有人带来好处,因此要有节制的使用。要知道,JavaScript并不是银弹。

原文:JavaScript Has Its Place, But Not Every Place
14
5
评论 共 14 条 请登录后发表评论
14 楼 hanzhdy 2013-02-26 21:38
说了半天就一句话,js别滥用。使用js跟摄入蛋白质一样的道理,缺了不行,多了也不行,但真心的没见过哪个家伙来一句:向蛋白质说不!
13 楼 jiangwenxian 2013-02-26 11:09
achun 写道
这不是某个语言造成的,是设计需求造成的。
如果你只是要一个no style,no action的页面,那 js 就完全不需要用了。

这不是某个语言造成的,是为快速完成任务造成的。
如果需求方说:时间不是问题,报酬也不是问题,必须尽可能精简代码。

那就和谐了。


大赞!!!
12 楼 anhui3713 2013-02-25 23:18
人家的意思也不是不用嘛 只是说别滥用,这点我非常的赞同,特别很多人在开发的时候喜欢加很多自己发现的新玩意儿在里面,导致外来库非常的混乱..
11 楼 hautbbs 2013-02-25 14:52
relinson 写道
老外说的对,但是小便把该文翻译到天朝就不对了

何出此言啊?
10 楼 clxy 2013-02-25 10:27
4个理由中,

1有待商榷
2,3,4和JS有关系吗?换那种语言,只要是糟糕的代码还不是都这个尿性?!

不过JS目前有些混乱倒是真的,需要JS自身的规范提升才好!
9 楼 hajima11 2013-02-25 10:19
    小编是故意的吧。“JavaScript可以用,但不是每个地方都适合”,原本中性的陈述,非得译成带点感情色彩。

    现在不用JavaScript的网站少之又少。或者说你直接开发客户端得了,来Web开发凑什么热闹?好钢用在刀刃上。JavaScript主导前端大势所趋。绝大多数Web站点没有JavaScript,用户体验是不完整。没有哪个流行的插件是专门为你的项目编写的。使用别人的插件有得必有失。嫌插件太多、太笨重。可以写原生的JavaScript或是封装自己的插件。用不着整天吐槽这个插件那个框架,好像花了多少钱买错东西一样。

    JavaScript没有错,是人用的不得当。原本一句搞掂的非空校验,非得引入JQuery。更有甚者每个页面都复制一遍JavaScript引用,连404页面都不放过。回头网站性能差就骂JavaScript。能怪JavaScript吗?
8 楼 sbabzc 2013-02-25 09:46
都是自己写代码的问题
7 楼 taoge2121 2013-02-25 08:59
你可以,并不意味着你应该 ,这句话说的太好了!!!!
6 楼 weng 2013-02-25 08:47
achun 写道
这不是某个语言造成的,是设计需求造成的。
如果你只是要一个no style,no action的页面,那 js 就完全不需要用了。

这不是某个语言造成的,是为快速完成任务造成的。
如果需求方说:时间不是问题,报酬也不是问题,必须尽可能精简代码。

那就和谐了。

说到了要点
5 楼 bravecharge 2013-02-25 00:25
为了增强用户体验不得不用大量的javascript
4 楼 relinson 2013-02-23 10:28
老外说的对,但是小便把该文翻译到天朝就不对了
3 楼 achun 2013-02-22 20:30
这不是某个语言造成的,是设计需求造成的。
如果你只是要一个no style,no action的页面,那 js 就完全不需要用了。

这不是某个语言造成的,是为快速完成任务造成的。
如果需求方说:时间不是问题,报酬也不是问题,必须尽可能精简代码。

那就和谐了。

2 楼 cosmo1987 2013-02-22 19:33
引用
Rob还引用了一句话“你可以,并不意味着你应该”。他表示这句话适用于很多事情,特别是JavaScript。

话虽简单做到太难。可以,表示你只要知道哪个技术可以实现某种功能,你就去使用它实现了。但是应该太难。应该就表示你需要了解所有可以实现某种功能的技术,并清除的知道其中技术之间使用的利弊,且有敏锐的洞察力和远瞻性,去分析哪种技术用在这里更好,更易扩展,易编码,易维护。且此技术不需要太多的学习成本。一个大公司可以做到应该的都很少,何况中小型公司了。

再者说,应该的说法是仁者见仁智者见智。你觉得应该,但是其他的同水平的人可能觉得不该。辩论就由此产生。这种应该是一种完美的表现形态,只可惜,这个世界并不完美。
1 楼 田梦桦 2013-02-22 18:10
看来我要吸取教训了,我现在就是特别喜欢用jquery实现更好的用户体验。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • HTML入门小练习(三)

    智能健康检测 影音电子 无线耳机 降噪耳机 AirPods 华为 小米 索尼 真无线耳机 头戴式耳机 蓝牙耳机 运动耳机 蓝牙音箱 MP3/MP4 录音笔 收音/收音机 电子教育 学生电脑/学习机 步步高家教机 小天才儿童手表 儿童手表...

  • Python生成个人CSDN历史博客文章列表及目录

    站在巨人的肩膀上,Adrian与dlib中face_recongnition模块的贡献者Adam的采访部分翻译 使用Python,dlib中新型、更快、更小的5点面部标志检测器检测人脸、眼睛、鼻子 使用Python,OpenCV,面部标志进行面部对齐 使用...

  • android安卓源码海量项目合集打包-1

    │ │ 控件标签android,类似电影图片上班的推荐标签.zip │ │ 支持 SingleLine 模式的标签云效果,轻松实现知乎问题话题列表 标签云效果,可以设置为 SingleLine 模式.rar │ │ 标签云效果,可以设置为 Single...

  • 淘宝类目列表1~2~3~4~5级。及根据淘宝商品ID查询基础信息,类目ID查类目信息API调用

    G_3 手机数码 MP3/MP4/iPod/录音笔 G_3 手机数码 办公设备/耗材/相关服务 G_3 手机数码 笔记本电脑 G_3 手机数码 电脑硬件/显示器/电脑周边 G_3 手机数码 电玩/配件/游戏/攻略 G_3 手机数码 电子元器件...

  • Python spider爬取高清电影

    最近无聊想刷几部电影,可是去下载的时候...汪星卧底 [警犬与人类搭档联手破案的惊险经历]", "download": "http://gaoqing.la/show-dogs.html"} {"title": "2018年 的士速递5 [蝉联法国双周票房第一]", "download": ...

  • D2 Map CFG 2005/12/22

    //----------------------------------------act5---------------------------------------- Minimap Cells[Crystalline Passage][Frozen River]: 1 Minimap Cells[Frozen River][Anya on Minimap]: 1 Minimap Cells...

  • N70/N72常见问题汇总

    MP4格式,N70支持的MP4参数为352*288以下分辨率,MPEG-4视频编码,帧数15帧,比特率为720Kbps以下,音频编码为AAC,制作的MP4不符合上述标准将无法播放 如何设置全屏壁纸或动态壁纸? S60的全屏壁纸只能靠安装主题...

  • Oracle官方文档及个人书签地址

    
 Oracle官方文档及个人书签地址 
 
 
 Oracle 资料下载地址:https://edelivery.oracle.com/&...

  • Git简易教程

    第二种方法更简单,也是推荐的方法,就是直接从 AppStore 安装 Xcode , Xcode 集成了 Git ,不过默认没有安装,你需要运行 Xcode ,选择菜单 “Xcode”->“Preferences” ,在弹出窗口中找到 “Downloads” ,选择 ...

  • Git 详解 和 廖雪峰 Git 教程

    $ git whatchanged [file] # 显示指定文件相关的每一次diff $ git log -p [file] # 显示过去5次提交 $ git log -5 --pretty --oneline # 显示所有提交过的用户,按提交次数排序 $ git shortlog -sn # 显示指定文件...

  • mac使用技巧

    本帖最后由 xc8140789a 于 2014-4-9 14:41 编辑2014从这里开始!!!谢谢大家热烈支持, 感动! 你们的支持是我更新的动力!如果觉得不错,顺便留下脚印,说说自己为什么喜欢Mac吧!...推荐交流...

  • Unicode和GB2312编码表

    03B3 A6C3 γ 03B4 A6C4 δ 03B5 A6C5 ε 03B6 A6C6 ζ  03B7 A6C7 η   03B8 A6C8 θ 03B9 A6C9 ι 03BA A6CA κ 03BB A6CB λ  03BC A6CC μ   03BD A6CD ν 03BE A6CE ξ 03BF A6CF ο 03C0 ...

  • Bookmarks

    Bookmarks   书签栏   tooltips提示效果,支持点击... - CSDN博客 ...疯狂的小萝卜头 - 博客园 ...【Kettle从零开始】第九弹之Kettle定时任务介绍 - RotKang - CSDN博客 ...HTML5模板引擎 Thymeleaf 教程 - OPEN 开发经...

  • 最近游戏更新 未整理 无图片 续3

    http://221.5.99.33/zylm/jpyx/ 《壮志凌云-战地》.EXE 31 点击下载-->《赤色战线2》 http://221.5.99.33/zylm/jpyx/ 《赤色战线2》.EXE 32 点击下载-->《大富翁六》CD1 ftp://218.65.33.150/soft/youxi/dafuwen...

  • 做梦都想找的搜索资源利器(转)

    作者:贾冰壮 链接:https://zhuanlan.zhihu.com/p/21922942 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 一、找资源利器 去转盘 : http://www.quzhuanpan.com/ ...

  • python爬取

    "skill_desc": "小乔召唤流星并不断向附近的敌人坠落,召唤持续5秒,每颗流星会造成400/500/600(+100%法术加成)点法术伤害,每个敌人最多承受4次攻击,当多颗流星命中同一目标时,从第二颗流星开始将只造成50%...

  • 中文汉字码表

    [unused5] [unused6] [unused7] [unused8] [unused9] [unused10] [unused11] [unused12] [unused13] [unused14] [unused15] [unused16] [unused17] [unused18] [unused19] [unused20] [unused21] [unused22] [unused...

  • SQL Server:简繁转换

    啊阿埃挨哎唉哀皚癌藹矮艾礙愛隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翺襖傲奧懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙壩霸罷爸白柏百擺佰敗拜稗斑...冰柄丙秉餅炳病並玻菠播撥缽波博勃搏鉑箔伯帛舶脖膊渤泊駁捕蔔哺補埠不布步簿部...

  • 2万汉字编码大全

    亥,亥,4ea5 亦,亦,4ea6 产,产,4ea7 亨,亨,4ea8 亩,亩,4ea9 亪,亪,4eaa 享,享,4eab 京,京,4eac 亭,亭,4ead 亮,亮,4eae 亯,亯,4eaf 亰,亰,4eb0 亱,亱,4eb1 亲,亲,4eb2 亳,亳,4eb3 亴,亴...

  • Git教程

    第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line ...

Global site tag (gtag.js) - Google Analytics