午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

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

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

    為了將應用遷移到leancloud的方案大概如下:

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

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

    使用js, oc作為前端語言來開發(fā)用戶界面;

    在第二步的時候, 我們希望先試驗下如下兩個簡單的user cases:

    創(chuàng)建若干個對象,存儲在leancloud中;

    注冊一個用戶,確定注冊結(jié)果,并能驗證提供的手機和郵箱;

    就是這么兩個最簡單的用例,一整個晚上下來,居然沒有搞定。 首先,除了官方文檔,leancloud基本很難看到任何其它形式的文檔,比如FAQ, 論壇,社區(qū),stackoverflow, 反正google不出來,其次,就是這僅有的官方文檔,也是坑爹啊, 以下是我從官方文檔上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.

    問題1: SSL InsecurePlatformWarning

    在Mac OS和Linux上運行該程序,用戶注冊失敗,并會首先觀察到如下的警告:

    /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

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

    $ pip install pyopenssl ndg-httpsclient pyasn1

    問題2: sign_up()報告401錯誤

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

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

    但是參考手冊上確是這么寫的:

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

    兩個方式都不會報告語法錯,但是前者確好像不能正常工作,查了好久才找到后面的API, 坑爹啊。

    問題3: sign_up()允許重復注冊

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

    問題4: sign_up()無法獲得失敗原因

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

    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)

    問題5: Python sdk沒有相關(guān)的API來驗證注冊用戶的郵箱或者手機

    用戶sign_up以后,可以看到leancloud應用后臺的_user表中會有該用戶信息,同時還有驗證郵箱的鏈接,但是我如果在自己的python后臺中提供這個功能呢?百事不得其解。

    問題6: 官方文檔的語法錯誤

    以下是leancloud Python SDK編程指南的例程, 可以看出第五行應該是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ān)鍵字參數(shù),在創(chuàng)建對象的同時進行賦值

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

    至此,我基本決定放棄了,因為不知道再往下走還有什么坑,顯然解決這些問題的時間已經(jīng)遠遠超過我實現(xiàn)這兩個基本用例的時間。總結(jié)一下原因吧:

    沒有真正從用戶角度去考慮API設(shè)計(問題3,5);

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

    bug多 (問題4, 6);

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

    更多信息請查看技術(shù)文章
    易賢網(wǎng)手機網(wǎng)站地址:我為什么放棄使用leancloud

    2025國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)