成长之路---写好一个方法

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

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

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

注释采用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
        ....
}

现在你可以放心使用这个方法了吧!
本文转自永远的朋友博客51CTO博客,原文链接http://blog.51cto.com/yaocoder/800696如需转载请自行联系原作者

yaocoder
相关文章
|
2月前
技术之路的探索与成长
【10月更文挑战第22天】 在技术领域,我们常常面临各种挑战和困惑。本文通过分享个人的技术感悟,探讨了如何面对技术难题、提升自己的技术能力以及保持持续学习的重要性。文章强调了解决问题的方法和思维方式,并提供了实用的建议和经验,帮助读者在技术领域不断成长和进步。
33 3
|
2月前
技术之旅:在代码的世界里不断成长####
【10月更文挑战第26天】 — 探索、实践、反思,技术之路上的点滴收获 ####
29 0
|
3月前
|
设计模式 测试技术
从代码中学习:我的技术成长之路
【9月更文挑战第30天】在编程的世界里,每一行代码都像是一次小小的探险。本文将带你走进我的编码之旅,一起探索如何通过实际的代码示例来提升技术能力。我们将从简单的Hello World开始,逐步深入到复杂的项目结构,并分享在这个过程中遇到的挑战和收获的经验教训。这不仅是一个关于技术的学习之旅,更是一个关于如何面对困难、持续进步的心路历程。
|
3月前
|
机器学习/深度学习 SQL 前端开发
从代码中学习:我的技术成长之旅
【9月更文挑战第34天】在编程的世界里,每一行代码都是一个故事的开始。本文将通过我个人的技术成长历程,探讨如何从代码中汲取知识、解决问题,并实现自我提升。我们将一起回顾那些让我印象深刻的项目和挑战,以及我是如何一步步克服困难,最终找到属于自己的技术道路的。
57 2
|
5月前
|
机器学习/深度学习 人工智能 前端开发
编码之旅:我的技术感悟与成长之路
在数字世界的浩瀚海洋中,编程不仅是技术的体现,更是思维的延伸。本文将分享作者作为一名软件工程师,从初涉编程到深入探索的旅程中所经历的挑战、收获和反思。通过具体案例,探讨如何在实践中锻炼问题解决能力,提升编程技能,并对未来技术趋势进行展望,鼓励读者持续学习,勇于创新。
50 7
|
存储 城市大脑 运维
程序员成长第一篇:机会与趋势
程序员成长第一篇:机会与趋势
124 0
|
安全 关系型数据库 MySQL
我的ByPassWAF之路
我的ByPassWAF之路
|
SQL 缓存 Java
JPA学习之路(基础篇)
📒 程序员小王的博客:(https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF) 🎉 欢迎点赞 👍 收藏 ⭐留言 📝 😊 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 ———————————————— 版权声明:本文为CSDN博主「程序员小王java」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_44385486/article/details/123046499
190 0
JPA学习之路(基础篇)
|
Python
2022/11/14 学习之路---day2
2022/11/14 学习之路---day2
133 0
2022/11/13 学习之路---day1
2022/11/13 学习之路---day1
96 0