编写高质量代码

出版时间:2010年7月  出版社:机械工业出版社  作者:曹刘阳  页数:281  
Tag标签:无  

前言

Web前端开发是从网页制作演变而来的,名称上有很明显的时代特征。在互联网的演化进程中,网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主。2005年以后,互联网进入Web 2.0时代,各种类似桌面软件的Web应用大量涌现,网站的前端由此发生了翻天覆地的变化。网页不再只是承载单一的文字和图片,各种富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好的使用体验,这些都是基于前端技术实现的。以前会Photoshop和Dreamweaver就可以制作网页,现在只掌握这些已经远远不够了。无论是开发难度上,还是开发方式上,现在的网页制作都更接近传统的网站后台开发,所以现在不再叫网页制作,而是叫Web前端开发。Web前端开发在产品开发环节中的作用变得越来越重要,而且需要专业的前端工程师才能做好,这方面的专业人才近两年来备受青睐。Web前端开发是一项很特殊的工作,涵盖的知识面非常广,既有具体的技术,又有抽象的理念。简单地说,它的主要职能就是把网站的界面更好地呈现给用户。如何才能做得更好呢?第一,必须掌握基本的Web前端开发技术,其中包括:CSS、HTML、DOM、BOM、Ajax、JavaScript等,在掌握这些技术的同时,还要清楚地了解它们在不同浏览器上的兼容情况、渲染原理和存在的Bug。第二,在一名合格的前端工程师的知识结构中,网站性能优化、SEO和服务器端的基础知识也是必须掌握的。第三,必须学会运用各种工具进行辅助开发。第四,除了要掌握技术层面的知识,还要掌握理论层面的知识,包括代码的可维护性、组件的易用性、分层语义模板和浏览器分级支持,等等。可见,看似简单的网页制作,如果要做得更好、更专业,真的是不简单。这就是前端开发的特点,也是让很多人困惑的原因。如此繁杂的知识体系让新手学习起来无从下手,对于老手来说,也时常不知道下一步该学什么。目前市面上关于Web前端开发的书主要都是针对单一技术的,本书与这些书有着本质的区别。它主要想实现两个目标:第一,为不太有经验的Web前端开发工程师建立大局观,让他们真正了解和理解这个职业;第二,帮助有一定Web前端开发经验的工程师修炼内功,通过编写高质量的代码来提高前端代码的可维护性。这是很多前端开发工程师感兴趣的内容。本书的前两章讨论了网站重构和团队合作,这是很有必要的。网站重构的目的仅仅是为了让网页更符合Web标准吗?不是!重构的本质应该是构建一个前端灵活的MVC框架,即HTML作为信息模型(Model),CSS控制样式(View),JavaScript负责调度数据和实现某种展现逻辑(Controller)。同时,代码需要具有很好的复用性和可维护性。这是高效率、高质量开发以及协作开发的基础。建立了这种大局观后,学习具体技术的思路就更清晰了。代码质量是前端开发中应该重点考虑的问题之一。例如,实现一个网站界面可能会有无数种方案,但有些方案的维护成本会比较高,有些方案会存在性能问题,而有些方案则更易于维护,而且性能也比较好。这里的关键影响因素就是代码质量。CSS、HTML、JavaScript这三种前端开发语言的特点是不同的,对代码质量的要求也不同,但它们之间又有着千丝万缕的联系。本书中包含着很多开发的思想和经验,都是在长期的开发实践中积累下来的,不同水平的Web前端工程师都会从中获得启发。张克军(著名Web前端开发工程师)2010年4月

内容概要

本书以网站重构为楔子,深刻而直接地指出了Web前端开发中存在的重要问题—代码难以维护。如何才能提高代码的可维护性?人是最关键的因素!于是本书紧接着全方位地解析了作为一名合格的前端开发工程师应该掌握的技能和承担的职责,这对刚加入前端开发这一行的读者来说有很大的指导意义。同时,还解读了制定规范和团队合作的重要性。  本书的核心内容是围绕Web前端开发的三大技术要素——HTML、CSS和JavaScript来深入地探讨编写高质量的HTML代码、CSS代码和JavaScript代码的方法、技巧、规范和最佳实践,从而为编写易于维护的Web前端代码打下坚实的基础。这不是一本单纯的“技术”书籍,没有系统地讲解Web前端开发的基础知识,它更专注于“技巧”,探索如何为“技术”提供最佳“技巧”。  本书包含了大量的开发思想和原则,都是作者在长期开发实践中积累下来的经验和心得,不同水平的Web前端开发者都会从中获得启发。尤其是对于那些中初级水平的读者而言,本书是一本不可多得的内功修炼秘籍。

