侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

CSS合理的编码与组织技巧

前端  /  管理员 发布于 7年前   179

  CSS代码更清晰高效的一些经验是许多网页制作者与开发者都关心的问题。但是大概没有什么魔法,可以保证一下就把你的样式表缩小到百分之多少,合理的CSS编码与组织技巧,的确能够帮助你的更有效率地写出更清晰高效的代码,自然CSS样式表大小的缩减还能减少下载的时间。
一、排版:
  1、关键词和操作符之间加适当的空格。
  2、相对独立的程序块与块之间加空行
  3、较长的语句、表达式等要分成多行书写。
  4、划分出的新行要进行适应的缩进,使排版整齐,语句可读。
  5、长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
  6、循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。
  7、若函数或过程中的参数较长,则要进行适当的划分。
  8、不允许把多个短语句写在一行中,即一行只写一条语句。
  9、函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格。
  10、C/C 语言是用大括号‘{’和‘}’界定一段程序块的,编写程序块时‘{’和‘}’应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。
二、注释
  1、注释要简单明了。
  2、边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。
  3、在必要的地方注释,注释量要适中。注释的内容要清楚、明了,含义准确,防止注释二义性。保持注释与其描述的代码相邻,即注释的就近原则。
  4、对代码的注释应放在其上方相邻位置,不可放在下面。
  5、对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释应放在此域的右方;同一结构中不同域的注释要对齐。
  6、变量、常量的注释应放在其上方相邻位置或右方。
  7、全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。
  8、在每个源文件的头部要有必要的注释信息,包括:文件名;版本号;作者;生成日期;模块功能描述(如功能、主要算法、内部各部分之间的关系、该文件与其它文件关系等);主要函数或过程清单及本文件历史修改记录等。
  9、在每个函数或过程的前面要有必要的注释信息,包括:函数或过程名称;功能描述;输入、输出及返回值说明;调用关系及被调用关系说明等。
三、命名
  1、较短的单词可通过去掉“元音”形成缩写;
  2、较长的单词可取单词的头几发符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。
  3、使用匈牙利表示法
四、可读性
  1、避免使用不易理解的数字,用有意义的标识来替代。
  2、不要使用难懂的技巧性很高的语句。
  3、源程序中关系较为紧密的代码应尽可能相邻。
五、变量
  1、去掉没必要的公共变量。
  2、构造仅有一个模块或函数可以修改、创建,而其余有关模块或函数只访问的公共变量,防止多个不同模块或函数都可以修改、创建同一公共变量的现象。
  3、仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系。
  4、明确公共变量与操作此公共变量的函数或过程的关系,如访问、修改及创建等。
  5、当向公共变量传递数据时,要十分小心,防止赋与不合理的值或越界等现象发生。
  6、防止局部变量与公共变量同名。
  7、仔细设计结构中元素的布局与排列顺序,使结构容易理解、节省占用空间,并减少引起误用现象。
  8、结构的设计要尽量考虑向前兼容和以后的版本升级,并为某些未来可能的应用保留余地(如预留一些空间等)。
  9、留心具体语言及编译器处理不同数据类型的原则及有关细节。
  10、严禁使用未经初始化的变量。声明变量的同时对变量进行初始化。
  11、编程时,要注意数据类型的强制转换。
六、函数、过程
  1、函数的规模尽量限制在200行以内。
  2、一个函数最好仅完成一件功能。
  3、为简单功能编写函数。
  4、函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。
  5、尽量不要编写依赖于其他函数内部实现的函数。
  6、避免设计多参数函数,不使用的参数从接口中去掉。
  7、用注释详细说明每个参数的作用、取值范围及参数间的关系。
  8、检查函数所有参数输入的有效性。
  9、检查函数所有非参数输入的有效性,如数据文件、公共变量等。
  10、函数名应准确描述函数的功能。
  11、避免使用无意义或含义不清的动词为函数命名
  12、函数的返回值要清楚、明了,让使用者不容易忽视错误情况。
  13、明确函数功能,精确(而不是近似)地实现函数设计。
  14、减少函数本身或函数间的递归调用。
  15、编写可重入函数时,若使用全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护。
