《C 编程规范》笔记(设计风格)
2008-02-23 05:33:08来源:互联网 阅读 ()
单一职责原则。这个原则并不那么容易执行,即使是STL这样的程式库,也相同会犯违反该原则的错误。在这里,举了两个违反这一原则的著名实现:realloc和stl 中的basic_string。但是,对于basic_string,我想比起MFC中的CString还是好了不少。在《Exceptional C style》中,对basic_string作了剖析,并且得出一个普遍的原则:尽量将函数实现为单独的函数而不是成员函数。
尝试用一句话来说明一个模块的功能,既不多,也不少。假如无法用这样的一句话加以概括,那么重新考虑规划该模块的职责。
第2条:正确、简单和清楚第一
简单的说,坚持KISS原则:正确优于速度,简单优于复杂,清楚优于机巧,安全优于不安全。
程式必须为阅读他的人编写,只是顺便用于机器执行 * 编写程式应该以人为本,电脑第二
电脑系统中最便宜、最快速、最可靠的组件都还不存在
......简单设计的重要性怎么强调也但是分
使一个正确的程式变快,比使一个快速的程式正确要容易的多
避免使用程式设计语言的冷僻特性,应该使用最简单的有效技术
不要毫无节制地重载运算符。
不要滥用匿名变量,合理使用命名变量。当然,这不是说连vector().swap(other)这样的惯用法也要排斥。
第3条:编程中应知道何时和如何考虑可伸缩性
从字面上来看,这差不多等于外交辞令。答案无非是“适当的”时候“适当地”考虑可伸缩性。这很依赖于软件工程师的经验和知识。所以,本条目也“适当地”回避了那种缺乏营养的教导,着重讨论算法复杂度的选择问题。
基本上,线性复杂度能够作为一个算法是否可选的分界点。值得花费精力避免选择差于线性复杂度的算法,而不差于线性复杂度的算法则能够接受。所以,把性能放在嘴边的兄弟们注意了,您的精力可别放错了地方,高德纳言犹在耳:不成熟的优化是程式设计中的万恶之源。必要时,先努力优化复杂度(选择好的算法----算法无用论者,去面壁!)。
顺便提一句排序算法,通用排序算法的复杂度最好是O(NlgN),但是特定领域完万能够有更好复杂度的算法。
第4条:不要进行不成熟的优化
“不成熟的优化是程式设计中的万恶之源” ----高德纳引用的这句话这本书中出现了若干次,高德纳在他的不朽名著《电脑程式设计艺术》中也一再强调了这一点,还说他以前程式中的许多错误都是关于不成熟优化的。看来,唯一在诱惑面前没有堕落的,只有耶稣,即使是大师也无法抗拒。既然如此,建议把下面的话放在电脑桌面上:
让一个正确的程式更快速,
比让一个快速的程式正确,要容易的太多太多。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 技巧 多线程下的随机数初始化
下一篇: 递归下降纯解释器编写的困惑
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash