代码是写给人看的,请C/C++过来的程序员们多学习软件工程
博客园新闻里面有个《让人抓狂的代码》
http://news.cnblogs.com/n/156507/#bottom
里面的多数都是同意的。
但是其中第一条我是坚决反对的。
1. 确保这个值等于 ture
if (someBoolean == true) { doSomething ();}
我其实理解作者的本意:在if语句中,本身就期待一个布尔值表达式。someBoolean变量足够让程序流程正确运转。
这种不用==true的用法,在C/C++世界是一个常见现象,也是很多资深程序员用于在新手面前感觉良好的机会。
但是,软件源码是写给人看的,不是写给CPU看的。
曾几何时,代码是写给CPU看的。比如机器码,比如汇编。
到了C/C++的时代,这种资深程序员们的编码习惯被继承了下来。并且一定程度上成了“正确”的选择。
但是如今已经是2012年了,编译器的优化能力已经和上世纪50-60年代不可同日而语了!
现在软件源码是写给人看的,不是写给CPU看的。
从代码可读性而言,增加一个==true可以确保任何基础程序员在阅读代码时候可以直白地知道源码的设计意图。
不需要任何背景知识,只要从英语和条件语句的基本知识就能知道“如果someBoolean为真则doSomethings”
其实,即使是在C/C++的世界里,这种写法也是有问题的。
因为任意出现的someboolean,谁保证这一定是个boolean类型的变量?
尤其是在C#里面,不论是否写==true。其编译后的代码是完全没有区别的。
这种时候,我建议团队领导最好将上面这种写法作为一个范例,让所有程序员都要去这么干。
if (someBoolean == true) { doSomething ();}
转载于:https://www.cnblogs.com/Chinese-xu/archive/2012/09/05/2671401.html
代码是写给人看的,请C/C++过来的程序员们多学习软件工程相关推荐
- 代码是写给人看的还是写给机器看的?
在大部分的情况下我会认为代码是写给人看的.虽然代码最后的执行者是机器,但是实际上代码更多的时候是给人看的.我们来看看一段代码的生命周期:开发 --> 单元测试 --> Code Revie ...
- 代码没写完,哪里有脸睡觉!17 张程序员壁纸推荐
来源:网络 1.三思后再写代码!!! 2.从世界上搜索喜欢你的人!!! 3.代码没写完,哪里有脸睡觉!!! 4.程序员的 Home 键!!! 5.编程是一门艺术!!! 6.云 ~~~~ 雨!!! 7. ...
- python程序员专用壁纸_代码没写完,哪里有脸睡觉!17 张程序员壁纸推荐
Python,作为一门热门的语言,已经高居编程语言排行榜前三名,也是站长几年前学过的语言之一.当然咯,Python只是站长使用的语言之一,站长也相当熟悉Java.C++.PHP等语言.Python主要 ...
- 中国 GitHub 霸榜乱象:水军们!请别再给国内程序员丢脸了!
前几天前线编者看到,一位叫 Balazs Saros 的国外开发者在 Medium 上发表了一篇名为 "Chinese repos are ruining the Github trendi ...
- 程序员的英语学习!对于像进一步提升自己的人来说,很重要哟!
转载自:http://www.cnblogs.com/haoyifei/p/5687235.html 学习英语的重要性: 1.要是在给类或方法起名时,用拼音来学,那可真要贻笑大方了! 之前在视频中见过 ...
- 如果不懂 numpy,请别说自己是 python 程序员
文章目录 0. 前言 1. list VS ndarray 2. dtype AND shape 3. 创建数组 (1) 创建简单数组 (2) 创建随机数组 (3) 在数值范围内创建数组 (4) 从已 ...
- 写给想要入行或刚刚入行程序员的二十条至理格言
日常总有小伙伴在困惑:程序员到底是什么样子的?怎样才能成为一名程序员?其实程序员这个职业与其他行业并无天壤之别,不管你入职什么行业,一技之长是必不可少的,就拿程序员这个职业来说,写程序编代码就是特长, ...
- 如果你觉得你的文章没人看,请先看看这篇文章
<原力计划[第二季]>已经开始一个星期了.7000+ 博主竞相投稿,投稿的文章也即将突破 20000 篇.经过一段时间的流量运营与监控,我们运营同学发现了一个比较严重的问题:「好文章,没人 ...
- 写给大家看的机器学习书【Part3】直观易懂的感知机学习算法PLA
作者:徐晗曦 原文:写给大家看的机器学习书(第三篇) 本次转载已获得作者授权,尊重原创,若需转载请联系作者本人. 相关文章: 写给大家看的机器学习书[Part1]什么是机器学习?机器学到的到底是什么? ...
最新文章
- h3c l2tp ***配置
- 如何看待 2020 届校招算法岗「爆炸」的情况?
- 抢票神器成GitHub热榜第一,支持候补抢票,Python跑起来
- java 嵌套对象序列化_在javascript中将复杂的,嵌套的,用户定义的对象序列化为字符串...
- Redis笔记(一)Redis简介
- EF使用CodeFirst创建数据库和表
- getifaddrs
- 【C++】【GADL】读取栅格数据获取信息
- 201.数字范围按位与
- 高级语言程序设计(c语言版)课后答案,高级语言程序设计习题与解答(C语言版)/高等院校教材...
- 私有云的优缺点_私有云服务器的优缺点
- 周杰伦新专辑预售热点传播分析报告概览
- Windows XP SP2 (Simplified Chinese MS08_067漏洞复现)
- 码云推荐 | 那些优秀的网络爬虫工具介绍
- 【ODYSSEY-STM32MP157C】驱动 UART 读取传感器数据
- 透视网格的数据如何导出Excel?一招教你搞定
- 功放前级的左右_Altitude32前级功放题 - 什么是全景声功放_全景声功放有哪些
- 无法启动此程序,因为计算机中丢失rtl70.bpl怎么修复教程
- 深度学习数学基础-概率与信息论
- livereload使用方法
热门文章
- DM368开发 -- uboot 使用
- C语言再学习-- assert 断言宏
- C语言再学习 -- 循环语句
- Java网络编程之IP地址和InetAddress类
- Bit-Z转入GXS、PPS、SPHTX、EOS未到账解决方案
- Part 2 — Making Sense of Smart Contracts
- spring boot:java.lang.IllegalStateException异常
- Linux终端怎么锁屏,自制Linux 终端 锁屏防窃助手
- linux中wps默认安装目录,centos6.5 安装wps linux
- android edittext email,Android上EditText上的电子邮件地址验证