热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[思想火花]:函数命名及参数

我倾向于使用语义非常明确的方式命名一个函数,即使这样写下来函数的名字非常长,例如ClearExpiredFriendLatestNotes之类的.今天调整一个函数,就是定期清理好友

我倾向于使用语义非常明确的方式命名一个函数,即使这样写下来函数的名字非常长,例如ClearExpiredFriendLatestNotes之类的.

今天调整一个函数,就是定期清理好友最新日记的一个函数,本质上来说,清理用户好友的最新日记加个过期天数就够了,但是我还要清理影响到的用户的好友最新日记缓存,所以考虑到这点,我需要这个函数返回影响到的好友的用户标识集合,但问题是我今天非常非常有精神头,所以我仔细的犹豫了下,到底是将这个好友用户标识集合做为返回数据还是作为out参数处理.分别如下:

方案1:

public abstract List<long> ClearExpiredFriendLatestNotes(int expireDays);

 

方案2:

public abstract void ClearExpiredFriendLatestNotes(int expireDays,out List<long> effectUsers);

 

相信大部分同学对这2个函数方案都觉得无所谓,但是我今天很特别的仔细想了下,觉得还是使用方案2比较妥当,原因如下:

1 函数的本质意义是清理过期的好友最新日记集合,也就是说,返回值并不具备体现这个函数的作用.

2 调用这个函数的开发人员必须仔细阅读帮助文档,或者感谢那位设置了编译出xml的而且让你拷贝那份xml文档的开发人员,否则他是不会知道这个函数的返回值是干什么的.而使用out参数,而且参数的名称为effectUsers,从语义上起码让调用者明白,这个函数还有一个附属的参数返回.

 

ok

 

不知道大家怎么看?

转:https://www.cnblogs.com/csharpsharper/archive/2010/11/19/1881613.html



推荐阅读
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • QSplitter 使用详解
    阅读《C++ GUI Programming with Qt 4, 2nd Edition》第六章布局管理器中的第三节关于 Splitters 的内容,并尝试实现书中的示例,发现实际效果与书中描述存在差异,尤其是分界线部分。 ... [详细]
  • RocketMQ 运维监控实践指南
    本文详细介绍了如何实现 RocketMQ 的运维监控,包括监控平台的搭建、常用运维命令及其具体用法。适合对 RocketMQ 监控感兴趣的读者参考。 ... [详细]
  • 【转】强大的矩阵奇异值分解(SVD)及其应用
    在工程实践中,经常要对大矩阵进行计算,除了使用分布式处理方法以外,就是通过理论方法,对矩阵降维。一下文章,我在 ... [详细]
  • Python函数的高级用法[python基础]
    Python的函数也是一种值:所有函数都是function对象,这意味着可以把函数本身赋值给变量,就像把整数、浮点数、列表、元组赋值给变量一样;同样可以使用函数作为函数的形参,也可 ... [详细]
  • 解决Jenkins编译过程中ERROR: Failed to Parse POMs的问题
    在使用Jenkins进行自动化构建时,有时会遇到“ERROR: Failed to parse POMs”的错误。本文将详细分析该问题的原因,并提供有效的解决方案。 ... [详细]
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • 本文介绍了一种使用 JavaScript 计算两个日期之间时间差的方法。该方法支持多种时间格式,并能返回秒、分钟、小时和天数等不同精度的时间差。 ... [详细]
  • 探索Web 2.0新概念:Widget
    尽管你可能尚未注意到Widget,但正如几年前对RSS的陌生一样,这一概念正逐渐走入大众视野。据美国某权威杂志预测,2007年将是Widget年。本文将详细介绍Widget的定义、功能及其未来发展趋势。 ... [详细]
author-avatar
陨落星辰W_955
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有