作者简介

曹刘阳,网名阿当,资深Web前端开发工程师,先后就职于中国雅虎和淘宝,现就职于新浪,一直从事Web前端开发工作,实战经验非常丰富,在通过提高代码 质量来增强可维护性方面颇有心得。精通HTML、CSS、JavaScript等前端开发技术,对ActionScript、Flex、PHP、RoR等 Web开发技

书籍目录

推荐序 赞誉 前言 致谢 第1章 从网站重构说起  1.1 糟糕的页面实现,头疼的维护工作  1.2 Web标准—结构、样式和行为的分离  1.3 前端的现状  1.4 打造高品质的前端代码,提高代码的可维护性—精简、重用、有序 第2章 团队合作  2.1 揭秘前端开发工程师  2.2 欲精一行,必先通十行  2.3 增加代码可读性—注释  2.4 提高重用性—公共组件和私有组件的维护   2.5 冗余和精简的矛盾—选择集中还是选择分散  2.6 磨刀不误砍柴工—前期的构思很重要  2.7 制订规范  2.8 团队合作的最大难度不是技术,是人 第3章 高质量的HTML  3.1 标签的语义  3.2 为什么要使用语义化标签  3.3 如何确定你的标签是否语义良好  3.4 常见模块你真的很了解吗   3.4.1 标题和内容   3.4.2 表单   3.4.3 表格   3.4.4 语义化标签应注意的一些其他问题3 第4章 高质量的CSS4  4.1 怪异模式和DTD  4.2 如何组织CSS  4.3 推荐的base.css  4.4 模块化CSS—在CSS中引入面向对象编程思想    4.4.1 如何划分模块—单一职责   4.4.2 CSS的命名—命名空间的概念   4.4.3 挂多个class还是新建class —多用组合,少用继承   4.4.4 如何处理上下margin  4.5 低权重原则—避免滥用子选择器  4.6 CSS sprite  4.7 CSS 的常见问题   4.7.1 CSS的编码风格   4.7.2 id和class   4.7.3 CSS hack   4.7.4 解决超链接访问后hover样式不出现的问题  4.7.5 hasLayout4   4.7.6 块级元素和行内元素的区别   4.7.7 display:inline-block 和 hasLayout7   4.7.8 relative、absolute和float3   4.7.9 居中4   4.7.10 网格布局   4.7.11 z-index的相关问题以及Flash和IE 6下的select元素   4.7.12 插入png图片   4.7.13 多版本IE并存方案—CSS的调试利器IETester 第5章 高质量的JavaScript  5.1 养成良好的编程习惯   5.1.1 团队合作—如何避免JS冲突   5.1.2 给程序一个统一的入口—window.onload和DOMReady   5.1.3 CSS放在页头,JavaScript放在页尾   5.1.4 引入编译的概念—文件压缩  5.2 JavaScript的分层概念和JavaScript库   5.2.1 JavaScript如何分层   5.2.2 base层3   5.2.3 common层   5.2.4 page层4   5.2.5 JavaScript库  5.3 编程实用技巧7   5.3.1 弹性7   5.3.2 getElementById、getElementsByTagName和getElements-ByClassName3   5.3.3 可复用性   5.3.4 避免产生副作用9   5.3.5 通过传参实现定制3   5.3.6 控制this关键字的指向7   5.3.7 预留回调接口   5.3.8 编程中的DRY规则   5.3.9 用hash对象传参  5.4 面向对象编程   5.4.1 面向过程编程和面向对象编程   5.4.2 JavaScript的面向对象编程   5.4.3 用面向对象方式重写代码  5.5 其他问题   5.5.1 prototype和内置类   5.5.2 标签的自定义属性   5.5.3 标签的内联事件和event对象   5.5.4 利用事件冒泡机制  5.5.5 改变DOM样式的三种方式 附录A 写在规则前面的话 附录B 命名规则 附录C 分工安排附录D 注释规则 附录E HTML规范 附录F CSS规范 附录G JavaScript规范

章节摘录

插图:

编辑推荐

