第八章 版本化
到目前为止,我主要把API的设计当作一个离散的任务,似乎API一旦有了完整的说明并发布给用户,任务就算完成了。当然,在实际工作中,这不过是一连串复杂过程的开始。API发布后,真正的工作才拉开序幕,API的开发过程需要接受检验。
API 很少在1.0版本发布后就停止开发。总是会有漏洞要修复,新功能要整合,工作流程要简化,架构要改进,其它的平台要支持等。
API的初始版本发布后,...
分类:
编程语言 时间:
2014-02-28 14:05:20
收藏:
0 评论:
0 赞:
0 阅读:
441
贪心...
分类:
其他 时间:
2014-02-28 13:11:02
收藏:
0 评论:
0 赞:
0 阅读:
365
第九章 文档
在本书的第一章,我把API定义为一个或多个头文件再加上文档支持。事实上,除非API附带上文档,否则API还是处于未完成的状态。这是因为头文件并未指定API的行为,只是包含各种函数和方法的调用协议。David L. Parnas很好地解释过这些(Parnas, 1994):
重用是说起来容易,做起来难。这么做同时需要良好的设计和优秀的文档。即使是有不错的设计,这还是比较少见...
分类:
编程语言 时间:
2014-02-28 14:09:44
收藏:
0 评论:
0 赞:
0 阅读:
617
1.占带宽小(格式是压缩的)
2. js通过eval()进行Json读取(便于客户端读取)
3. JSON支持多种语言(c、c++、php等),便于服务端解析...
分类:
Web开发 时间:
2014-02-28 13:16:27
收藏:
0 评论:
0 赞:
0 阅读:
681
第十章 测试
每个开发人员,无论是多么有经验和细心,在编写软件时都会发生错误。特别是随着API大小和复杂度增加时就会变得不可避免了。测试的目的就是尽早找到这些缺陷,以便在影响你的用户之前解决好这些问题。
现代软件开发中非常依赖第三方API。一旦你的API被广泛使用,那么只要你的代码中有不足和缺点的话就会影响很多用户以及他们的终端用户程序。
正如前面提到过的,如果你实现的代码充满错...
分类:
编程语言 时间:
2014-02-28 13:39:56
收藏:
0 评论:
0 赞:
0 阅读:
719
第十一章 脚本
到本章为止,我主要关注的是API设计方面的通用内容,可以应用到所有的C++项目上。在涵盖了标准的API设计流程后,本书的剩余章节更多的是处理脚本和扩展性这些特别的主题。虽然不是所有的API都需要关心这些主题,但是它们正成为现代程序开发中更受欢迎的主题。因此,我认为对于一本全面介绍C++ API设计的书应该包括这些高级的主题。
相应地,本章讨论处理的主题是脚本。也就是说,...
分类:
编程语言 时间:
2014-02-28 14:28:20
收藏:
0 评论:
0 赞:
0 阅读:
613
介绍了linux用户态及内核态之间的通信手段netlink,给出了内核及用户态netlink的相关示例代码。...
分类:
Web开发 时间:
2014-02-28 12:22:09
收藏:
0 评论:
0 赞:
0 阅读:
579
接下来将慢慢涉入游戏的开发,作为第一篇介绍一个模拟平抛运动的小DEMO。主要核心是两个线程类:BallThread负责改变小球的状态和坐标位置,会用到一些常用的物理公式,相信大家并不陌生。DrawThread负责绘制界面图片,包括背景,木板,小球。这两个线程相结合,就实现了模拟小球的平抛运动并将其绘制在界面上。
MainActivity:
package com.home.simulation...
分类:
其他 时间:
2014-02-28 11:55:10
收藏:
0 评论:
0 赞:
0 阅读:
480
关于直方图,这里不多介绍。这里主要对如何使用GDAL获取直方图进行说明。使用GDAL获取直方图的函数叫做GDALRasterBand::GetHistogram(),下面对这个函数的参数进行一个大致的说明。函数GDALRasterBand::GetHistogram的定义如下:
CPLErrGDALRasterBand::GetHistogram ( double dfMin, double...
分类:
其他 时间:
2014-02-28 12:42:06
收藏:
0 评论:
0 赞:
0 阅读:
942
最近在搞IM视频,需要多个摄像头用于调试,但没有硬件。所以在网上找了些虚拟摄像头。
windows:
VCam 虚拟摄像头:http://cn.e2esoft.cn/ 需要注册,不过不注册好象也没啥限制。不管,反正测试用不了多长时间。
linux:
环境为ubuntu11.10
apt-get install module-assistant
m-a prepare...
分类:
其他 时间:
2014-02-28 12:21:39
收藏:
0 评论:
0 赞:
0 阅读:
693
由于在下最近在做基于HTML5的跨平台移植,搭建环境的时候着实费了不少劲。现在空闲下来顺便整理一下,给大家分享。
首先介绍一下PhoneGap。
PhoneGap是一款基于HTML5标准的跨平台开源手机Web应用开发框架。它允许用户通过Web技术访问移动设备的本地应用、API接口及应用程序等。
PhoneGap的官方网站是http://www.phonegap.com。 朋友们可以通过官方网...
分类:
其他 时间:
2014-02-28 13:38:26
收藏:
0 评论:
0 赞:
0 阅读:
525
之前在东软代码生成器的代码中,我们经常看到strbuilder的使用。在之前,无论是机房收费系统还是学生信息管理系统,用的居多还是string。这次这里使用这个一个对象,所以小小的研究一下。花了一点时间做了一个小demo来熟悉一下。
和string在效率的执行的差异
在东软中,主要是用来拼接一些sql的字符串。就是这个对象常用的方法append,直接来看看例子和执行的效率。...
分类:
其他 时间:
2014-02-28 13:37:57
收藏:
0 评论:
0 赞:
0 阅读:
286
试题3:写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。另外,当你写下面的代码时会发生什么事?
least = MIN(*p++, b);
解答:
#define MIN(A,B) ((A) <= (B) ? (A) : (B))
MIN(*p++, b)会产生宏的副作用
剖析:
这个面试题主要考查面试者对宏定义的使用,宏定义可以实现类似于函数的功能,但是它终归不是函...
分类:
其他 时间:
2014-02-28 14:26:56
收藏:
0 评论:
0 赞:
0 阅读:
440
21.创建和操作表
21.1.创建表
CREATE TABLE创建表,必须给出下列信息:
1) 新表的名字,在关键字CREATETABLE之后
2) 表列的名字和定义,用逗号分隔
CREATE TABLE customers
(
cust_id int NOT NULL AUTO_INCREM...
分类:
数据库技术 时间:
2014-02-28 13:10:03
收藏:
0 评论:
0 赞:
0 阅读:
543
birt报表中的数据都是来自于你所配的数据源。
然后具体可以在数据集中写具体的sql语句比如:select user_name(注:名称),week(周时段),.......(其他字段) from table order by week_no(周序号);就是把每人每周的相关业务数据给展示出来。
但是,order by 在sql中写不起作用(原因不明,但就是不起作用)。
结果所查出来的列字段...
分类:
其他 时间:
2014-02-28 12:19:39
收藏:
0 评论:
0 赞:
0 阅读:
723
__weak typeof(self) weakSelf = self;
/* Update the scrubber during normal playback. */
[weakSelf.player addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(interval, NSEC_PER_SEC)
...
分类:
其他 时间:
2014-02-28 14:03:26
收藏:
0 评论:
0 赞:
0 阅读:
613
#include
#include
using namespace std;
class base {
public :
int ma;
private:
virtual int fun1()
{
cout<<"base: fun1"<<endl;
return 0;
}
virtual void fun2()
{
cout<<"base: fun2"<<endl;...
分类:
编程语言 时间:
2014-02-28 13:09:30
收藏:
0 评论:
0 赞:
0 阅读:
460
最近总结了一下Java的面试题
1、面向对象的特征
抽象、封装、继承、多态性
2、String和StringBuffer、StringBuilder 的区别
String 字符串常量,每当值改变时就等于新生成了一个对象。
StringBuffer 字符串变量,它在赋值的时候都是对对象本身进行操作,而不是像string一样生成新的对象,
java.lang.StringBuilder一...
分类:
其他 时间:
2014-02-28 14:08:24
收藏:
0 评论:
0 赞:
0 阅读:
487
#!/usr/bin/env python
#encoding: utf-8
import sys #引用sys模块进来,并不是进行sys的第一次加载
reload(sys) #重新加载sys
sys.setdefaultencoding('utf8') ##调用setdefaultencoding函数
可以正确的执行,可是下面的代码会出错
#!/usr/bin...
分类:
编程语言 时间:
2014-02-28 12:40:46
收藏:
0 评论:
0 赞:
0 阅读:
531
Winform-根据当前IP获取所在城市名称...
分类:
Windows开发 时间:
2014-02-28 13:32:08
收藏:
0 评论:
0 赞:
0 阅读:
675