当前位置:首页 > 前端 > 那些在开发中遇到的坑

那些在开发中遇到的坑

空格一直是开发过程中一个很头疼的问题,找又不好找,今天这篇文章就是跟大家介绍下关于开发中空格的那些事。

网站

没错,这是一篇火药文。网上流传的各种编程规范几乎青一色都是说用空格代替Tab,其理由几乎都是“这是唯一能保证在所有环境下获得一致展现的方法”。

那我想问一句,你们到底能要多少种环境要看代码???

  • 用Windows自带的记事本?那我只能说,你继续装,看你什么时候才能完成得了任务。
  • 连接到Linux服务器上使用VI或者VIM?我也只能说只有改服务器的配置文件的时候才会这样做吧,而且如果是配置文件比较复杂也是下载下来用Notepad++改清晰很多好伐,比如Aapche的配置文件在Notepad++选择shell语言的配色规则,那一大段一大段绿的注释立刻就可以一眼跳过了,能比在SSH上看的一堆黑白文字好一万倍吧。
  • 开发机是Linux或者MAC?我只能说,你黑客你随意、你公司壕你随意,但是这个都用了装个集成IDE有那么难吗,想调成多少就多少啦,还要看系统文本编辑器里丑丑的一个Tab八个空格吗?
  • IDE很多难以统一?网页开发的Notepad++、Sublime、Dreamweaver、PHPStorm、HBuilder,微软的VC++6.0、VS20xx,嵌入式开发的Keil C51、Keil MDK、TK Studio,还有一批Eclipse外观的各种IDE(Eclipse、ZendStudio等),我都用过,但还没见过一个默认不是一个Tab四个空格的,所以真心不明白不同的IDE之间在代码的显示上到底能有什么大的差别。
  • 代码贴到网上对齐有问题?这个我还没遇到过,如果有,那么只能说那个网站跟不上时代,别人网站都行你却不行你说是不是网站的问题。

所以,综上所述,需要用空格来确保所有环境统一展示 是一个伪需求!\

细数空格带来的不便

  • 代码对不齐。在HTML代码中,非常多重的嵌套缩进是常有的事,但你试想看看,同一个文件里大部分缩4空格、但有的缩3空格,有的个别甚至缩2空格,这是怎么样一种乱象。或者同一个项目里,有的HTML是用4个空格,有的HTML是用2个空格。不用怀疑,很多老代码都有这样的现象。即使是一个人开发的都会,一段时间觉得4个空格比较标准,一段时间又觉得HTML一行那么长,用2个空格节省位置。空格缩进的不严谨就这样无形地把代码带入了混乱。
  • 鼠标不好点和方向键不好用。比如你要修改某个地方,鼠标只是点左了一个点点,然后就光标就去了前面的空格的位置,而不是真正代码开始的地方,然后你又得多点一下或者按个右方向键。手不太熟练的偏差大一点的还要点很多下或者按几下方向键才行。还有在按上下方向键时,有时候又会去到了一些不理想的空格位。
  • 在使用TortoiseSVN的文件对比工具时,太多的点点点,而不是一连四格的横线箭头。在文件左边一片片的点点,尤其在网页文件中前面缩进空格的点十分容易与CSS的class选择器混淆,影响视觉。
  • 代码文件变大了,这个问题主要体现在网页文件上,以UTF8编码来算,一个Tab是1(原以为3)个字节而对应的四个空格是4(原以为12)个字节,所以每一个本来用Tab的地方都会多出3(原以为9)个字节来,可能一个文件上看不出来有多大差别,但是有千千万万个用户浏览呢?会白白增加了多少网络带宽?即使是有GNU压缩,但是在大访问量的网站也会有较明显的改变。
  • 单行注释时,如果是用Tab缩进,// 不会使后面的代码后退两格,代码依然对齐;而空格缩进的,//会使代码后退两格,代码会变得不对齐。有小部分IDE使用Ctrl+/快捷键添加单行注释时可以智能识别除外。
  • 回删一个tab缩进只需按一次回删键,而回删四个空格需要按四次。当然更快的方法是选择整行或几行,然后按shift+tab,这个不多人知道吧~

总结

空格的问题大概就是这些了,在实际开发中还有其他的一些小问题,其实反过来想一想,只要我们在开发中多一份细心,这些问题也许就迎刃而解了。

  • << C#设计模式系列(23)-备忘录模式
  • 教你在苹果电脑下配置PHP环境 >>
  • 作者:
    除非注明,本文原创:知道91,欢迎转载!转载请以链接形式注明本文地址,谢谢。
    原文链接:http://www.zhidao91.com/web-space/

    相关文章 近期热评 最新文章

    • HTML+CSS+JS 实现图标旋转效果
      本文讲解了使用HTML+CSS+JS 实现图标旋转效果。
    • js怎样获取和设置元素的属性
      本文讲解了js获取和设置元素的属性的方法,有需要的朋友可以看看
    • Node.Js 不一般的JavaScript
      互联网的火热使得JavaScript风光无限,且服务端的JavaScript也并不是什么新技术了,相关的框架也有不少,只是node.js的成功让他爆发式的出现在我们的视线中,让很多前端...
    • 前端程序员必须知道的优化小知识
      前端开发人员的一些小知识,Web 前端性能优化是个大话题,是个值得运维人员持续跟踪的话题,是被很多网站无情忽视的技术。除了后台需要在性能上做优化外,其实前端的页面...
    • HTML5与CSS3的完美搭配
      TML5将会取代1999年制定的HTML 4.01、XHTML 1.0标准,以期能在互联网应用迅速发展的时候,使网络标准达到符合当代的网络需求,为桌面和移动平台带来无缝衔接的丰富内容。
    • 前端程序员必须知道的chrome开发者技巧
      在Web开发者中,Google Chrome是使用最广泛的浏览器。六周一次的发布周期和一套强大的不断扩大开发功能,使其成为了web开发者必备的工具。你可能已经熟悉了它的部分功能...
    • 使用微信JDK实现微信接口签名验证
      要使用微信的接口必须在绑定的域名下测试;签名必须先向微信请求到access_token,然后用access_token再去请求jsapi_ticket,最后用jsapi_ticket和相关的参数按照ASCII码...
    • oracle数据库相关操作注意事项
      修改Oracle SGA(共享内存) 很多网站说修改Oracle的内存通过命令 如果你这么做了,那么恭喜你,你的Oracle数据库无法启动了。如果你已经这么做了,恢复Oracle启动的方...
    • oracle数据库相关操作注意事项
      修改Oracle SGA(共享内存) 很多网站说修改Oracle的内存通过命令 如果你这么做了,那么恭喜你,你的Oracle数据库无法启动了。如果你已经这么做了,恢复Oracle启动的方...
    • 使用微信JDK实现微信接口签名验证
      要使用微信的接口必须在绑定的域名下测试;签名必须先向微信请求到access_token,然后用access_token再去请求jsapi_ticket,最后用jsapi_ticket和相关的参数按照ASCII码...
    • ABP开发指南系列教程(2) – 多层架构...
      为了减少复杂性和提高代码的可重用性,采用分层架构是一种被广泛接受的技术。为了实现分层的体系结构,ABP遵循DDD(领域驱动设计)的原则,将工程分为四个层: 展现层(...
    • ABP开发指南系列教程(1) – 入...
      ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WE...
    • Windows下 JIRA + Agile + Mysql 破解...
      本文讲述了Windows下 JIRA + Agile + Mysql 破解安装示例教程
    • c#类的构造函数继承关系示例剖析
      本文通过示例代码讲解了c#子类的构造函数与父类的关系,子类怎样集成父类的构造函数的。