一周极客热文:C\C++代码优化的27个建议

来源:互联网 发布:瑞萨单片机和stm32 编辑:程序博客网 时间:2024/05/29 14:41

http://img.my.csdn.net/uploads/201405/26/1401060531_9832.jpg

极客头条上周最受大家关注的和被广泛讨论的是:《C/C++代码优化的27个建议》,这27个黄金建议很是实用,下面我列举一二。

  1. 跳转和分支执行代价高,如果可能,尽量少用
  2. 使用指令层的并行机制
  3. 通过引用传递结构体而不是传值
  4. 如果你的函数不需要返回值,不要定义一个
  5. 如果可以的话,使用位移操作>>和<<来代替整数乘除法
  6. 对大多数类,优先使用+= 、 -= 、 *= 和 /=,而不是使用+ 、 - 、 * 、 和?/
  7. 对于对象,使用前缀操作符(++obj),而不是后缀操作符(obj++)
  8. 不断改进你的数学计算,以消除昂贵的操作

一、 雷军20年前编写的汇编代码,你觉得是什么水平?

国外网站刊出了小米CEO雷军在20年前写的汇编代码,他们定义雷军为中国的乔布斯,而且小米在亚洲的火热也让他们惊奇。

究竟雷军20年前编写的汇编代码是什么水平呢?CSDN网友各执一词,但大多肯定了雷军在那个年代对于代码的规范和风格的追求,有人感慨道:“做技术的那一代人,他们做技术的那段时间,最应受人尊敬。”

二、 只有程序员才有的十大烦恼

每个程序员都有自己烦恼的事。不论这事指的是范围蠕变(scope creep),还是指匈牙利变量命名(Hungarian notation),还是有臭味的同事,我们都明白,这是我们有我们行业里的特定的烦恼。 下面要说的就是十大让程序员们烦恼的事情:

  1. 自己写的代码——今天看来是那么的完美,但也许不久之后就会变成被人嘲笑的对象了;
  2. 其他程序员——程序员经常和其他程序员合不来;
  3. 含糊不清——“网站宕机了”. “XX功能工作不正常”;
  4. 硬件——当发现一切是硬件问题时, 都会痛苦不已;
  5. 程序——缺少文档;
  6. 写文档;
  7. 管理者——完全不懂编程;
  8. 范围蠕变(Scope creep)——在项目管理里项目的需求变更失控;
  9. 干扰;
  10. 注释——只解释了“how”却没有解释“why”。

以上是从最近的在StackOverflow上的一个调查里整理出来的,也有网友天外流星_杨超称:“不怕管理者或者老板不懂技术,也不怕管理者或者老板懂技术。怕的就是管理者或老板懂点技术,是个半吊子,那样的话折磨是你都是正常的。”

三、 程序员的一生

  1. 目标:一艘没有航行目标的船,任何方向的风都是逆风;
  2. 两个成功基点——站好位置,调正心态,努力冲刺,35岁以前成功;
  3. 三大技巧——1)管理时间:你的时间在哪里,你的成就就在哪里;2)你不理财,财不理你;3)自我管理,游刃有余;
  4. 安身立命的理念——35岁以前一定要形成个人风格;
  5. 五分运气——比尔盖茨说:人生是不公平的,习惯去接受它吧;
  6. 六项要求——智慧、勇气、培养自己的领导才能和领袖气质、创造性:不要做循规蹈矩的人、明智、持之以恒的行动力:在你选定行业坚持十年。

四、 不要学习代码,要学会思考

这是一个人人都在学习编程的时代:Code.org请了比尔·盖茨,马克·扎克伯格和克里斯·波什等这些名人,来告诉你,每个人都可以编程;CoderDojo’s在各个国家悄然兴起;在英国,编程已经是各个年级学生的正式课程。

原文作者认为这里有个误区——如果每个人都会一些编程知识,这个世界当然会变得更好,但是学会写代码不应该是我们的目标。计算机和程序只是一个工具,是一种达到某种目的的方法。

真正的目标应该是学会思考的方式。换句话说,我们应该尝试教授计算机科学,而不是教着写代码。

CSDN网友deping_chen认为学习编程一定要学会思考,这应该是目的。但是写代码是锻炼思考能力的手段,如果整天纯思考,不编程,就缺乏对自己思考的检验,变成了天马行空、胡思乱想。

五、 2014年值得学习的编程语言书

  1. JavaScript:《JavaScript》入门经典、《JavaScript权威指南》(犀牛书)、《JavaScript面向对象编程指南》、《编写可维护的JavaScript》、《JavaScript设计模式》;
  2. Java:《Java从入门到精通》;
  3. PHP:《细说PHP》(第2版)(含DVD光盘1张);
  4. C :《精通C#》(第6版)Jolt大奖提名图书,世界级C#专家之作,难以超越的畅销经典;
  5. Python :《趣学Python编程》、《Python Cookbook》(第2版)中文版、《Python核心编程》(第2版);
  6. C++ :《C和C++实务精选:C++ Primer Plus(中文版)》(第6版);
  7. Ruby :《面向对象设计实践指南:Ruby语言描述》;
  8. C :《C和C++经典著作:C陷阱与缺陷》;
  9. Objective-C :《Objective-C基础教程》(第2版);
  10. CSS :《CSS禅意花园》(修订版)。

六、 我的编程致富之路

原文作者讲了一个财富故事,我们直接看作者最后的感悟也是可以的,简摘如下:

  1. 不要找借口不学编程。
  2. 学校不会教你如何努力工作,只有你真正进入社会了你才懂得努力工作的重要性。
  3. 搞定一个庞大的项目看起来像一个不可能完成的任务,但是你可以把它拆解成一个一个部分,一步一步来。
  4. 学习代码不仅仅是为了写代码这么简单,这是一种抽象的逻辑思维。学习代码是一种技能,和别的技能一样,它可以让你编程,但又不止于编程。
  5. 这些年,几乎每一个创业者都抱怨说他们的技术不过关,搞不定代码,需要找个技术合伙人。这实在是个糟透了的借口。
  6. 即使你并不想成为全职程序员,学习代码对你在今后聘用和管理人员方面也有着不可忽视的积极意义。
0 0
原创粉丝点击