HTML、JavaScript和GLSL编码规范

techbrood 发表于 2019-09-23 17:52:23

标签: html5, code standards

- +

HTML编码规范

  • 始终将文档类型声明为文档中的第一行: <!doctype html>

  • 使用小写元素名称: <p>, <div>

  • 关闭所有的元素: <p> ... </p>

  • 关闭空元素: <br />

  • 使用小写属性名: <div class="...">

  • 用引号引用所有的属性值: <div class="...">

  • 不要在等号旁使用空格: <div class="...">

  • 尽量一行不要超过80个字符

  • 为了可读性,添加空行来分隔大型或逻辑代码块

  • 为了可读性,使用2个空格的缩进。不要使用制表符(tab)

  • 总是包含一个<html>, <head> 和 <body> 标签

  • 总是包含语言、编码和 <title>:

    <!doctype html> 
    <html lang="en-US"> 
    <head>   
      <meta charset="UTF-8">   
      <title>HTML5 Syntax and Coding Style</title> 
    </head>
  • 为复杂逻辑部分添加注释: <!-- This is a comment -->

  • 使用简单语法链接样式表: <link rel="stylesheet" href="styles.css">

  • 使用简单语法加载外部脚本: <script src="myscript.js">

  • 在html中使用与javascript相同的命名约定

  • 始终使用小写文件名

  • 使用一致的文件扩展名: .html, .css, .js, .frag, .vert, .fbx, .glb

Javascript编码规范

  • 总是包含 "use strict"; 语句,来强制变量声明

  • 尽可能避免全局变量,如需要定义全局变量,建议使用小写字母 g 开头的变量名

  • 使用JSLint来检查语法错误

  • 为了可读性,添加空行来分隔大型或逻辑代码块

  • 为了可读性,使用2个空格的缩进。不要使用制表符(tab)

  • 在适当的情况下对条件语句使用速记: var results = (test === 5) ? alert(1) : alert(2);

  • 右大括号与原始语句位于同一缩进处:

function func() {
  return {
    "name": "Batman"
  };
}

命名规范

  • 构造器以大写字母开头。

  • 方法/函数以小写字母开头。

  • 方法/函数应使用camel case。thisIsAnExample

  • 变量应始终在单词之间使用下划线。this_is_an_example

  • 适当时,在名称中包含变量类型。value_list

  • 元素id和类名应始终在单词之间使用下划线。

  • 私有方法应使用前导下划线将它们与公共方法分开。

  • 名称中不应使用缩写。

  • 分配名称时不应使用复数。

  • 评论应该合理使用。

  • 使用YUIDoc的规则来给函数添加注释。

/**
 * Reverse a string
 *
 * @param  {String} input_string String to reverse
 * @return {String} The reversed string
 */
function reverseString(input_string) {
  // ...
  return output_string;
};

GLSL编码规范

  • 避免使用All-in-one着色器代码,根据需要编写单独的着色器代码

  • 将webgl版本号放在每个着色器的顶部 #version 103

possitive(12) views3689 comments0

发送私信

最新评论

请先 登录 再评论.
相关文章
  • 增强现实引擎ARToolKit工作原理简介

    ARToolkit是一个基于CV(计算机视觉)和Marker(标识)的开源增强现实引擎。其具备如下功能特性:A. 鲁棒跟踪,包括基于标记的跟踪与基于特征的跟踪;

  • CSS3原生变量(Native Variables)新特性简介

    对Web开发者来说,一个盼望已久的特性是CSS终于支持原生变量了!
    变量是程序语言中用来解决代码重复和进行表达式计算的关键概念(想想数学方程式中的x)。...

  • 使用CSS3 box-decoration-break特性实现多行文本样式

    当文章中的长文本被自动断行为多行文本时,其样式可能会出乎我们的设计。本文介绍如何使用CSS3中的box-decoration-break特性来处理多行元素样式。
    按照规范...

  • Web界面编程状态变化和JS开发框架(React/Angular/Ember)

    UI编程中的一个关键课题就是界面组件化(可复用)以及组件状态管理。稍早一些的windows程序员可能接触过MFC,其界面编程中有一个DDX(DoDataExchange)的机制,...

  • 使用HTML5 FileReader和Canvas压缩用户上传的图片

    手机用户拍的照片通常会有2M以上,这对服务器带宽产生较大压力。因此在某些应用下(对图片要求不那么高)我们可以在客户端来压缩图片,然后再提交给服务器。总体...

  • 计算WebGL中的uniforms变量使用数

    在使用Three.js为人体模型加载皮肤材料时,启用了skinning:true的参数。有时候会导致GL编译错误,提示“too many uniforms”。下面的文章有助于理解错误原因和检...

  • Blender2.7 快捷键一览表

    通用操作
    停止当前操作:ESC
    快捷搜索:SPACE撤销:ctrl+z重做:ctrl+shift+z渲染:F12
    单选:鼠标右键(RMB)全选:A
    框选:B
    刷选:...

  • WebGL入门教程4 - 使用纹理贴图(Texture Map)

    3D建模和纹理贴图的关系就好比人体和皮肤(或着装)的关系,3D建模用来处理空间属性,而贴图适合用来处理细腻的表面属性。如果不使用贴图,而想在表面达到足够的...

  • 浏览器控制台报JS脚本执行错误:Module is not defined

    现在JS分成了两个分支,一部分在服务器端发展如NodeJS,一部分是传统的浏览器运行环境。
    有些插件在编写JS代码时,是针对Node编写的,所以直接在浏览器中使...

  • 使用Canvas绘制完美的不完美圆形

    真实世界是不完美的,当我们需要模拟真实世界时,经常需要引入不完美/不规则的形状。比如陨石、雨滴、行星、树叶、绵延的海岸线、云朵等。本文介绍如何基于Canva...

  • Three.js 开发基础知识 - 绘制3D对象

    Three.js是一个用来简化WebGL开发的JavaScript库,比如绘制一个三维立方体,使用WebGL需要100多行,那Three.js只要10几行就能够完成。本文通过创建一个立方体来...

  • 如何使用CSS3实现一个平滑的3D文本标题

    要实现3D文本,基本上有3种方法:1. 使用CSS3的投影滤镜(filter: drop-shadow)2. 使用3d建模和CSS3 3d变换来实现(最真实)3. 使用CSS3 text-shadow属性来实现...

  • 使用纯CSS3实现一个3D旋转的书本

    有一些前沿的电商网站已经开始使用3D模型来展示商品并支持在线定制,而其中图书的展示是最为简单的一种,无需复杂的建模过程,使用图片和CSS3的一些变换即可实现...

  • div 、section 、article的区别和使用场景

    div 、section 、article的区别和使用场景
    主要区别,以及适用场合如下:
    1、div在html早期版本就支持了,section和article是html5提出的两个雨衣话标...

  • 更多...