From acf8c719c2f84add6f0f369898c365af6d6e0fc2 Mon Sep 17 00:00:00 2001 From: helloqingfeng <1287869707@qq.com> Date: Mon, 29 Aug 2016 23:12:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Web=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=A7=84=E8=8C=83=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md | 154 ++++++- 25-web-develop-standard-master/README.md | 436 ++++++++++++++++++ Readme.md | 7 + 3 files changed, 594 insertions(+), 3 deletions(-) create mode 100644 25-web-develop-standard-master/README.md diff --git a/24-100+Web-Development-Tools-and-Resources/README.md b/24-100+Web-Development-Tools-and-Resources/README.md index b48d9b7..0491043 100644 --- a/24-100+Web-Development-Tools-and-Resources/README.md +++ b/24-100+Web-Development-Tools-and-Resources/README.md @@ -19,224 +19,372 @@ ### JavaScript库 [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/javascript-libraries.webp)](https://ww4.sinaimg.cn/large/72f96cbagw1f49ehwz03lj20k506e74o) + 我敢说JavaScript语言是目前web开发最流行的编程语言。JavaScript库又称JavaScript框架,封装了很多预定义的对象和使用函数。是网站更容易兼容各式各样的浏览器。那么您就可以使用以下JavaScript库来帮助你的开发更好进行。 + [jQuery](http://jquery.com/):快y速,小巧,功能丰富的[JavaScript库](https://xituqu.com/tag/javascript-library)。 + [BackBoneJS](http://backbonejs.org/):为复杂Javascript应用程序提供模型(models)、集合(collections)、视图(views)的结构。 + [D3.js](http://d3js.org/):*D3*是基于数据的文档操作javascript库,*D3*能够把数据和HTML、SVG、CSS结合起来,创造出可交互的数据图表。 + [React:](https://facebook.github.io/react/):Facebook的Javascript库为构建用户界面而开发。 + [jQ](http://jqueryui.com/)[uery](http://jqueryui.com/)[ UI](http://jqueryui.com/):*jQuery UI* 是以 jQuery 为基础的开源 JavaScript 网页用户界面代码库。包含底层用户交互、动画、特效和可更换主题的可视控件。 + [jQuery Mobile](http://jquerymobile.com/):基于HTML5用于创建移动 web 应用程序的框架。 + [Underscore.js](http://underscorejs.org/):JavaScript实用库,提供了类似Prototype.js的一些功能,但是没有继承任何JavaScript内置对象。 + [Moment.js](http://momentjs.com/):一个 JavaScript 日期处理类库,用于解析、检验、操作、以及显示日期。 + [Lodash](https://lodash.com/):一个 JavaScript 实用工具库,提供一致性,模块化,性能和配件等功能。 ### [前端框架](https://xituqu.com/tag/front-end-framework) [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/front-end-frameworks.webp)](https://ww1.sinaimg.cn/large/72f96cbagw1f49eh9fjvhj20k506eaab) + 通俗的前端由HTML,CSS,JavasScript等构成。当然为了适应Web开发日益增长的需求,应运而生许多独立的前端框架,例如Bootstrap。一个优秀的框架可以为前端开发人员在开发过程中增益,减小开发压力。 + [Bootstrap](http://getbootstrap.com/): *Bootstrap* 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。 + [Foundation](http://foundation.zurb.com/): 迄今为止最好的响应式前端框架,更快、更轻、更多功能、更灵活、更强大! + [Semantic UI](http://semantic-ui.com/):*Semantic* *UI* 是一款语义化设计的前端开源框架,其功能强大,使用简单,为设计师和开发师提供可复用的完美设计方案。 + [uikit](http://getuikit.com/):*UIKit*使用的变量基于LESS,具有体积小、模块化、可轻松地自定义主题及响应式界面。 ### [Web应用框架](https://xituqu.com/tag/web-framework) [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/web-application-frameworks.webp)](https://ww3.sinaimg.cn/large/72f96cbagw1f49ei86hctj20k506edg4) + Web应用框架作为一个软件框架,意在帮助和缓解开发者在进行Web应用的开发与维护时遇见的开发问题。例如:AngularJS,您可以在您的项目完全免费使用它,详细文档请您参见 [angularcdn.com](https://angularcdn.com/). + [Ruby](http://rubyonrails.org/):Ruby on Rails 是使用 Ruby 语言编写的网页程序开发框架,目的是为开发者提供常用组件,简化网页程序的开发。 + [React](http://facebook.github.io/react/):React 起源于 Facebook 的内部项目,React 的设计思想极其独特,属于革命性创新,性能出众,代码逻辑却非常简单。是现在非长热门的框架。 + [Vue](http://cn.vuejs.org/):Vue.js 是用于构建交互式的 Web  界面的库。它提供了 MVVM 数据绑定和一个可组合的组件系统,具有简单、灵活的 API。从技术上讲, Vue.js 集中在 MVVM 模式上的视图模型层,并通过双向数据绑定连接视图和模型。 + [AngularJS](https://angularjs.org/):AngularJS 通过新的属性和表达式扩展了 HTML,可以构建一个单一页面应用程序。AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。 + [Ember.js](http://emberjs.com/):一个用于创建 web 应用的 JavaScript MVC 框架,采用基于字符串的Handlebars模板,支持双向绑定、观察者模式、计算属性(依赖其他属性动态变化)、自动更新模板、路由控制、状态机等。 + [Express](http://expressjs.com/):基于 Node.js 平台的 web 应用开发框架 基于Node.js 平台,快速、开放、极简的 web 开发框架。 + [Meteor](https://www.meteor.com/):Meteor 是一个构建在 Node.js 之上的平台,用来开发实时网页程序。Meteor 位于程序[数据库](https://xituqu.com/tag/database)和用户界面之间,保持二者之间的数据同步更新。 + [Django](https://www.djangoproject.com/):*Django*是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。 + [ASP.net](https://www.microsoft.com/web/platform/framework.aspx):ASP.NET是免费,高兼容的WEB应用框架,能够提供标准化WEB应用构建时所需的解决方案。 + [Laravel](https://laravel.com/):一个免费,开源的PHP Web应用程序框架,可以基于MVC模式来创建Web应用程序。 + [Zend Framework 2](http://framework.zend.com/):一款的Web应用框架,基于PHP来创建Web应用和服务端应用。 + [Phalcon](https://phalconphp.com/en/):*Phalcon* 是开源、全功能栈、使用 C 扩展编写、针对高性能优化的 PHP 5 框架。 + [Symfony](http://symfony.com/):*Symfony*是一个基于MVC模式的面向对象的PHP5框架。*Symfony*允许在一个web应用中分离事务控制,服务逻辑和表示层。 + [CakePHP](http://cakephp.org/):*CakePHP*是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而 又不失灵活性。 + [Flask](http://flask.pocoo.org/):*Flask*是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 + [CodeIgniter](https://www.codeigniter.com/):CodeIgniter 是一个简单快速的PHP MVC框架。它为团队提供了足够的自由支持,允许开发人员更迅速地工作。 ### [任务批处理工具](https://xituqu.com/tag/task-runner)/[包管理器](https://xituqu.com/tag/package-manager) [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/build-systems-task-runners.webp)](https://ww1.sinaimg.cn/large/72f96cbagw1f49eifxrl5j20k506ejru) + 任务批量处理工具可将你的工作流程全自动化.例如你可以创建一个任务,使用JavaScript语言编写的工具来进行自动化的处理。 然后打包,这样会大大提高开发效率。 包管理器它能跟踪所有已安装的软件、自动化进行安装和删除应用程序、以及确保所有软件都保持更新以获得最新的增强功能和错误修复。 + [Grunt](http://gruntjs.com/):*Grunt*是基于Node.js的项目构建工具。它可以自动运行你所设定的任务。 + [Gulp](http://gulpjs.com/):*Gulp*.js 是基于 Node.js 构建的一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务。 + [npm](https://www.npmjs.com/):NPM(node package manager),通常称为node包管理器。顾名思义,它的主要功能就是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。 + [Bower](http://bower.io/):Bower是一个客户端技术的软件包管理器,它可用于搜索、安装和卸载如JavaScript、HTML、CSS之类的网络资源。 ### 编程语言 / 开发平台 [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/programming-languages.webp)](https://ww2.sinaimg.cn/large/72f96cbagw1f49eimuqt3j20k506ewew) + 所有Web开发都需要编程语言的支持.*编程语言*(programming language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。.当然进行Web开发不仅仅只有一门语言来进开发。 + [PHP](http://php.net/):PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域 + [NodeJS](https://nodejs.org/en/):*Node*.*js* 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。*Node*.*js* 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 + [Javascript](https://en.wikipedia.org/wiki/JavaScript):JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言 + [HTML5](https://www.w3.org/TR/html5/):标记语言,是HTML和XHTML的最新版本。 + [Python](https://www.python.org/):Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。 + [Ruby](https://www.ruby-lang.org/en/):*Ruby*,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言 + [Scala](http://www.scala-lang.org/):*Scala*是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。 + [CSS3](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS3):*CSS*即层叠*样式表*(Cascading StyleSheet)。 在网页制作时采用层叠*样式表*技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。CSS3是CSS的最新版本。 + [SQL](https://en.wikipedia.org/wiki/SQL):结构化查询语言(Structured Query Language)简称*SQL,*是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。 + [Golang](https://golang.org/):Go是Google开发的一种编译型,可平行化,并具有垃圾回收功能的编程语言。 + [Rust](https://www.rust-lang.org/):Rust是Mozilla开发的注重安全、性能和并发性的编程语言。 + [Elixir](http://elixir-lang.org/):Elixir 是一种函数式编程语言,建立在Erlang虚拟机之上。它是一种动态语言,灵活的语法与宏支持,利用Erlang的能力来构建并发、分布式、容错应用程序与热代码升级。 ### 数据库 [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/databases.webp)](https://ww1.sinaimg.cn/large/72f96cbagw1f49eiztykmj20k506eweu) + *数据库*(Database)是按照数据结构来组织、存储和管理数据的仓库。 + [MySQL](https://www.mysql.com/):MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 + [MariaDB](https://mariadb.org/):*MariaDB*数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 *MariaDB*的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 + [MongoDB](https://www.mongodb.org/):*MongoDB* 教程 *MongoDB* 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 + [Redis](http://redis.io/):*Redis*是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 + [PostgreSQL](http://www.postgresql.org/):ostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。 ### CSS 预处理器 [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/css-preprocessors.webp)](https://ww3.sinaimg.cn/large/72f96cbagw1f49ej7q1o7j20k506edga) + CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。 + 通俗的说,“CSS 预处理器用一种专门的编程语言,进行 Web 页面样式设计,然后再编译成正常的 CSS 文件,以供项目使用。CSS 预处理器为 CSS 增加一些编程的特性,无需考虑浏览器的兼容性问题”,例如你可以在 CSS 中使用变量、简单的逻辑程序、函数等等在编程语言中的一些基本特性,可以让你的 CSS 更加简洁、适应性更强、可读性更佳,更易于代码的维护等诸多好处。例如:Sass,Less,Stylus。 + [Sass](http://sass-lang.com/): Sass是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护。 + [Less](http://lesscss.org/):*Lesscss*是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量、继承、运算、函数等,更方便CSS的编写和维护。 + [Stylus](http://stylus-lang.com/):Stylus 是一个CSS的预处理框架,2010年产生,来自Node.js社区,主要用来给Node项目进行CSS预处理支持,所以Stylus 是一种新型语言,可以创建健壮的、动态的、富有表现力的CSS。 如果你是刚刚开始使用CSS的预处理器,你可能要先使用第三方编译器进行开发,如下所示。 ### [文本编辑器](https://xituqu.com/tag/text-editor) / [代码编辑器](https://xituqu.com/tag/code-editor) [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/text-editors-code-editors.webp)](https://ww2.sinaimg.cn/large/72f96cbagw1f49ejgpwtjj20k506eglx) + 无论你是做笔记,敲代码,或者Markdown文档编写,一个好的文本编辑器都是必须拥有的! + [Atom](https://atom.io/):*Atom* 更为先进的文本代码编辑器 - 由 Github 打造的下一代编程开发利器在代码编辑器、文本编辑器领域,有着不少的「神器」级的产品。 + [Sublime Text](http://www.sublimetext.com/):Sublime Text 是一个代码编辑器(Sublime Text 2和3是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器。 + [Notepad++](https://notepad-plus-plus.org/):*Notepad++*是 Windows操作系统下的一套文本编辑器(软件版权许可证: GPL),有完整的中文化接口及支持多国语言编写的功能。 + [Visual Studio Code ](https://www.visualstudio.com/products/code-vs):微软推出,一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。 + [TextMate](https://macromates.com/):TextMate是Mac下的著名的文本编辑器软件,与BBedit一起并称苹果机上的emacs和vim。 + [Coda 2](https://panic.com/coda/):  OS X下快速,简洁,功能强大的编辑器【需要付费】. + [WebStorm](https://www.jetbrains.com/webstorm/):jetbrains公司旗下一款JavaScript 开发工具。被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。 + [Vim](http://www.vim.org/):Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。 + [Brackets](http://brackets.io/):Brackets 是一个免费、开源且跨平台的 HTML/CSS/JavaScript 前端 WEB 集成开发环境 (IDE工具)。 + [Emacs](https://www.gnu.org/software/emacs/):著名的集成开发环境和文本编辑器。*Emacs*被公认为是最受专业程序员喜爱的代码编辑器之一。 ### [Markdown 编辑器](https://xituqu.com/tag/markdown-editor) [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/markdown-editors.webp)](https://ww4.sinaimg.cn/large/72f96cbagw1f49ejo6wj1j20k506edg1) + *Markdown* 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。*Markdown* 十分轻量,学习成本也不高。 + [MWeb](http://zh.mweb.im/):专业的 Markdown 写作、记笔记、静态博客生成软件 【付费】 + [Markeditor](http://markeditor.com/app/markeditor):MarkEditor 是最新的一款 Markdown 编辑器,除了基本功能外,还包含了诸如表格编辑、图表、高亮、公式等等丰富的功能!【付费】 + [StackEdit](https://stackedit.io/):一个开放源码免费使用的 MarkDown 编辑器, 基于 PageDown,使用了 Stack Overflow 和其他 Stack Exchange 网站的 MarkDown 库 + [Dillinger](http://dillinger.io/):Dillinger 是一款在线的 Markdown 编辑器,支持更换主题,字数统计,云服务保存,导出 HTML、PDF 等功能。 + [Mou](http://25.io/mou/): Mac OS X下的免费Markdown编辑器【作者貌似已经跑路了】 + [Texts](http://www.texts.io/):Windows和Mac OS X下纯文本编辑器。 表示有些付费的Markdown编辑器宝宝买不起。 ### [icon图标](https://xituqu.com/tag/icon) [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/icons.webp)](https://ww3.sinaimg.cn/large/72f96cbagw1f49ejvaf9zj20k506emxi) + 几乎每一个Web开发者,尤其是前端开发人员都会需要icon图标来增色项目。 + [Font Awesome](http://fontawesome.io/):Font Awesome为您提供可缩放的矢量图标,您可以使用CSS所提供的所有特性对它们进行更改,包括:大小、颜色、阴影或者其它任何支持的效果。 + [IconMonster](http://iconmonstr.com/):免费,高质量, 庞大且资源不断增长的简洁的icon图标库。 + [IconFinder](https://www.iconfinder.com/):*Iconfinder*提供美丽的图标,服务数以百万计的设计师,开发商和其他有创意的专业人员。 + [Fontello](http://fontello.com/):一个目测有200+个图标(数量还在增加)的 Web-font 图标市场,对于广大设计师、前端开发者来说是很棒的资源。 ### Git 代理 / 服务 [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/git-clients.webp)](https://ww2.sinaimg.cn/large/72f96cbagw1f49ek4s93zj20k506eq3e) + Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 + [SourceTree](https://www.sourcetreeapp.com/):SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端。支持创建、克隆、提交、push、pull 和合并等操作。 + [GitKraken](http://www.gitkraken.com/) (Beta):一款自由、直观、快捷、美观的跨平台Git客户端。 + [Tower 2](https://www.git-tower.com/):一款美丽,高效,强大的Git管理,让Git版本控制变得容易。 + [GitHub Client](https://desktop.github.com/):有助于无缝连接GitHub和GitHub的企业的项目。 + [Gogs](https://gogs.io/):Gogs (Go Git Service) 是一款极易搭建的自助 Git 服务。 开发目的 *Gogs* 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。 + [GitLab](https://about.gitlab.com/gitlab-com/):  GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 + [Coding](http://ww1.sinaimg.cn/large/72f96cbajw1f4chvmh9hqj206t03ywei):Coding 的代码托管功能除了基本的 Git 仓库以外,还有保护分支,分屏对比, Code Review 等高级功能。并且整合了 Pages 服务,质量管理,演示平台等开发工具,提升研发效率。 ### [本地开发环境搭建](https://xituqu.com/tag/local-development-environment) [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/local-dev-environment.webp)](https://ww1.sinaimg.cn/large/72f96cbagw1f49ekcv2vqj20k506emxn) + 根据您运行的是什么操作系统和计算机配置,有时候进行测试的时候就有可能需要搭建一个快速的本地开发环境。自己搭建很是蛮烦,不用担心,有很多将Apache,Nginx,MySQL和phpMyAdmin进行打包一体化的软件。这些软件很是方便我们来进行本地测试。 + [XAMPP](https://www.apachefriends.org/index.html):XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。 + [MAMP PRO](https://www.mamp.info/en/):*MAMP* *Pro* for mac是Mac OS平台搭建本地服务器环境的组合软件套装,包含 Macintosh、Apache、MySQL和PHP 四大开发环境。 + [WampServer](http://www.wampserver.com/en/):Wamp就是Windows Apache Mysql PHP集成安装环境,即在window下的apache、php和mysql的服务器软件。 + [Vagrant](https://www.vagrantup.com/):*Vagrant*是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。 + [Laragon](https://laragon.org/):Laragon工具就是Laravel的一键安装工具吧,还集成了一整套wamp工具,除去Laravel安装外,它也是一款不错的wamp工具,干净简单,便捷迅速。Diff Checkers [Wnmp](https://www.getwnmp.org/):WNMP是Windows下便捷,安全的Nginx+MariaDB+PHP开发环境环境集成套件包。 ### 文本对比检查 [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/diff-checkers.webp)](https://ww3.sinaimg.cn/large/72f96cbagw1f49ekq3tfpj20k506eaaa) + Diff checkers 可以帮助您比较文件之间的差异,然后合并更改。帮助我们更直观的看见文本之间的差异。 + [Diffchecker](https://www.diffchecker.com/):Diffchecker 是一款非常好用的在线文本对比工具,能够高亮显示有差异的行和字符。*Diffchecker* 提供了文件上传对比功能,还可以选择对比的存储时间。 + [Beyond Compare](http://www.scootersoftware.com/):Beyond Compare是一套由Scooter Software推出的软件,主要用途是对比两个文件夹或者文件,并将差异以颜色标示。 当然有很多免费的文本编辑器,包括我们上面提到的也有插件和扩展,可以协助开发者方便的进行文件比较。 ### 代码共享 / 代码测试 [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/code-sharing.webp)](https://ww2.sinaimg.cn/large/72f96cbagw1f49ekurukwj20k506eq3a) + 前端开发者在公司内或者团体间需要进行协作,共享代码,那么一下工具很值得开发者一试。 + [JS Bin](http://jsbin.com/):*JS* *Bin*能够让你编辑和测试JavaScript和HTML代码。你还可以将编辑后的代码保存到本地,或将URL地址发给其他人,让其协助调试代码。 + [JSfiddle](https://jsfiddle.net/):jsFiddle是一个在线的shell编辑器,通过流行的JS框架创建自定义的环境,以简化JS代码。可以用于测试示例代码。 + [codeshare](https://codeshare.io/):与其他开发者实时共享代码。 + [Dabblet](http://dabblet.com/):Dabblet是一个开源互动测试工具,用于测试CSS和HTML。*Dabblet*支持实时更新、匿名备份、嵌入网站、与他人共享或者存储到GitHub。 ### [协作工具](https://xituqu.com/tag/collaboration-tools) [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/dev-collaboration-tools.webp)](https://ww3.sinaimg.cn/large/72f96cbagw1f49el0a4oxj20k506ejrq) 每一个很棒的开发团队需要一种方式来保持联系,协作,来帮助提高生产力。 + [Slack](https://slack.com/):Slack 是聊天群组 + 大规模工具集成 + 文件整合 + 统一搜索。 + [Trello](https://trello.com/):Trello的目标是提供简洁清晰的团队协作工具。不过弥缝在这里将介绍如果将*Trello*用来建立自己的时间管理系统。 + [Glip](https://glip.com/):Glip:在线团队办公协作平台是一个类似于Slack网站的网络办公集合体,内置了邮箱、网盘、即时通讯应用、协作服务等,把所有和网络办公有关的服务和工具都整合在了一起。 + [Asana](https://asana.com/):Asana是一款团队任务管理软件 方便人们去制定和跟踪团队的项目任务的完成情况 + [Jira](https://www.atlassian.com/software/jira):JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 ### 灵感创意 [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/developers-inspiration.webp)](https://ww3.sinaimg.cn/large/72f96cbagw1f49ela424oj20k506e74e) + 当我们进行开发时,偶尔迸发的灵感会使我们的项目或者产品增色不少。当然不仅仅依靠自我的灵感,我们也需要从别人的作品中得到灵感来保证我们的Web设计界面或者产品不落后这个时代。 + [CodePen](http://codepen.io/):全球web前端开发人员的圣地!可以展示个人的创意和建立一个测试实例来解决bug。 来寻找你的项目设计方式和灵感吧。 + [Dribble](https://dribbble.com/):Dribbble是一个面向创作家、艺术工作者、设计师等创意类作品的人群,提供作品在线服务,供网友在线查看已经完成的作品或者正在创作的作品的交流网站。 ### [网站测速工具](https://xituqu.com/tag/web-test) [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/website-speed-test-tools.webp)](https://ww1.sinaimg.cn/large/72f96cbagw1f49elhl774j20k506eglw) 网站的速度是用户体验关键因素。网站速度快与慢决定是否能更高的搜索引擎排名,更高的转换率,更低的跳出率,以及更好的整体用户体验和。值得高兴的是很多免费软件可以用于测试网站速度,帮助我们找出加载缓慢的问题,方便我们去解决。 + [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights/):PageSpeed Insights是一款可以分析网页速度瓶颈,让网页设计人员开发出速度更快的网站的*谷歌*浏览器插件。 -[Google Chrome DevTools](https://developers.google.com/web/tools/chrome-devtools/?hl=en):Chrome DevTools 是公认的优秀的前端调试工具,功能强大,使用起来有一定的学习门槛, + +[Google Chrome DevTools](https://developers.google.com/web/tools/chrome-devtools/?hl=en):Chrome DevTools 是公认的优秀的前端调试工具,功能强大,使用起来有一定的学习门槛。 + [WebPageTest](http://www.webpagetest.org/):*WebPagetest*是一款Web应用程序,它将一个URL以及一系列配置参数作为输入,并对那个URL运行性能测试。 + [Pingdom](http://tools.pingdom.com/fpt/):pingdom全面的网站监测服务网站,可测速和ping跟踪路由,可以免费监测1个站点,最短1分钟监测一次。 + [GTmetrix](https://gtmetrix.com/):主要优点在于提供了丰富的详细的测量结果,并建议如何来优化网页中每个元素的,最重要的是会根据网站的具体情况,直接告诉你导致网站加载速度变慢的根源在哪里 ### [Web开发社区](https://xituqu.com/tag/web-community) [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/web-development-communities.webp)](https://ww2.sinaimg.cn/large/72f96cbagw1f49elwu9q7j20k506edg4) + 当开发者在开发的过程中有遇到问题时,除了询问他人以外,还可以使用搜索引擎搜索。社区的重要性就显而易见了,大部分开发者会在开发社区分享他们经验,如何避过不必要踩的坑。 -国内: + +**国内:**   [谷歌开发者社区(GDG)](http://chinagdg.org/):开放 · 分享 · 创新 + [segmentfault](https://segmentfault.com/):是中国领先的*开发*者技术*社区*。 为编程爱好者提供一个纯粹、高质的技术交流的平台, 与*开发*者一起学习、交流与成长。【老实话我觉得这名字不好记】 + [全栈社区](http://www.fullstackspace.com/):中国最大的全栈*开发者社区*,致力于打造一个问题解答,技术文章分享,全栈人员创业的服务平台,让开发更容易,让创业更简单. -国外: +**国外:** + [Stack Overflow](http://stackoverflow.com/):Stack Overflow是一个与程序相关的IT技术问答网站。用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的HTML。 + [Front-end Front](https://frontendfront.com/):在Front-end Front,前端开发者可以提出问题,分享有趣的链接,并展示他们的项目作品。 + [Hashnode](https://hashnode.com/):Hashnode是开发者讨论技术问题,分享解决方案,与世界各地的开发者共享资源的聚集地。 + [Refind](https://refind.com/):有着开发者, 黑客, 设计师收集和分享最好的资源的社区。 + [Google+ Web Developers Group](https://plus.google.com/u/0/communities/114175980151299757659):Web 开发者,Web设计师和Web开发. + [Google+ Web Developers Group](https://plus.google.com/communities/114947356043496560984):Java, PHP, Ruby, JavaScript and Python 资源。 + [Facebook WordPress Front-end Developers Group](https://www.facebook.com/groups/wpfrontenddevs/):WordPress 前端开发者的分享社区,可以提问题,分享开发者的项目作品,还有讨论WP未来发展趋势。 + [LinkedIn Web Design and Development Professionals Group](https://www.linkedin.com/groups/139851/profile):与专业网页设计师,网页开发者共享Web开发资源 + [LinkedIn Web Site Development Group](https://www.linkedin.com/groups/2192521/profile): 网站设计和开发。 + [LinkedIn PHP Developer Group](https://www.linkedin.com/groups/2195403/profile): PHP, Mysql, Drupal, Joomla, Zend, Cake, MVC. + [LinkedIn WordPress Developers Group](https://www.linkedin.com/groups/3722491): WordPress 开发. 使用WP来创建CMS和CMF. + [Webdeveloper.com](http://www.webdeveloper.com/forum/):帮助Web开发者和设计师学习使用HTML,java和javascript开发网站。 + [Sitepoint Forums](https://www.sitepoint.com/community/): Web开发者论坛。 + [/r/perfmatters](https://www.reddit.com/r/perfmatters/): 讨论关于 web 性能 + [/r/webdev](https://www.reddit.com/r/webdev): 关于Web开发和开发者的新闻 ### [Web开发新闻聚合](https://xituqu.com/tag/web-news) [![100+ 超全的web开发工具和资源-稀土区](https://blog.keycdn.com/blog/wp-content/uploads/2016/02/web-development-newsletters.webp)](https://ww1.sinaimg.cn/large/72f96cbagw1f49em7ogivj20k506e74n)阅读开发和设计的技术干货,及时的知道技术圈内更新了什么,保持信息流新鲜,有助于我们更好的开发! + **国内:** [掘金](http://gold.xitu.io/#/):掘金是中国质量最高的技术分享社区,邀请稀土用户作为Co-Editor 来分享优质的技术干货,从前端到后端开发,从设计到产品,让每一个*掘金*用户都能挖掘到有价值的干货。 + [开发者头条](http://toutiao.io/):一个以程序员为中心,基于学习和分享的开发者社区。你可以阅读头条新闻、分享技术文章、发布开源项目,订阅技术极客们创建的学习主题和关注编程牛人。 + [推酷](http://www.tuicool.com/):以技术为驱动,以聚合挖掘为核心,打造个性推荐和订阅,给你一站式的阅读。 更汇聚优质公开课和线下活动,让信息知识获取更便捷。 **国外:** [wdrl.info](https://wdrl.info/):精心挑选的Web开发相关资源,每星期进行整合报道。 + [webopsweekly.com](http://webopsweekly.com/): 每周进行报道关于网络运营,应用部署,网站性能和工具分享类的文章。 + [web tools weekly](http://webtoolsweekly.com/):专注于前端开发和网页设计工具分享。每一个问题都有一个简短的提示或教程,另外每周都会分享的各种应用程序、脚本、插件和其他有用的资源。 + [freshbrewed.co](https://freshbrewed.co/):每周为前端开发者和设计师提供开发和设计类的阅读摘要。 + [smashingmagazine.com](https://www.smashingmagazine.com/): Smashing Magazine是一款专门为个人前端开发者和设计师提供的在线报纸,每周二都会定时的更新有用的资源。 + [front-end dev weekly](http://frontenddevweekly.com/): 每周为前端开发者提供新闻, 包含工具资源,还有灵感。 + [friday front-end](http://fridayfrontend.com/):邮件订阅,每日为前端开发者发关于开发资源的邮件。 + [dev tips](https://umaar.com/dev-tips/): 收集开发者的问题和建议, 用gif呈现,会每周发邮件通知。 当然, 你也可以关注稀土区,来找到你需要的文章,顺便解决你的问题。 diff --git a/25-web-develop-standard-master/README.md b/25-web-develop-standard-master/README.md new file mode 100644 index 0000000..d56450f --- /dev/null +++ b/25-web-develop-standard-master/README.md @@ -0,0 +1,436 @@ +Web前端开发规范文档 +=================== + +### 规范目的: +------------------- +> - 使开发流程更加规范化。 + +### 通用规范: +------------------- +> - TAB键用两个空格代替(`WINDOWS`下TAB键占四个空格,`LINUX`下TAB键占八个空格)。 +> - `CSS`样式属性或者`JAVASCRIPT`代码后加“;”方便压缩工具“断句”。 +> - 文件内容编码均统一为`UTF-8`。 +> - `CSS`、`JAVASCRIPT`中的非注释类中文字符须转换成unicode编码使用,以避免编码错误时乱码显示。 + +### 文件规范: +------------------- +> - 文件名用英文单词,多个单词用驼峰命名法。 +> - 一些浏览器会将含有这些词的作为广告拦截,文件命名、ID、CLASS等所有命名避免以上词汇。 +> `ad`、`ads`、`adv`、`banner`、`sponsor`、`gg`、`guangg`、`guanggao`等。 + +### html书写规范: +------------------- +> - 为每个`HTML`页面的第一行添加标准模式(standard mode)的声明,确保在每个浏览器中拥有一致的展现。 +> + +> `文档类型声明`统一为HTML5声明类型,`编码`统一为UTF-8。 +> + +> ``中添加信息。 +> + //作者 + //网页描述 + //关键字,“,”分隔 + //设定网页的到期时间。一旦网页过期,必须到服务器上重新调阅 + //禁止浏览器从本地机的缓存中调阅页面内容 + //用来防止别人在框架里调用你的页面 + //跳转页面,5指时间停留5秒 网页搜索机器人向导。用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引 + //content的参数有all,none,index,noindex,follow,nofollow,默认是all + //收藏图标 + //网页不会被缓存 +> `IE`支持通过特定<meta>标签来确定绘制当前页面所应该采用的`IE`版本。除非有强烈的特殊需求,否则最好是设置为`edge mode` ,从而通知`IE`采用其所支持的最新的模式。 +> + +> - 非特殊情况下`CSS`样式文件外链至HEAD之间,`JAVASCRIPT`文件外链至页面底部。 +> + + + + + + + + + + + +> 引入`JAVASCRIPT`库文件,文件名须包含库名称及版本号及是否为压缩版。 +> + jQuery-1.8.3.min.js +> 引入`JAVASCRIPT`插件, 文件名格式为库名称+`.`+插件名称。 +> + jQuery.cookie.js +> - `HTML`属性应当按照以下给出的顺序依次排列,来确保代码的易读性。 +> + class + id 、 name + data-* + src、for、 type、 href + title、alt + aria-*、 role +> 编码均遵循`XHTML`标准, +> 标签、属性、属性命名由小写英文、数字和\_组成,且所有标签必须闭合,属性值必须用双引号`""`, +> 避免使用中文拼音尽量简易并要求语义化。 +> + CLASS --> nHeadTitle --> CLASS遵循小驼峰命名法(little camel-case) + ID --> n_head_title --> ID遵循名称+_ + NAME --> N_Head_Title --> NAME属性命名遵循首个字母大写+_ +
+> 当`JAVASCRIPT`获取单个元素时,通常使用document.getElementById来获取dom元素,document.getElementById兼容所有浏览器,但IE浏览器会混淆元素的ID和NAME属性,所以要区分ID和NAME命名。 +> + +
+ + +> - 特殊符号应使用转意符。 +> + < --> < + > --> > + 空格 -->   +> - 含有描述性表单元素(`INPUT`,`TEXTAREA`)添加`LABEL`。 +> +