七、可测性
  1、在编写代码之前,应预先设计好程序调试与测试的方法和手段,并设计好各种调测开关及相应测试代码如打印函数等。
  2、在进行集成测试/系统联调之前,要构造好测试环境、测试项目及测试用例,同时仔细分析并优化测试用例,以提高测试效率。
八、程序效率
  1、编程时要经常注意代码的效率。
  2、在保证软件系统的正确性、稳定性、可读性及可测性的前提下,提高代码效率。
  3、不能一味地追求代码效率,而对软件的正确性、稳定性、可读性及可测性造成影响。
  4、编程时,要随时留心代码效率;优化代码时,要考虑周全。
  5、要仔细地构造或直接用汇编编写调用频繁或性能要求极高的函数。
  6、通过对系统数据结构划分与组织的改进,以及对程序算法的优化来提高空间效率。
  7、在多重循环中,应将最忙的循环放在最内层。
  8、尽量减少循环嵌套层次。
  9、避免循环体内含判断语句,应将循环语句置于判断语句的代码块之中。
  10、尽量用乘法或其它方法代替除法,特别是浮点运算中的除法。
九、质量保证
  1、在软件设计过程中构筑软件质量。代码质量保证优先原则
  (1)正确性,指程序要实现设计要求的功能。
  (2)稳定性、安全性,指程序稳定、可靠、安全。
  (3)可测试性,指程序要具有良好的可测试性。
  (4)规范/可读性,指程序书写风格、命名规则等要符合规范。
  (5)全局效率,指软件系统的整体效率。
  (6)局部效率,指某个模块/子模块/函数的本身效率。
  (7)个人表达方式/个人方便性,指个人编程习惯。
  2、只引用属于自己的存贮空间。
  3、防止引用已经释放的内存空间。
  4、过程/函数中分配的内存,在过程/函数退出之前要释放。
  5、过程/函数中申请的(为打开文件而使用的)文件句柄,在过程/函数退出前要关闭。
  6、防止内存操作越界。
  7、时刻注意表达式是否会上溢、下溢。
  8、认真处理程序所能遇到的各种出错情况。
  9、系统运行之初,要初始化有关变量及运行环境,防止未经初始化的变量被引用。
  10、系统运行之初,要对加载到系统中的数据进行一致性检查。
  11、严禁随意更改其它模块或系统的有关设置和配置。
  12、不能随意改变与其它模块的接口。
  13、充分了解系统的接口之后,再使用系统提供的功能。
  14、要时刻注意易混淆的操作符。当编完程序后,应从头至尾检查一遍这些操作符。
  15、不使用与硬件或操作系统关系很大的语句,而使用建议的标准语句。
  16、建议:使用第三方提供的软件开发工具包或控件时,要注意以下几点:
  (1)充分了解应用接口、使用环境及使用时注意事项。
  (2)不能过分相信其正确性。
  (3)除非必要,不要使用不熟悉的第三方工具包与控件。
十、代码编译
  1、编写代码时要注意随时保存,并定期备份,防止由于断电、硬盘损坏等原因造成代码丢失。
  2、同一项目组内,最好使用相同的编辑器,并使用相同的设置选项。
  3、合理地设计软件系统目录,方便开发人员使用。
  4、打开编译器的所有告警开关对程序进行编译。
  5、在同一项目组或产品组中,要统一编译开关选项。
  6、使用工具软件(如VisualSourceSafe)对代码版本进行维护。
十一、代码测试、维护
  1、单元测试要求至少达到语句覆盖。
  2、单元测试开始要跟踪每一条语句,并观察数据流及变量的变化。
  3、清理、整理或优化后的代码要经过审查及测试。
  4、代码版本升级要经过严格测试。


  • 上一条:
    css教程:美化网页段落的排版
    下一条:
    基于XTHML标准的DIVCSS布局对SEO的影响
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 使用 Alpine.js 排序插件对元素进行排序(0个评论)
    • 在js中使用jszip + file-saver实现批量下载OSS文件功能示例(0个评论)
    • 在vue中实现父页面按钮显示子组件中的el-dialog效果(0个评论)
    • 使用mock-server实现模拟接口对接流程步骤(0个评论)
    • vue项目打包程序实现把项目打包成一个exe可执行程序(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-03
    • 2018-04
    • 2018-05
    • 2018-06
    • 2018-09
    • 2018-11
    • 2018-12
    • 2019-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-04
    • 2021-05
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客