提高自己和培养人才应该循序渐进,首先要能写好一个方法,之后能写好一个类,之后能写好一个程序,之后能做好一个产品......

怎样才能写好一个方法呢?
(下面给大家以伪代码形式的伪代码给大家举一个例子,仅仅是为了介绍一种思路)

首先明确方法的作用,确定参数个数,意义,类型及格式

注释采用Doxygen的注释方式,至于优点,请google
/**
* <A short one line description>
*
* <Longer description>
* <May span multiple lines or paragraphs as needed>
*
* @param    Description of method's or function's input parameter
* @param    ...
* @return Description of the return value
*/

 考虑几个点
<type> GrowUp(const <type>in_param, ..<type> out_param..)
{

    1.有入参,要检查参数的有效性
    2.如果有需要的话申请资源
    3.处理业务
    4.如果资源需要释放的话,切记一定要释放资源(也可以在申请资源处用智能指针或者局部对象析构来释放资源。就可省略此步)

    return <type>;
}

这样算是一个良好的方法了吗?在某些场景下是吧!以下继续:如果逻辑支持异常处理的话
<type> GrowUp(const <type>in_param, ..<type> out_param..)
{
    .....
    假定在这里支持异常处理
    try
    {
        3.处理业务
    }
    catch(e&)
   {  
        return <type>?????               (很严重啊!资源释放了吗?注 意啊!把4复制到前面去吧)
    }
   .....
}


这样的方法已经不错了吧!在某些应用场景下是吧!如果要考虑并发呢?以下继续
<type> GrowUp(const <type>in_param,..<type> out_param..)
{
   比如用boost,当然还有其他实现,只是介绍一种思路
   boost::unique_lock<boost::mutex> lock(mutex_);
   ......
}


这时的方法呢?还不错,但是你忘记了,最后是用户使用产品,要是出了错你可不能单步调试了啊,于是,加上日志输出吧
<type> GrowUp(const <type>in_param,..<type> out_param..)
{
   拿强大的log4cxx吧
   LOG4CXX_TRACE
   ...
  LOG4CXX_WARN
   LOG4CXX_ERROR
   随你输出想要的信息  
}


这时的方法已经很不错了,但是你还没测试呢?所以进行单元测试吧,以gtest举例
TEST(Test, GrowUpTest)
{
   ASSERT_TRUE
   ASSERT_ANY_THROW
        ....
}

现在你可以放心使用这个方法了吧!