《编写高质量代码:Web前端开发修炼之道》:Web前端开发者的内功修炼秘笈4大社区鼎立推荐!在这个用户体验为王的Web 2.0时代,Web应用所涉及的领域越来越广,规模越来越大,需求越来越多样化和复杂化,更新的速度也越来越快。如何才能让我们的应用应对规模化、多样化、复杂化和快速变化带来的种种问题?编写高质量的、易于维护的Web前端代码似乎是解决这些问题的唯一途径。如何才能编写出高质量的、易于维护的Web前端代码?《编写高质量代码:Web前端开发修炼之道》的主要内容围绕Web前端开发的三大技术要素——HTML、CSS和JavaScript展开,深入地讨论了编写高质量的HTML代码、CSS代码和JavaScript代码的方法、技巧、规范和最佳实践,从而为编写易于维护的Web前端代码打下坚实的基础。希望《编写高质量代码:Web前端开发修炼之道》能帮助大家从一筹莫展的前端维护工作中走出,从此微笑地面对需求的“变化”。互联网进入Web 20时代以后,Web应用敲响了传统桌面应用的丧钟,它一路摧城拔寨,如今几乎所有的应用都打上了“Web”的烙印。与之相应的,Web开发技术得到了空前的发展,尤其是前端技术。近年来,随着用户对使用体验的要求越来越高,前端开发的技术难度越来越大,昔日设计和制作不分的网页设计师这一职位终于“拆分”成了视觉设计师和前端开发工程师两个职位,分别向着艺术和技术的方向纵深发展。Web前端开发工程师是一个很新的职业,在国内乃至国际上真正开始受到重视的时间也不超过5年,这类专业人才一直供不应求。从知识体系上讲,前端开发工程师需要掌握和了解的知识非常之多,甚至可以用庞杂来形容。作为一名没有太多经验的前端开发工程师,我们应该如何去全面认识自己的工作,如何找准自己的定位,如何从合格成为优秀,最后迈向卓越?《编写高质量代码:Web前端开发修炼之道》尝试从如何编写易于维护的、高质量的Web前端代码的角度给出答案。如果你在思考下面这些问题,也许《编写高质量代码:Web前端开发修炼之道》就是你想要的!作为一名合格的web前端开发工程师,究竟需要具备哪些技能和素质?为什么说如果要精Web前端开发这一行,必须先精通十行?在Web应用的实现代码中,有哪些技术因素会导致应用难以维护?高质量的Web前端代码应该满足哪些条件?如何才能提高Web前端代码的可读性和可重用性?在HTML代码中,为何要使用语义化标签?如何检查你使用的标签是否语义良好?语义化标签时应该注意哪些问题?如何编写CSS代码和JavaScript代码可以避免团队合作时产生冲突?如何组织CSS文件才能让它们更易于管理?如何让CSS模块化,从而提高代码的重用率?CSS的命名应该注意哪些问题?何谓优良的CSS编码风格?如何在CSS编码中引入面向对象的编程思想?这样做有哪些好处?原生JavaScript和JavaScript类库之间有何关系?如何编写自己的JavaScript类库?JavaScript有哪些常见的跨浏览器兼容问题?如何解决这些问题?如何组织JavaScript才能让代码的结构更清晰有序,从而更易于维护?如何才能编写出弹性良好的JavaScript代码?编写过程中应该注意哪些问题?JavaScript的对象编程是如何实现的?如何用面向对象的方式重写原有的代码?编写高质量的JavaScript代码有哪些实用的技巧?又有哪些常见的问题需要注意?为了提高Web前端代码的可维护性,我们应该遵循哪些规范?

图书封面

图书标签Tags

评论、评分、阅读与下载


    编写高质量代码 PDF格式下载


