周末用了下新浪微博开放平台API和官方发布的Java客户端,感觉可以用两个字形容:坑爹!
先说说遇到的几个极其弱智的bug吧:
1)分页
官方API文档里面对数据分页获取的说明是使用cursor和count这两个参数。其中,cursor指明了起始记录的位置,而count指明了当前每页的记录条数,请求第一页的时候cursor为-1。返回结果会给出next_cursor,指明下一页的起始位置。
这个设计看起来不错,问题是根据这个文档,得到的结果会有重复。也就是说同一条记录会出现在多个页面中,而且这种重复出现的频率是随机的。试想连程序的行为都无法预测,叫别人怎么开发应用?!
更搞笑的是,官方发布的Java客户端居然把cursor写成了page,导致了不管怎么设置参数,返回的都是很多重复的数据,但重复的比例又是随机的!难道新浪没有对这个客户端进行过简单的测试就发布了吗?无法想象!!
2)返回结果的解析
好不容易把用户信息得到了,新浪自己写了一个JavaBean用来表示一个User的信息。问题是把JSON解析成Java对象的时候,居然把布尔属性字段解析错了,导致每次返回都是false,好不容易得到的数据就这么泡汤了~~难道解析JSON很难嘛??敢测试下再发布吗?
3)诡异的负数
我小学学到的知识告诉我,人的个数不可能是负数。于是我天真的在followers_count这个数据库字段上加了unsigned,本以为教数据库的老师应该很开心吧,这孩子设计的数据库还蛮严谨的,而且应该能够和新浪的数据很好地匹配。
于是我开心的运行程序,诡异的错误出现了:超出字段范围。晕,于是检查所有数字字段是否超过了表示范围,N遍检查过后确认数据库没问题,纠结~~于是看log,发现返回的数据里面,有一个项的followers_cout字段是-2,负数!!!尼玛这人虽然粉丝少了点,也不至于欠你新浪两个粉丝吧,我当时就凌乱了,于是加了很多异常数据的判断和检查。。。
4)诡异的版权信息
Java客户端里面很多文件的作者信息是:@author Yusuke Yamamoto - yusuke at mac.com,感觉这应该是一个苹果公司的员工开发的,然后新浪拿过来,没有code review,没有测试,就直接官方发布了。。。
这样不重视代码质量,把产品构建在志愿者的贡献之上,我觉得是新浪的耻辱,更是中国互联网产业的顽症恶疾。
以上只是我这两天试用了一小部分API的感受。由于各种bug,我不得不阅读源代码,并根据我的需求改写代码,甚至一度我准备抛弃这个客户端,直接用HTTP调用。反正最后严重降低了我的效率。
回想起这两天传高铁出事是程序员的问题,我看要按照新浪这质量标准,不知道还要出什么大事~~
分享到:
相关推荐
1.采用Material Design设计风格,轻巧灵便,简易唯美。 2.支持emoji表情,支持本地照片的发布。 3.支持查看gif图片,瀑布流显示图片相册。...6.支持分享微博到官方新浪微博,QQ空间及QQ好友。 欢迎下载使用,欢迎吐槽
新浪微博客户端的源码下载,里面用到了一个videoview,所以要将a5.mp4文件(http://pan.baidu.com/s/1nt6tlMD)复制到你手机SD卡的根目录,不下载也可以只是会黑屏2-3秒,此demo是自己搭的服务器(通过tomcat),请...
Jedis是Redis的Java客户端,它提供了一个丰富的API来操作Redis数据存储系统。Redis是一个高性能的键值数据库,常用于缓存、消息中间件以及数据结构服务器等场景。Jedis作为Java开发者与Redis交互的主要工具,使得在...
2. **Java客户端**:Java中常见的Redis客户端有Jedis、Lettuce和Redisson等。它们都提供了与Redis服务器通信的API,包括连接管理、命令执行、事务处理等功能。例如,Jedis是较早的Redis客户端,功能完备,而Lettuce...
总之,“haipe腾讯微博客户端”是一个基于Qt的创新项目,它展示了Qt强大的跨平台能力和在开发复杂网络应用上的灵活性。通过Qt,开发者可以为腾讯微博用户提供一个定制化、高性能的客户端工具,同时享受到Qt框架带来...
在".NET 三层架构制作吐槽网"项目中,我们看到这个应用可能包含用户登录、内容查看、信息发布、评论互动以及点赞功能,这些都是社交媒体平台的基础元素。下面将详细讲解这些知识点。 首先,三层架构主要分为以下三...
总结来说,Redisson作为一个强大的Java Redis客户端,提供了丰富的API和多种编程模型,适应不同场景的需求,是开发基于Redis的实时数据平台的理想选择。无论是简单的键值存储还是复杂的分布式服务,都能在Redisson的...
QT腾讯微博客户端是一款基于Qt框架开发的非官方微博客户端,主要功能是为用户提供方便快捷的方式来访问和管理腾讯微博。Qt是一个跨平台的C++图形用户界面应用程序开发框架,由挪威的Trolltech公司(现为Nokia所有)...
一个留言类型的网站,适合新手。吐槽网站。特别适合新手进行学习。也可以直接使用。
2. **网络通信**:Qt的网络模块(QNetworkAccessManager和QNetworkReply等)使得客户端能够与腾讯微博的API进行数据交换,实现登录、发布微博、查看时间线、评论和转发等功能。 3. **数据模型和视图**:Qt的模型/...
简单的实现了下读取用户微博,发送微博功能,仅供参考,不要吐槽。ps:kXLConsumerKey,kXLConsumerSecret,kXLRedirect_Url注意替换成自己的应用的信息,不然不能用的
该项目为“tucaole”社区吐槽平台,采用Java和HTML技术进行设计,源码包含241个文件,其中192个为Java源文件,29个为XML配置文件,7个为Markdown文档,7个为属性文件,3个为HTML页面,以及少量其他类型的文件。...
作为Java客户端,Flasher提供了友好的API接口,使得开发人员可以方便地在Java应用中集成和操作Redis Cluster。它封装了与Redis节点的通信细节,如连接管理、命令路由、错误处理等,开发者只需关注业务逻辑,而无需...
通过以上详细说明可以看出,语义开放平台API不仅提供了丰富的功能和服务,还具有高度的灵活性和扩展性,能够满足不同开发者的需求。无论是构建智能客服还是开发智能设备的应用程序,该平台都能提供有力的支持。
基于PHP的消息果留言板(吐槽版) PHP源码.zip
总的来说,邮槽服务器端和客户端的实现涉及到Windows API中的特定函数调用,如 `CreateMailslot`、`CreateFile`、`ReadFile` 和 `WriteFile`,以及对进程间通信的理解。通过运行`mailslot.cpp`先创建邮槽服务器,...
说实话,微信开放平台的文档真的是狗屎一般的存在,维护不及时,混乱,每隔一段时间更新一次授权接口!着实让开发者想口吐芬芳了!文档内跳来跳去,找不到一个完整的链路!维护好几套接口文档也就这一家了! 好了,...
这个压缩包中的“邮槽”文件可能包含了服务器端和客户端的源代码,包括头文件(.h)、实现文件(.cpp)以及可能的项目配置文件(.vcproj或.sln)。通过阅读和分析这些源代码,你可以了解到邮槽机制在VC++和MFC环境下...
这个简单的邮槽例子包括了客户端(MailSlotClient)和服务器(MailSlotServer)两部分,让我们深入了解一下邮槽的工作原理以及如何在实际应用中使用它们。 邮槽的概念源于传统的邮政系统,它允许消息从一个位置无须...
关于“吐槽弹幕”,这可能是指在播放视频时,用户可以发送即时评论,这些评论会以滚动或漂浮的方式显示在视频画面上,常见于二次元文化中的视频平台。在Android应用中,实现这一功能通常需要集成弹幕库,如...