JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记1

摘要:
我现在正在学习的书是第3章,它使用JavaScript实现的照片来说明构建软件设计有两种方法:一种是使软件变得简单,以至于找不到任何缺陷;另一种是使其变得如此复杂,以至于无法发现明显的缺陷。前端必须将JavaScript与HTML分离。JavaScript的诞生是为了让HTML更丰富,而不是更混乱。随着分工越来越详细,HTML编写者不必负责编写JavaScript。作者的目的是写一本最了解人性和技术的JavaScript书。

技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是【JavaScript实战----JavaScript、jQuery、HTML5、Node.js实例大全】

第 3 章 用 JavaScript 实现的照片展示

构建软件设计的方法有两种:一种是把软件做得很简单以至于明显找不到缺陷;另一种是把它 做得很复杂以至于找不到明显的缺陷。

——C.A.R.Hoare,1980 年图灵奖获得者

在这个自拍自恋的时代,照片是要展示的。在前面的章节里已经讲解了事件的绑定,本章主要利用前面的知识做一个照片展示的功能。

本章主要内容:

  • 照片的加载
  • 鼠标的响应
  • 键盘的响应

3.1 功能设计

功能设计的时候可能需要反复修改,以什么为标准呢?听老板的还是听用户的?虽然这是一个 顾客是上帝的时代,但终究还是有些设计原则要遵循,因为有时候“上帝”也会犯错误,更多的时候“上帝”是善变的。

(1)避免重复原则(DRY,Don’t repeat yourself),编程的最基本原则是避免重复,另一句 话说叫提高代码复用率。

(2)简单原则(Keep ItSimple and Stupid),简单是用户最佳体验之一,像苹果就是用简单 打败一切。而且简单的代码占用时间少,漏洞少,并且易于修改。

(3)低耦合原则(MinimizeCoupling),即这部分代码的使用和修改影响到其他部分的代码 尽可能的少,否则牵一发而动全身的悲剧无人愿意看到。

(4)别让我思考(Don’t make me think),代码不仅是写给机器的,更多是写给人看的,所以编写的代码一定要易于读易于理解,最终才易于维护。“如果一个维护者不再继续维护你的代码,

很可能他是有想杀了你的冲动。”

(5)单一责任原则(Single Responsibility Principle) ,某个代码的功能,应该保证只有单一的明确的执行任务,否则一旦修改会增加关联测试的繁琐程度。

(6)最大限度凝聚原则(Maximize Cohesion),尽量将功能相似相近的代码放在同一个部分。

程序中常听到的“类”这个词就取之于“物以类聚”,类就是为了“类聚”相似相近的代码。

(7)避免过早优化(AvoidPremature Optimization),现在社会到处都有“完美主义者”,如 果代码运行没有想象中的慢,就别去“完美”它,否则要花费更多的代价,或时间的或精力的或金钱的。

3.1.1 HTML、CSS 和 JavaScript 的分层关系

通过第 1 章的了解,HTML 是最早出来的,CSS和 JavaScript则稍晚出现。它们实质上的关系 应该是如图 3-1 所示。

JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记1第1张

图 3-1 UI 分层关系结构

看到这里似乎应该思考下前面的范例是否有“重构”的空间?答案是肯定的,笔者在写到第 2章时,本书编辑就很有意见地说:“咋这个代码这么长呢?能不能拆分成几块呢?„„”。 重构原因之一就是代码是否便于阅读。如果在设计时一开始就考虑进去,这会使后期的维护工作变得相对便捷,找 HTML 代码的就直接找 html 文件,找 JavaScript 代码的就直接找 js 文件,找CSS 代码的就直接找 css 文件。

将 JavaScript 和 HTML分离是前端必须要做的一种事。JavaScript 诞生是要让 HTML 更丰富, 而不是更杂乱。混合在一起会导致:bug 跟踪工具难以调试。随着分工更细分,写 HTML 的人不 一定要负责写 JavaScript。 CSS 和 HTML 一般也是分离的,不过这大都是网页设计师或者叫前端重构工程师的任务了。 另外保持 CSS 和 JavaScript 之间清晰的分离是很有挑战的,例如第 2 章的范例有控制 style.width的,还有控制 style.display 的,是否需要完全分离这确实需要具体情况具体分析,不过如果完全不注意这一点,任由其发展,一旦出现问题,大家首先去找 CSS,精疲力尽时才会去 JavaScript 中查 找样式问题,这会给维护人员挖下很大一个坑,做人一定要厚道!

3.1.2 照片展示功能设计

163 是国内早期提供相册功能的公司之一,相册用户群体很大,参考其相册会发现,照片展示 的基本功能如下:

  • 有大图和缩略图
  • 有上一张图和下一张图切换
  • 有键盘控制显示上一张图和下一张图
  • 有显示上一组和下一组功能在代码方面,考虑代码 3 层分离。

代码方面,考虑代码 3 层分离。

今天就先介绍到这里吧,有一起学习的小白们,欢迎粉我。

最具士兵突击实战类型的JavaScript

JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记1第2张

JavaScript实战一书的基础知识部分帮助读者快速踏入JavaScript领域之门,jQuery部分帮助读者随心所欲地去工作,HTML5部分帮读者搭上时代的班车,Node.JS则可以让读者屹立在技术的前沿。笔者的目的就是力求写出最懂人性最懂技术的JavaScript书。

免责声明:文章转载自《JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记1》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇拒绝网页被 iframe 嵌套monkey命令详解(一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

图表插件

一. Highcharts 支持的图表:曲线图,柱状图,饼状图,区域图,散状点图,综合图表。 浏览器支持:采用纯JavaScript编写,兼容所有的浏览器,Safari、IE6+、火狐和Chrome包括iphone等 功能特性: 1.包含一些预定义的主题和图表,界面美观,运行速度快,动态交互不错,有很好的兼容性。 2. 不受语言约束:可以在大多数的WEB...

html5实现移动端下拉刷新(原理和代码)

这篇文章给大家介绍的内容是关于html5实现移动端下拉刷新(原理和代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 移动端的下拉刷新是一个很常见的功能,也有许多开源库实现了这个功能,不过为了学习,还是先自己写一个例子学习一下。其中用到了一些touch事件和一些DOM属性CSS3属性。直接上代码,代码里面有注释。 <!DOCTYP...

javascript调用WebService Hello World

WebService既可以大用,也可以小用。大用可以应用到整个系统,将整个系统设计成SOA(面向服务),小用可以应用到JS。今天我们就来看一下如何在网页中用JS来调用WebService。我们举的例子很简单,用 JS调用默认VS2008生成的Hello World服务。Service的代码如下: usingSystem;usingSystem.Collec...

VScode快捷键 windows版本

本文转自:https://www.cnblogs.com/showcase/p/10637317.html 一、vs code 的常用快捷键列表 1、注释:   a) 单行注释:[ctrl+k,ctrl+c] 或 ctrl+/   b) 取消单行注释:[ctrl+k,ctrl+u] (按下ctrl不放,再按k + u)   c) 多行注释:[alt+sh...

百度地图实现鼠标绘制多边形并获取所有点坐标

百度地图开放平台http://lbsyun.baidu.com/ 这里使用的是Javascript API http://lbsyun.baidu.com/index.php?title=jspopular 实现鼠标绘制多边形主要用到百度地图JavaScript开源库鼠标绘制工具条库(http://lbsyun.baidu.com/index.php?ti...

HTML5下video右键禁用-禁止右键下载视频

方法一: <script language="javascript" type="text/javascript" src="https://code.jquery.com/jquery-1.7.1.min.js"></script> <script> $(document).ready(function(){...