自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (3)
  • 收藏
  • 关注

翻译 翻译《有关编程、重构及其他的终极问题?》——12.当使用拷贝黏贴,一定要特别注意最后一行

的确,当连续的代码块大部分类似时,我们会使用复制黏贴来加快编码速度,然后再手动修改每一块不一样的地方,但是——我的经验也是——我们会在最后一行犯错误。作者还严谨的做了统计,不止你、不止我,而是大部分程序员都会容易在最后一行犯错。

2016-12-23 21:20:25 583

翻译 翻译《有关编程、重构及其他的终极问题?》——11.不要试图把尽量多的操作符放到一行代码里

在很多编程语言中,一些聪明的新手们喜欢在尽量少的代码中写出尽量复杂的语句,逼格似乎很高,但这种做法得不偿失,除了难懂,还易引起“Undefined Behaviar”的错误,这其实和“Sequence Point”有关,相信很多人不知道它,但了解它后,你会发现原来除了基本的运算符优先外,编译器还依赖“Sequence Point”,然后你就会放弃装逼,写出易理解且稳定的代码。对了,这点对大多数语言都通用。

2016-12-19 21:21:47 454

翻译 翻译《有关编程、重构及其他的终极问题?》——10.避免使用多个小的#ifdef块

在写程序时,其实留意的话你会发现有些语句写起来很舒服(一不小心就写多了),但阅读起来却很困难,而且容易产生错误,C/C++中#ifdef块就属于这种,虽然写起来很牛(一般都和预编译、平台等接近底层的控制有关),但几乎没人喜欢读一大片#ifdef的代码,结果在后续的java/C#中,就看不到类似语句了。世界上残余不多的C/C++程序员们,请不要以为#ifdef的逼格高,其实代价挺大的,能不写就不写吧。

2016-12-19 21:13:20 517

翻译 翻译《有关编程、重构及其他的终极问题?》——9.使用'-0'符号作为结尾标记

这个覆盖大部分语言,避免使用在所有情况中使用0,这样就能让代码更容易理解,并且更容易发现错误。下面是一些技巧:- 0 - 只使用在需要整型值0的情况;- nullptr - 作为C++的null指针;- NULL - 作为C的null指针;- `\0`,L`\0`,_T`\0` - 作为字符串结尾符;- 0.0,0.0f - 作为浮点值的0;- false,FALSE - 作为false;

2016-12-10 12:16:13 586

翻译 翻译《有关编程、重构及其他的终极问题?》——8.记住:析构函数中的异常是危险的

对于异常,我在C++和Java中用的都不多,现在ES6的Node.js中因为使用了generator、Promise和co的同步化异步操作,不得不使用异常,但这个异常和传统的异常不一致。传统异常,特别是Java,往往会被那些懒惰的程序员们滥用,就像滥用延迟垃圾回收(完全不管内存的事情)。今天翻译的这节文章中,就说明了异常使用的一个禁区:一般不要再析构函数中抛出异常。当然,因线程栈释放抛出异常产生的问题还不止于此。

2016-12-08 21:48:01 470

翻译 翻译《有关编程、重构及其他的终极问题?》——7.不要在循环中调用alloca()函数

alloca()函数在线程的堆栈中分配内存,所以如果在循环中调用alloca()很危险,容易导致栈内存的溢出。有很多方法可以避免,比如使用循环内的栈变量替代(进入和退出范围会自动释放),或者在堆上分配(使用malloc或者new,但需要自己释放)。

2016-12-07 21:55:08 696

翻译 翻译《有关编程、重构及其他的终极问题?》——6.当把一个指针明确的转换为整型时,请检查所有相关代码

这篇是讲指针的,特别是从32位平台移到64位平台指针容易引发的一些问题,讲的有些深,所以除了对于一些资深的原生开发者而言,现在大部分的程序员都看不懂,当然这些非原生的程序员而言,看不懂也没有关系,他们不需要懂——他们都看不到指针了。

2016-12-06 21:33:10 549

翻译 翻译《有关编程、重构及其他的终极问题?》——5.使用工具去分析你的代码

如果遇到有些编程问题需要详细的了解相关文档的每一个部分,才能避免问题怎么办?去看文档吗?sorry,你得花费很多时间去看,这样就不能保证你有足够的时间去完成编程了。只有一个建议,就是直接用工具,比如PSV-Studio的静态分析器。当着这里作者好像忘了DllMain其实可以检测到被应用程序加载的状态,可以通过不同状态,调用不同的函数。

2016-12-04 20:10:32 563

翻译 翻译《有关编程、重构及其他的终极问题?》——4.小心--操作符,请把表达式放在括号中

?:三元运算符的使用,其实因为其优先级很低,所以容易导致很多错误,所以把相关表达式用括号保护起来,可以避免很多容易发生的错误。

2016-12-04 17:41:06 360

navicat101_premium

最好的MySQL客户端 NAVJ-5DOO-FCAA-PHMZ

2013-06-24

Asterisk,电话未来之路CHN2

中文的教程,教您全面的使用和开发asterisk

2009-09-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除