+ + +

+> - 多用无兼容性问题的`HTML`内置标签,比如SPAN、EM、STRONG、OPTGROUP、LABEL等,需要自定义`HTML`标签属性时,首先考虑是否存在已有的合适标签可替换,如果没有,可使用须以“`data-`”为前缀来添加自定义属性,避免使用其他命名方式。 +> - 语义化`HTML`。 +> - 尽可能减少`
`嵌套。 +> - 书写链接地址时避免重定向。 +> + href="http://www.kahn1990.com/" //即在URL地址后面加“/” +> - `HTML`中对于属性的定义,确保全部使用双引号,绝不要使用单引号 + +### css书写规范: +------------------- +> - 为了欺骗`W3C`的验证工具,可将代码分为两个文件,一个是针对所有浏览器,一个只针对IE。即将所有符合`W3C`的代码写到一个文件中,而一些IE中必须而又不能通过`W3C`验证的代码(如:`cursor:hand;`)放到另一个文件中,再用下面的方法导入。 +> + + + + +> - `CSS`样式新建或修改尽量遵循以下原则。 +> + 根据新建样式的适用范围分为三级:全站级、产品级、页面级。 + 尽量通过继承和层叠重用已有样式。 + 不要轻易改动全站级CSS。改动后,要经过全面测试。 +> - `CSS`属性显示顺序。 +> + 显示属性 + 元素位置 + 元素属性 + 元素内容属性 +> +> - `CSS`书写顺序。 +> + .header { + /* 显示属性 */ + display || visibility + list-style + position top || right || bottom || left + z-index + clear + float + /* 自身属性 */ + width max-width || min-width + height max-height || min-height + overflow || clip + margin + padding + outline + border + background + /* 文本属性 */ + color + font + text-overflow + text-align + text-indent + line-height + white-space + vertical-align + cursor + content + }; +> +> 兼容多个浏览器时,将标准属性写在底部。 +> + -moz-border-radius: 15px; /* Firefox */ + -webkit-border-radius: 15px; /* Safari和Chrome */ + -o-border-radius: 15px; + border-radius: 15px; /* Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 *//标准属性 +> - 使用选择器时,命名比较短的词汇或者缩写的不允许直接定义样式。 +> + .hd,.bd,.td{};//如这些命名 +> 可用上级节点进行限定。 +> + .recommend-mod .hd +> 多选择器规则之间换行,即当样式针对多个选择器时每个选择器占一行。 +> + button.btn, + input.btn, + input[type="button"] {…}; +> 优化`CSS`选择器。 +> + #header a { color: #444; };/*CSS选择器是从右边到左边进行匹配*/ +> 浏览器将检查整个文档中的所有链接和每个链接的父元素,并遍历文档树去查找ID为header的祖先元素,如果找不到header将追溯到文档的根节点,解决方法如下。 +> + 避免使用通配规则和相邻兄弟选择符、子选择符,、后代选择符、属性选择符等选择器 + 不要限定id选择符,如div#header(提权的除外) + 不要限定类选择器,如ul.recommend(提权的除外) + 不要使用 ul li a 这样长的选择符 + 避免使用标签子选择符,如#header > li > a +> - 使用`z-index`属性尽量`z-index`的值不要超过150(通用组的除外),页面中的元素内容的`z-index`不能超过10(提示框等模块除外但维持在150以下),不允许直接使用(999\~9999)之间大值。 +> - 尽量避免使用CSS Hack。 +> + property:value; /* 所有浏览器 */ + +property:value; /* IE7 */ + _property:value; /* IE6 */ + *property:value; /* IE6/7 */ + property:value\9; /* IE6/7/8/9,即所有IE浏览器 */ +> + * html selector { … }; /* IE6 */ + *:first-child+html selector { … }; /* IE7 */ + html>body selector { … }; /* 非IE6 */ + @-moz-document url-prefix() { … }; /* firefox */ + @media all and (-webkit-min-device-pixel-ratio:0) { … }; /* saf3+/chrome1+ */ + @media all and (-webkit-min-device-pixel-ratio:10000),not all and (-webkit-min-device-pixel-ratio:0) { … }; /* opera */ + @media screen and (max-device-width: 480px) { … }; /* iPhone/mobile webkit */ +> 避免使用低效的选择器。 +> + body > * {…}; + ul > li > a {…}; + #footer > h3 {…}; + ul#top_blue_nav {…}; + searbar span.submit a { … }; /* 反面示例 */ +> +> - 六个不要三个避免一个使用。 +> + 不要在标签上直接写样式 + 不要在CSS中使用expression + 不要在CSS中使用@import + 不要在CSS中使用!important + 不要在CSS中使用“*”选择符 + 不要将CSS样式写为单行 + 避免使用filter + 避免使用行内(inline)样式 + 避免使用“*”设置{margin: 0; padding: 0;} + 使用after或overflow的方式清浮动 +> - 减少使用影响性能的属性。 +> + position:absolute; + float:left;//如这些定位或浮动属性 +> + 减少在`CSS`中使用滤镜表达式和图片repeat, + 尤其在body当中,渲染性能极差, 如果需要用repeat的话, + 图片的宽或高不能少于8px。 + +### javaScript书写规范: +------------------- +> - 命名规范。 +> + 常量名 + 全部大写并单词间用下划线分隔 + 如:CSS_BTN_CLOSE、TXT_LOADING +> + 对象的属性或方法名 + 小驼峰式(little camel-case) + 如:init、bindEvent、updatePosition + 示例:Dialog.prototype = { + init: function () {}, + bindEvent: function () {}, + updatePosition: function () {} + … + }; + 类名(构造器) + -->小驼峰式但首字母大写 + -->如:Current、DefaultConfig + 函数名 + -->小驼峰式 + -->如:current()、defaultConfig() + 变量名 + -->小驼峰式 + -->如:current、defaultConfig + 私有变量名 + -->小驼峰式但需要用_开头 + -->如:_current、_defaultConfig + 变量名的前缀 + -->续 +> - 代码格式。 +> + "()"前后需要跟空格 + "="前后需要跟空格 + ","后面需要跟空格 + JSON对象需格式化对象参数 + if、while、for、do语句的执行体用"{}"括起来 +> "{}"格式如下。 +> + if (a==1) { + //代码 + }; +> 避免额外的逗号。 +> + var arr = [1,2,3,]; +> `for-in`循环体中必须用`hasOwnProperty`方法检查成员是否为自身成员,避免来自原型链上的污染。 +> - 长语句可考虑断行。 +> + TEMPL_SONGLIST.replace('{TABLE}', da['results']) + .replace('{PREV_NUM}', prev) + .replace('{NEXT_NUM}', next) + .replace('{CURRENT_NUM}', current) + .replace('{TOTAL_NUM}', da.page_total); +> 为了避免和`JSLint`的检验机制冲突,“.”或“+”这类操作符放在行尾。 +> + TEMPL_SONGLIST.replace('{TABLE}', da['results']). + replace('{PREV_NUM}', prev). + replace('{NEXT_NUM}', next). + replace('{CURRENT_NUM}', current). + replace('{TOTAL_NUM}', da.page_total); +> 如果模块代码中,使用其它全局变量想跳过JSLint的检查,可以在该文件中加入`/*global*/`声明。 +> + /*global alert: true, console: true, top: true, setTimeout: true */ +> - 使用严格的条件判断符。用===代替==,用!==代替!=,避免掉入==造成的陷阱 +> 在条件判断时,这样的一些值表示false。 +> + null + undefined与null相等 + 字符串'' + 数字0 + NaN +> 在==时,则会有一些让人难以理解的陷阱。 +> + (function () { + var undefined; + undefined == null; // true + 1 == true; //true + 2 == true; // false + 0 == false; // true + 0 == ''; // true + NaN == NaN;// false + [] == false; // true + [] == ![]; // true + })(); +> +> 对于不同类型的 == 判断,有这样一些规则,顺序自上而下: +> + undefined与null相等 + 一个是number一个是string时,会尝试将string转换为number + 尝试将boolean转换为number + 0或1 + 尝试将Object转换成number或string +> +> 而这些取决于另外一个对比量,即值的类型,所以对于0、空字符串的判断,建议使用`===` +> 。`===`会先判断两边的值类型,类型不匹配时为`false`。 +> - 下面类型的对象不建议用new构造。 +> + new Number + new String + new Boolean + new Object //用{}代替 + new Array //用[]代替 +> 引用对象成员用`obj.prop`代替`obj["prop"]`,除非属性名是变量。 +> - 从number到string的转换。 +> + /** 推荐写法*/ + var a = 1; + typeof(a); //"number" + console.log(a); //1 + var aa=a+''; + typeof(aa); //"string" + console.log(aa); //'1' + /** 不推荐写法*/ + new String(a)或a.toString() +> +> 从string到number的转换,使用parseInt,必须显式指定第二个参数的进制。 +> + /** 推荐写法*/ + var a = '1'; + var aa = parseInt(a,10); + typeof(a); //"string" + console.log(a); //'1' + typeof(aa); //"number" + console.log(aa); //1 +> +> 从float到integer的转换。 +> + /** 推荐写法*/ + Math.floor/Math.round/Math.ceil + /** 不推荐写法*/ + parseInt +> +> 字符串拼接应使用数组保存字符串片段,使用时调用join方法。避免使用+或+=的方式拼接较长的字符串,每个字符串都会使用一个小的内存片段,过多的内存片段会影响性能。 +> + /**推荐的拼接方式array的push、join*/ + var str=[], + list=['测试A','测试B']; + for (var i=0 , len=list.length; i < len; i++) { + str.push( '
'+ list[i] + '
'); + }; + console.log(str.join('')); //
测试A
测试B
+ /** 不推荐的拼接方式+=*/ + var str = '', + list=['测试A','测试B']; + for (var i = 0, len = list.length; i< len; i++) { + str+='
' + list[i] + '
'; + }; + console.log(str); //
测试A
测试B
+> - 尽量避免使用存在兼容性及消耗资源的方法或属性。 +> + 不要使用with,void,evil,eval_r,innerText +> - 注重`HTML`分离, 减小`reflow`, 注重性能。 + +### 图片规范: +------------------- +> - 命名应用`小写英文`、`数字`、`_`组合,便于团队其他成员理解。 +> + header_btn.gif + header_btn2.gif +> - 页面元素类图片均放入`img`文件夹,测试用图片放于`img/testimg`文件夹,psd源图放入`img/psdimg`文件夹。 +> - 图片格式仅限于`gif`、`png`、`jpg`等。 +> - 用`png`图片做图片时, +> 要求图片格式为`png-8`格式,若`png-8`实在影响图片质量或其中有半透明效果,请为`ie-6`单独定义背景,并尽量避免使用半透明的png图片。 +> - 背景图片请尽可能使用`sprite`技术, 减小`http`请求。 +> + +### 注释规范: +------------------- +> - `JAVASCRIPT`、`CSS`文件注释需要标明作者、文件版本、创建/修改时间、重大版本修改记录、函数描述、文件版本、创建或者修改时间、功能、作者等信息。 +> + /* * 注释块 */ +> 中间可添加如下信息。 +> + @file 文件名 + @addon 把一个函数标记为另一个函数的扩张,另一个函数的定义不在源文件中 + @argument 用大括号中的自变量类型描述一个自变量 + @author 函数/类作者的姓名 + @base 如果类是继承得来,定义提供的类名称 + @class 用来给一个类提供描述,不能用于构造器的文档中 + @constructor 描述一个类的构造器 + @deprecated 表示函数/类已被忽略 + @exception 描述函数/类产生的一个错误 + @exec @extends 表示派生出当前类的另一个类 + @fileoverview 表示文档块将用于描述当前文件,这个标签应该放在其它任何标签之前 + @final 指出函数/类 + @ignore 让jsdoc忽视随后的代码 + @link 类似于@link标签,用于连接许多其它页面 + @member 定义随后的函数为提供的类名称的一个成员 + @param 用大括号中的参数类型描述一个参数 + @private 表示函数/类为私有,不应包含在生成的文档中 + @requires 表示需要另一个函数/类 + @return 描述一个函数的返回值 + @see 连接到另一个函数/类 + @throws 描述函数/类可能产生的错误 + @type 指定函数/成员的返回类型 + @version 函数/类的版本号 + +### 开发及测试工具约定: +------------------- +> - 编码格式化,三码统一。 +> - 测试工具: 前期开发仅测试FireFox & IE6 & IE7 & IE8 & IE9 & Opera & +> Chrome & Safari + +### 参考和借鉴了大家的经验,收集整理了这一篇开发规范,感谢所有的原作者,众人拾柴火焰高,技术无国界,持续更新中。 + + diff --git a/Readme.md b/Readme.md index 1bf9e2f..e60cc61 100644 --- a/Readme.md +++ b/Readme.md @@ -135,6 +135,13 @@ 源地址:https://github.com/IonicChina/Mobile-front-end-tutorial +## [Web前端开发规范文档](https://github.com/helloqingfeng/Awsome-Front-End-learning-resource/tree/master/25-web-develop-standard-master) + +作者:kc https://github.com/kangcafe + +源地址:https://github.com/kangcafe/web_develop_standard + + ## [适用于小团队的前端规范](https://github.com/helloqingfeng/Awsome-Front-End-learning-resource/tree/master/18-fun-front-end-tutorials-master) 作者:hzlzh https://github.com/hzlzh