10 2010 档案

摘要:极小C程序tiny.c:[代码]ld链接脚本,tiny.lds:ENTRY(start)SECTIONS{.=0x08048000+SIZEOF_HEADERS; t:{*(.text)}/DISCARD/:{*(.bss)*(.data)*(.rodata)*(.note.GNU-stack)}/DISCARD/:{*(.comment)}}t 段名更短, /DISCARD/ 丢弃不需要的段。M... 阅读全文
posted @ 2010-10-29 16:29 napoleon_liu 阅读(772) 评论(0) 推荐(1)
摘要:在我几年前开始写《C++编码规范与指导》一文时,就已经规划着要加入这样一篇讨论 C++ 异常机制的文章了。没想到时隔几年以后才有机会把这个尾巴补完 :-)。 还是那句开场白:“在恰当的场合使用恰当的特性” 对每个称职的 C++ 程序员来说都是一个基本标准。想要做到这点,就必须要了解语言中每个特性的实现方式及其时空开销。异常处理由于涉及大量底层内容,向来是 C++ 各种高... 阅读全文
posted @ 2010-10-27 10:42 napoleon_liu 阅读(669) 评论(1) 推荐(0)
摘要:软件内部质量  代码内部质量指的是代码的可读性,可修改性,复杂度(圈复杂度,函数深度),可移植性等软性质量。(像BUG率指的是外部质量)  软件的内部质量只对开发者有直接影响,对公司来说间接影响就是开发的维护成本。  为什么程序会有这么多偶然复杂性呢?  基本都会有这个问题, 在传统公司,每半年会有个大版本,质量改进可以放到一个大版本中来完成(因为大版本有完全的回归测试)。  互联网公司采用的快速... 阅读全文
posted @ 2010-10-21 16:02 napoleon_liu 阅读(1233) 评论(0) 推荐(0)
摘要:写程序经常需要命名,好的名字至少可以带来更清晰的代码,进一点还可以带来更好的设计和架构。但看过很多程序,发现很多命名都不是很合适。 下面是我总结的一些命名原则: 1. 提取公共部分, 减少不必要的重复(no repeate)。 一堆函数名如果有相同的部分,可以使用 namespace 来封装,如果它们逻辑还有耦合,可以放到一个类中。 一堆文件名如果有相同部分,建议把相同部分提取为文件夹名,这样... 阅读全文
posted @ 2010-10-20 13:11 napoleon_liu 阅读(413) 评论(0) 推荐(1)
摘要:example.ec<%#include <stdio.h>int main(int argc, char *argv[]){ int i;%><html><body> <p>Hello <%= "%s", argv[0] %>!</p> <table> <tbody> <% for ... 阅读全文
posted @ 2010-10-08 16:23 napoleon_liu 阅读(180) 评论(0) 推荐(0)