IT技術(shù)小屋

          秋風(fēng)秋雨,皆入我心

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            38 隨筆 :: 1 文章 :: 19 評(píng)論 :: 0 Trackbacks

          周末用了下新浪微博開放平臺(tái)API和官方發(fā)布的Java客戶端,感覺可以用兩個(gè)字形容:坑爹!

          先說(shuō)說(shuō)遇到的幾個(gè)極其弱智的bug吧:

          1)分頁(yè)

          官方API文檔里面對(duì)數(shù)據(jù)分頁(yè)獲取的說(shuō)明是使用cursor和count這兩個(gè)參數(shù)。其中,cursor指明了起始記錄的位置,而count指明了當(dāng)前每頁(yè)的記錄條數(shù),請(qǐng)求第一頁(yè)的時(shí)候cursor為-1。返回結(jié)果會(huì)給出next_cursor,指明下一頁(yè)的起始位置。

          這個(gè)設(shè)計(jì)看起來(lái)不錯(cuò),問(wèn)題是根據(jù)這個(gè)文檔,得到的結(jié)果會(huì)有重復(fù)。也就是說(shuō)同一條記錄會(huì)出現(xiàn)在多個(gè)頁(yè)面中,而且這種重復(fù)出現(xiàn)的頻率是隨機(jī)的。試想連程序的行為都無(wú)法預(yù)測(cè),叫別人怎么開發(fā)應(yīng)用?!

          更搞笑的是,官方發(fā)布的Java客戶端居然把cursor寫成了page,導(dǎo)致了不管怎么設(shè)置參數(shù),返回的都是很多重復(fù)的數(shù)據(jù),但重復(fù)的比例又是隨機(jī)的!難道新浪沒有對(duì)這個(gè)客戶端進(jìn)行過(guò)簡(jiǎn)單的測(cè)試就發(fā)布了嗎?無(wú)法想象!!

          2)返回結(jié)果的解析

          好不容易把用戶信息得到了,新浪自己寫了一個(gè)JavaBean用來(lái)表示一個(gè)User的信息。問(wèn)題是把JSON解析成Java對(duì)象的時(shí)候,居然把布爾屬性字段解析錯(cuò)了,導(dǎo)致每次返回都是false,好不容易得到的數(shù)據(jù)就這么泡湯了~~難道解析JSON很難嘛??敢測(cè)試下再發(fā)布嗎?

          3)詭異的負(fù)數(shù)

          我小學(xué)學(xué)到的知識(shí)告訴我,人的個(gè)數(shù)不可能是負(fù)數(shù)。于是我天真的在followers_count這個(gè)數(shù)據(jù)庫(kù)字段上加了unsigned,本以為教數(shù)據(jù)庫(kù)的老師應(yīng)該很開心吧,這孩子設(shè)計(jì)的數(shù)據(jù)庫(kù)還蠻嚴(yán)謹(jǐn)?shù)模覒?yīng)該能夠和新浪的數(shù)據(jù)很好地匹配。

          于是我開心的運(yùn)行程序,詭異的錯(cuò)誤出現(xiàn)了:超出字段范圍。暈,于是檢查所有數(shù)字字段是否超過(guò)了表示范圍,N遍檢查過(guò)后確認(rèn)數(shù)據(jù)庫(kù)沒問(wèn)題,糾結(jié)~~于是看log,發(fā)現(xiàn)返回的數(shù)據(jù)里面,有一個(gè)項(xiàng)的followers_cout字段是-2,負(fù)數(shù)!!!尼瑪這人雖然粉絲少了點(diǎn),也不至于欠你新浪兩個(gè)粉絲吧,我當(dāng)時(shí)就凌亂了,于是加了很多異常數(shù)據(jù)的判斷和檢查。。。

          4)詭異的版權(quán)信息

          Java客戶端里面很多文件的作者信息是:@author Yusuke Yamamoto - yusuke at mac.com,感覺這應(yīng)該是一個(gè)蘋果公司的員工開發(fā)的,然后新浪拿過(guò)來(lái),沒有code review,沒有測(cè)試,就直接官方發(fā)布了。。。

          這樣不重視代碼質(zhì)量,把產(chǎn)品構(gòu)建在志愿者的貢獻(xiàn)之上,我覺得是新浪的恥辱,更是中國(guó)互聯(lián)網(wǎng)產(chǎn)業(yè)的頑癥惡疾。

          以上只是我這兩天試用了一小部分API的感受。由于各種bug,我不得不閱讀源代碼,并根據(jù)我的需求改寫代碼,甚至一度我準(zhǔn)備拋棄這個(gè)客戶端,直接用HTTP調(diào)用。反正最后嚴(yán)重降低了我的效率。

          回想起這兩天傳高鐵出事是程序員的問(wèn)題,我看要按照新浪這質(zhì)量標(biāo)準(zhǔn),不知道還要出什么大事~~

           

          posted on 2011-07-31 20:49 Meng Lee 閱讀(3818) 評(píng)論(11)  編輯  收藏 所屬分類: 互聯(lián)網(wǎng)

          評(píng)論

          # re: 關(guān)于新浪微博開放平臺(tái)API和Java客戶端的吐槽 2011-08-01 01:19 altchen
          寫的還挺好笑,哈哈哈  回復(fù)  更多評(píng)論
            

          # re: 關(guān)于新浪微博開放平臺(tái)API和Java客戶端的吐槽[未登錄] 2011-08-01 08:57 alpha
          4)詭異的版權(quán)信息

          這個(gè)不同意你的觀點(diǎn),這是尊重版權(quán)信息,使用人家提供的算法,又怎能去掉人家的版權(quán)信息,人家不告你告誰(shuí)。  回復(fù)  更多評(píng)論
            

          # re: 關(guān)于新浪微博開放平臺(tái)API和Java客戶端的吐槽 2011-08-01 09:35 毛叔
          新浪的java SDK是對(duì)twitter4j進(jìn)行改動(dòng)而生成的,twitter4j沒有這么多問(wèn)題,而且演進(jìn)很快,twitter4j的作者就是Yusuke Yamamoto。也不知道新浪具體是改動(dòng)的哪個(gè)版本的twitter4j。
          同意你的說(shuō)法,新浪的SDK沒有測(cè)試就發(fā)布了,而且很長(zhǎng)一段時(shí)間沒有更新。  回復(fù)  更多評(píng)論
            

          # re: 關(guān)于新浪微博開放平臺(tái)API和Java客戶端的吐槽 2011-08-01 10:11 JarnTang
          我上次調(diào)用sina的api,也被坑了,導(dǎo)致網(wǎng)站的交易出現(xiàn)異常,后來(lái)對(duì)sina的所有接口返回的數(shù)據(jù)全部自己檢驗(yàn)一次  回復(fù)  更多評(píng)論
            

          # re: 關(guān)于新浪微博開放平臺(tái)API和Java客戶端的吐槽 2011-08-01 10:28 Meng Lee
          原來(lái)是這樣,受教了~~@毛叔
            回復(fù)  更多評(píng)論
            

          # re: 關(guān)于新浪微博開放平臺(tái)API和Java客戶端的吐槽 2011-08-01 10:29 Meng Lee
          我只是說(shuō)這個(gè)客戶端不是新浪開發(fā)的,版權(quán)信息確實(shí)需要保留的@alpha
            回復(fù)  更多評(píng)論
            

          # re: 關(guān)于新浪微博開放平臺(tái)API和Java客戶端的吐槽 2011-08-01 11:35 HiMagic!
          哈哈,Sina玩Java還不夠火候,連PHP都玩的不太轉(zhuǎn),弄個(gè)AppEngine問(wèn)題一籮筐,不知道他們的工程師一個(gè)月拿多少錢  回復(fù)  更多評(píng)論
            

          # re: 關(guān)于新浪微博開放平臺(tái)API和Java客戶端的吐槽 2011-08-01 13:50 seaeast

          方便的話,可以加下我Msn:su.haidong@hotmail.com或者Q:540003006

          1、這個(gè)確實(shí)存在這個(gè)問(wèn)題,晚些會(huì)更新下。
          2、這個(gè)是指哪個(gè)字段?
          3、負(fù)數(shù)的問(wèn)題

          麻煩能給個(gè)聯(lián)系方式嘛?
          我好確認(rèn)下問(wèn)題,多謝。




            回復(fù)  更多評(píng)論
            

          # re: 關(guān)于新浪微博開放平臺(tái)API和Java客戶端的吐槽 2011-09-05 11:00 happy
          全部都遇到這樣的問(wèn)題了我,關(guān)鍵是分頁(yè)始終沒有成功過(guò),  回復(fù)  更多評(píng)論
            

          # re: 關(guān)于新浪微博開放平臺(tái)API和Java客戶端的吐槽 2011-11-29 21:33 djoy
          我也發(fā)現(xiàn)了 這個(gè)jason解析太坑爹了 而且我在返回關(guān)注id的時(shí)候居然返回到了不存在的id 繼續(xù)檢查它的api 看得我郁悶死了  回復(fù)  更多評(píng)論
            

          # re: 關(guān)于新浪微博開放平臺(tái)API和Java客戶端的吐槽 2011-12-16 14:59 電玩
          Yusuke Yamamoto,作者是個(gè)日本人,叫山本裕介。Sina真應(yīng)該叫支那  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 宜黄县| 潜江市| 曲周县| 武陟县| 常州市| 石渠县| 云林县| 称多县| 平原县| 来宾市| 水城县| 屏山县| 仁化县| 南漳县| 金乡县| 屏南县| 东山县| 沈丘县| 勃利县| 博客| 台湾省| 当雄县| 淳安县| 固阳县| 壤塘县| 岳西县| 朔州市| 格尔木市| 汕尾市| 抚宁县| 双牌县| 基隆市| 大洼县| 六枝特区| 承德县| 霍山县| 卢氏县| 西林县| 永德县| 江津市| 博白县|