我為什么放棄使用leancloud
來(lái)源:易賢網(wǎng) 閱讀:4168 次 日期:2015-04-09 15:57:15
溫馨提示:易賢網(wǎng)小編為您整理了“我為什么放棄使用leancloud”,方便廣大網(wǎng)友查閱!

關(guān)注leancloud已經(jīng)有一段時(shí)間了,其宣布的眾多開(kāi)發(fā)語(yǔ)言支持,以及SMS, 對(duì)象存儲(chǔ), 用戶管理及鑒權(quán),推送,聊天等服務(wù)對(duì)于開(kāi)發(fā)目前主流的移動(dòng)應(yīng)用來(lái)說(shuō),吸引力很大。我們開(kāi)發(fā)的不同移動(dòng)應(yīng)用,需要去維護(hù)不同的管理后臺(tái)和服務(wù),開(kāi)發(fā)起來(lái)重復(fù)而繁瑣,如果leancloud能夠幫助我們減輕這些工作,那真是物超所值。

為了將應(yīng)用遷移到leancloud的方案大概如下:

使用leancloud作為后端存儲(chǔ),用戶管理和鑒權(quán)引擎;

使用python開(kāi)發(fā)一個(gè)管理界面, 來(lái)幫助管理員編輯文章,發(fā)布信息;

使用js, oc作為前端語(yǔ)言來(lái)開(kāi)發(fā)用戶界面;

在第二步的時(shí)候, 我們希望先試驗(yàn)下如下兩個(gè)簡(jiǎn)單的user cases:

創(chuàng)建若干個(gè)對(duì)象,存儲(chǔ)在leancloud中;

注冊(cè)一個(gè)用戶,確定注冊(cè)結(jié)果,并能驗(yàn)證提供的手機(jī)和郵箱;

就是這么兩個(gè)最簡(jiǎn)單的用例,一整個(gè)晚上下來(lái),居然沒(méi)有搞定。 首先,除了官方文檔,leancloud基本很難看到任何其它形式的文檔,比如FAQ, 論壇,社區(qū),stackoverflow, 反正google不出來(lái),其次,就是這僅有的官方文檔,也是坑爹啊, 以下是我從官方文檔上copy的代碼片段,幾乎未做修改。

# -*- coding: utf-8 -*-

#coding=utf-8

import leancloud

APP_ID='temv66wvy83zurm3710wt9kir41zaza5gfu0gkhzzcf4a1yv'

APP_KEY='00zuyjgtcvjs31qy7ysktd43fevoblt4e4yx2yjf8gt46q8d'

MASTER_KEY='82irmrurzr9ib2axiputuh6ul8b9zozs7qbcfpchf0t2ts80'

leancloud.init(APP_ID, "%s/%s" % (APP_KEY, MASTER_KEY))

user = leancloud.User()

user.set("username", "admin")

user.set("password", "admin")

user.set("email", "")

# other fields can be set just like with leancloud.Object

user.set("phone", "415-392-0202")

try:

user.sign_up()

except Exception, e:

print e

# Hooray! Let them use the app now.

問(wèn)題1: SSL InsecurePlatformWarning

在Mac OS和Linux上運(yùn)行該程序,用戶注冊(cè)失敗,并會(huì)首先觀察到如下的警告:

/usr/lib/python2.7/site-packages/requests-2.6.0-py2.7.egg/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see .

InsecurePlatformWarning

不過(guò)一番查找后發(fā)現(xiàn)這好像是urllib3的一個(gè)通用問(wèn)題,可以按照如下方法來(lái)解決。但是如此通用的問(wèn)題,居然連一個(gè)FAQ都看不到。

$ pip install pyopenssl ndg-httpsclient pyasn1

問(wèn)題2: sign_up()報(bào)告401錯(cuò)誤

解決問(wèn)題1以后,sign_up()會(huì)一直報(bào)告401錯(cuò)誤(unauthorized), 經(jīng)過(guò)近一個(gè)小時(shí)的定位,發(fā)現(xiàn)該錯(cuò)誤由leancloud初始化函數(shù)導(dǎo)致, 編程指南上的用法如下:

leancloud.init(APP_ID, "%s/%s" % (APP_KEY, MASTER_KEY))

但是參考手冊(cè)上確是這么寫(xiě)的:

leancloud.client.init(APP_ID, APP_KEY, MASTER_KEY)

兩個(gè)方式都不會(huì)報(bào)告語(yǔ)法錯(cuò),但是前者確好像不能正常工作,查了好久才找到后面的API, 坑爹啊。

問(wèn)題3: sign_up()允許重復(fù)注冊(cè)

以上測(cè)試代碼,連續(xù)執(zhí)行兩次,居然都成功了,并且在leancloud后臺(tái)能看到兩條相同的用戶紀(jì)錄。sign_up()默認(rèn)居然可以重復(fù)注冊(cè)?找了好久,發(fā)現(xiàn)應(yīng)用選項(xiàng)中可以配置啟用注冊(cè)用戶郵箱驗(yàn)證等選項(xiàng),勾選了以后,第二次調(diào)用sign_up報(bào)錯(cuò)。

問(wèn)題4: sign_up()無(wú)法獲得失敗原因

捕獲到sign_up()異常后,本想打印該異常來(lái)獲得失敗原因,結(jié)果卻導(dǎo)致如下異常:

Traceback (most recent call last):

File "test1.py", line 23, in <module>

print e

UnicodeEncodeError: 'ascii' codec can't encode characters in position 6-16: ordinal not in range(128)

問(wèn)題5: Python sdk沒(méi)有相關(guān)的API來(lái)驗(yàn)證注冊(cè)用戶的郵箱或者手機(jī)

用戶sign_up以后,可以看到leancloud應(yīng)用后臺(tái)的_user表中會(huì)有該用戶信息,同時(shí)還有驗(yàn)證郵箱的鏈接,但是我如果在自己的python后臺(tái)中提供這個(gè)功能呢?百事不得其解。

問(wèn)題6: 官方文檔的語(yǔ)法錯(cuò)誤

以下是leancloud Python SDK編程指南的例程, 可以看出第五行應(yīng)該是game_score.save()而不是game.save()

game_score = GameScore()

game_score.set('score', 42) # or game_score.score = 42

game_score.set('cheatMode', False)

game_score.set('playerName', 'Marvin')

game.save()

# 還可以通過(guò)關(guān)鍵字參數(shù),在創(chuàng)建對(duì)象的同時(shí)進(jìn)行賦值

game_score = GameScore(score=42, playerName='Marvin')

至此,我基本決定放棄了,因?yàn)椴恢涝偻伦哌€有什么坑,顯然解決這些問(wèn)題的時(shí)間已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)我實(shí)現(xiàn)這兩個(gè)基本用例的時(shí)間。總結(jié)一下原因吧:

沒(méi)有真正從用戶角度去考慮API設(shè)計(jì)(問(wèn)題3,5);

文檔非常少,并且文檔已經(jīng)過(guò)期 (問(wèn)題2);

bug多 (問(wèn)題4, 6);

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看技術(shù)文章
易賢網(wǎng)手機(jī)網(wǎng)站地址:我為什么放棄使用leancloud
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)