归档 2010年3月10日

最后更新于 .

《小强升职记》是一本关于怎样用GTD(Getting things done)时间管理方法的书,用小说形式表现。我觉得用《小强升值记》作为标题更符合。

 GTD时间管理方法解决的问题背景:

1、  知识型工作不再有清晰的界限,工作缺乏明确的边界导致每一个人的工作量加大、更加焦虑

2、  工作的到来不再按部就班,几天甚至几月的工作如潮水般涌来,这些工作总是萦绕在我们的心头,挥之不去,愈发焦虑

3、  某种意义上,职位晋升机制总是把人放在其不擅长的职位上,我们永远无法为那些新的事物/岗位/工作真正作好充分的准备

4、  在处理每天、每小时的事务时,有很多干扰因素分散了我们的注意力,以致我们无法集中足够的精力关注更重要的问题、无法“着眼大局”

GTD时间管理方法凑效的基本原理,我认为有

1、  一次只专注一件事情,轮询的处理工作。把纷至沓来的n多工作赶出我们的大脑,交给工具

2、  “在知识工作中,任务没有被指定,它需要被确定。‘这项工作的预期成果是什么?’这是一个提高知识工作者工作效率的关键性问题。这个问题可能导致一些极具风险性的决定。通常,没有正确的答案,只有不同的选择。想要获取高效益,一定要明确地认定预期结果 ...

最后更新于 .

编写代码的过程中,经常会输出一些调试信息到屏幕上,一般会调用printf这类的函数。
但是当调试解决之后,我们需要手工将这些地方删除或者注释掉。
再这次的项目中就用到类似问题,为了调试程序,再一些地方输出了很多的信息,随着项目的调试,输出的信息越来越多。于是就面临着,如何处理这些输出信息的语句。
简单删掉,不仅有一定的工作量,而且也不能保证之后就不出现问题,出现问题后这些信息还是有用的。
不去掉,带着调试信息就上线,这是明显不允许的。
于是就想到了一个可行的办法。如下:

void myprintf(char* fmt, ...)
{
}
#ifdef DEBUG
#define printf(fmt, args...) myprintf(fmt, ##args)
#endif


调试阶段带着DEBUG调试,正式上线就可以把printf变成一个空函数了。
这样做的一个潜在风险是可能会导致默写glib函数需要调用printf输出错误log也给取消掉了。
令人欣慰的是,大部分glib调用的应该是fprintf。
虽然问题解决了,但是我对args...以及##args还是不太了解。上网找了些gcc手册的资料如下:
带有可变参数的宏(Macros with a Variable Number of Arguments)
在1999年版本的ISO C ...

昨天

2010年3月9日

明天

2010年3月11日

归档