用户评论 (总计71条)

 
 

  •   这本书就是一本胡说八道的书,简单点说,就是吭爹的书。先说CSS部分:他在第50页上面有一长段代码:body,div,dl,dt,dd,ul.....{margin:0px;padding:0px},然后解释说,为什么不用*{},理由是这个*号会同时将一些老的不用的标签也重置。真服了他了,你写了这么一大堆标签的重置,难道你在页面中会全部用到。你师娘没告诉你,浏览器是在页面处理时,才进行标签解释的,并不会去解析所有未在页面中出现的标签。另外,作者用了大量HACK代码,如<!-- if ie6-->,这种代码早就为许多人不屑一顾了。真想亲自问一下作者,你认真研究过这些代码吗?你在全部六个主流浏览器上真实测试过这些代码吗?我相信,如果你真的试过,你自己都会抽自己的耳光。再说他的高质量javascript部分,我再举一个例子(第135页);(function (){ var a=123;})他说这个变量a是全局可见的。真想抽作者的耳光,你师娘教你,也不能教成这个样。谁告诉你这个变量是全局可见的。至于作者非常钟情的匿名函数,真的希望作者去看一本书,《高级javascript编程>,里面对于匿名函数的利弊,以及作者以一个高深陌测专家身份大谈特谈的作用域问题有一个非常精确的解释。...凡此种种,这本书上的错误,如果有谁愿意去买下来做为反面教材的话,还是非常不错的。真的不要说什么高质量代码,四大社区鼎力推荐。真的不想用更损人的话来说你。搞技术的,还是踏踏实实的,真的不要自己都似懂非懂的就出来教人了。 阅读更多 ›
  •   内容还没看,但是不知道纸张涨价还是怎样,以前的价格不是这样的纸张。太差劲。几张白纸夹杂几张草纸。希望内容会好吧
  •   从公司的图书馆借到的,感觉非常不错~~~前两章集中介绍前端开发需要注意的事项,后三章分别介绍了html,css,js,总之,对于刚入行的新人而言,这是不可多得的一本好书~~~都说老外写的书好,但是我现在真是不习惯看清华出版的那些老外的书,不晓得是翻译问题,还是观念问题,理解起来总是有难度,国人开始写一些原创的好书,对我们而言未尝不是一件好事
  •   非常不错,非常推荐购买,标签语义化方面作者介绍了一个很好的方法学习,模块化CSS也是非常不错的经验和技巧介绍,第五章介绍了javascript方面的多经验和技巧。各位看官如果结合实际肯定会有不小的收获。不足的是在第四章的css hack部分浏览器专有hack方法介绍不全 只介绍了IE中的 if endif 其他几种浏览器的专有hack方法没有提及。其中提及的其他hack建议还是最好少用,因为承担着向后兼容的风险。由于非ie需要使用hack的情况比较少,我的意见是将需要hack的样式集中起来使用各个浏览器专有的hack方法避免向后兼容的风险,同时采用专人独立管理以便维护。需要指出的是第54页末提到详见4.3.3节,我对正本书模糊搜索和精确查找也没找到这个章节,但是从页码上又是连续不缺页的。纠结了一下又看了一遍上下文 发现4.4节 (可能)就是4.3.3节所指内容。
  •   本人对js虽然不是很了解,但是后面的js部分估计都能看下去,我觉得比看厚厚的权威指南好多了,不知道是不是不习惯国外的一本正经和严肃。谈css吧。买这本书的那段时间也在研究css模块化以及如何减少冗余代码的问题。作者提出的“多用组合,少用继承”的认识估计很多人也有。但是我在深思熟虑后,觉得还是得看实际情况。毕竟这会给维护带来很大的麻烦。假如我们极端到把结构中只留下类名,那么,在内容不变的前提下,基本可以随心所欲的更改样式,而不必去动结构了。所以说,这得看情况。如果网站更改不频繁,布局基本固定,那么你可以考虑这种做法,否则,要注意类库中类的粒度不能太细了。另外,css森林的鬼鬼有对css模块化的讨论,如何去减少冗余的css代码,大家可以去深究下,并总结下规律。思维会更开阔些,而不是随便就给标签加载类。
  •   加急送货还挺快的,仔细地翻了翻,内容确实非常好,但是封面被送货的人划伤了,美中不足,希望卓越的包装能好点。
  •   前端开发越来越重要,但是其复杂和“漫长”的知识体系让很多前端开发者伤透脑筋,也是因为这些原因,专门讲前端开发的书几乎没有,这本书算是首创了,从内容上看,这本书不仅能给前端开发者软(职业规划和学习方法)的指导,还能给予硬(HTML、CSS和JavaScript方面的编码技巧)的指导,算得上是佳品了。尤为值得一提的是,这本书也非常适合做Web开发的人看,因为这里面总结的编码技巧都很实用。
  •   算是它带领我进入前端的领域,虽然回头看看比较浅显~
  •   我读了前几章,不错的,适合提升,不适合入门。后面js部分没读,因为我还没学js。
  •   国内书籍,关于代码阅读,扩展,组织结构
  •   看完javascript和css突飞猛进
  •   工作两年左右的绝对不会看此书的,作者应该玩过YUI,里面是YUI的一些思想,例子也有YUI的影子,工作一个月的同学可以看看此书,会对前端有帮助的。
  •   适合工作有2左右的同学看看。
  •   如今前端工程师必读之书,有作者日常工作的经验总结,非常好
  •   适合前端开发学习,呵呵,我都快读完了
  •   很实用,改正了很多。
  •   此书是本人在网上买的第一本书,购买时间是2011年6月1日(拿到书的时间),购买地点是南昌,在当当网买的,后来两年我又在亚马逊买了不下于30本技术类书。... 阅读更多
  •   纸张颜色不一致,有黄有白
  •   书质量不错,很多人推荐的书
  •   非常不错,实用,是一本好书。
  •   Web前端开发修炼之道
  •   DIV CSS前端开发经常遇到的问题
  •     都是以照顾IE7,8为主,顺便兼容W3C标准。
      比如:e=window.event || e;
      el=e.srcElement || e.target;
      所以在chrome及众“国内自主研发处理器”大行其道的年代,这本书显得过时了。
      
      这部分的组织也比较混乱,比如上面的浏览器事件兼容处理放到了“JS分层”这小节里。
      
      正本书有彩页和黑白页无规律混在一起,读起来很怪异。目录的页码紧跟在章节后面,刚开始看的时候还以为没带页码。
  •     Object.prototype.say = function(){alert(1)}
      function fun(){}
      fun.say(); //1
      var li = document.getElementsByTagName("li");
      alert(typeof li[0]); //Object
      li[0].say(); //IE6-8不支持
      
      所以想知道原因,和解决办法(如何兼容:获取到的DOM对象可以使用Object扩展的方法)
      
      说明白点,我想自己写一个像jQuery的$(),获取到的DOM对象能继承一些统一的方法,求大牛指点
  •     1、大面积的代码和截图有凑篇幅之嫌
      2、校订不认真很多印刷/书写错误
      3、像是自己的wiki整理后给出版了
      4、现在很多前端工程师是从后端转过来的~
      
      我的结论:如果想看借来或蹲书店花几个小时过一遍就行了
  •     作者推荐的bass.css文件,本人是仅有3个月经验的前端,想问关于这个文件一些代码的意思;
      感觉这个文件中最需要弄懂的一段代码(因为涉及不懂的东西基本是最多的,但用处其实对我来说应该是比较大的)是:
      .clearfix:after {content:"."; display:block; height:0; clear:both; visibility:hidden;}
      .clearfix {display:inline-block;}
      *html .clearfix {height:1%;}
      .Clearfix {display:block;}
      其中
      1 .clear:after 是否和a:hover是类似于伪类的标签~?
      2 content:"." 这个属性和值是表示什么意思~?
      3 visibility:hidden 这个属性和值和display:none除了前者还占据着页面上的位置以外还有什么本质的区别~?
      4 display:inline-block是由内联元素转化为块元素的意思么~?
      5 *html .clearfix {height:1%;}的意思是在ie中给这个属性设置了height:1%这个意思吗~?
      6 .Clearfix {display:block;}中的class名"C"是不是印刷有误导致大写的~?
      如果是,之前的由第一个display:block到visibility:hidden再到display:inline-block;最后到现在的这个display:block这样一层层的拼权重嵌套是一个什么意思呢~?
      等各路大侠和高手说明~....
  •     前几月买了这本书
      觉得还是不较实在
      带 书本的代码一直没找到 在书本的地址自带网址用打不开
      后来还是在http://www.chengxuyuans.com 找到的
      真的感谢配合代码才有事半功倍的效果
  •     P143 页,命名空间的函数
       GLOBAL.namespace=function(str){
       var arr=str.split("."),o=GLOBAL;
       for (var i=(arr[0]="GLOBAL") ? 1 : 0;i<arr.length;i++){
       o[arr[i]]=o[arr[i]] || {};
       o=o[arr[i]];
       }
       }
      
      第三行var i=(arr[0]="GLOBAL")少了一个"="号,应该是var i=(arr[0]=="GLOBAL")。
      
      P195那个也是错的,但P179那个是对的。
      
      书出版时要好好勘查啊。编程一个符号之差,谬之千里啊!
  •     最近要做一个很复杂的配置项页面,元素超多,联动复杂,逻辑复杂
      要用js在前台 建模
      由于以前只是写了年把java代码,前端水平很初级,写的代码比较土,于是上网弄了几本书回来
      今天下午收到书,下班回来从122页k到基本结束
      k到现在觉得很有收获,四十几的定价,在京东买三十几,哎三十几请个人吃顿饭都嫌少,何况一顿饭人家也不会跟你讲这么多 这么系统,
      值
      作者将技术与经验分享出来
      我觉得我需要将看书的感受分享出来,所以k到现在,开电脑写书评,,
  •     将面向对象的思想应用在前端开发我也是看了这本书才知道,老实说,我十分的佩服,对于CSS分离,分离到什么程度是一直没有一个知道思想,起码用这种思想我能得到一些启发
  •     1.主要是讲关于前端开发流程的思考。
      2.前端不只单是技术。某些习惯和方式也很重要。
      3.在某些结构安排和代码写法上的确很有启发。
  •     今天到的书,两天半就到了,送货速度还不错!
      随便翻了翻,发现有些是彩页,内容大概有了解一下,感觉一般。。。
  •     无论底层技术的支持上,还是跨平台兼容的需求上,都为迎来前端的繁荣局面做好了准备。预计前端主导的产品会越来越多,前端工程师的位置会越来越重要。(来自互动)
  •     前端的门槛低、前端的应用多为小的效果、前端的应用很零散、前端主导的产品少——这是前端开发工作不受重视的主要原因。(来自卓越)
  •     2007年以前,网页设计师是典型的多面手,负责设计、制作、js、flash甚至server端;2007年之后才有UED的说法,什么交互设计师、UI设计师、前端开发工程师之类。(来自当当)
  •     这本书的重点不在于讲解“技术”,而是更侧重于“技巧”的讲解。
      融入了作者一线工作中的体会,实用性很强!
      (来自卓越)
  •     P48 原文说(CSS中的)common层等于MVC中的M
      这何必...CSS又不是什么可程序化的东西, 何必非要跟这个词去套近乎.
      
      P53~54
      双倍margin的现象是: IE6中左浮动那么左margin会双倍, 右浮动那么右margin会双倍. 原文没有明确说明左右.
      
      P81~82
      CSS的权重不能简单地说"HTML选择符是1, 类选择符是10, ID选择符是100"
      因为这里并没有10进制的进位关系, 亦即, 即使10个类选择符一起也不抵一个ID选择符的权重.
      
      P89~91
      利用CSS解析的怪异之处, 让一些css规则仅适用于某些浏览器, 这叫CSS Filter而不叫CSS Hack
      向后兼容这个词的使用似乎也不太正确. `为尽量满足/适应新版本`应该叫做向前兼容吧.
      http://en.wikipedia.org/wiki/Forward_compatibility
      
      P94
      hasLayout虽说是IE的私有实现, 但其效果可以说完全是照着CSS规范中的Block formatting context来的. 提一嘴有益于理解.
      
      P112~P122
      网格布局(至少在相对广泛的认识中)不是简单地指按百分比布局的CSS框架, 而是平面设计的概念
      简单说就是用分栏+栏间的槽来确定页面中各个元素的横向尺寸(块宽度, 横向间距, 表单域宽度等).
      这本书对网格布局有介绍: http://book.douban.com/subject/2345964/
      这本书也有一章讲到 http://book.douban.com/subject/3042031/
      
      P165
      用document.all来检测浏览器是否为IE? 这显然是逻辑错误.
      如果是IE, 那么有document.all, 前者是后者的充分而非必要条件
      如果是IE, 那么需要用e.cancelBubble=false来完成取消冒泡, 逻辑关系同上.
      如此, 并不能确定document.all是使用cancelBubble的充分条件.
      比如面对opera这里: http://dev.opera.com/articles/view/using-capability-detection/
      
      P176
      这几个类型检测函数, 多数只是简单的typeof封装, 意义不大(当然不排除是为了应对未来的JS语言改进而设);
      有些不够严谨, 比如isFunction会在Webkit系浏览器中把正则表达式判断为函数, isArray只是简单应用instanceof, 不能正确检测另一个window环境中的数组.
      
      P183
      一个JS库中的Cookie与Ajax通信部分都是在重新定义浏览器API, 抹平浏览器间差异, 按照作者的观点似乎更适合放在Base层而不应放在Common层.
      
      P190
      对词法作用域的解释不够详尽.
      P207
      对this关键字的解释也感觉不够深入
      (考虑到本书更多关注的是前端架构规划与团队协作, 技术层面的不深入可以稍微原谅一点么?)
      
      P217
      电话簿的例子, 作者分明用非OO的语法写出了OO思想的代码, 却说这是面向过程的代码.
      PHP中的curl库(嗯其实就是C中的curl库)就是典型的非OO语言实现了OO. 与书中的电话簿例子何其相似.
      另外面向过程编码与OOP也并不是非此即彼的分类关系吧..?
      
      总之神经如我者慎读.
  •     逻辑分明,结构清晰,深入浅出:
      “Web标准由一系列标准组合而成,其核心理念就是将网页的结构、样式和行为分离开来,所以它可以分为三大部分:结构标准、样式标准和行为标准...”
      
  •     “工程师往往都是更专注于技术的,不太善于处理人际关系。比起复杂的人,大多数工程师往往更喜欢非黑即白,非0即1,非true即false的代码。学会与人相处也是工程师们必要的一个课程,它的重要性甚至超过技术本身。”
      ——深有同感,有的时候人际交往大于技术本身!
      
  •     CSS、HTML、JavaScript这三种前端开发语言的特点是不同的,对代码质量的要求也是不同的,但它们之间又有着千丝万缕的联系。
      这本书离有很多开发的思想和原则,应该都是在长期开发实践中积累下来的。
      (来自卓越)
      
  •     看似简单的网页制作,如果要做得更好、更专业,真的是不简单。让很多人困惑!
      
      这么纷杂的知识体系让新手学习起来无从下手,对于老手来说,也时常不知道下一步该学什么。
      
      这本书帮到了我。推荐一下!
      
      (来自当当)
  •     目前市面关于Web前端开发的书主要都是针对单一技术的,而本书是以打造高质量的Web前端为目标,讲解如何通过编写高质量的前端代码来实现这一目标。这其实才是前端开发工程师真正想学的。
      ——这也正是我看这本书的原因!
      (来自当当)
  •     这本书的写作思路不错,从编写高质量的前端代码的角度来探讨如何提高前端代码的可维护性,仅从这一点上就能看得出来作者的确是有经验之人,因为我们做前端开发的都知道,编写易于维护的前端代码有多么的重要。
      
      这本书拿到手里一口气读完了,书不算太厚,言语也写得很平实流畅,所以读起来比较快,也比较轻松。从内容上讲,这本书写得不错,虽然HTML、CSS和JavaScript的编码技巧有千千万,这本书没有将这些全部列举出来,但是本书的内容却能很好地围绕”如何编写高质量前端代码“这个主题展开,很能给人启发。
      
      这本书的品相和气质也不错,还有几个部分是彩色印刷,很nice。
      
      正如Fenng一样,可以把这本书收藏起来或者推荐给做前端开发的朋友。
  •    
      1. 这本书前段时间已经重印了,修正了其中的一些瑕疵,使之更接近完美;
      
      2. 这本书的作者凭借这本书获得著名社区51CTO 2010评选的最佳原创图书作者虚荣。
      
  •   这个XX社区XX评选..是中国的吧?
  •   snoopy啊...国人写的书慎读啊...
  •   另外,你站书店翻书是有做笔记的习惯么...
  •   嗯本来就是想去免费读一遍的 - -
  •   你是个神仙!
  •   您好,目前为此,您的意见是所有反馈中提得最细致的,看得出来您很用心地读了本书,非常感谢您提的意见。
    如您所说“ (考虑到本书更多关注的是前端架构规划与团队协作, 技术层面的不深入可以稍微原谅一点么?)
    ”,本书的关注点在于前端架构规划和团队协作,所以一些并不太实用的地方我没打算过于纠结,不得不承认,为了突出主线和重点,在一些细节方面我选择了放弃处理。例如“CSS选择符权重”,“用document.all”来检测浏览器类型等。事实上,我们很难会遇到套用10层class进行选择的情况,而对于浏览器检测,更好的做法当然是为浏览器类型封装一个getBrowser()函数,这样才最安全。
    我写本书的目的在于“分享一种思路”,让还没有这种思路的读者,可以建立起这样的思路。我很喜欢《don't make me think》这本书,它尽量控制自己的篇幅,希望读者能在几个小时内看完它,我也希望自己的书能够像它一样,薄,但很有营养。一个合适的读书过程应该是薄厚薄,我对本书的定位在第三阶段的薄,所以对于知识点会有一定的取舍,重要的地方我会详述,在我看来不太实用的地方,我会略写。如书的前言所说,我会假设读者已经有一定基础,所以不会对一些基本概念纠结。
    您提的问题几乎全是技巧问题,而非技术问题,而技巧不是用对和错来说的,见仁见智。也许有为自己开脱之嫌,对于技巧性问题,尽信书不如无书,取您认为对的地方吸收,认为不对的地方保留您自己的意见,对您,也对其他读者。
    再次感谢您对本书的关注,谢谢。
  •   oh~~~snoopy,你要红了么
  •   @阿当: 那么你的简略是以牺牲技术严谨性为代价的么, 这我无法支持.
    至于说我提的问题更多是技巧性还是技术性的, 我宁愿不解释.
  •   打住吧....snoopy ...
    [我不愿看到熟悉的人发生狗血的剧情...]
  •   好了,大家就此打住吧,以讨论技术为主,不要发生口角。
  •   书我也看了。确实不错~如果你有经验就像CSS的特殊性。啊当完全是为了更好的让其他人理解才去那样写的,写书的人有自己的想法,如果我们揣摩一下他的想法,我想读起来不会自己给自己找事~这书传达的的确是一种思想。而不是技巧。我1天就看完了。但是我能感觉到这是作者工作经验中的实践来的东西,而不是抄来的!对我是有帮助的而不是没用处~没有完美的书,只有不完美的读者苛刻的要求。挑刺谁都会,尚且任何事物都可以去调毛病~何必呢?楼主上面举出的例子,我不知道你是正的为了大家好?还是有什么想法?想证明什么?作者都说了是面向有基础的前端人员的,我想基础起码起码能明白作者书中一笔带过的东西吧~不明白何必读此书? 最后我再说几句,我不认识 啊当。 当我是他书的读者。我学到的东西,我应该分享! 最后说句流氓的话,差之毫厘谬以千里~你看起来这本书简单,让你去写。你就知道自己基础有多烂了。
  •   这书其实挺好的。不过不管是技巧还是技术多番沟通也利于进步。呵呵
  •   我承认,我水平不高,但这书对我启发很大。
  •   团队合作和代码维护方面给我很大的启发,对于没经验的我来说值了
  •   @离谱
    这位兄台的意见我极为赞同,如果以这样的心态去读书,是作者之幸,也是自己之幸,正如你所说,没有不能找出毛病的书,也没有完美的书,书究竟有几分用,关键看自己的心态。
  •   这书简单却确实很不错。那么多长处不学,非找短处的人不读也罢。读了可能也学不到什么。
  •   我买了这本书,看到CSS权重那里发现了问题,就是楼主说的:
    P81~82的问题。
    这个问题太严重了!!!希望看此书的人注意!!
  •   我没买过也没看过。。我就不发言了。
    不过我就觉得史努比说的对,对待一些问题,不能模糊,尤其对于入门者来说,模糊等于犯罪,如果有人拿你的书来入门,后果有时候会很严重,尤其是几年之后。。价值观都会被颠覆的= =。
  •   要有鉴别事物好和不好的能力
  •   差评!! 太坑爹了
  •   里面很多内容确实需要加强一下 特别是 那些“不知道为什么。。。” 之类的 然后针对这个不知道 hack一下 另外 书里面介绍的namespace的那个js程序 有错误是比较操作 而不是赋值
    这本书可以看的很快 有点像checklist 可以看看
  •   噗。。snoopy+Michael, 有意思。路过,留个爪印。
  •   楼主人品有问题,站在书店把书白看了,然后吹毛求疵捡出一些所谓的问题,真是神经病!
  •   书看了,第一反应是不错,为自己提供了一些思路和借鉴。不过那个CSS权重有点误导我了...
  •   我顶下snoopy,写书确实要严谨些,毕竟是技术类的书,作者完全可以在新印刷版里面更正,错误就是错误
  •   比如P165 document.all 的问题 作者该虚心接受吧 webkit内核都有这个对象的
  •   .CSS又不是什么可程序化的东西, 何必非要跟这个词去套近乎.
    同意!
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7