接口设计规则一:让你的接口会说话
浏览:4138次 出处信息
在面试过程中,我时常会问一道简单的题目:
请找出如下程序不妥之处:
void s_c(const char *s, const char *p)
{
while (*s) {
*p = *s;
}
}
首先,这道简单的题目考察的是找错能力,比如结束符和const的应用。
其次,考察的是接口设计能力,这也是重点。
没有返回值,因此对于一些异常现象不好对外表现,const是否应用正确,
函数名使用是否见其名知其意,函数参数是否见其名知其意,有没有对接
口的简述,指针,引用,就量传递使用是否正确等等。
比如改成如下:
/**
* brief: 拷贝字符串,从源串到目的串
* param[in]: src 源串地址
* param[out]: dest 目的串地址
* return: 成功 0
* 失败 错误码
*/
int strcpy(const char *src, char *dest);
这样只接口就可以很清楚的了解它的功能和用法了。
当然,在代码实现过程中,还有许多其它需要考虑的点,
比如输入是否合法,出错处理,边界处理等等。
现修改如下:
/**
* brief: 拷贝字符串,从源串到目的串
* param[in]: src 源串地址
* param[out]: dest 目的串地址
* return: 成功 0
* 失败 错误码
*/
int strcpy(const char *src, char *dest)
{
if (NULL == src || NULL == dest) {
return -1;
}
while (*dest = *src);
return 0;
}
真正细心的你,觉得这样的程序正确吗?效率又如何?
如果有问题,如何改进?
建议继续学习:
- Paypal接口详细代码(PHP版,非API接口) (阅读:19003)
- 面向“接口”编程和面向“实现”编程 (阅读:13343)
- PHP连贯接口 (阅读:6990)
- 存储基础知识之——硬盘接口简述 (阅读:6990)
- JavaScript Interface 接口的实现 (阅读:6537)
- 使用Mitmproxy分析接口 (阅读:6508)
- 干嘛不去掉“I”和“Impl”? (阅读:6302)
- 以用户为中心的 API 异常设计 (阅读:2983)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Tencent-ISD组织架构
后一篇:web应用应该考虑的一些问题 >>
文章信息
- 作者:zja601 来源: Zhang Jiuan' Notes
- 标签: 接口
- 发布时间:2010-06-03 22:29:14
建议继续学习
近3天十大热文
-
[928] WordPress插件开发 -- 在插件使用 -
[132] 解决 nginx 反向代理网页首尾出现神秘字 -
[52] 整理了一份招PHP高级工程师的面试题 -
[52] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] 海量小文件存储 -
[50] 全站换域名时利用nginx和javascri -
[49] 用 Jquery 模拟 select -
[49] CloudSMS:免费匿名的云短信 -
[47] Innodb分表太多或者表分区太多,会导致内 -
[46] ps 命令常见用法
