良好的布局与风格

良好的布局和风格,是为了展现代码的逻辑结构,有利于代码的可读性,并且能让代码易于维护。

 

1.但不必为了追求美观而牺牲可读性和易维护性,如下可能不易维护

尽管这种缩进看上去很漂亮,但变量的名称改变,变量score变为newscore,要维持以等号对齐就会很麻烦。

或将程序移往其他不同缩进级别的位置,也不好维护。

2.关于使用括号,要么使它成为控制结构的一部分,要么视为控制结构下的语句。如下可能扩大了程序逻辑结构的复杂度:

有些人会做成这样----

for (n=10;n>1;n--)

{

s = s + 1 / ( float ) n ;

printf ("%6.4f\n",s) ;

}

或者

for (n=10;n>1;n--)

    {

s = s + 1 / ( float ) n ;

printf ("%6.4f\n",s) ;

}

 

前者看起来不错,但不能清晰显示出代码的逻辑结构,{与for对齐说明并列于控制结构,而其实要么让{成为控制结构一部分,要么让他从属于控制结构都是比较好的。

后者for循环里面内容缩进了两次,这个例子风格虽然好看,人们对缩进一次和缩进两次的理解并无区别,但这种风格不能呢个准确给出程序的逻辑结构,看上去像是从属于‘{‘,(如果‘{‘前有一条语句,其实这条语句与括号内语句是并列的),而且直观上看模样更复杂,如下图前者更复杂

?

 

 

如果语句有三层嵌套,那么两次缩进就会使代码有六级缩进,导致布局看起来比实际代码复杂多了,将{}与里面语句作为一整块缩进,并将其间语句对齐更好一点。

 

建议做成这样-------

for (n=10;n>1;n--){

s = s + 1 / ( float ) n ;

printf ("%6.4f\n",s) ;

}

关于这种情况可能会丢括号,不宜检查{的配对,如果你习惯了括号成为控制结构的一部分,就不会丢掉的,

如下图,A与B是控制结构的一整体,C与D从属于控制结构,一目了然

 

或者大家都习惯的这样:

for (n=10;n>1;n--)

    {

s = s + 1 / ( float ) n ;

printf ("%6.4f\n",s) ;

 }

 

时间: 2024-10-23 13:09:25

良好的布局与风格的相关文章

第三十一章 布局与风格

基本原则 格式化的基本原理 格式化的借本原理指出,好的布局凸显程序的逻辑结构. 任何计算机对程序的解读 布局是关于程序结构的有用暗示. 好布局有什么用 以某种风格来写程序并不仅仅是处于美观考虑.用习惯的方式写程序有着心理因素--程序员有着强烈的意识,觉得其他程序员都会遵循这些论述规矩. 把布局当作一种信仰 布局不仅涉及美学,同时也有了逻辑问题的味道,意即对编程格式的争论听起来更像是宗教斗争,而非在讨论哲学. 良好布局的目标 准确表现代码的逻辑结构: 始终如一地表现代码的逻辑结构: 改善可读性:

[bootstrap] 栅格系统和布局

1.简介 栅格系统(grid systems),也称为“网格系统”,运用固定的格子设计版面布局,风格工整简洁.是从平面栅格系统演变而来. Bootstrap建立在12列栅格系统.布局.组件之上.以规则的网格阵列来指导和规范网页中的版面布局以及信息分布 Bootstrap内置了一套响应式.移动设备优先的流式栅格系统,随着屏幕设备或视口(viewport)尺寸的增加,系统会自动分为最多12列.它包含了易于使用的预定义classe. 2.设计原理 http://ued.taobao.org/blog/

HteOS - Win8 Metro UI 风格的Web桌面

HteOS是一款Win8 Metro UI风格的Web桌面应用开发框架 现代的.简约的界面,丰富的组件.功能,全新的Web桌面 全新的Web桌面应用开发框架 全新设计 全新的Web桌面设计,告别古板与生硬 Win8 Metro风格界面,动态磁贴灵动轻巧 二次开发 应用场景广泛,能够适用各种项目兼容IE8+浏览器,快速进行二次开发 应用部署 没有环境限制,可以在任何平台进行部署不需要进行额外的部署设置,即插即用 不拘泥于平庸的Web桌面设计 卡片布局 Metro风格的卡片布局,不再是审美疲劳的树状

让你提前认识软件开发(29):数据库脚本文件的布局

第2部分 数据库SQL语言 数据库脚本文件的布局 "没有规矩.不成方圆",规范数据库脚本文件的代码布局具有下面重要意义: (1) 可表现出代码良好的逻辑结构.提高代码的准确性.连续性.可读性及可维护性. (2) 有利于提高产品的开发质量和效率,并减少开发成本. (3) 对于开发者来说.养成良好的脚本编写习惯有助于提高个人的数据库脚本编程水平.进而提高脚本编程效率. 可见,统一的.良好的脚本代码布局和风格不不过个人主观美学或形式上的问题,并且影响到产品的质量,并涉及到自身脚本编程能力的提

手机APP测试几个要点

移动互联网App测试点包括: 1.安全测试 1)软件权限 -扣费风险:包括发送短信.拨打电话.连接网络等 -隐私泄露风险:包括访问[url=]手机[/url]信息.访问联系人信息等 -新增风险项 2)开发者官方权限列表信息比对分析 2.安装.运行.卸载测试 验证App是否能正确安装.运行.卸载,以及操作过程和操作前后对系统资源的使用情况,主要包括: 1)检测软件是否能正确安装.运行.卸载: 2)安装.卸载.更新错误报告: 3)其他辅助信息: -位置和文件夹是否合理: -组件是否正确注册或删除:

HTML5新特性data_*自定义属性使用

HTML5 新特性data_*自定义属性使用HTML5规范里增加了一个自定义data属性. 这个自定义data属性的用法非常的简单,就是你可以往 HTML 标签上添加任意以 "data-"开头的属性, 这些属性页面上是不显示的,它不会影响到你的页面布局和风格,但它却是可读可写的. 使用 data-* 可以解决自定义属性混乱无管理的现状.

sitemesh3-springMVC配置

web开发中,一般的页面布局都有统一的header,和footer,甚至统一侧边栏,只有中间主题部分可能不一样,在每一个页面中引入这些相同的部分不免有些麻烦,sitemesh3提供一种解决方案,通过不同的访问连接匹配,可以是页面布局统一风格. 实际上也就是做了两件事: 1,对布局相同的页面统一风格,只需要通过配置,即可 2,配置不同的布局,通过不同的连接匹配,进行不同的布局 西面就来看一下需要哪些配置: 1,首先加入jar包,可手动下载,maven项目可配置如下 <dependency> &l

Qt 5.7 &gt; Qt Applications

本文翻译自Qt官方文档: http://doc.qt.io/qt-5/qmlapplications.html QML 应用 QML是声明式语言,它使得用户界面以及交互行为可以被"描述"出来.这是一种可读性非常高.动态互联其中的构件的语言,并且它允许构件可以非常容易的被重用和界面自定义.使用QtQuick模块,设计者和开发者可以使用QML开发流畅的动画界面,也可以选择将用户界面与后端的C++库连接起来. 什么是QML? QML是用户界面规范与编程语言.它使得开发者和设计者可以开发出高性

移动互联网App测试点

1.安全测试 1)软件权限 -扣费风险:包括发送短信.拨打电话.连接网络等 -隐私泄露风险:包括访问手机信息.访问联系人信息等 -新增风险项 2)开发者官方权限列表信息比对分析 2.安装.运行.卸载测试 验证App是否能正确安装.运行.卸载,以及操作过程和操作前后对系统资源的使用情况,主要包括: 1)检测软件是否能正确安装.运行.卸载: 2)安装.卸载.更新错误报告: 3)其他辅助信息: -位置和文件夹是否合理: -组件是否正确注册或删除: -评估操作前后,CPU.Memory(内存占用).St