{ "version": "https://jsonfeed.org/version/1", "title": "LeanCloud", "description": "\u6700\u597d\u7684\u79fb\u52a8\u5e94\u7528\u5f00\u53d1\u4e00\u7ad9\u5f0f\u670d\u52a1\uff0c\u8ba9\u5c0f\u56e2\u961f\u4e5f\u80fd\u505a\u51fa\u5927\u4ea7\u54c1\u3002", "home_page_url": "go/leancloud", "feed_url": "feed/leancloud.json", "icon": "https://cdn.v2ex.com/navatar/7c59/0f01/795_large.png?m=1740160934", "favicon": "https://cdn.v2ex.com/navatar/7c59/0f01/795_normal.png?m=1740160934", "items": [ { "author": { "url": "member/badboy200600", "name": "badboy200600", "avatar": "https://cdn.v2ex.com/avatar/86a7/250f/151776_large.png?m=1775106733" }, "url": "t/1185041", "title": "LeanCloud \u65e0\u4e86?", "id": "t/1185041", "date_published": "2026-01-12T13:10:57+00:00", "content_html": "

\u5173\u4e8e LeanCloud \u505c\u6b62\u5bf9\u5916\u63d0\u4f9b\u670d\u52a1\u7684\u901a\u77e5\n\u5c0a\u656c\u7684 LeanCloud \u7528\u6237\uff1a

\n

\u611f\u8c22\u60a8\u4e00\u76f4\u4ee5\u6765\u5bf9 LeanCloud \u7684\u4fe1\u4efb\u4e0e\u652f\u6301\u3002\u81ea\u5e73\u53f0\u4e0a\u7ebf\u4ee5\u6765\uff0c\u6211\u4eec\u966a\u4f34\u5e76\u89c1\u8bc1\u4e86\u65e0\u6570\u5f00\u53d1\u8005\u7684\u6210\u957f\u4e0e\u521b\u65b0\uff0c\u80fd\u4e0e\u5927\u5bb6\u5171\u540c\u8d70\u8fc7\u8fd9\u5341\u4f59\u5e74\uff0c\u6211\u4eec\u6df1\u611f\u8363\u5e78\u3002

\n

\u4e3a\u4e86\u56e2\u961f\u80fd\u805a\u7126\u6253\u9020\u66f4\u4f18\u8d28\u7684\u4ea7\u54c1\uff0c\u7ecf\u8fc7\u614e\u91cd\u8003\u8651\uff0c\u6211\u4eec\u51b3\u5b9a\u9010\u6b65\u505c\u6b62 LeanCloud \u7684\u670d\u52a1\u3002

\n

\u4e3a\u4fdd\u969c\u60a8\u7684\u4e1a\u52a1\u5e73\u7a33\u8fc7\u6e21\uff0c\u6211\u4eec\u5236\u5b9a\u4e86\u4e3a\u671f\u4e00\u5e74\u7684\u540e\u7eed\u670d\u52a1\u53ca\u5584\u540e\u8ba1\u5212\uff0c\u5177\u4f53\u5b89\u6392\u5982\u4e0b\uff1a

\n

\u529f\u80fd\u51bb\u7ed3\n\u4ece 2026 \u5e74 1 \u6708 12 \u65e5\u8d77\uff1a

\n

\u505c\u6b62\u65b0\u7528\u6237\u6ce8\u518c\n\u505c\u6b62\u521b\u5efa\u65b0\u7684\u5e94\u7528\uff08 App \uff09\n\u73b0\u6709\u5b58\u91cf\u5e94\u7528\u5728\u6b63\u5f0f\u505c\u6b62\u670d\u52a1\u524d\uff0c\u4ecd\u53ef\u7ee7\u7eed\u6b63\u5e38\u4f7f\u7528\u3002

\n

\u6b63\u5f0f\u505c\u6b62\u670d\u52a1\u65f6\u95f4\u8868\n\u6b63\u5f0f\u505c\u6b62\u670d\u52a1\u65f6\u95f4\uff1a\u81ea\u672c\u516c\u544a\u53d1\u5e03\u4e4b\u65e5\u8d77\u6ee1\u4e00\u5e74\uff0c\u5373 2027 \u5e74 1 \u6708 12 \u65e5\u3002

\n

\u5c4a\u65f6\uff0c\u5e73\u53f0\u5c06\u6b63\u5f0f\u5173\u95ed\u6240\u6709\u9762\u5411\u516c\u4f17\u7684\u670d\u52a1\uff0c\u5305\u62ec\u5e94\u7528\u8bbf\u95ee\u3001\u6570\u636e\u8bfb\u5199\u3001API \u8c03\u7528\u3001\u63a7\u5236\u53f0\u4f7f\u7528\u7b49\u3002

\n" }, { "author": { "url": "member/Stendan", "name": "Stendan", "avatar": "https://cdn.v2ex.com/gravatar/f9de90ec72bec48eda14ec2131b181f8?s=73&d=retro" }, "url": "t/867289", "title": "8 \u6708 1 \u65e5\u8d77\uff0c LeanCloud \u56fd\u9645\u7248\u5171\u4eab\u57df\u540d\u4e0d\u518d\u5411\u4e2d\u56fd\u5927\u9646\u63d0\u4f9b\u670d\u52a1", "id": "t/867289", "date_published": "2022-07-19T07:37:51+00:00", "content_html": "

valine gg \u4e86

\n" }, { "author": { "url": "member/lovepplforever", "name": "lovepplforever", "avatar": "https://cdn.v2ex.com/gravatar/2b0f0fddd095190dbcf2850407eeaab9?s=73&d=retro" }, "url": "t/866516", "title": "LeanCloud \u51c9\u4e86\u5417\uff1f", "id": "t/866516", "date_published": "2022-07-15T12:32:00+00:00", "content_html": "" }, { "author": { "url": "member/adjusted", "name": "adjusted", "avatar": "https://cdn.v2ex.com/avatar/f0b5/7183/15707_large.png?m=1614095986" }, "url": "t/768350", "title": "LeanCloud \u5c06\u52a0\u5165\u5fc3\u52a8/TapTap", "id": "t/768350", "date_published": "2021-04-06T05:12:50+00:00", "content_html": "

https://leancloudblog.com/new-chapter

\n" }, { "author": { "url": "member/moshou", "name": "moshou", "avatar": "https://cdn.v2ex.com/avatar/e5e9/37a8/175875_large.png?m=1737987913" }, "url": "t/750546", "date_modified": "2021-02-02T17:49:05+00:00", "content_html": "

\u6211\u81ea\u5df1\u7684\u540e\u7aef\u670d\u52a1\u548c\u524d\u7aef\u4e00\u4e9b\u76f8\u5173 SDK \u4e00\u76f4\u4f7f\u7528\u7684\u662f LeanCloud \u63d0\u4f9b\u7684\u3002

\n

\u4e0a\u5468\u53d1\u5e03\u65b0\u7248\u672c\u540e\uff0c\u53d1\u73b0 App \u51fa\u73b0\u4e00\u4e2a bug\uff0c\u7528\u6237\u767b\u5f55\u540e\uff0ckill \u6389 App\uff0c\u518d\u6b21\u6253\u5f00 App \u9700\u8981\u91cd\u65b0\u767b\u5f55\u3002

\n

\u8fd9\u4e2a bug \u6211\u627f\u8ba4\u662f\u6211\u6d4b\u8bd5\u4e0d\u5230\u4f4d\u5bfc\u81f4\u6d41\u5165\u7ebf\u4e0a\u7684\uff0c\u4f46\u662f\u6392\u67e5\u95ee\u9898\u540e\uff0c\u53d1\u73b0\u662f LeanCloud \u63d0\u4f9b\u7684 SDK \u4e2d\u7684 bug\uff0c\u63d0\u4ea4\u5de5\u5355\u548c\u4ed6\u4eec\u7684\u5de5\u4f5c\u4eba\u5458\u4e00\u8d77\u786e\u8ba4\u4e86\u8fd9\u4e2a\u95ee\u9898\u7684\u786e\u662f LeanCloud \u63d0\u4f9b\u7684\u3002

\n

\"image.png\"

\n
\n

\u786e\u8ba4\u95ee\u9898\u540e\uff0c\u6211\u5c31\u54a8\u8be2\u4e86\u4e0b\u8d54\u507f\u7684\u4e8b\u5b9c\uff0c\u4f5c\u4e3a\u987e\u5ba2\uff0c\u6211\u80af\u5b9a\u5e0c\u671b\u5f97\u5230\u4e00\u4e9b\u8d54\u507f\u3002

\n

\u7136\u540e\u4ed6\u4eec\u7684\u7b54\u590d\u662f\u6839\u636e SDK \u7684\u4f7f\u7528\u534f\u8bae\uff0c\u662f\u6ca1\u6709\u4efb\u4f55\u8d54\u507f\u7684\u3002

\n

\"image.png\"

\n
\n

\u5f53\u7136\u6211\u89c9\u5f97\u6709\u534f\u8bae\u5728\u5148\uff0c\u4e0d\u8d54\u507f\u4e5f\u662f\u7406\u89e3\u7684\uff0c\u6211\u53ea\u662f\u602a\u6211\u5f53\u521d\u4f7f\u7528\u7684\u65f6\u5019\u6ca1\u9605\u8bfb\u534f\u8bae\u3002

\n

\u53d1\u8fd9\u4e2a\u5e16\u5b50\u4e5f\u662f\u5206\u4eab\u4e0b\u81ea\u5df1\u5728\u8fd9\u91cc\u8e29\u7684\u5751\uff0c\u5927\u5bb6\u5728\u4f7f\u7528\u76f8\u5173\u670d\u52a1\u65f6\u5019\uff0c\u591a\u8bfb\u8bfb\u534f\u8bae\u3002

\n", "date_published": "2021-02-02T03:20:53+00:00", "title": "\u5173\u4e8e\u6211\u5728\u4f7f\u7528 LeanCloud \u65f6\u5019\u9047\u5230\u7684\u7684\u4e00\u4e9b\u60c5\u51b5\u5206\u4eab", "id": "t/750546" }, { "author": { "url": "member/omi4399", "name": "omi4399", "avatar": "https://cdn.v2ex.com/avatar/7e81/45ab/64899_large.png?m=1720167908" }, "url": "t/619797", "date_modified": "2019-11-15T03:04:00+00:00", "content_html": "\u6240\u6709\u670d\u52a1\u5168\u6302\uff0c\u4e3b\u7ad9\u548c\u5de5\u5355\u4e5f\u8fdb\u4e0d\u53bb\u4e86 = =
", "date_published": "2019-11-15T03:02:31+00:00", "title": "Leancloud \u53c8\u53cc\u53d2\u53d5\u6302\u4e86\uff0c\u70b8\u7ad9\u4e86", "id": "t/619797" }, { "author": { "url": "member/paloalto", "name": "paloalto", "avatar": "https://cdn.v2ex.com/avatar/ea8f/cd92/1380_large.png?m=1755097894" }, "url": "t/596283", "date_modified": "2019-08-29T09:28:58+00:00", "content_html": "





\u662f\u6ca1\u8003\u8651\u6c47\u7387\u5bfc\u81f4\u7684 bug \u8fd8\u662f\u7279\u610f\u8fd9\u4e48\u8bbe\u8ba1\u7684 feature?", "date_published": "2019-08-29T09:27:34+00:00", "title": "\u4e3a\u4ec0\u4e48 LeanCloud \u4e2d\u56fd\u7248\u4e91\u5f15\u64ce\u7684\u6807\u51c6\u7248\u5b9e\u4f8b\u4ef7\u683c\u662f \uffe5 1/\u5929\uff0c\u56fd\u9645\u7248\u7684\u662f $1/\u5929\uff1f", "id": "t/596283" }, { "author": { "url": "member/bgm004", "name": "bgm004", "avatar": "https://cdn.v2ex.com/avatar/56f7/577e/364273_large.png?m=1718931843" }, "url": "t/590872", "date_modified": "2020-06-17T09:53:33+00:00", "content_html": "

\u96be\u53d7\u554a\uff0c\u521a\u521a\u6536\u5230 leancloud \u7684\u901a\u77e5\u90ae\u4ef6\u3002\u5f3a\u5236\u6240\u6709\u5e94\u7528\u7ed1\u5b9a\u57df\u540d\u3002

\n

\u53ea\u80fd gitment \u548c disqus\uff0c2 \u9009\u4e00\u4e86\u3002

\n", "date_published": "2019-08-11T01:24:47+00:00", "title": "leancloud \u5f3a\u5236\u7ed1\u5b9a\u57df\u540d\uff0c valine \u6ca1\u5f97\u73a9\u4e86", "id": "t/590872" }, { "author": { "url": "member/dustin2016", "name": "dustin2016", "avatar": "https://cdn.v2ex.com/avatar/2a0d/05de/181553_large.png?m=1659600027" }, "url": "t/576817", "date_modified": "2019-06-24T02:35:35+00:00", "content_html": "

\u6302\u4e86\u597d\u51e0\u6b21\u4e86

\n

\u6240\u8c13\u7684 serverLess \u8fd9\u4e48\u4e0d\u9760\u8c31\u5417\uff1f

\n

\u521a\u51c6\u5907\u4e0a\u8f66\uff0c\u5c31\u7ffb\u8f66\u4e86

\n

\u4f59\u989d\u5462?

\n

\"\"

\n", "date_published": "2019-06-24T02:35:06+00:00", "title": "Leancloud \u53c8\u6302\u4e86", "id": "t/576817" }, { "author": { "url": "member/erDaren", "name": "erDaren", "avatar": "https://cdn.v2ex.com/avatar/abbf/c0d2/108879_large.png?m=1560824596" }, "url": "t/576307", "date_modified": "2019-06-21T15:58:20+00:00", "content_html": "https://blog.avoscloud.com/6812/", "date_published": "2019-06-21T13:15:50+00:00", "title": "\u8fd9\u56de Leancloud \u57df\u540d\u88ab\u9501\u5b9a\u5230\u5e95\u662f\u56e0\u4e3a\u5565", "id": "t/576307" }, { "author": { "url": "member/TangMonk", "name": "TangMonk", "avatar": "https://cdn.v2ex.com/avatar/c5f1/ae9e/55793_large.png?m=1644466105" }, "url": "t/576082", "title": "Leancloud \u6302\u4e86", "id": "t/576082", "date_published": "2019-06-21T01:51:40+00:00", "content_html": "\u8fd8\u6ca1\u6062\u590d" }, { "author": { "url": "member/jankerli", "name": "jankerli", "avatar": "https://cdn.v2ex.com/gravatar/1b7ef78dfab957d200d7272ac481de85?s=73&d=retro" }, "url": "t/401111", "title": "LeanCloud \u600e\u4e48\u4f7f\u7528 Javascript \u7684 API \u4fdd\u5b58\u5bcc\u6587\u672c\uff1f", "id": "t/401111", "date_published": "2017-10-27T01:35:28+00:00", "content_html": "

\u6587\u6863\u91cc\u8bf4 AVObject \u6709\u5927\u5c0f\u9650\u5236\uff0c\u6240\u4ee5\u8d85\u8fc7 128 KB \u7684\u6570\u636e\u4e0d\u80fd\u76f4\u63a5\u5b58\u50a8\u5230 AVObject \u91cc\u9762\uff0c\u53ef\u4ee5\u4f7f\u7528\u300c AVFile \u300d\u6587\u4ef6\u7c7b\u578b\u6765\u5b58\u50a8\uff0c\u4f46\u662f\u4e00\u76f4\u6ca1\u627e\u5230\u5982\u4f55\u628a\u5185\u5bb9\uff08\u6587\u5b57\u548c\u56fe\u7247\u94fe\u63a5\uff09\u5b58\u50a8\u7684\u529e\u6cd5\u3002\u6587\u6863\u91cc\u7684 demo \u90fd\u662f\u5982\u4f55\u4e0a\u4f20\u56fe\u7247\u6587\u4ef6\u7684\u3002\u5728\u8fd9\u91cc\u8bf7\u6559\u4e0b\u5404\u4f4d\u4e86\uff01

\n" }, { "author": { "url": "member/NemoAlex", "name": "NemoAlex", "avatar": "https://cdn.v2ex.com/avatar/f51d/c802/7746_large.png?m=1680446277" }, "url": "t/388724", "date_modified": "2017-09-06T11:34:54+00:00", "content_html": "\u6700\u8fd1\u505a\u4e86\u5f88\u591a\u5c0f\u578b\u7684\u6d3b\u52a8\uff0c\u5f80\u5f80\u662f\u7528\u6237\u4f1a\u4ea7\u751f\u4e00\u4e9b\u6570\u636e\uff0c\u4f8b\u5982\u62a5\u540d\uff0c\u63d0\u4ea4\u4e00\u4e2a\u8868\u5355\u4e4b\u7c7b\u7684\u3002\r
\u8fd9\u79cd\u7b80\u5355\u7684\u9700\u6c42\u7528 LeanCloud \u6765\u5b9e\u73b0\u662f\u975e\u5e38\u65b9\u4fbf\u7684\u3002\u4e0d\u7528\u5199\u540e\u7aef\u4ee3\u7801\uff0c\u4e0d\u7528\u90e8\u7f72\u540e\u7aef\u5e94\u7528\uff0c\u628a\u8fd0\u8425\u4eba\u5458\u7684\u8d26\u53f7\u52a0\u5165\u5230\u534f\u4f5c\uff0c\u4ed6\u4eec\u5c31\u53ef\u4ee5\u968f\u65f6\u67e5\u770b\u6570\u636e\u4e86\uff0c\u751a\u81f3\u90fd\u4e0d\u7528\u5199\u7ba1\u7406\u754c\u9762\u4e86\u3002\r
\u7f8e\u4e2d\u4e0d\u8db3\u7684\u662f\uff0cLeanCloud \u7684\u6570\u636e\u5b58\u50a8\u7ba1\u7406\u754c\u9762\u9762\u5411\u7684\u7528\u6237\u7fa4\u4f53\u8fd8\u662f\u4ee5\u5f00\u53d1\u8005\u4e3a\u4e3b\uff0c\u8fd0\u8425\u7684\u540c\u5b66\u7528\u8d77\u6765\u4f1a\u4e0d\u592a\u987a\u624b\u3002\r
\u53e6\u5916\u4e00\u4e2a\u9700\u6c42\u5c31\u662f\u5bfc\u51fa\u6570\u636e\u5230 Excel\uff0c\u8fd0\u8425\u540c\u5b66\u5bf9\u4e8e Excel \u7684\u4f7f\u7528\u8fd8\u662f\u5f97\u5fc3\u5e94\u624b\u7684\u3002\r
\r
\u4e8e\u662f\u5c31\u6709\u4e86\u8fd9\u4e2a\u5de5\u5177\uff1a\r
https://github.com/ROYL-Design/leanstorage-exporter\r
Demo \u653e\u5728 Github Pages \u4e0a\uff1a\r
https://royl-design.github.io/leanstorage-exporter/\r
\r
\u53ef\u4ee5\u67e5\u8be2 LeanStorage \u7684\u6570\u636e\uff0c\u5e76\u4e14\u5bfc\u51fa\u4e3a Excel\u3001CSV \u7b49\u683c\u5f0f\u7684\u6587\u4ef6\u3002\r
\u4f60\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 Demo\uff0c\u6216\u8005\u90e8\u7f72\u5728\u672c\u5730\uff0c\u53c8\u6216\u8005\u81ea\u5df1\u7684\u670d\u52a1\u5668\u4e0a\u3002\r
\u4f7f\u7528 Vue.js + SheetJS\uff0c100%\u524d\u7aef\u5b9e\u73b0\uff0c100%\u5f00\u6e90\uff0c\u65e0\u9700\u62c5\u5fc3\u6570\u636e\u98ce\u9669\u3002\r
\u5e0c\u671b\u53ef\u4ee5\u5e2e\u5230\u5927\u5bb6\u3002", "date_published": "2017-09-06T11:30:06+00:00", "title": "\u505a\u4e86\u4e00\u4e2a LeanCloud \u6570\u636e\u5b58\u50a8\u7684\u5bfc\u51fa\u5de5\u5177", "id": "t/388724" }, { "author": { "url": "member/TangMonk", "name": "TangMonk", "avatar": "https://cdn.v2ex.com/avatar/c5f1/ae9e/55793_large.png?m=1644466105" }, "url": "t/370665", "title": "Leancloud \u7684\u4ef7\u683c\u65b9\u6848\u662f\u4e0d\u662f\u6709\u70b9\u4e0d\u5408\u7406\u554a", "id": "t/370665", "date_published": "2017-06-23T11:44:00+00:00", "content_html": "

\u4e00\u5929 30\u00a5\u8fd8\u662f\u6709\u70b9\u8d35\u554a

\n" }, { "author": { "url": "member/hjiang", "name": "hjiang", "avatar": "https://cdn.v2ex.com/avatar/e43a/5db4/23827_large.png?m=1757052635" }, "url": "t/368684", "date_modified": "2017-06-15T12:28:48+00:00", "content_html": "

\u7b80\u5355\u5730\u8bf4\u6211\u4eec\u53d1\u5e03\u4e86\u4e00\u4e2a\u5728\u5ba2\u6237\u7aef\u8ba2\u9605\u6ee1\u8db3\u7279\u5b9a\u6761\u4ef6\u7684\u6570\u636e\u53d8\u5316\u7684 API\uff0c\u8be6\u60c5\u89c1\uff1a\nhttps://blog.leancloud.cn/5916/

\n

\u8fd9\u5bf9\u4e8e\u9700\u8981\u5b9e\u73b0\u5b9e\u65f6\u534f\u4f5c\u3001\u5b9e\u65f6\u901a\u77e5\u7b49\u529f\u80fd\u7684\u5e94\u7528\u5f88\u6709\u7528\u3002

\n", "date_published": "2017-06-15T10:27:41+00:00", "title": "LeanCloud \u53d1\u5e03\u4e86\u591a\u5ba2\u6237\u7aef\u5b9e\u65f6\u540c\u6b65\u6570\u636e\u7684\u529f\u80fd\uff0c\u6b22\u8fce\u8bd5\u7528", "id": "t/368684" }, { "author": { "url": "member/wuyazi", "name": "wuyazi", "avatar": "https://cdn.v2ex.com/avatar/f103/7e48/26272_large.png?m=1369188749" }, "url": "t/359411", "title": "\u5982\u4f55\u5728 LeanCloud \u5f00\u901a cdn \u52a0\u901f", "id": "t/359411", "date_published": "2017-05-05T10:17:38+00:00", "content_html": "\u7533\u8bf7 cdn \u52a0\u901f\u9700\u8981\u5f00\u901a\u5546\u4e1a\u7248\uff0c\u6709\u5907\u6848\u57df\u540d\uff0c\u5982\u679c\u662f iPhone \u5e94\u7528\uff0c\u6700\u597d\u5f00\u901a https\u3002\r
\u8fd9\u91cc\u6709\u7533\u8bf7\u90ae\u7bb1\uff1a https://forum.leancloud.cn/t/cdn/14318\r
\r
LeanCloud \u7684\u5907\u6848\u6d41\u7a0b\u5927\u6982\u662f\uff1a\u521d\u5ba1-\u7533\u8bf7\u5e55\u5e03-\u4e0a\u4f20\u7167\u7247-\u90ae\u5bc4\u8d44\u6599-\u590d\u5ba1-\u63d0\u4ea4\r
\u5176\u5b9e\u4f60\u5728\u4e0a\u6d77\u6216\u5317\u4eac\u7684\u8bdd\uff0c\u521d\u5ba1\u540e\u6709\u4e2a\u5730\u5740\u4f60\u76f4\u63a5\u53bb\u5c31\u884c\uff0c\u6211\u53bb\u7684\u662f Ucloud\u3002\u7136\u540e\u76f4\u63a5\u5230\u590d\u5ba1\uff0c\u4f1a\u7701\u6389\u4e0d\u5c11\u65f6\u95f4\u3002\r
\r
\u5907\u6848\u7684\u540c\u65f6\u7533\u8bf7 ssl \u8bc1\u4e66\uff0c\u6211\u7528\u7684\u662f https://www.aliyun.com/product/cas \u514d\u8d39\u7248\r
\r
\u8d70\u4e86\u4e0d\u5c11\u5f2f\u8def\uff0c\u6298\u817e\u4e86\u534a\u4e2a\u591a\u6708\uff0c\u5e0c\u671b\u540e\u6765\u8005\u4e0d\u8981\u8e29\u5751\u3002" }, { "author": { "url": "member/TangMonk", "name": "TangMonk", "avatar": "https://cdn.v2ex.com/avatar/c5f1/ae9e/55793_large.png?m=1644466105" }, "url": "t/343990", "date_modified": "2017-03-01T08:06:37+00:00", "content_html": "

leancloud \u6d4b\u8bd5\u5e76\u53d1\u5982\u4e0b, \u5e26\u6570\u636e\u5e93\u67e5\u8be2\uff1a

\n
Running 10s test @ http://xxxx.leanapp.cn/?id=58b62dfa61ff4b006ccc0113\n 12 threads and 100 connections\n Thread Stats Avg Stdev Max +/- Stdev\n Latency 172.36ms 159.26ms 1.37s 80.84%\n Req/Sec 54.37 21.85 128.00 63.17%\n 6459 requests in 10.09s, 9.06MB read\n Non-2xx or 3xx responses: 4756\nRequests/sec: 640.04\nTransfer/sec: 0.90MB\n
\n

\u963f\u91cc\u4e91\u7684\u5e76\u53d1\u6d4b\u8bd5, 1 \u6838 1G \u6700\u4f4e\u914d, \u4e0d\u5e26\u6570\u636e\u5e93\u67e5\u8be2:

\n
Running 10s test @ http://xxx.76.215.104:3000/\n 12 threads and 100 connections\n Thread Stats Avg Stdev Max +/- Stdev\n Latency 312.36ms 139.82ms 1.89s 92.13%\n Req/Sec 21.15 11.70 70.00 63.86%\n 2007 requests in 10.10s, 0.94MB read\n Socket errors: connect 0, read 0, write 0, timeout 43\nRequests/sec: 198.80\nTransfer/sec: 95.13KB\n
\n

\"\"

\n

0.5 CPU \u5177\u4f53\u662f\u4ec0\u4e48\u914d\u7f6e

\n", "date_published": "2017-03-01T02:45:02+00:00", "title": "LeanCloud \u7684\u4e91\u5f15\u64ce\u662f\u4ec0\u4e48\u914d\u7f6e\uff0c\u4e3a\u4ec0\u4e48\u514d\u8d39\u7248\u7684\u6027\u80fd\u8fd8\u6bd4\u963f\u91cc\u4e91\u7684\u6700\u4f4e\u914d\u8981\u5feb\uff1f", "id": "t/343990" }, { "author": { "url": "member/dibage", "name": "dibage", "avatar": "https://cdn.v2ex.com/avatar/55e5/5042/167132_large.png?m=1484730652" }, "url": "t/332311", "title": "\u6709\u6ca1\u6709 leancloud \u4ee3\u66ff\u65b9\u6848\u6216\u5f00\u6e90\u4ea7\u54c1\u63a8\u8350\uff1f", "id": "t/332311", "date_published": "2017-01-05T01:54:15+00:00", "content_html": "

RT

\n

\u6700\u8fd1 leancloud \u8c03\u6574\u4e86\u6536\u8d39\u653f\u7b56\uff0c\u8981\u4e48\u7528\u514d\u8d39\u4f46\u8d44\u6e90\u5c11\u7684\u5f00\u53d1\u7248\uff0c\u8981\u4e48\u6bcf\u4e2a\u6708 900 \u7528\u5546\u4e1a\u7248\uff5e\n\u5f88\u5947\u602a\u4e3a\u4ec0\u4e48\u4e0d\u518d\u589e\u52a0\u4e00\u4e2a\u5f39\u6027\u8ba1\u7b97\u7248\uff1f@LeanCloud

\n

\u6240\u4ee5\u5728\u6b64\u95ee\u95ee\u5927\u5bb6\u6709\u6ca1\u6709\u7c7b\u4f3c\u7684\u5e73\u53f0\u63a8\u8350\uff1f\u6216\u8005\u6e90\u7801\u4e5f\u662f\u6781\u597d\u7684\u3002

\n

\u8981\u6c42\u4e0d\u591a\uff0c\u6709\u7528\u6237\u7ba1\u7406\u4ee5\u53ca\u6570\u636e\u5b58\u50a8\u529f\u80fd\u5373\u53ef\uff08\u5305\u62ec\u6570\u636e\u5b58\u53d6\u65f6\u7684\u7528\u6237\u6743\u9650\u63a7\u5236

\n

\u8c22\u8c22\u5927\u5bb6\ud83d\ude4f

\n" }, { "author": { "url": "member/LeanCloudRRY", "name": "LeanCloudRRY", "avatar": "https://cdn.v2ex.com/avatar/278f/c5d5/103427_large.png?m=1430102721" }, "url": "t/293423", "title": "\u56fd\u5185\u77ed\u4fe1\u4ef7\u683c\u4e0b\u8c03 17%\uff0c 2016 \u5e74 7 \u6708 5 \u65e5\u96f6\u65f6\u751f\u6548", "id": "t/293423", "date_published": "2016-07-19T04:01:56+00:00", "content_html": "

\"\"

\n

\u81ea 2016 \u5e74 7 \u6708 5 \u65e5\u5468\u4e8c\u96f6\u65f6\u8d77\uff0c\u901a\u8fc7 LeanCloud \u53d1\u9001\u56fd\u5185\u6587\u672c\u77ed\u4fe1\u7684\u4ef7\u683c\u5c06\u4ece\u6bcf\u6761 0.06 \u5143\u4e0b\u8c03\u81f3 0.05 \u5143\uff0c\u964d\u5e45\u8fbe\u5230 17%\u3002

\n

\u8fd9\u662f\u5728\u6211\u4eec\u4e0e\u6e20\u9053\u670d\u52a1\u5546\u7684\u5171\u540c\u52aa\u529b\u4e0b\u8fdb\u4e00\u6b65\u4f18\u5316\u4e86\u901a\u9053\u6210\u672c\u7684\u7ed3\u679c\uff0c\u6211\u4eec\u613f\u610f\u8ba9 LeanCloud \u7528\u6237\u4eab\u53d7\u7531\u6b64\u5e26\u6765\u7684\u4ef7\u683c\u4f18\u60e0\u3002

\n

\u77ed\u4fe1\u53d1\u9001\u8bb0\u5f55\u53ef\u4ee5\u5728 \u5e94\u7528\u63a7\u5236\u53f0 > \u6d88\u606f > \u77ed\u4fe1 \u4e2d\u67e5\u8be2\uff0c\u77ed\u4fe1\u8d39\u7528\u4f1a\u5728\u90ae\u4ef6\u8d26\u5355\u4e2d\u5217\u51fa\u3002\u5982\u679c\u6709\u4efb\u4f55\u7591\u95ee\uff0c\u8bf7\u8054\u7cfb support@leancloud.cn\u3002

\n" }, { "author": { "url": "member/LeanCloudRRY", "name": "LeanCloudRRY", "avatar": "https://cdn.v2ex.com/avatar/278f/c5d5/103427_large.png?m=1430102721" }, "url": "t/280917", "title": "LeanCloud \u548c\u963f\u91cc\u4e91\u5230\u5e95\u6709\u4ec0\u4e48\u533a\u522b\uff1f", "id": "t/280917", "date_published": "2016-05-24T07:34:19+00:00", "content_html": "

\"\"

\n

\u4e0d\u662f\u5f88\u4e86\u89e3 LeanCloud \u7684\u5f00\u53d1\u8005\u7ecf\u5e38\u4f1a\u95ee\u300c LeanCloud \u4e0e\u5df2\u6709\u7684\u5f88\u591a\u4e91\u670d\u52a1\u6709\u4ec0\u4e48\u533a\u522b\u5462\uff1f\u300d\u4e0b\u9762\u6211\u4eec\u5c31\u4ee5\u56fd\u5185\u6bd4\u8f83\u6709\u4ee3\u8868\u6027\u7684\u963f\u91cc\u4e91\u4e3a\u4f8b\uff0c\u8ddf\u6211\u4eec\u505a\u4e0b\u5bf9\u6bd4\u3002

\n

\u4ea7\u54c1\u7684\u533a\u522b

\n

\u8fdb\u5165\u963f\u91cc\u4e91\u7f51\u7ad9\u53ef\u4ee5\u770b\u5230\u963f\u91cc\u4e91\u7684\u4ea7\u54c1\u4ecb\u7ecd\u3002\u4ea7\u54c1\u5217\u8868\u6709\u5f39\u6027\u8ba1\u7b97\u3001\u6570\u636e\u5e93\u3001\u5b58\u50a8\u4e0e CDN \u3001\u7f51\u7edc\u3001\u5927\u89c4\u6a21\u8ba1\u7b97\u3001\u4e91\u76fe\u3001\u7ba1\u7406\u4e0e\u76d1\u63a7\u3001\u5e94\u7528\u670d\u52a1\u3001\u4e92\u8054\u7f51\u4e2d\u95f4\u4ef6\u3001\u79fb\u52a8\u670d\u52a1\u3001\u57df\u540d\u4e0e\u7f51\u7ad9\u7b49\uff0c\u6bcf\u4e2a\u9009\u9879\u4e0b\u9762\u53c8\u6709\u975e\u5e38\u591a\u7684\u5b50\u4ea7\u54c1\u5217\u8868\uff0c\u63d0\u4f9b\u7684\u670d\u52a1\u79cd\u7c7b\u7e41\u591a\u3002\u4e2a\u4eba\u611f\u89c9\u51e0\u4e4e\u5f00\u53d1\u4e2d\u9700\u8981\u4f7f\u7528\u7684\u670d\u52a1\u5668\u4ea7\u54c1\uff0c\u963f\u91cc\u4e91\u5e94\u8be5\u90fd\u63d0\u4f9b\u4e86\u3002\u8fd9\u4e9b\u4ea7\u54c1\u66f4\u504f\u5411\u4e8e\u8f83\u5e95\u5c42\u7684\u670d\u52a1\uff0c\u7528\u6237\u8981\u60f3\u4f7f\u7528\u8d77\u6765\u9700\u8981\u5177\u5907\u4e00\u5b9a\u7684\u80fd\u529b\u3002

\n

\"\u963f\u91cc\u4e91\u5b98\u7f51\u90e8\u5206\u622a\u56fe\"

\n

LeanCloud \u5219\u5b8c\u5168\u4e0d\u540c\u3002\u5b83\u63d0\u4f9b\u4e86\u56db\u9879\u4ea7\u54c1\uff0c\u5206\u522b\u662f LeanStorage \uff08\u6570\u636e\u3001\u6587\u4ef6\u5b58\u50a8\u53ca\u4e91\u5f15\u64ce\uff09\u3001 LeanMessage \uff08\u77ed\u4fe1\u3001\u63a8\u9001\u53ca\u5b9e\u65f6\u901a\u8baf\u670d\u52a1\uff09\u3001 LeanAnalytics \uff08\u7edf\u8ba1\u5206\u6790\u670d\u52a1\uff09\u3001 LeanModules \uff08\u5404\u79cd\u5176\u4ed6\u901a\u7528\u7ec4\u4ef6\uff09\u3002\u770b\u8d77\u6765\u5f88\u7cbe\u7b80\u5374\u6709\u4e9b\u62bd\u8c61\uff0c\u90a3\u8fd9\u4e9b\u4ea7\u54c1\u5177\u4f53\u53c8\u80fd\u6ee1\u8db3\u4ec0\u4e48\u9700\u6c42\u5462\uff1f

\n

\"\"

\n

\u6982\u5ff5\u4e0a\u7684\u533a\u522b

\n

\u963f\u91cc\u4e91\u63d0\u4f9b\u7684\u662f\u7c7b\u4f3c\u4e8e AWS \uff08\u4e9a\u9a6c\u900a\u7684\u4e91\u670d\u52a1\uff09\u4e00\u6837\u7684\u4f20\u7edf\u4e91\u670d\u52a1\u3002\u4f7f\u7528\u4e86\u963f\u91cc\u4e91\u4f60\u5c31\u4e0d\u7528\u518d\u53bb\u64cd\u5fc3\u90a3\u4e9b\u4e0e\u786c\u4ef6\u548c\u5e95\u5c42\u8fd0\u7ef4\u76f8\u5173\u7684\u4e8b\u60c5\uff0c\u6bd4\u5982\u786c\u76d8\u635f\u574f\u3001\u4e3b\u673a\u6258\u7ba1\u3001\u670d\u52a1\u5668\u914d\u7f6e\u7f51\u7edc\u7b49\u7b49\u3002

\n

\u4f46\u5982\u679c\u60f3\u8981\u5f00\u53d1\u4e00\u4e2a\u81ea\u5df1\u7684 App \uff0c\u4f60\u4ecd\u7136\u9700\u8981\u5728\u963f\u91cc\u4e91\u4e0a\u8d2d\u4e70\u673a\u5668\uff0c\u9009\u62e9\u90e8\u7f72\u5230\u54ea\u4e2a\u673a\u623f\uff0c\u8fd8\u8981\u8d2d\u4e70\u6570\u636e\u5e93\uff0c\u9009\u62e9\u6570\u636e\u5177\u4f53\u662f\u600e\u6837\u7684\u89c4\u683c\uff0c\u7136\u540e\u8fd8\u8981\u5bf9\u8fd9\u53f0\u673a\u5668\u8fdb\u884c\u5b8c\u6574\u7684\u914d\u7f6e\u3002\u867d\u7136\u6bd4\u6ca1\u6709\u4e91\u670d\u52a1\u7684\u65e5\u5b50\u5df2\u7ecf\u8f7b\u677e\u4e86\u8bb8\u591a\uff0c\u4f46\u8fd9\u4e9b\u64cd\u4f5c\u4ecd\u7136\u9700\u8981\u4e00\u4e2a\u4e13\u4e1a\u7684\u5de5\u7a0b\u5e08\u624d\u80fd\u5f88\u597d\u5730\u5b8c\u6210\u3002

\n

\u800c\u4f7f\u7528 LeanCloud \u7528\u6237\u5374\u4e0d\u9700\u8981\u64cd\u5fc3\u8fd9\u4e9b\u4e8b\u60c5\uff0c\u53ef\u4ee5\u8bf4\u57fa\u672c\u4e0a\u4e0d\u7528\u8003\u8651\u670d\u52a1\u5668\u7684\u7ec6\u8282\u3002

\n

LeanCloud \u63d0\u4f9b\u7684\u662f BaaS \u670d\u52a1\uff08 Backend as a Service \u540e\u7aef\u5373\u670d\u52a1\uff09\uff0c\u53c8\u88ab\u79f0\u4e3a\u4e91\u670d\u52a1 2.0 \u3002\u7b80\u800c\u8a00\u4e4b\uff0c\u4e91\u670d\u52a1 1.0 \u89e3\u51b3\u7684\u662f\u4e0d\u518d\u8ba9\u4f60\u62c5\u5fc3\u670d\u52a1\u5668\uff0c\u800c BaaS \u7684\u76ee\u6807\u662f\u5e2e\u4f60\u89e3\u51b3\u5168\u90e8\u670d\u52a1\u5668\u8fd0\u7ef4\uff0c\u751a\u81f3\u662f\u90e8\u5206\u540e\u7aef\u4e1a\u52a1\u903b\u8f91\u3002\u90a3 LeanCloud \u7a76\u7adf\u662f\u600e\u4e48\u505a\u5230\u7684\u5462\uff1f\u56de\u7b54\u8fd9\u4e2a\u95ee\u9898\u4e4b\u524d\uff0c\u6211\u4eec\u770b\u4e0b\u4e00\u4e2a App \u4e00\u822c\u90fd\u662f\u4ec0\u4e48\u6837\u5b50\u3002

\n

\"\"\n\u4ee5 LeanCloud \u7684\u7528\u6237\u300c\u61c2\u7403\u5e1d\u300d\u4e3a\u53c2\u8003\uff0c\u4e0d\u8bba\u4ec0\u4e48\u4ea7\u54c1\u57fa\u672c\u4e0a\u90fd\u9700\u8981\u4e00\u5957\u8d26\u53f7\u7cfb\u7edf\uff0c\u76ee\u524d\u8f83\u901a\u7528\u7684\u505a\u6cd5\u662f\u4f7f\u7528\u624b\u673a\u53f7\u7801\u6ce8\u518c\uff0c\u53d1\u9001\u77ed\u4fe1\u9a8c\u8bc1\uff1b\u57fa\u4e8e\u8fd9\u4e2a\u8d26\u53f7\u8fd8\u8981\u5b58\u50a8\u4e00\u4e9b\u6570\u636e\u9879\uff0c\u5982\u6635\u79f0\u3001\u5934\u50cf\u7b49\u4fe1\u606f\uff0c\u518d\u5230\u771f\u6b63\u7684\u4e3b\u4e1a\u52a1\u903b\u8f91\uff0c\u9700\u8981\u901a\u8fc7\u670d\u52a1\u5668\u57fa\u4e8e\u67d0\u4e2a\u903b\u8f91\u8fd0\u7b97\u51fa\u7ed3\u679c\u4ea4\u7ed9\u5ba2\u6237\u7aef\u505a\u5c55\u793a\u3002

\n

\u90a3\u4e48\u6211\u4eec\u518d\u8003\u8651\u4e00\u4e2a\u95ee\u9898\uff0c\u4e3a\u4ec0\u4e48\u6211\u4eec\u6bcf\u6b21\u505a\u4e00\u4e2a\u4ea7\u54c1\u90fd\u8981\u53cd\u53cd\u590d\u590d\u5730\u5f00\u53d1\u8fd9\u4e9b\u5dee\u4e0d\u591a\u4e00\u6837\u7684\u903b\u8f91\u5462\uff1f\u6bd4\u5982\u8d26\u53f7\u7cfb\u7edf\u3001\u6570\u636e\u5b58\u50a8\u3001\u77ed\u4fe1\u9a8c\u8bc1\u3001\u90ae\u4ef6\u9a8c\u8bc1\u3001\u63a8\u9001\u670d\u52a1\u751a\u81f3\u662f\u5373\u65f6\u804a\u5929\uff0c\u6709\u6ca1\u6709\u529e\u6cd5\u8ba9\u8fd9\u4e9b\u4e1c\u897f\u62ff\u6765\u5c31\u7528\uff0c\u8ba9\u81ea\u5df1\u80fd\u591f\u6700\u5feb\u901f\u5730\u6295\u5165\u5f00\u53d1\u5462\uff1f\u5f53\u7136\u6709\u529e\u6cd5\uff0c\u8fd9\u5c31\u662f LeanCloud \u6240\u505a\u7684\u4e8b\u60c5\u3002

\n

\u5177\u4f53\u4f7f\u7528 LeanCloud

\n

\u6765\u4e3e\u4e2a\u5177\u4f53\u4f8b\u5b50\u3002\u5728 LeanCloud \u4e2d\u60f3\u8981\u5b9e\u73b0\u4e00\u5957\u8d26\u53f7\u7cfb\u7edf\u5171\u5206\u4e3a\u4e09\u6b65\uff1a\u6ce8\u518c\u8d26\u53f7\u3001\u521b\u5efa\u4e00\u4e2a\u5e94\u7528\u3001\u4e0b\u8f7d\u5bf9\u5e94\u7684 SDK \u3002\u5c31\u8fd9\u4e09\u6b65\uff1f\u96be\u9053\u4e0d\u7528\u5199\u4ee3\u7801\u5417\uff1f\u662f\u7684\uff0c\u4e0d\u7528\u5199\u4ee3\u7801\u4f60\u5176\u5b9e\u5df2\u7ecf\u62e5\u6709\u4e86\u4e00\u5957\u652f\u6301 ACL \uff08\u8bbf\u95ee\u6743\u9650\u63a7\u5236\uff09\u3001\u652f\u6301\u77ed\u4fe1\u9a8c\u8bc1\u6ce8\u518c\u3001\u652f\u6301\u90ae\u4ef6\u6ce8\u518c\u8fd9\u6837\u5177\u5907\u5b8c\u6574\u5b89\u5168\u4f53\u7cfb\u7684\u8d26\u53f7\u7cfb\u7edf\uff0c\u5ba2\u6237\u7aef\u5de5\u7a0b\u5e08\u53ea\u9700\u76f4\u63a5\u4f7f\u7528\u5373\u53ef\u3002\u4f8b\u5982\uff0c Web \u524d\u7aef\u901a\u8fc7 Javascript SDK \u5728\u6d4f\u89c8\u5668\u4f7f\u7528\u8d26\u6237\u7cfb\u7edf\uff0c\u5177\u4f53\u4ee3\u7801\u5982\u4e0b\uff1a

\n
// \u521b\u5efa\u4e00\u4e2a\u5b9e\u4f8b\nconst user = new AV.User();\n// \u8bbe\u7f6e\u7528\u6237\u540d\nuser.set('username', 'wangxiao);\n// \u8bbe\u7f6e\u5bc6\u7801\nuser.set('password', 123456789);\n// \u6ce8\u518c\nuser.signUp().then(user => {\n // \u6ce8\u518c\u6210\u529f\n}, error => {\n // \u6ce8\u518c\u5931\u8d25\n});\n
\n

\u518d\u5982\u7ecf\u5e38\u88ab\u4f7f\u7528\u7684\u77ed\u4fe1\u9a8c\u8bc1\u529f\u80fd\uff0c\u4f60\u4e0d\u9700\u8981\u53bb\u627e\u670d\u52a1\u7aef\u5de5\u7a0b\u5e08\u53bb\u5f00\u53d1\u4e00\u4e2a\u4e13\u7528\u63a5\u53e3\uff0c\u800c\u662f\u76f4\u63a5\u5728\u6d4f\u89c8\u5668\u4e2d\u8c03\u7528 Javascript SDK \u7684\u65b9\u6cd5\uff08\u652f\u6301\u6a21\u677f\u6765\u5b9a\u5236\u77ed\u4fe1\u5185\u5bb9\uff09\uff0c\u5177\u4f53\u4ee3\u7801\u5982\u4e0b\uff1a

\n
// \u53d1\u9001\u624b\u673a\u9a8c\u8bc1\u7801\nAV.Cloud.requestSmsCode({\n mobilePhoneNumber: '182xxxx5548'\n}).then(() => {\n // \u53d1\u9001\u6210\u529f\n}, error => {\n // \u53d1\u9001\u5931\u8d25\n});\n\n// \u6821\u9a8c\u9a8c\u8bc1\u7801\nAV.Cloud.verifySmsCode('1234', '182xxxx5548')\n.then(() => {\n // \u9a8c\u8bc1\u6210\u529f\n}, error => {\n // \u9a8c\u8bc1\u5931\u8d25\n});\n\n// \u77ed\u4fe1\u6a21\u677f\nAV.Cloud.requestSmsCode({\n mobilePhoneNumber: '182xxxx5548',\n template: 'Template_Name',\n ttttName: '\u81ea\u5b9a\u4e49\u6a21\u677f\u53d8\u91cf\u540d'\n}).then(() => {\n // \u53d1\u9001\u6210\u529f\n}, error => {\n // \u53d1\u9001\u5931\u8d25\n});\n
\n

\u77ed\u4fe1\u9a8c\u8bc1\u4ec5\u4ec5\u662f\u6211\u4eec\u6240\u5f00\u653e\u7684\u4f17\u591a\u529f\u80fd\u4e2d\u7684\u4e00\u9879\uff0c\u4f60\u8fd8\u53ef\u4ee5\u4f7f\u7528 SDK \u8f7b\u677e\u5b9e\u73b0\u6570\u636e\u5b58\u50a8\u3001\u6587\u4ef6\u5b58\u50a8\uff08 CDN \uff09\u3001\u63a8\u9001\u3001\u5373\u65f6\u804a\u5929\u7b49\u5b9e\u7528\u529f\u80fd\u3002\u5982\u6b64\u4ee5\u6765\u4f60\u7684\u5f00\u53d1\u6548\u7387\u4f1a\u5927\u5e45\u63d0\u5347\uff0c\u670d\u52a1\u5668\u7aef\u5bf9\u4e8e\u4f60\u6765\u8bf4\u5b8c\u5168\u662f\u900f\u660e\u7684\uff0c\u8fd9\u6837\u5c31\u80fd\u628a\u6240\u6709\u7cbe\u529b\u96c6\u4e2d\u5230\u7814\u53d1\u6838\u5fc3\u4ea7\u54c1\u4e0a\u53bb\uff0c\u800c\u540e\u7eed\u7684\u6570\u636e\u8fd0\u8425\u548c\u7ba1\u7406\u5de5\u4f5c\u53ef\u4ee5\u76f4\u63a5\u5728 LeanCloud \u7684\u63a7\u5236\u53f0\u4e2d\u8fdb\u884c\uff0c\u751a\u81f3\u5728\u521d\u671f\u4f60\u90fd\u4e0d\u9700\u8981\u7ed9\u8fd0\u8425\u4eba\u5458\u7f16\u5199\u4e00\u4e2a\u5bf9\u5e94\u7684\u7ba1\u7406\u540e\u53f0\u3002

\n

\"\u63a7\u5236\u53f0\u4e2d\u7684\u6570\u636e\u7ba1\u7406\u754c\u9762\"

\n

\u6210\u672c\u7684\u533a\u522b

\n

\u9009\u62e9\u4f20\u7edf\u7684\u4e91\u670d\u52a1\uff0c\u4f60\u53ef\u80fd\u9700\u8981\u66f4\u591a\u5730\u53bb\u4e86\u89e3\u670d\u52a1\u7aef\u7684\u7ed3\u6784\uff0c\u8981\u7efc\u5408\u8003\u8651\u5728\u4e91\u670d\u52a1\u4e0a\u642d\u5efa\u51fa\u4e00\u5957\u81ea\u5df1\u7684\u7cfb\u7edf\u6240\u4ed8\u51fa\u7684\u6210\u672c\uff0c\u8fd8\u9700\u8981\u627e\u5230\u5408\u9002\u7684\u5de5\u7a0b\u5e08\u53bb\u7ef4\u62a4\u8fd9\u4e9b\u670d\u52a1\uff0c\u627e\u5230\u540e\u7aef\u5de5\u7a0b\u5e08\u6765\u5f00\u53d1\u670d\u52a1\u7aef\u5f88\u591a\u901a\u7528\u7684\u4e1a\u52a1\u903b\u8f91\u3002

\n

\u5982\u679c\u4f7f\u7528 LeanCloud \u8fd9\u4e9b\u4e8b\u60c5\u90fd\u4e0d\u7528\u53bb\u8003\u8651\uff0c\u76f4\u63a5\u4f7f\u7528\u76f8\u5e94\u7684\u670d\u52a1\u5373\u53ef\u3002\u540c\u65f6\u6211\u4eec\u7684\u4e91\u670d\u52a1\u6309\u7167\u4f7f\u7528\u91cf\u8ba1\u8d39\uff0c\u5e76\u63d0\u4f9b\u4e86\u4e00\u5b9a\u989d\u5ea6\u7684\u514d\u8d39\u4f7f\u7528\u91cf\uff0c\u5728\u521d\u671f\u7528\u6237\u91cf\u5c11\u7684\u65f6\u5019\u57fa\u672c\u4e0d\u4f1a\u4ea7\u751f\u4ec0\u4e48\u8d39\u7528\uff0c\u53ea\u6709\u5f53\u7528\u6237\u91cf\u589e\u957f\u5230\u4e00\u5b9a\u91cf\u7ea7\u65f6\u624d\u4f1a\u4ea7\u751f\u76f8\u5e94\u7684\u8d39\u7528\u3002\u603b\u4e4b\u4f7f\u7528 LeanCloud \u4e0d\u4ec5\u4ec5\u7701\u53bb\u4e86\u540e\u671f\u8fd0\u7ef4\u7684\u6210\u672c\uff0c\u8fd8\u51cf\u5c11\u4e86\u540e\u7aef\u5de5\u7a0b\u5e08\u7684\u5de5\u4f5c\u91cf\uff0c\u52a0\u901f\u4ea7\u54c1\u8fed\u4ee3\u3002

\n" }, { "author": { "url": "member/LeanCloudRRY", "name": "LeanCloudRRY", "avatar": "https://cdn.v2ex.com/avatar/278f/c5d5/103427_large.png?m=1430102721" }, "url": "t/280032", "title": "\u600e\u6837\u624d\u80fd\u5199\u5f97\u4e00\u624b\u597d\u4ee3\u7801\uff1f", "id": "t/280032", "date_published": "2016-05-20T07:01:27+00:00", "content_html": "

\"\"

\n

\u300c\u58f9\u671f\u58f9\u95ee\u300d VOL.4 \u6536\u5f55\u7684\u95ee\u9898

\n

\u771f\u6b63\u4f18\u8d28\u7684\u4ee3\u7801\u5177\u5907\u4ec0\u4e48\u6761\u4ef6\uff1f\u5982\u4f55\u9ad8\u6548\u7684\u7f16\u5199\u4f18\u8d28\u4ee3\u7801\uff1f\u2014\u2014\u6765\u81ea\u7528\u6237 yuklng

\n

\u6765\u81ea LeanCloud iOS \u5f00\u53d1\u5de5\u7a0b\u5e08\u9648\u5b9c\u9f99\u7684\u56de\u7b54

\n

\u771f\u6b63\u4f18\u8d28\u7684\u4ee3\u7801\u5177\u5907\u4ec0\u4e48\u6761\u4ef6?

\n
\n

\u4f18\u8d28\u7684\u4ee3\u7801\u57fa\u672c\u7684\u6761\u4ef6\uff1a\u8f7b\u91cf\u7ea7\u3001\u4f4e\u8026\u5408\uff08\u677e\u8026\u5408\uff09\u3001\u6613\u66ff\u6362\u3001\u6613\u5220\u9664\u3002

\n
\n

\u4ec0\u4e48\u53eb\u4f4e\u8026\u5408\uff1f

\n

\u4f60\u5982\u679c\u53ef\u4ee5\u4ece\u4f60\u7684\u4ee3\u7801\u4e2d\u5220\u9664\u67d0\u4e00\u6a21\u5757\u800c\u4e0d\u7528\u56e0\u6b64\u53bb\u91cd\u5199\u5176\u4ed6\u6a21\u5757\u7684\u8bdd\uff0c\u4f60\u7684\u4ee3\u7801\u5c31\u901a\u5e38\u88ab\u79f0\u4e3a\u662f\u4f4e\u8026\u5408\u7684\u3002

\n

\u6211\u4eec\u90fd\u559c\u6b22\u8f7b\u91cf\u7ea7\u7684\u6846\u67b6\uff0c\u56e0\u4e3a\u4f60\u5e94\u8be5\u65f6\u523b\u4fdd\u6301\u7740\u8fd9\u6837\u7684\u8b66\u89c9\uff1a\u8fdf\u65e9\u6709\u4e00\u5929\uff0c\u8fd9\u4e2a\u5e93\u3001\u8fd9\u5768\u4ee3\u7801\u4f1a\u88ab\u66ff\u6362\u3001\u79fb\u9664\u6389\u3002

\n

\u8fd9\u53ef\u80fd\u8ba9\u4f60\u8054\u60f3\u8d77\u4e86 iOS \u9886\u57df\u4e00\u4e2a\u6559\u79d1\u4e66\u7ea7\u522b\u7684\u4e8b\u4ef6\u2014\u2014 ASI \u5207\u6362 AFN \u3002 ASI \u66fe\u7ecf\u662f iOS \u5f00\u53d1\u9996\u9009\u7684\u7b2c\u4e09\u65b9\u7f51\u7edc\u6846\u67b6\uff0c\u540e\u6765\u4f5c\u8005\u5ba3\u5e03\u505c\u6b62\u7ef4\u62a4\uff0c\u5f00\u53d1\u8005\u7eb7\u7eb7\u5f00\u59cb\u8fc1\u79fb\u5230 AFN \u3002\u5b83\u6559\u4f1a\u6211\u4eec\u4e00\u4e2a\u9053\u7406\uff1a

\n

\u8ba9\u4f60\u7684\u4ee3\u7801\u300c\u6613\u66ff\u6362\u3001\u6613\u5220\u9664\u300d\uff0c\u7b2c\u4e09\u65b9\u6846\u67b6\u4ee3\u7801\u8d28\u91cf\u662f\u4e00\u65b9\u9762\uff0c\u4f7f\u7528\u8005\u4e5f\u6709\u8d23\u4efb\u3002

\n

\u5982\u4f55\u9ad8\u6548\u7684\u7f16\u5199\u4f18\u8d28\u4ee3\u7801?

\n

\u60f3\u5199\u4f18\u8d28\u4ee3\u7801\uff0c\u9996\u5148\u8981\u6562\u4e8e\u5199\u5783\u573e\u4ee3\u7801\u3002

\n

\u6b63\u5982\u7a0b\u5e8f\u5458\u5fc3\u4e2d\u7684\u4e0a\u53e4\u5de8\u795e Alen Jay Perlis \u5728 \u300a Epigrams on Programming \u7f16\u7a0b\u8b66\u53e5\u300b \u6240\u8bf4\uff1a

\n
\n

Everything should be built top-down, except the first time.

\n
\n
\n

\u51e1\u4e8b\u90fd\u5e94\u8be5\u9ad8\u5c4b\u5efa\u74f4\uff0c\u9664\u975e\u4f60\u662f\u7b2c\u4e00\u6b21\u5e72\u3002

\n
\n

\u6240\u4ee5\uff0c\u5728 beta \u7248\u672c\u91cc\u72af\u9519\uff0c\u4e0a\u5e1d\u90fd\u4f1a\u539f\u8c05\u3002

\n

\u4e0d\u8981\u5728\u5f00\u59cb\u5199\u4e00\u4e2a\u5e94\u7528\u4e4b\u524d\u5c31\u53bb\u60f3\u7740\u80fd\u5199\u4e00\u4e2a\u4e07\u5168\u7684\u67b6\u6784\u3002\u9053\u7406\u5f88\u7b80\u5355\uff0c\u5c31\u50cf\u4f60\u5728\u65e9\u4e0a 8:00 \u51fa\u95e8\u4e0a\u73ed\u524d\u8bb8\u613f\u300c\u4e00\u8def\u7eff\u706f\u300d\uff0c\u5373\u4f7f\u5f53\u65f6\u613f\u671b\u5b9e\u73b0\u4e86\uff0c 8:00 \u5168\u5317\u4eac\u7684\u706f\u90fd\u53d8\u7eff\u4e86\uff0c\u4f46\u7b49\u4f60\u5230\u4e0b\u4e2a\u8def\u53e3\uff0c\u4e00\u6837\u8fd8\u662f\u8be5\u7ea2\u706f\u65f6\u7ea2\u706f\u3002\u6211\u4eec\u662f\u5f88\u96be\u9884\u5148\u731c\u6d4b\uff0c\u4f46\u6211\u4eec\u5374\u53ef\u4ee5\u5728\u53d1\u751f\u5c0f\u53d8\u5316\u65f6\uff0c\u5c31\u53ca\u65e9\u53bb\u60f3\u529e\u6cd5\u5e94\u5bf9\u53d1\u751f\u66f4\u5927\u53d8\u5316\u7684\u53ef\u80fd\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u7b49\u5230\u53d8\u5316\u53d1\u751f\u65f6\u7acb\u5373\u91c7\u53d6\u884c\u52a8\u3002

\n

\u7b2c\u4e00\u6b21\u7684\u65f6\u5019\u5c3d\u7ba1\u5927\u80c6\u7684\u53bb\u5199\u4e00\u5806\u4e71\u4e03\u516b\u7cdf\u7684\u4ee3\u7801\u3002

\n

\u4f46\u5783\u573e\u4ee3\u7801\u59cb\u7ec8\u8fd8\u662f\u8981\u8f6c\u6362\u6210\u4f18\u8d28\u4ee3\u7801\u7684\uff0c\u5982\u4f55\u8f6c\u6362\uff1f\u9075\u5faa\u300c\u5f00\u653e-\u5c01\u95ed\u539f\u5219\u300d\uff0c\u5373 The Open-Closed Principle \uff08\u7b80\u79f0 OCP \uff09\u53bb\u8f6c\u6362\uff1a

\n
\n

\u8fd9\u4e2a\u539f\u5219\u5176\u5b9e\u662f\u6709\u4e24\u4e2a\u7279\u5f81\uff0c\u4e00\u4e2a\u662f\u8bf4 \u300c\u5bf9\u4e8e\u6269\u5c55\u662f\u5f00\u653e\u7684\uff0c Open for extension \u300d\uff0c\u53e6\u4e00\u4e2a\u662f\u8bf4 \u300c\u5bf9\u4e8e\u66f4\u6539\u662f\u5c01\u95ed\u7684\uff0c Closed for modification \u300d\u3002\u6211\u4eec\u5728\u505a\u4efb\u4f55\u9879\u76ee\u7684\u65f6\u5019\uff0c\u90fd\u4e0d\u8981\u6307\u671b\u9879\u76ee\u4e00\u5f00\u59cb\u65f6\u9700\u6c42\u786e\u5b9a\u5c31\u518d\u4e5f\u4e0d\u4f1a\u53d8\u5316\uff0c\u8fd9\u662f\u4e0d\u73b0\u5b9e\u4e5f\u4e0d\u79d1\u5b66\u7684\u60f3\u6cd5\uff0c\u800c\u65e2\u7136\u9700\u6c42\u662f\u4e00\u5b9a\u4f1a\u53d8\u5316\u7684\uff0c\u90a3\u4e48\u5982\u4f55\u5728\u9762\u5bf9\u9700\u6c42\u7684\u53d8\u5316\u65f6\uff0c\u8bbe\u8ba1\u7684\u8f6f\u4ef6\u53ef\u4ee5\u76f8\u5bf9\u5bb9\u6613\u4fee\u6539\uff0c\u4e0d\u81f3\u4e8e\u8bf4\u65b0\u9700\u6c42\u4e00\u6765\uff0c\u5c31\u8981\u628a\u6574\u4e2a\u7a0b\u5e8f\u63a8\u5012\u91cd\u6765\u3002

\n
\n

\u4e0a\u9762\u662f\u300a\u5927\u8bdd\u8bbe\u8ba1\u6a21\u5f0f\u300b\u4e2d\u7684\u4e00\u6bb5\u8bdd\uff0c\u4e66\u4e2d\u4e5f\u7ed9\u51fa\u4e86\u4e00\u4e2a\u4f8b\u5b50\uff1a

\n
\n

\u6bd4\u5982\u4f60\u5728\u5199\u4e00\u4e2a\u52a0\u6cd5\u7a0b\u5e8f\uff0c\u4f60\u5f88\u5feb\u5728\u4e00\u4e2a client \u7c7b\u4e2d\u5c31\u5b8c\u6210\u3002\u6b64\u65f6\u53d8\u5316\u8fd8\u6ca1\u6709\u53d1\u751f\u3002\u7136\u540e\u6211\u8ba9\u4f60\u52a0\u4e00\u4e2a\u51cf\u6cd5\u529f\u80fd\uff0c\u4f60\u53d1\u73b0\uff0c\u589e\u52a0\u529f\u80fd\u9700\u8981\u4fee\u6539\u539f\u6765\u8fd9\u4e2a\u7c7b\uff0c\u8fd9\u5c31\u8fdd\u80cc\u4e86\u300c\u5f00\u653e-\u5c01\u95ed\u539f\u5219\u300d\uff0c\u4e8e\u662f\u4f60\u5c31\u8be5\u8003\u8651\u91cd\u6784\u7a0b\u5e8f\uff0c\u589e\u52a0\u4e00\u4e2a\u62bd\u8c61\u7684\u8fd0\u7b97\u7c7b\uff0c\u901a\u8fc7\u4e00\u4e9b\u9762\u5411\u5bf9\u8c61\u7684\u624b\u6bb5\uff0c\u5982\u7ee7\u627f\u3001\u591a\u6001\u7b49\u6765\u9694\u79bb\u5177\u4f53\u52a0\u6cd5\u548c\u51cf\u6cd5\u4e0e client \u8026\u5408\uff0c\u9700\u6c42\u4f9d\u7136\u53ef\u4ee5\u6ee1\u8db3\uff0c\u8fd8\u80fd\u5e94\u5bf9\u53d8\u5316\u3002\u8fd9\u65f6\u6211\u53c8\u8981\u4f60\u518d\u52a0\u4e58\u9664\u6cd5\u529f\u80fd\uff0c\u4f60\u5c31\u4e0d\u9700\u8981\u518d\u53bb\u66f4\u6539 client \u4ee5\u53ca\u52a0\u6cd5\u51cf\u6cd5\u7684\u7c7b\u4e86\uff0c\u800c\u662f\u589e\u52a0\u4e58\u6cd5\u548c\u9664\u6cd5\u5b50\u7c7b\u5c31\u53ef\u3002\u5373\u9762\u5bf9\u9700\u6c42\uff0c\u5bf9\u7a0b\u5e8f\u7684\u6539\u52a8\u662f\u901a\u8fc7\u589e\u52a0\u65b0\u4ee3\u7801\u8fdb\u884c\u7684\uff0c\u800c\u4e0d\u662f\u66f4\u6539\u73b0\u6709\u7684\u4ee3\u7801\u8fd9\u5c31\u662f\u300c\u5f00\u653e-\u5c01\u95ed\u539f\u5219\u300d\u7684\u7cbe\u795e\u6240\u5728\u3002

\n
\n

\u4f60\u5e94\u8be5\u5927\u80c6\u5c1d\u8bd5\uff0c\u5728\u6bcf\u4e00\u6b21\u5c1d\u8bd5\u65f6\u90fd\u5f00\u65b0\u7684\u5751\uff0c\u53bb\u72af\u65b0\u7684\u9519\uff0c\u7136\u540e\u901a\u8fc7\u8fed\u4ee3\u6162\u6162\u6765\u5b8c\u5584\u3002\u6210\u4e3a\u4e00\u4e2a\u4e13\u4e1a\u7684\u8f6f\u4ef6\u5f00\u53d1\u8005\u7684\u8fc7\u7a0b\u5c31\u662f\u4e0d\u65ad\u79ef\u7d2f\u540e\u6094\u548c\u300c error check list \u300d \u7684\u8fc7\u7a0b\u3002\u4f60\u4ece\u300c Run Success \u300d\u8eab\u4e0a\u5b66\u4e0d\u5230\u4efb\u4f55\u4e1c\u897f\uff0c\u77e5\u9053\u4f18\u8d28\u4ee3\u7801\u957f\u4ec0\u4e48\u6837\uff0c\u4f5c\u7528\u4e5f\u5fae\u4e4e\u5176\u5fae\uff0c\u4f60\u9700\u8981\u7684\u662f\uff1a\u5bf9\u5783\u573e\u4ee3\u7801\u8bb0\u5fc6\u72b9\u65b0\u3002

\n

Perlis \u4e5f\u8bf4\u8fc7\uff1a

\n
\n

In programming, as in everything else, to be in error is to be reborn.

\n
\n

\u540c\u65f6\u6562\u4e0d\u6562\u5199\u5783\u573e\u4ee3\u7801\uff0c\u5b8c\u5168\u53d6\u51b3\u4e8e\u5fc3\u6001\u3002\u5199\u7a0b\u5e8f\u5176\u5b9e\u6709\u4e24\u79cd\u5fc3\u6001\uff0c\u4e00\u79cd\u662f\u505a Demo \u7684\u5fc3\u6001\uff0c\u4e00\u79cd\u662f\u505a\u9879\u76ee\u7684\u5fc3\u6001\u3002\u8ba9\u6211\u4eec\u6765\u5bf9\u6bd4\u4e0b\u8fd9\u4e24\u4e2a\u5fc3\u6001\uff1a

\n\"\u4e24\u79cd\u72b6\u6001\"\n

\u5bf9\u4e8e\u4e1a\u52a1\u903b\u8f91\uff0c\u5783\u573e\u4ee3\u7801\u6709\u65f6\u5019\u662f\u66f4\u597d\u7684\u9009\u62e9\uff0c\u5426\u5219\u6781\u5c0f\u7684\u5c01\u88c5\u90fd\u53ef\u4ee5\u5c06\u4f60\u518d\u6b21\u5e26\u5165\u300c\u8fc7\u5ea6\u5c01\u88c5\u300d\u7684\u9677\u9631\u3002\u4e1a\u52a1\u903b\u8f91\u662f\u90a3\u79cd\u6709\u7740\u65e0\u5c3d\u7684 if else \u3001\u8fb9\u754c\u60c5\u51b5\u548c\u5feb\u901f\u800c dirty \u7684 hack \u7684\u4ee3\u7801\u3002

\n

\u73b0\u5728\u4f60\u518d\u56de\u8fc7\u5934\u6765\u601d\u8003\u4e0b\uff1a\u4e00\u5927\u5768\u5783\u573e\u4ee3\u7801\uff0c\u548c\u8fc7\u5ea6\u5c01\u88c5\u7684\u4e1a\u52a1\u903b\u8f91\u4ee3\u7801\uff0c\u54ea\u4e2a\u66f4\u597d\uff1f

\n

\u6709\u65f6\u5019\u5220\u6389\u4e00\u4e2a\u5927\u7684\u9519\u8bef\u6bd4\u5220\u6389 18 \u4e2a\u5f7c\u6b64\u76f8\u5173\u8054\u7684\u5c0f\u9519\u8bef\u66f4\u4e3a\u5bb9\u6613\u3002

\n

\u6452\u5f03\u4ee3\u7801\u6d01\u7656\uff0c\u62e5\u62b1\u5408\u7406\u7684\u5197\u4f59

\n

\u5197\u4f59\u4e00\u6837\u88ab\u8d34\u7740\u300c\u5783\u573e\u4ee3\u7801\u300d\u7684\u6807\u7b7e\uff0c\u96be\u9053\u5197\u4f59\u5c31\u6ca1\u6709\u4e00\u70b9\u597d\u5904\uff1f\u4f60\u5fc5\u987b\u8bd5\u7740\u62e5\u62b1\u5408\u7406\u7684\u5197\u4f59\u3002

\n

\u6211\u4eec\u4f1a\u901a\u8fc7\u590d\u5236\u548c\u7c98\u8d34\u6765\u5c06\u90e8\u5206\u4ee3\u7801\u91cd\u590d\u4f7f\u7528\u4ee5\u907f\u514d\u5f15\u5165\u4f9d\u8d56\u6027\uff0c\u63d0\u9ad8\u7075\u6d3b\u5ea6\uff0c\u4f46\u4ee3\u4ef7\u5c31\u662f\u5197\u4f59\u3002

\n

\u300c\u4e00\u5768\u4ee3\u7801\u88ab\u4f7f\u7528\u4e24\u6b21\uff0c\u5c31\u5e94\u8be5\u5c01\u88c5\u300d\u8fd9\u4e2a\u8bba\u8c03\u4e0d\u5e94\u8be5\u88ab\u63d0\u5021\u3002\u5f80\u5f80\u662f\u521a\u5f00\u59cb\u5f88\u65b9\u4fbf\uff0c\u8d8a\u5f80\u540e\uff0c\u968f\u7740\u9700\u6c42\u7684\u53d8\u66f4\uff0c\u8d8a\u6210\u4e3a\u4e00\u79cd\u7d2f\u8d58\u3002 \u4e3a\u4e86\u4e00\u4e2a\u5c0f\u529f\u80fd\u5c31\u53bb\u5199\u4e00\u4e2a\u5e93\uff0c\u751a\u81f3\u8fd9\u4e2a\u5e93\u53ea\u6709\u4e00\u4e2a\u65b9\u6cd5\uff0c\u8fd9\u6837\u4f1a\u5e26\u6765\u4ec0\u4e48\u95ee\u9898\uff1f\u4f60\u524a\u51cf\u4e86\u4f7f\u7528\u5230\u4e86\u8fd9\u4e2a\u5e93\u7684\u6240\u6709\u6a21\u5757\u4e4b\u95f4\u7684\u72ec\u7acb\u6027\uff0c\u8fd9\u6837\u505a\u6beb\u65e0\u5fc5\u8981\u3002

\n

\u60f3\u5199\u4f18\u8d28\u4ee3\u7801\uff0c\u8981\u5b66\u4f1a\u5982\u4f55\u4e0d\u5199\u4ee3\u7801

\n

\u4ee3\u7801\u8d8a\u5c11\uff0c Bug \u8d8a\u5c11\uff0c\u4ee3\u7801\u4e5f\u5c31\u8d8a\u4f18\u8d28\u3002

\n

\u6b63\u5982 iOS Architecture Patterns \u8fd9\u7bc7\u535a\u5ba2\u6240\u8a00\uff1a

\n
\n

The less code you have, the less bugs you have.

\n
\n
\n

The best code is the code that has never been written.

\n
\n

\u4f60\u5e94\u8be5\u59cb\u7ec8\u660e\u767d\u4ec0\u4e48\u662f\u6700\u4f18\u96c5\u7684\u89e3\u51b3\u65b9\u5f0f\u3002

\n

\u4e3a\u7b2c\u4e09\u65b9\u5e93\u5199\u5de5\u5177\u7c7b\u3001\u6a21\u677f\u7c7b

\n
\n

\u6211\u4eec\u6784\u5efa\u6a21\u5757\u4e0d\u662f\u4e3a\u4e86\u590d\u7528\uff0c\u800c\u662f\u4e3a\u4e86\u6613\u4e8e\u4fee\u6539\u3002

\n
\n

\u5efa\u5de5\u5177\u7c7b\uff0c\u51fa\u4e8e\u4e24\u4e2a\u5b8c\u5168\u76f8\u53cd\u7684\u539f\u56e0\uff1a\u4f4e\u8026\u5408\u3001\u7d27\u8026\u5408\u3002

\n

\u4f4e\u8026\u5408

\n

\u4e0a\u9762\u63d0\u5230\u7684\u300c ASI \u5207\u6362 AFN \u300d\u6559\u4f1a\u6211\u4eec\uff1a\u8981\u4e3a\u7b2c\u4e09\u65b9\u5e93\u5c01\u88c5\u3002\u5c3d\u91cf\u4e0d\u8981\u76f4\u63a5\u4f7f\u7528\u7b2c\u4e09\u65b9\u5e93\uff0c\u800c\u662f\u4e3a\u5b83\u4eec\u5c01\u88c5\u4e00\u5c42\uff0c\u901a\u5e38\u6211\u4eec\u53eb\u8fd9\u4e9b\u7c7b Tool \u3001 Handler \u3001 Helper \u3001 Manager \uff08\u5148\u4e0d\u5410\u69fd\u547d\u540d\u4e86\uff09\u3002\u8003\u8651\u5230\u7684\u662f\u66ff\u6362\u9700\u6c42\uff0c\u7531\u7b2c\u4e09\u65b9\u5e93\u800c\u884d\u751f\u51fa\u6765\u7684\u5de5\u5177\u7c7b\uff0c\u901a\u5e38\u4e5f\u653e\u5728\u53eb Tool \u7684\u6587\u4ef6\u5939\u4e0b\u3002\u8fd9\u6837\u505a\u7684\u76ee\u7684\u662f\u5c3d\u53ef\u80fd\u5c06\u53d8\u5316\u9891\u7e41\u7684\u90e8\u5206\u548c\u76f8\u5bf9\u66f4\u7a33\u5b9a\u7684\u90e8\u5206\u9694\u5f00\u6765\u5b9e\u73b0\u4f4e\u8026\u5408\u3002\u8fd9\u4e5f\u540c\u6837\u9002\u7528\u4e8e\u6570\u636e\u5e93\u4ee5\u53ca\u5404\u79cd\u53ef\u80fd\u4f1a\u53d8\u66f4\u7684 UI \u7ec4\u4ef6\u3002

\n

\u7d27\u8026\u5408

\n

\u4f46\u4e5f\u4e0d\u8981\u4e00\u5473\u8ffd\u6c42\u300c\u4f4e\u8026\u5408\u300d\uff0c\u8981\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u6765\u9009\u62e9\u300c\u7d27\u8026\u5408 tight coupling \u300d\u3002\u6bd4\u5982\u9519\u8bef\u5904\u7406\u5c31\u662f\u4e00\u4e2a\u9700\u8981\u4e0e\u9879\u76ee\u7d27\u5bc6\u7ed3\u5408\u5728\u4e00\u8d77\u7684\u64cd\u4f5c\u3002\u8fd9\u4e2a\u7d27\u8026\u5408\u7684\u90e8\u5206\uff0c\u6211\u4eec\u5c31\u8981\u653e\u5230 Tool \u91cc\uff0c\u8fd9\u4e5f\u662f\u5efa Tool \u7684\u53e6\u4e00\u8981\u8003\u8651\u7684\u539f\u56e0\uff1a\u5e93\u603b\u662f\u8bd5\u56fe\u8fce\u5408\u6240\u6709\u7684\u9700\u6c42\uff0c\u800c\u6211\u4eec\u53ea\u4f1a\u7528\u5230\u5176\u4e2d\u5c0f\u90e8\u5206\u529f\u80fd\uff0c\u800c\u4e14\u53ea\u4f1a\u5bf9\u76f8\u5e94\u7684\u54cd\u5e94\u505a\u51fa\u7279\u5b9a\u7684\u5904\u7406\u3002\u6240\u4ee5\u5efa\u5de5\u5177\u7c7b\u53ef\u4ee5\u9690\u85cf\u4e0d\u5fc5\u8981\u7684\u7ec6\u8282\u3002

\n

\u597d\u7684 API \u603b\u662f\u5927\u800c\u5168\uff0c\u800c\u5efa Tool \u5219\u662f\u6211\u4eec\u610f\u8bc6\u5230\u6211\u4eec\u4e0d\u80fd\u540c\u65f6\u8ba9\u6240\u6709\u4eba\u90fd\u9ad8\u5174\u3002\u5f00\u53d1\u4e00\u4e2a\u597d\u7528\u7684 API \u548c\u5f00\u53d1\u4e00\u4e2a\u5177\u6709\u6269\u5c55\u6027\u7684 API \u901a\u5e38\u662f\u4e92\u76f8\u51b2\u7a81\u7684\u3002Tool \u7684\u4f5c\u7528\u5c31\u662f\u8ba9\u4ed6\u4eec\u597d\u7528\u3002

\n

\u9020\u8f6e\u5b50

\n

\u4f60\u5728\u5efa Tool \u65f6\u5e94\u8be5\u5df2\u7ecf\u4f53\u4f1a\u5230\u7d27\u8026\u5408\u7684\u597d\u5904\u4e86\uff0c\u4f46\u6709\u65f6 Tool \u5df2\u7ecf\u5b8c\u5168\u6ee1\u8db3\u4e0d\u4e86\u6211\u4eec\u7684\u7d27\u8026\u5408\u9700\u6c42\uff0c\u8fd9\u65f6\u6211\u4eec\u5c31\u9700\u8981\u9020\u8f6e\u5b50\u3002

\n

iOS \u91cc Star \u6570\u6700\u591a\u7684\u4e00\u4e2a\u5e93\u662f AFNetworking \uff0c\u4e3a\u4ec0\u4e48\uff1f\u5f53\u5e74 iOS 5 \u3001 iOS 6 \u65f6\u4ee3\u8fd8\u6ca1\u6709 NSURLSession \u7684\u65f6\u5019\uff0c NSURLConnection \u505a\u65ad\u70b9\u7eed\u4f20\u548c\u65ad\u70b9\u4e0b\u8f7d\u662f\u975e\u5e38\u56f0\u96be\u7684\uff0c\u800c\u4e14\u82f9\u679c\u7684 API \u4e0d\u5bf9\u5916\u9690\u85cf\u4efb\u4f55\u7ec6\u8282\uff0c\u8fd9\u4e5f\u5c31\u9020\u5c31\u4e86 AFNetworking \u2014\u2014\u5b83\u4e3a\u5927\u5bb6\u9690\u85cf\u4e86\u5f88\u591a\u7ec6\u8282\uff0c\u6240\u4ee5\u597d\u7528\u3002

\n

\u540c\u6837\u7684\u9053\u7406\uff0c\u5728\u65e5\u76ca\u590d\u6742\u5316\u7684 App \u5f00\u53d1\u4e2d\uff0c Auto layout \u9010\u6e10\u6210\u4e3a\u6700\u4f73\u9009\u62e9\u3002\u4f46\u590d\u6742\u7684 VFL \u8bed\u6cd5\uff0c\u4ee5\u53ca\u5f00\u53d1\u8005\u4e0d\u592a\u4e70\u8d26\u7684 Storyboard \u3001 XIB \u53ef\u89c6\u5316\u64cd\u4f5c\uff0c\u4e5f\u6210\u5c31\u4e86 Masorny \u3002 Masorny \u4ee5\u5176\u4f18\u96c5\u7684\u94fe\u5f0f\u7eaf\u4ee3\u7801\u64cd\u4f5c\uff0c\u6e10\u6e10\u6210\u4e3a\u81ea\u52a8\u5e03\u5c40\u7684\u4e3b\u6d41\u6846\u67b6\u3002

\n

\u8bbe\u8ba1\u6a21\u5f0f\u7684\u300c\u5355\u4e00\u8d23\u4efb\u300d\u539f\u5219\u544a\u8bc9\u6211\u4eec\uff1a

\n
\n

\u6bcf\u4e00\u4e2a\u6a21\u5757\u90fd\u5e94\u8be5\u53ea\u53bb\u89e3\u51b3\u4e00\u4e2a\u96be\u9898

\n
\n

\u4f46\u6211\u4eec\u66f4\u9700\u8981\uff1a

\n
\n

\u6bcf\u4e00\u4e2a\u96be\u9898\u90fd\u53ea\u5e94\u8be5\u7531\u4e00\u4e2a\u6a21\u5757\u53bb\u89e3\u51b3

\n
\n

\u5f53\u4e00\u4e2a\u95ee\u9898\u9700\u8981\u4e24\u4e2a\u6a21\u5757\u53bb\u505a\u7684\u65f6\u5019\uff0c\u901a\u5e38\u90fd\u662f\u56e0\u4e3a\u6539\u53d8\u4e00\u90e8\u5206\u9700\u8981\u53e6\u5916\u4e00\u90e8\u5206\u7684\u6539\u53d8\u3002

\n

\u4e00\u4e2a\u5199\u5f97\u5f88\u7cdf\u7cd5\u4f46\u662f\u6709\u7740\u7b80\u5355\u63a5\u53e3\u7684\u7ec4\u4ef6\uff0c\u901a\u5e38\u6bd4\u9700\u8981\u4e92\u76f8\u534f\u8c03\u7684\u4e24\u4e2a\u7ec4\u4ef6\u66f4\u5bb9\u6613\u4f7f\u7528\u3002

\n

\u4f60\u5e94\u8be5\u50cf AFNetworking \u3001 Masorny \u90a3\u6837\uff0c\u5199\u51fa\u8fd9\u6837\u7684\u4f18\u8d28\u4ee3\u7801\uff1a\u80fd\u5c06\u5199\u8d77\u6765\u3001\u7ef4\u62a4\u8d77\u6765\uff0c\u6216\u8005\u5220\u9664\u8d77\u6765\u6700\u56f0\u96be\u7684\u90e8\u5206\u4e92\u76f8\u9694\u79bb\u5f00\u3002

\n

\u5982\u4f55\u53c2\u4e0e\u300c\u58f9\u671f\u58f9\u95ee\u300d\uff1f

\n

\u5927\u5bb6\u53ef\u4ee5\u901a\u8fc7\u95ee\u9898\u63d0\u4ea4\u901a\u9053\u6765\u5411 LeanCloud \u63d0\u95ee\u3002

\n" }, { "author": { "url": "member/adrianzhang", "name": "adrianzhang", "avatar": "https://cdn.v2ex.com/avatar/c705/1dbf/54462_large.png?m=1721997902" }, "url": "t/278843", "title": "\u8d5e Leanote", "id": "t/278843", "date_published": "2016-05-15T17:32:20+00:00", "content_html": "\u6211\u662f\u7279\u5730\u6765\u70b9\u4e2a\u8d5e\u7684\u3002 Leanote \u662f\u4e2a\u8ba9\u6211\u773c\u524d\u4e00\u4eae\u7684\u4f01\u4e1a Knowledge base \u89e3\u51b3\u65b9\u6848\u3002\u5f00\u6e90\u540e\u7b80\u76f4\u662f\u5927\u5927\u65b9\u4fbf\u4e86\u6211\u4eec\uff01\u540c\u65f6 Leanote.com \u7531\u4e8e\u5177\u5907 Markdown \u4e66\u5199\u79c1\u6709\u6280\u672f\u6587\u6863\uff0c\u4ee5\u53ca\u4e00\u952e\u516c\u5f00\u4e3a\u535a\u5ba2\u7684\u529f\u80fd\uff0c\u73b0\u5728\u5df2\u7ecf\u6210\u4e3a\u6211\u7684\u4e3b\u529b\u5199\u4f5c\u5e73\u53f0\u3002\u611f\u8c22\u4f5c\u8005\uff01" }, { "author": { "url": "member/WildCat", "name": "WildCat", "avatar": "https://cdn.v2ex.com/avatar/baf2/9ae7/39784_large.png?m=1710948175" }, "url": "t/277899", "date_modified": "2016-05-11T07:07:10+00:00", "content_html": "

\"lc\"

\n

\u60f3\u7edf\u4e00 iOS/Android \u63a8\u9001\uff0c\u4f46\u662f\u8fd9\u6837\u597d\u6349\u6025\u3002\u3002\u3002

\n", "date_published": "2016-05-11T07:03:03+00:00", "title": "LeanCloud \u7684\u63a8\u9001\u670d\u52a1\u7a33\u5b9a\u6027\u6349\u6025\u554a\uff0c\u4e24\u5206\u949f\u524d\u597d\u597d\u7684\u7a81\u7136\u53c8\u4e0d\u884c\u4e86\u3002\u3002\u3002\u53e6\u5916\u5927\u5bb6\u90fd\u7528\u4ec0\u4e48 Android \u63a8\u9001\u670d\u52a1\uff0c\u6c42\u63a8\u8350", "id": "t/277899" }, { "author": { "url": "member/hanmiao", "name": "hanmiao", "avatar": "https://cdn.v2ex.com/avatar/3a0f/abc2/60092_large.png?m=1434627800" }, "url": "t/273730", "date_modified": "2016-04-22T11:52:02+00:00", "content_html": "

2016 \u5e74 4 \u6708 22 \u65e5\uff1a\u4e2d\u56fd\u8282\u70b9\u5b58\u50a8\u670d\u52a1\u6545\u969c\u8bf4\u660e

\n

2016 \u5e74 4 \u6708 22 \u65e5 13:04 \u5f00\u59cb\uff0c LeanCloud \u4e2d\u56fd\u8282\u70b9\u7684\u540e\u7aef\u5b58\u50a8\u96c6\u7fa4\u51fa\u73b0\u95ee\u9898\uff0c\u5bfc\u81f4\u8be5\u8282\u70b9\u4e0a\u6240\u6709\u5e94\u7528\u90fd\u51fa\u73b0\u4e86\u5b58\u50a8 API \u8bbf\u95ee\u6545\u969c\uff0c\u5c06\u8fd1\u534a\u5c0f\u65f6\u540e\u5f97\u5230\u6062\u590d\u3002\u6545\u969c\u7684\u8be6\u7ec6\u7ecf\u8fc7\u901a\u62a5\u5982\u4e0b\u3002

\n

\u6545\u969c\u65f6\u95f4

\n

13:09 \uff0d 13:28 \uff1a\u6240\u6709\u5e94\u7528\u7684\u6570\u636e\u5b58\u50a8\u670d\u52a1\u90fd\u51fa\u73b0\u8bbf\u95ee\u5f02\u5e38\uff08\u6301\u7eed 19 \u5206\u949f\uff09\n13:28 \uff0d 13:40 \uff1a\u5927\u90e8\u5206\u5e94\u7528\u5df2\u7ecf\u6062\u590d\uff0c\u4f46\u8fd8\u6709 20% \u7684\u5e94\u7528\u4f9d\u7136\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\uff08\u6301\u7eed 12 \u5206\u949f\uff09\n\u5f71\u54cd\u8303\u56f4

\n

\u4e2d\u56fd\u8282\u70b9\u4e0a\u6240\u6709\u5e94\u7528\u7684\u5b58\u50a8\u670d\u52a1\u90fd\u53d7\u5230\u5f71\u54cd\uff0c\u540c\u65f6\u4f9d\u8d56\u4e8e\u6570\u636e\u5b58\u50a8\u7684\u5b9e\u65f6\u901a\u4fe1\u3001\u4e91\u5f15\u64ce\u670d\u52a1\u4e5f\u53ef\u80fd\u51fa\u73b0\u5185\u90e8\u9519\u8bef\u3002

\n

\u7f8e\u56fd\u8282\u70b9\u4e0d\u53d7\u5f71\u54cd\uff0c\u6240\u6709\u670d\u52a1\u5747\u5de5\u4f5c\u6b63\u5e38\u3002

\n

\u4e8b\u6545\u7ecf\u8fc7

\n

13:04 \uff1a\u6211\u4eec\u76d1\u63a7\u7cfb\u7edf\u9646\u7eed\u53d1\u51fa\u62a5\u8b66\uff0c\u540e\u7aef\u5b58\u50a8\u96c6\u7fa4\u8bbf\u95ee\u8d85\u65f6\u6162\u6162\u589e\u591a\uff0c\u5de5\u7a0b\u5e08\u4ecb\u5165\u8c03\u67e5\uff0c\u5e76\u5411\u7528\u6237\u53d1\u51fa\u4e86\u77ed\u4fe1\u548c\u90ae\u4ef6\u901a\u77e5\u3002\n13:10 \uff1a\u6574\u4e2a\u96c6\u7fa4\u7684\u5b58\u50a8 API Server \u4e0d\u518d\u54cd\u5e94\u5916\u90e8\u8bf7\u6c42\u3002\u8c03\u67e5\u540e\u786e\u8ba4\u662f\u540e\u7aef\u5b58\u50a8\u7cfb\u7edf\u5728\u505a\u5927\u91cf\u8017\u65f6\u7684\u5173\u7cfb\u6570\u636e\u5199\u5165\u64cd\u4f5c\uff0c\u5bfc\u81f4\u7cfb\u7edf\u5931\u53bb\u54cd\u5e94\u3002\u4e8e\u662f\u6211\u4eec\u9a6c\u4e0a\u91cd\u542f\u96c6\u7fa4\uff0c\u5e76\u5206\u6279\u5f00\u653e\u6d41\u91cf\u3002\n13:28 \uff1a\u90e8\u5206\u5b58\u50a8\u5206\u7247\uff08 shard \uff09\u5f97\u5230\u6062\u590d\uff0c 80% \u7684\u5e94\u7528\u8bbf\u95ee\u6062\u590d\u6b63\u5e38\uff1b\u53d1\u9001\u7b2c\u4e8c\u6b21\u6545\u969c\u8fdb\u5ea6\u901a\u77e5\u3002\n13:40 \uff1a\u6240\u6709\u5e94\u7528\u6062\u590d\u6b63\u5e38\uff1b\u53d1\u9001\u6545\u969c\u89e3\u51b3\u901a\u77e5\u3002\n\u540e\u7eed\u6539\u8fdb\u63aa\u65bd

\n

\u8fd9\u4e00\u6b21\u6545\u969c\u7684\u6839\u672c\u539f\u56e0\u5728\u4e8e AVRelation \u6a21\u578b\u7684\u5e95\u5c42\u5b9e\u73b0\u5b58\u5728\u7f3a\u9677\uff0c\u67d0\u4e9b\u7279\u6b8a\u6761\u4ef6\u4e0b\u4f1a\u5bfc\u81f4\u540e\u7aef\u5b58\u50a8\u7cfb\u7edf\u56e0\u5fd9\u4e8e\u5904\u7406\u800c\u5931\u53bb\u54cd\u5e94\u3002\u6211\u4eec\u5df2\u5b8c\u6210\u66ff\u4ee3\u65b9\u6848\u7684\u5f00\u53d1\uff0c\u6b63\u5728\u6d4b\u8bd5\u4e2d\uff0c\u4e0b\u5468\u4f1a\u53d1\u5e03\u66f4\u5408\u7406\u7684\u89e3\u51b3\u65b9\u6848\u3002\uff08 4 \u6708 27 \u65e5\u5468\u4e09\u5b8c\u6210\uff09\n\u6539\u8fdb\u5e76\u53d1\u9650\u5236\u7684\u7b97\u6cd5\uff0c\u4ee5\u4fbf\u5728\u5f02\u5e38\u6761\u4ef6\u4e0b\u66f4\u597d\u5730\u9650\u5236\u6545\u969c\u7684\u5f71\u54cd\u8303\u56f4\u3002\uff08 4 \u6708 25 \u65e5\u5468\u4e00\u5b8c\u6210\uff09\n\u6392\u67e5\u6240\u6709\u5371\u9669\uff0f\u8017\u65f6\u64cd\u4f5c\uff0c\u5728\u4e0a\u5c42\u8fdb\u884c\u5199\u5165\u63a7\u5236\uff0c\u907f\u514d\u5bf9\u540e\u7aef\u5b58\u50a8\u7cfb\u7edf\u9020\u6210\u592a\u5927\u5f71\u54cd\u3002\uff08 4 \u6708 25 \u65e5\u5468\u4e00\u5b8c\u6210\uff09\n\u8fd1\u671f LeanCloud \u5e73\u53f0\u8f83\u4e3a\u9891\u7e41\u5730\u53d1\u751f\u6545\u969c\uff0c\u8fd9\u5bf9\u6211\u4eec\u4e5f\u662f\u4e00\u79cd\u524d\u6240\u672a\u6709\u7684\u8003\u9a8c\u3002 LeanCloud \u4e00\u76f4\u628a\u7a33\u5b9a\u770b\u6210\u751f\u547d\u7ebf\uff0c\u6240\u4ee5\u6211\u4eec\u6b63\u5728\u96c6\u4e2d\u5168\u90e8\u7cbe\u529b\u6765\u5e94\u5bf9\u7528\u6237\u548c\u6d41\u91cf\u4e0d\u65ad\u589e\u957f\u5e26\u6765\u7684\u6311\u6218\uff0c\u6bcf\u5468\u90fd\u4f1a\u4e0a\u7ebf\u4e00\u4e9b\u589e\u52a0\u7a33\u5b9a\u6027\u7684\u63aa\u65bd\u3002\u6211\u4eec\u6709\u4fe1\u5fc3\u80fd\u5c3d\u5feb\u8ba9\u4e91\u670d\u52a1\u66f4\u52a0\u7a33\u5b9a\u548c\u53ef\u9760\uff0c\u5e0c\u671b\u5e7f\u5927\u5f00\u53d1\u8005\u80fd\u591f\u7ee7\u7eed\u652f\u6301\u548c\u4fe1\u4efb LeanCloud \u3002

\n

\u5982\u679c\u60a8\u6709\u4efb\u4f55\u7591\u95ee\uff0c\u8bf7\u53d1\u9001\u90ae\u4ef6\u81f3 support@leancloud.cn \u8fdb\u884c\u786e\u8ba4\u3002

\n

Cheers,\nThe LeanCloud Team

\n", "date_published": "2016-04-22T11:50:34+00:00", "title": "\u53c8\u6765\u3002\u3002\u3002LeanCloud \u4e2d\u56fd\u8282\u70b9\u7684\u540e\u7aef\u5b58\u50a8\u96c6\u7fa4\u51fa\u73b0\u95ee\u9898", "id": "t/273730" }, { "author": { "url": "member/zckevin", "name": "zckevin", "avatar": "https://cdn.v2ex.com/avatar/9335/96b8/7670_large.png?m=1721270420" }, "url": "t/268786", "date_modified": "2016-04-05T12:46:44+00:00", "content_html": "180.150.179.13 \u548c 180.150.179.12 \u90fd\u65e0\u6cd5 ping \u901a\uff0c\u4e00\u4e2a\u5c0f\u65f6\u4e86\u3002\u3002\u3002", "date_published": "2016-04-05T12:43:23+00:00", "title": "Leancloud \u53c8\u6302\u4e86\uff1f\u5168\u56fd\u90fd\u65e0\u6cd5 ping \u901a", "id": "t/268786" }, { "author": { "url": "member/Gabarr", "name": "Gabarr", "avatar": "https://cdn.v2ex.com/gravatar/c62bebabd975ef2d3cef29924ee7e1d6?s=73&d=retro" }, "url": "t/263273", "title": "leanapp.cn \u4e0b\u57df\u540d\u65e0\u6cd5\u9a8c\u8bc1\u5fae\u4fe1\uff1f", "id": "t/263273", "date_published": "2016-03-14T01:16:58+00:00", "content_html": "

\u8bd5\u8fc7\u4e86\u81ea\u5df1\u7f16\u5199\u4ee3\u7801\u548c\u4f7f\u7528\u5b98\u65b9\u5165\u95e8\uff0c\u90fd\u65e0\u6cd5\u9a8c\u8bc1\u901a\u8fc7\u3002
\n\u8981\u4e48\u8bf4\u8bf7\u6c42 URL \u8d85\u65f6\uff0c\u8981\u4e48\u8bf4 token \u9a8c\u8bc1\u5931\u8d25\u3002

\n\n

\u6709\u524d\u8f88\u6765\u5e26\u5e26\u8def\u4e48\uff1f

\n" }, { "author": { "url": "member/FiberCore", "name": "FiberCore", "avatar": "https://cdn.v2ex.com/gravatar/d54e31f135f718af044aca3b38ff9b6a?s=73&d=retro" }, "url": "t/257343", "title": "LeanCloud \u4f60\u4eec\u7684 push \u662f\u4e0d\u662f\u6302\u6389\u4e86\uff0c\u53d1\u4e86\u51e0\u4e2a\u90fd\u4e0d\u884c\u554a", "id": "t/257343", "date_published": "2016-02-18T06:22:51+00:00", "content_html": "

LeanCloud \u4f60\u4eec\u7684 push \u662f\u4e0d\u662f\u6302\u6389\u4e86\uff0c\u521a\u624d\u6d4b\u8bd5\u53d1\u4e86\u51e0\u4e2a\u90fd\u4e0d\u884c\uff0c\u65e9\u4e0a\u8fd8\u597d\u597d\u7684

\n" }, { "author": { "url": "member/int64ago", "name": "int64ago", "avatar": "https://cdn.v2ex.com/avatar/5cb3/52b4/90433_large.png?m=1737293311" }, "url": "t/254221", "title": "\u8bf7\u5141\u8bb8\u6211\u6c34\u4e00\u4e0b\uff0c\u6bcf\u6b21\u6572\u6253 AV.Object...\uff0c\u90fd\u4f1a\u8ba9\u6211\u4e0b\u610f\u8bc6\u7684\u4e71\u60f3\uff0c\u4e0d\u80fd\u597d\u597d\u7684\u5de5\u4f5c\uff0c\u4f60\u4eec\u8bbe\u8ba1\u7684\u65f6\u5019\u662f\u5982\u4f55\u8003\u8651\u7684\uff0c\u867d\u7136\u6211\u77e5\u9053\u662f\u4e4b\u524d\u54c1\u724c\u7684\u7b80\u79f0\u2026\u2026", "id": "t/254221", "date_published": "2016-01-29T05:15:04+00:00", "content_html": "" }, { "author": { "url": "member/hjiang", "name": "hjiang", "avatar": "https://cdn.v2ex.com/avatar/e43a/5db4/23827_large.png?m=1757052635" }, "url": "t/250122", "title": "\u4f7f\u7528 New Relic \u76d1\u63a7\u4e91\u5f15\u64ce\u5e94\u7528\u7684\u6027\u80fd", "id": "t/250122", "date_published": "2016-01-12T05:34:43+00:00", "content_html": "

\u600e\u6837\u7528 New Relic \u76d1\u63a7\u90e8\u7f72\u5728 LeanCloud \u4e0a\u7684 LeanEngine \u5e94\u7528\uff1a https://blog.leancloud.cn/4133/

\n" }, { "author": { "url": "member/LeanCloudRRY", "name": "LeanCloudRRY", "avatar": "https://cdn.v2ex.com/avatar/278f/c5d5/103427_large.png?m=1430102721" }, "url": "t/240365", "title": "\u300c\u4ea7\u54c1\u66f4\u65b0\u300d\u9ad8\u6548\u5185\u5b58\u5b58\u50a8\u670d\u52a1 LeanCache \u6b63\u5f0f\u53d1\u5e03", "id": "t/240365", "date_published": "2015-12-01T10:10:41+00:00", "content_html": "

LeanCache \u662f\u4e3a\u4e91\u5f15\u64ce\u7528\u6237\u63d0\u4f9b\u7684\u9ad8\u6027\u80fd\u3001\u9ad8\u53ef\u7528\u7684\u5185\u5b58\u5b58\u50a8\u670d\u52a1\u3002\u4e0e\u6211\u4eec\u4ee5\u5f80\u7684\u6570\u636e\u5b58\u50a8\u670d\u52a1\u76f8\u6bd4\uff0c\u5b83\u4e0d\u4ec5\u80fd\u591f\u5904\u7406\u66f4\u591a\u7684\u5e76\u53d1\u8fde\u63a5\u548c\u8bf7\u6c42\u6570\uff0c\u6781\u5927\u5730\u63d0\u9ad8\u5e94\u7528\u6027\u80fd\uff0c\u800c\u4e14\u8fd8\u80fd\u964d\u4f4e\u6570\u636e\u5b58\u50a8\u7684\u4f7f\u7528\u6210\u672c\u3002\u50cf\u79d2\u6740\u3001\u62a2\u7ea2\u5305\u3001\u6570\u636e\u91cf\u5c11\u4f46\u8bfb\u5199\u6bd4\u4f8b\u5f88\u9ad8\u7b49\u573a\u666f\u90fd\u9002\u5408\u4f7f\u7528 LeanCache \u3002

\n\n

\"\"

\n\n

\u5728\u4e91\u5f15\u64ce\u4e2d\u8bbf\u95ee\u4e00\u4e2a\u5bb9\u91cf\u4e3a 2GB \u7684 LeanCache \u5b9e\u4f8b\uff0c\u6bcf\u79d2\u53ef\u4ee5\u5904\u7406\u5c06\u8fd1 70,000 \u6b21\u7684\u8bf7\u6c42\uff0c\u800c\u4e00\u822c\u60c5\u51b5\u4e0b\u8bbf\u95ee\u5b58\u50a8\u670d\u52a1\u7684\u8bf7\u6c42\u5cf0\u503c\u4e3a 320 \u6b21\uff0f\u79d2\uff0c\u76f8\u5dee 200 \u591a\u500d\u3002\u9664\u4e86\u66f4\u9ad8\u7684\u6027\u80fd\uff0c LeanCache \u8fd8\u53ef\u4ee5\u5e2e\u52a9\u7528\u6237\u8282\u7701\u8d39\u7528\u3002\u56e0\u4e3a\u4ea4\u7531 LeanCache \u5904\u7406\u7684\u8bf7\u6c42\u4e0d\u8ba1\u5165\u5b58\u50a8 API \u8c03\u7528\u6b21\u6570\uff0c\u6240\u4ee5\u7528\u6237\u53ef\u4ee5\u628a\u4e00\u4e9b\u9ad8\u9891\u7387\u7684\u67e5\u8be2\u4ece\u6309 API \u8c03\u7528\u6b21\u6570\u6536\u8d39\u7684\u5b58\u50a8\u670d\u52a1\u5206\u6d41\u81f3 LeanCache \u4e0a\uff0c\u901a\u8fc7\u964d\u4f4e\u603b\u7684 API \u8c03\u7528\u6b21\u6570\u6765\u51cf\u5c11\u8d39\u7528\u3002

\n\n

LeanCache \u57fa\u4e8e Redis \u6280\u672f\uff0c\u540c\u65f6\u652f\u6301\u7f13\u5b58\u6570\u636e\u5b58\u50a8\u548c\u6301\u4e45\u5316\u5b58\u50a8\uff0c\u53ef\u4ee5\u5728\u4e0d\u4e2d\u65ad\u670d\u52a1\u7684\u60c5\u51b5\u4e0b\u5728\u7ebf\u6269\u5bb9\u3002\u540c\u65f6\uff0c LeanCache \u652f\u6301\u5728\u591a\u4e2a\u5e94\u7528\u4e4b\u95f4\u5171\u4eab\u6570\u636e\uff0c\u6240\u4ee5\u5982\u679c\u591a\u4e2a\u4e91\u5f15\u64ce\u8282\u70b9\u9700\u8981\u534f\u540c\u5de5\u4f5c\u548c\u901a\u4fe1\uff0c LeanCache \u4e5f\u662f\u6b63\u786e\u7684\u9009\u62e9\u3002

\n\n

\u521b\u5efa\u8282\u70b9

\n\n

\u8fdb\u5165 \u63a7\u5236\u53f0 >\uff08\u9009\u62e9\u5e94\u7528\uff09> \u5b58\u50a8 > \u4e91\u5f15\u64ce > LeanCache\uff0c\u70b9\u51fb \u521b\u5efa\u8282\u70b9 \u6765\u521b\u5efa\u65b0\u7684 LeanCache \u8282\u70b9\u3002\u5982\u4e0b\u56fe\u6240\u793a\uff1a

\n\n

\"\"

\n\n

\u521b\u5efa\u5b9e\u4f8b\u65f6\u53ef\u9009\u53c2\u6570\uff1a

\n\n\n\n

\u4f7f\u7528

\n\n

LeanCache \u76ee\u524d\u4ec5\u652f\u6301\u901a\u8fc7\u4e91\u5f15\u64ce\u8bbf\u95ee\u3002\u5b9e\u4f8b\u521b\u5efa\u5b8c\u6bd5\u540e\uff0c\u4e91\u5f15\u64ce\u5e94\u7528\u5c31\u53ef\u4ee5\u4ece\u73af\u5883\u53d8\u91cf\u4e2d\u83b7\u53d6 REDIS_URL_<\u5b9e\u4f8b\u540d\u79f0> \u7684 Redis \u8fde\u63a5\u5b57\u7b26\u4e32\uff0c\u901a\u8fc7\u8be5\u4fe1\u606f\u8fde\u63a5\u5e76\u4f7f\u7528 LeanCache \u3002

\n\n

LeanCache \u5b9e\u4f8b\u5728\u5f00\u53d1\u8005\u8d26\u6237\u5185\u5168\u5c40\u53ef\u89c1\uff0c\u5e76\u4e0d\u4e0e\u67d0\u4e2a\u5e94\u7528\u56fa\u5b9a\u7ed1\u5b9a\u3002\u6240\u4ee5\u5728\u67d0\u4e2a\u5e94\u7528\u5185\u521b\u5efa\u7684 LeanCache \u5b9e\u4f8b\uff0c\u5176\u4ed6\u5e94\u7528\u4e5f\u4e00\u6837\u53ef\u4ee5\u4f7f\u7528\u3002\u5bf9\u4e8e\u67d0\u4e9b\u4f7f\u7528\u573a\u666f\uff0c\u8b6c\u5982 O2O \u884c\u4e1a\u7684\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\uff0c\u6216\u8005\u7f51\u7edc\u79df\u7ea6\u8f66\u5e73\u53f0\u7684\u4e58\u5ba2\u7aef\u548c\u53f8\u673a\u7aef\uff0c\u9700\u8981\u591a\u4e2a\u5e94\u7528\u5171\u4eab\u540c\u4e00\u4efd\u6570\u636e\uff0c\u8fd9\u4e00\u70b9\u5c06\u4f1a\u975e\u5e38\u6709\u7528\u3002

\n\n

\u53ef\u9760\u6027

\n\n

LeanCache \u5b9e\u4f8b\u4f7f\u7528 Redis Master-Slave \u4e3b\u4ece\u70ed\u5907\uff0c\u6709\u591a\u4e2a\u89c2\u5bdf\u8282\u70b9\u6bcf\u9694 1 \u79d2\u949f\u89c2\u5bdf\u4e00\u6b21\u4e3b\u8282\u70b9\u7684\u72b6\u6001\u3002\u5982\u679c\u300c\u4e3b\u8282\u70b9\u300d\u6700\u540e\u4e00\u6b21\u6709\u6548\u54cd\u5e94\u5728 5 \u79d2\u4e4b\u524d\uff0c\u5219\u8be5\u89c2\u5bdf\u8282\u70b9\u8ba4\u4e3a\u4e3b\u8282\u70b9\u5931\u6548\u3002\u5982\u679c\u8d85\u8fc7\u603b\u6570\u4e00\u534a\u7684\u89c2\u5bdf\u8282\u70b9\u53d1\u73b0\u4e3b\u8282\u70b9\u5931\u6548\uff0c\u5219\u81ea\u52a8\u5c06\u300c\u4ece\u8282\u70b9\u300d\u5207\u6362\u4e3a\u4e3b\u8282\u70b9\uff0c\u5e76\u4f1a\u6709\u65b0\u7684\u4ece\u8282\u70b9\u542f\u52a8\u91cd\u65b0\u7ec4\u6210\u4e3b\u4ece\u70ed\u5907\u3002\u8fd9\u4e2a\u8fc7\u7a0b\u5bf9\u5e94\u7528\u5b8c\u5168\u900f\u660e\uff0c\u4e0d\u9700\u8981\u4fee\u6539\u8fde\u63a5\u5b57\u7b26\u4e32\u6216\u8005\u91cd\u542f\uff0c\u6574\u4e2a\u5207\u6362\u8fc7\u7a0b\u5e94\u7528\u53ea\u6709\u51e0\u79d2\u949f\u7684\u8bbf\u95ee\u4e2d\u65ad\u3002

\n\n

\u4e0e\u6b64\u540c\u65f6\uff0c\u4ece\u8282\u70b9\u8fd8\u4f1a\u4ee5 AOF \u65b9\u5f0f \u5c06\u6570\u636e\u6301\u4e45\u5316\u5b58\u50a8\u5230\u53ef\u9760\u7684\u4e2d\u592e\u6587\u4ef6\u4e2d\uff0c\u6bcf\u79d2\u5237\u65b0\u4e00\u6b21\u3002\u5982\u679c\u5f88\u4e0d\u5de7\u4e3b\u4ece\u8282\u70b9\u540c\u65f6\u5931\u6548\uff0c\u5219\u9a6c\u4e0a\u4f1a\u6709\u65b0\u7684 Redis \u8282\u70b9\u542f\u52a8\uff0c\u5e76\u4ece AOF \u6587\u4ef6\u6062\u590d\uff0c\u5b8c\u6210\u540e\u5373\u53ef\u518d\u6b21\u63d0\u4f9b\u670d\u52a1\uff0c\u5e76\u4e14\u4f1a\u6709\u65b0\u7684\u4ece\u8282\u70b9\u4e0e\u4e4b\u6784\u6210\u4e3b\u4ece\u70ed\u5907\u3002

\n\n

\u4ef7\u683c

\n\n

\"\"

\n\n

LeanCache \u670d\u52a1\u73b0\u5728\u5df2\u7ecf\u4e0a\u7ebf\uff0c\u6211\u4eec\u5c06\u4ece 2015 \u5e74 12 \u6708 7 \u65e5 \u5f00\u59cb\u5bf9\u5b83\u6536\u8d39\u3002\u7ed3\u7b97\u65b9\u5f0f\u4e3a\u6309\u5929\u6263\u8d39\uff0c\u4f7f\u7528\u65f6\u95f4\u4e0d\u8db3\u4e00\u5929\u6309\u4e00\u5929\u6536\u8d39\u3002\u56e0\u4e3a\u7528\u6237\u53ef\u80fd\u9700\u8981\u8c03\u6574\u5bb9\u91cf\uff0c\u6240\u4ee5\u4e3a\u4e86\u65b9\u4fbf\u8ba1\u7b97\uff0c\u6211\u4eec\u6309\u7167\u7528\u6237\u5f53\u5929\u6240\u4f7f\u7528\u7684\u300c\u6700\u5927\u5bb9\u91cf\u300d\u6765\u7ed3\u7b97\uff0c\u6b21\u65e5\u51cc\u6668\u4ece\u8d26\u6237\u4f59\u989d\u4e2d\u6263\u6b3e\u3002\u540c\u65f6\uff0c\u4e3a\u4e86\u9632\u6b62 LeanCache \u8282\u70b9\u88ab\u968f\u610f\u521b\u5efa\u800c\u6d6a\u8d39\u4e0d\u5fc5\u8981\u7684\u670d\u52a1\u5668\u8d44\u6e90\uff0c\u6211\u4eec\u8981\u6c42\u5f00\u53d1\u8005\u8d26\u6237\u7559\u6709\u8db3\u591f\u7684\u4f59\u989d\u3002

\n\n

\u82e5\u60f3\u4e86\u89e3\u66f4\u591a\u6280\u672f\u7ec6\u8282\uff0c\u8bf7\u9605\u8bfb \u300a LeanCache \u4f7f\u7528\u6307\u5357\u300b\u3002

\n" }, { "author": { "url": "member/LeanCloudRRY", "name": "LeanCloudRRY", "avatar": "https://cdn.v2ex.com/avatar/278f/c5d5/103427_large.png?m=1430102721" }, "url": "t/234813", "title": "\u57fa\u4e8e LeanCloud \u4e91\u5f15\u64ce\u7684 Web \u5168\u6808\u65b9\u6848\uff1a LeanEngine-Full-Stack", "id": "t/234813", "date_published": "2015-11-09T08:10:36+00:00", "content_html": "

\u5f88\u591a\u5de5\u7a0b\u5e08\u4f7f\u7528 LeanCloud \u4e4b\u540e\uff0c\u53d1\u73b0\u4e00\u4e2a\u4eba\u5c31\u53ef\u4ee5 hold \u4f4f\u4e00\u4e2a\u5b8c\u6574\u9879\u76ee\uff0c\u5c24\u5176\u662f\u4e00\u4e2a Web \u9879\u76ee\u3002\u539f\u56e0\u5f88\u7b80\u5355\uff0c\u672c\u6765\u590d\u6742\u7e41\u7410\u7684\u6570\u636e\u5e93\u64cd\u4f5c\uff0c\u901a\u8fc7\u4f7f\u7528 LeanCloud \u7684 Javascript SDK \u53d8\u5f97\u8f7b\u800c\u6613\u4e3e\uff0c\u518d\u7ed3\u5408 LeanCloud \u63d0\u4f9b\u670d\u52a1\u5668\u7aef\u5bb9\u5668 \u2014\u2014 LeanEngine \uff08\u652f\u6301\u4e24\u79cd\u73af\u5883 Nodejs \u548c Python \uff09\uff0c\u5c31\u53ef\u4ee5\u5f88\u9ad8\u6548\u5730\u5f00\u53d1\u51fa\u4e00\u4e2a Web \u7aef\u9879\u76ee\u3002

\n\"\"

\n\n

\u80cc\u666f

\n\n

\u5f00\u59cb\u5c1d\u8bd5 LeanCloud \u65f6\u9879\u76ee\u5e76\u4e0d\u5927\uff0c\u4e5f\u4e0d\u7b97\u590d\u6742\uff0c\u5927\u5bb6\u90fd\u662f\u5f88\u7b80\u5355\u5730\u53bb\u5199\u4ee3\u7801\uff0c\u4f46\u662f\u968f\u7740\u4f7f\u7528\u7684\u6df1\u5165\u53ca\u8d8a\u6765\u8d8a\u987a\u624b\uff0c\u6709\u4e9b\u5de5\u7a0b\u5e08\u5f00\u59cb\u5c1d\u8bd5\u8bbe\u8ba1\u590d\u6742\u7684\u9879\u76ee\u3002\u53ea\u8981\u9879\u76ee\u590d\u6742\u4e86\uff0c\u5c31\u4f1a\u6709\u5f88\u591a\u5e95\u5c42\u7684\u4e8b\u60c5\u9700\u8981\u8003\u8651\uff0c\u6bd4\u5982\u534f\u4f5c\u5206\u5de5\u3001\u81ea\u52a8\u5316\u6d41\u7a0b\u3001\u4ee3\u7801\u7ec4\u7ec7\u7ed3\u6784\u3001\u6846\u67b6\u9009\u62e9\u3001\u56fd\u9645\u5316\u65b9\u6848\u7b49\u7b49\u3002 LeanCloud \u81ea\u8eab\u7684\u5f88\u591a\u9879\u76ee\u5c31\u662f\u57fa\u4e8e\u672c\u8eab\u63d0\u4f9b\u7684\u670d\u52a1\uff0c\u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d\u6211\u4eec\u4e5f\u9047\u5230\u8fc7\u3001\u7ea0\u7ed3\u8fc7\u5f88\u591a\u95ee\u9898\uff0c\u6240\u4ee5\u5c06\u6211\u4eec\u76ee\u524d\u4f7f\u7528\u7684 Web \u5168\u6808\u65b9\u6848\u6574\u7406\u4e86\u4e00\u4e0b\uff0c\u53ef\u4ee5\u5f53\u505a\u4e00\u4e2a Generator \u6216\u8005 Seed \uff0c\u4f9b\u5927\u5bb6\u4ea4\u6d41\u548c\u4f7f\u7528\u3002

\n\n

\u7b80\u4ecb

\n\n

\u9879\u76ee\u540d\u4e3a\u300c LeanEngine-Full-Stack \u300d\uff0c\u5c31\u653e\u5728 LeanCloud \u5b98\u65b9\u7684 GitHub \u4ed3\u5e93\u4e2d\uff0c\u5730\u5740\u4e3a https://github.com/leancloud/LeanEngine-Full-Stack

\nLeanEngine-Full-Stack \u662f\u57fa\u4e8e LeanEngine Nodejs \u670d\u52a1\u7684 Web \u5168\u6808\u5f00\u53d1\u6280\u672f\u89e3\u51b3\u65b9\u6848\u3002\u6574\u5408\u5f53\u524d Web \u6280\u672f\u4e2d\u901a\u7528\u7684\u6280\u672f\u65b9\u6848\uff0c\u4e0e LeanEngine \u7d27\u5bc6\u7ed3\u5408\uff0c\u5c06\u57fa\u7840\u67b6\u6784\u3001\u81ea\u52a8\u5316\u6784\u5efa\u3001\u56fd\u9645\u5316\u65b9\u6848\u7b49\u5e95\u5c42\u6280\u672f\u95ee\u9898\u7684\u89e3\u51b3\u65b9\u6848\u90fd\u5df2\u7ecf\u7ec4\u7ec7\u5728\u4e00\u8d77\u3002\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u6700\u7b80\u5355\u7684\u65b9\u5f0f\uff0c\u76f4\u63a5\u5f00\u59cb\u4e1a\u52a1\u5f00\u53d1\uff0c\u4e0d\u7528\u518d\u6b21\u7ea0\u7ed3\u90a3\u4e9b\u5e95\u5c42\u6280\u672f\u9009\u578b\u3002

\n\n

\u4e3b\u8981\u6280\u672f\u6808\uff1a

\n* \u8bed\u8a00\u5c42\u9762\uff0c\u6574\u5957\u65b9\u6848 Javascript \u4ee3\u7801\u5168\u90e8\u4f7f\u7528 ECMAScript 6

\n* Server \u7aef\u8fd0\u884c\u73af\u5883\u57fa\u4e8e LeanEngine Nodejs \u73af\u5883\uff0c\u4f9d\u8d56\u5b89\u88c5\u901a\u8fc7 npm \uff0c\u670d\u52a1\u6846\u67b6\u4e3b\u8981\u57fa\u4e8e Express 4.x

\n* Web \u524d\u7aef\u81ea\u52a8\u5316\u65b9\u6848\u4e3b\u8981\u57fa\u4e8e Gulp \uff0c\u6846\u67b6\u57fa\u4e8e Angular 1.4.x \uff0c UI \u6846\u67b6\u4e3b\u8981\u57fa\u4e8e Angular Material \uff0c\u6784\u5efa\u4f9d\u8d56\u57fa\u4e8e npm \uff0c Web \u524d\u7aef\u4f9d\u8d56\u901a\u8fc7 bower \u5b89\u88c5\uff0c\u6837\u5f0f\u901a\u8fc7\u7f16\u5199 SASS \u800c\u975e\u76f4\u63a5\u5199 CSS \u6587\u4ef6

\n\u6574\u4e2a\u811a\u624b\u67b6 Server \u7aef\u5b8c\u5168\u57fa\u4e8e LeanEngine \uff0c\u5e95\u5c42\u5df2\u7ecf\u5c06 API \u8def\u7531\u7684\u57fa\u7840\u7ed3\u6784\u505a\u597d\uff0c\u5e76\u4e14\u5c06\u4e00\u4e9b\u5e38\u89c4\u5904\u7406\u4e5f\u6574\u5408\u5728\u5185\uff0c\u5df2\u9009\u578b\u7684\u6280\u672f\u65b9\u6848\u4e3b\u8981\u5305\u62ec\uff1a

\n* \u670d\u52a1\u7aef\u57fa\u672c\u4ee3\u7801\u7ed3\u6784\u3001\u7ec4\u7ec7\u7ed3\u6784

\n* \u57fa\u7840\u7684\u8def\u7531\u5206\u5c42\uff0c\u9ed8\u8ba4\u5728 /api/ \u8def\u7531\u4e0b

\n* \u5bf9 API \u7684 HTML5 CORS \u8de8\u57df\u534f\u8bae\u7684\u8bbe\u7f6e

\n* \u5bf9\u8bbf\u95ee\u57df\u767d\u540d\u5355\u63a7\u5236\uff0c\u96c6\u6210\u7684\u53ef\u914d\u7f6e\u6587\u4ef6

\n* \u5e38\u89c4\u9519\u8bef\u5904\u7406\u7b49

\n\n

Web \u524d\u7aef\u4ece\u6574\u4f53\u6280\u672f\u6808\u9009\u62e9\u4e0a\uff0c\u53ef\u4ee5\u770b\u51fa\u8fd9\u662f\u4e00\u4e2a\u7a33\u5065\u5e76\u4e14\u6709\u4e00\u5b9a\u524d\u77bb\u6027\u7684\u6280\u672f\u65b9\u6848\u3002\u57fa\u4e8e\u5df2\u7ecf\u975e\u5e38\u6210\u719f\u7684 Angular \u67b6\u6784\u4f53\u7cfb\uff0c UI \u8bbe\u8ba1\u5c42\u9762\u57fa\u4e8e Google \u79ef\u7d2f\u591a\u5e74\u800c\u53d1\u5e03\u7684\u8bbe\u8ba1\u8bed\u8a00 Material Design \uff0c\u6240\u4ee5\u524d\u7aef UI \u6846\u67b6\u57fa\u4e8e Angular Material \u6846\u67b6\u3002 Angular 1.4 \u7248\u672c\u5728\u6027\u80fd\u4e0a\u63d0\u5347\u4e86\u5f88\u591a\uff0c\u5b8c\u5168\u9762\u5411\u73b0\u4ee3\u6d4f\u89c8\u5668\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 ECMAScript 6 \u6765\u5f00\u53d1\u3002\u5185\u90e8\u5df2\u7ecf\u5199\u597d\u5e76\u6574\u5408\u7684\u65b9\u6848\u4e3b\u8981\u5305\u62ec\uff1a

\n* \u4ee3\u7801\u57fa\u672c\u7ec4\u7ec7\u7ed3\u6784\uff0c\u8d8b\u5411\u4e8e HTML5 Web Compoment \u7684\u7ec4\u7ec7\u65b9\u5f0f

\n* \u5e95\u5c42\u914d\u7f6e\uff0c\u5305\u62ec HTML5 CORS \u534f\u8bae\u7684\u5e95\u5c42\u652f\u6301\u3001\u57df\u540d\u767d\u540d\u5355\u7b49\u914d\u7f6e

\n* \u7eaf\u524d\u7aef\u8def\u7531\u65b9\u6848\uff0c\u57fa\u4e8e HTML5 History API \u548c ui-router

\n* \u81ea\u52a8\u6784\u5efa\u7cfb\u7edf\uff0c\u57fa\u7840\u7684\u4ee3\u7801\u538b\u7f29\u3001\u5408\u5e76\u3001 ECMAScript \u548c SASS \u7f16\u8bd1\u7b49\u8fc7\u7a0b\uff0c\u4e5f\u4f1a\u5c06\u6784\u5efa\u540e\u7684\u751f\u6210\u4ee3\u7801\u62f7\u8d1d\u5230 public \u76ee\u5f55\u4e2d\uff0c\u4f9b\u53d1\u5e03\u4f7f\u7528

\n* SASS \u7684\u57fa\u672c\u7ed3\u6784\uff0c\u4ee5\u53ca\u4e00\u4e9b Mixin \u548c\u57fa\u7840\u5355\u5143\u7684\u5904\u7406\u65b9\u5f0f

\n* \u7eaf\u524d\u7aef\u7684\u56fd\u9645\u5316\u65b9\u6848\uff0c\u53ef\u4ee5\u5b9e\u65f6\u5207\u6362\u8bed\u8a00\u8d44\u6e90

\n\n

\u57fa\u672c\u7ed3\u6784

\n\n

\"\"

\n\n

\u6574\u5957\u67b6\u6784 Server \u7aef\u4e0e Web \u524d\u7aef\u662f\u5b8c\u5168\u5206\u79bb\uff0c\u5728 Server \u7aef\u7f16\u5199 REST API \uff0c Web \u9879\u76ee\u5219\u662f\u5b8c\u5168\u7684 Web App \uff0c\u800c\u4e0d\u662f\u901a\u8fc7\u6a21\u677f\u6765\u8026\u5408\u3002 web-project \u4e2d\u662f Web \u9879\u76ee\u7684\u5168\u90e8\u4ee3\u7801\uff0c\u662f\u5b8c\u5168\u72ec\u7acb\u7684\u4e00\u5957\u4f53\u7cfb\uff0c\u4e5f\u53ef\u4ee5\u63d0\u51fa\u53bb\uff0c\u5355\u72ec\u9879\u76ee\u7ef4\u62a4\u3002

\n\n

\u6574\u5957\u6280\u672f\u65b9\u6848\u6709\u5f88\u591a\u7ec6\u8282\uff0c\u5177\u4f53\u7684\u4f7f\u7528\u65b9\u5f0f\u53ef\u4ee5\u5230 GitHub \u4ed3\u5e93\u4e2d\u76f4\u63a5\u67e5\u770b\u4f7f\u7528\u8bf4\u660e\u53ca\u6e90\u7801\u3002

\n\n

\u975e\u5e38\u6b22\u8fce\u611f\u5174\u8da3\u7684\u5f00\u53d1\u8005\u4e00\u8d77\u8ba8\u8bba\uff0c\u5f53\u7136\u9650\u4e8e\u81ea\u8eab\u80fd\u529b\u4e0d\u8db3\uff0c\u4e5f\u6709\u5f88\u591a\u53ef\u4ee5\u6539\u8fdb\u7684\u5730\u65b9\uff0c\u6073\u8bf7\u5404\u4f4d\u9ad8\u624b\u79ef\u6781\u8d21\u732e\u4ee3\u7801\u3002\u5982\u679c\u4f60\u5bf9 Web \u5168\u6808\u5f00\u53d1\u6709\u9700\u6c42\uff0c\u6b22\u8fce\u5c1d\u8bd5\u770b\u770b\u3002

\n\n

\u5176\u4ed6\u95ee\u9898

\n\n

\"\"

\n\n

\u4e1a\u5185\u6700\u65b0\u7684\u6280\u672f\u4ee5\u53ca\u89e3\u51b3\u65b9\u6848 LeanCloud \u4e5f\u90fd\u6709\u6301\u7eed\u8ddf\u8fdb\uff0c\u5e76\u4e14\u6211\u4eec\u4e5f\u79ef\u6781\u540c Angular \u3001 React Native \u7b49\u56e2\u961f\u79ef\u6781\u4ea4\u6d41\uff0c\u76ee\u524d\u6784\u5efa Web App \u7684\u6846\u67b6\u9009\u62e9\u4e3b\u8981\u4f1a\u5728 Angular1.x \u3001 Angular2.x \u3001 React \u548c Ploymer \u4e2d\u7ea0\u7ed3\u4e00\u4e0b\uff0c\u800c\u6211\u4eec\u6700\u7ec8\u9009\u62e9\u4e86 Angular 1.4.x \u7248\u672c\u3002

\n\n

\u4e3b\u8981\u89e3\u91ca\u4e0b\u4e3a\u4ec0\u4e48\u6ca1\u6709\u9009\u62e9 React \uff0c\u76ee\u524d React \u5e94\u8be5\u662f\u5927\u5bb6\u6700\u611f\u5174\u8da3\u7684\u6846\u67b6\uff0c\u4f46\u662f\u5e76\u4e0d\u6210\u719f\u3002 React \u672c\u8eab\u6700\u521b\u65b0\u7684\u662f\u89e3\u51b3\u4e86 View \u5c42\u7684\u5206\u79bb\uff0c\u5c06\u6e32\u67d3\u4e0e\u7f16\u8bd1\u8fc7\u7a0b\u5206\u79bb\uff0c\u5728 Web \u7aef\u8868\u73b0\u4e3a\u5c06 JSX \u53d8\u4e3a Virtual Dom \uff0c\u518d\u5c06 Virtual Dom \u6bcf\u6b21 Diff \u540e\u7684\u90e8\u5206\u6e32\u67d3\u4e3a HTML \u3002\u800c\u5f00\u53d1\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u4e0d\u4ec5\u4ec5\u9700\u8981\u8fd9\u4e9b\uff0c\u8fd8\u9700\u8981\u4e00\u5957\u5b8c\u5907\u7684\u5904\u7406\u5404\u79cd\u5e95\u5c42\u95ee\u9898\u7684\u65b9\u6848\u3002\u5982\u6211\u4eec\u5728\u4e0a\u9762\u6280\u672f\u6808\u5217\u51fa\u7684\u90a3\u4e9b\uff0c React \u6570\u636e\u5c42 Flux \u7f16\u7a0b\u8303\u5f0f\u5e76\u4e0d\u6210\u719f\uff0c UI \u5c42\u9762\u7ec4\u4ef6\u7a00\u7f3a\uff0c\u5373\u4fbf\u662f\u524d\u7aef\u8def\u7531\u65b9\u6848\u4e5f\u662f\u9887\u6709\u4e89\u8bae\uff0c\u9ed1\u79d1\u6280\u4e0d\u65ad\u3002

\n\n

\u6240\u4ee5\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u56e0\u4e3a\u8981\u505a\u7684\u662f\u4e00\u4e2a\u957f\u671f\u53ef\u7ef4\u62a4\u7684\u4ea7\u54c1\uff0c\u6211\u4eec\u6682\u65f6\u4e0d\u80fd\u9009\u62e9 React \u6765\u505a Web App \u3002\u5f53\u7136\uff0c LeanCloud \u4f1a\u6301\u7eed\u8ddf\u8fdb React Team \u7684\u6700\u65b0\u52a8\u6001\u3002\u53e6\u5916\uff0c\u63a8\u8350\u4e00\u4e0b React Native \uff0c\u867d\u7136 React \u6784\u5efa Web App \u4f18\u52bf\u5e76\u4e0d\u660e\u663e\uff0c\u4f46\u662f React Native \u5219\u662f\u5927\u5927\u63d0\u9ad8\u4e86 Native App \u7684\u5f00\u53d1\u4f53\u9a8c\uff0c\u4f18\u52bf\u8fdc\u5927\u4e8e\u76ee\u524d\u7684\u52a3\u52bf\uff0c\u6240\u4ee5\u6b22\u8fce\u5927\u5bb6\u5c1d\u8bd5\u4e00\u4e0b\uff0c LeanCloud \u7684 Javascript SDK \u4e5f\u652f\u6301 React Native \u4e2d\u4f7f\u7528\u3002

\n\n

\u4e3a\u4ec0\u4e48\u5168\u90e8\u4f7f\u7528 ECMAScript 6 \uff1f

\n\n

\"\"

\n\n

\u4e00\u95e8\u7f16\u7a0b\u8bed\u8a00\u4f1a\u5f71\u54cd\u4e00\u4e2a\u4eba\u7684\u7f16\u7a0b\u601d\u8def\uff0c ECAMScript \u5bf9 Javascript \u8fd9\u95e8\u4e03\u5929\u8bbe\u8ba1\u51fa\u6765\u7684\u8bed\u8a00\u505a\u4e86\u5f88\u591a\u4f18\u5316\u548c\u9769\u65b0\uff0c\u6bd4\u5982\u7bad\u5934\u51fd\u6570\u3001\u8bed\u8a00\u5c42\u9762\u7684\u6a21\u5757\u5316\u3001\u539f\u751f\u7684 Promise \u7b49\u90fd\u662f\u8ba9\u4eba\u773c\u524d\u4e00\u4eae\u7684\u7279\u6027\uff0c\u5176\u4ed6\u5927\u5927\u5c0f\u5c0f\u7684\u6539\u8fdb\u4e5f\u5f88\u591a\u3002\u800c\u4e14\u5728 2015 \u5e74 ECMAScript 6 \u5df2\u7ecf\u5b9a\u7a3f\uff0c\u6240\u6709\u6d4f\u89c8\u5668\u6700\u7ec8\u90fd\u4e00\u5b9a\u4f1a\u652f\u6301\u8fd9\u4e2a\u7248\u672c\u7684 Javascript \uff0c\u90a3\u4e48\u6709\u4ec0\u4e48\u7406\u7531\u4e0d\u5f00\u59cb\u5c1d\u8bd5\u5462\uff1f\u800c\u4e14\u901a\u8fc7\u5f88\u591a\u7684\u524d\u7aef\u6784\u5efa\uff0c\u53ef\u4ee5\u8ba9\u6211\u4eec\u4e0d\u7528\u53bb\u8fc7\u591a\u8003\u8651\u6d4f\u89c8\u5668\u7684\u517c\u5bb9\u6027\uff0c\u6240\u4ee5\u6211\u4eec\u9009\u62e9\u5168\u90e8\u4f7f\u7528 ECMAScript 6 \u3002

\n\n

\u670d\u52a1\u7aef\u901a\u8fc7\u5728 LeanEngine \u4e2d\u8fd0\u884c node --harmony \u6765\u5b9e\u73b0\u5bf9 ECMAScript 6 \u7684\u652f\u6301\uff0c\u56e0\u4e3a\u76ee\u524d Nodejs 4.x \u521a\u521a\u53d1\u5e03\uff0c\u7b49\u5b8c\u5168\u652f\u6301\u4e86\uff0c\u5c31\u53ef\u4ee5\u53bb\u6389 harmony \u53c2\u6570\u3002\u524d\u7aef\u901a\u8fc7\u76f4\u63a5\u5199 ECMAScript 6 \u7684\u65b9\u5f0f\u6765\u7f16\u7801\uff0c\u800c\u6ca1\u6709\u9009\u62e9\u5982 TypeScript \u4e4b\u7c7b\u7684 ECMAScript 6 \u8d85\u96c6\uff0c\u56e0\u4e3a\u8fd8\u662f\u5e0c\u671b\u80fd\u591f\u7f16\u5199\u66f4\u7eaf\u7cb9\u7684 Javascript \uff0c\u524d\u7aef\u4f1a\u901a\u8fc7 babel \u81ea\u52a8\u5316\u7f16\u8bd1\u5904\u7406\u3002\u603b\u4f53\u6765\u770b\uff0c\u4e5f\u7b97\u662f\u7a33\u5065\u4e14\u6709\u524d\u77bb\u7684\u9009\u62e9\u3002

\n" }, { "author": { "url": "member/LeanCloudRRY", "name": "LeanCloudRRY", "avatar": "https://cdn.v2ex.com/avatar/278f/c5d5/103427_large.png?m=1430102721" }, "url": "t/233787", "title": "\u300c\u4ea7\u54c1\u66f4\u65b0\u300d2015 \u5e74 10 \u6708 LeanCloud \u4ea7\u54c1\u66f4\u65b0\u6c47\u603b", "id": "t/233787", "date_published": "2015-11-05T03:37:25+00:00", "content_html": "

\u8981\u70b9\u7b80\u8ff0\u5982\u4e0b\uff1a

\n\n\n\n

\u66f4\u8be6\u7ec6\u7684\u63cf\u8ff0\u5982\u4e0b\u3002

\n\n

\u7f51\u7ad9

\n\n\n\n

\u5b58\u50a8\u670d\u52a1\u7aef

\n\n\n\n

\u804a\u5929\u670d\u52a1\u7aef

\n\n\n\n

\u4e91\u5f15\u64ce

\n\n\n\n

\u5ba2\u6237\u7aef SDK \u66f4\u65b0

\n\n

PHP SDK

\n\n

\u7ecf\u8fc7\u52aa\u529b\uff0c\u7ec8\u4e8e\u53d1\u5e03\u4e86 PHP SDK 0.1.0 \u7248\u672c\uff0c\u652f\u6301\u4e86\u6570\u636e\u5b58\u50a8\u529f\u80fd\uff0c\u8be6\u60c5\u53c2\u8003\u8fd9\u7bc7\u535a\u5ba2\u3002

\n\n

iOS SDK

\n\n\n\n

Android SDK

\n\n\n\n

Javascript SDK

\n\n\n\n

Javascript \u5b9e\u65f6\u901a\u4fe1 SDK

\n\n\n\n

Python SDK

\n\n\n" }, { "author": { "url": "member/hjiang", "name": "hjiang", "avatar": "https://cdn.v2ex.com/avatar/e43a/5db4/23827_large.png?m=1757052635" }, "url": "t/232862", "title": "LeanCloud \u7684 PHP SDK \u53d1\u5e03\u4e86", "id": "t/232862", "date_published": "2015-11-02T03:17:02+00:00", "content_html": "\u7ec8\u4e8e\u5e94\u5e7f\u5927\u7528\u6237\u8981\u6c42\u53d1\u5e03\u4e86\u6700\u597d\u7684\u8bed\u8a00\u7684 SDK \uff1a https://blog.leancloud.cn/3830/\r
\r
LeanEngine \u4e5f\u4f1a\u5f88\u5feb\u652f\u6301\u3002" }, { "author": { "url": "member/LeanCloudRRY", "name": "LeanCloudRRY", "avatar": "https://cdn.v2ex.com/avatar/278f/c5d5/103427_large.png?m=1430102721" }, "url": "t/230486", "title": "\u300c\u91cd\u8981\u7684\u4e8b\u60c5\u8bf4\u4e09\u904d\u300d\u5c06\u6570\u636e\u5b89\u5168\u634d\u536b\u5230\u5e95\uff1a\u6743\u9650\u7ba1\u7406\uff08 acl\uff09\u6587\u6863\u5168\u65b0\u53d1\u5e03", "id": "t/230486", "date_published": "2015-10-23T07:00:07+00:00", "content_html": "
\n

\u672c\u6587\u9996\u5148\u53d1\u8868\u4e8e LeanCloud Blog

\n
\n\n

\u968f\u7740\u4f7f\u7528 LeanCloud \u7684\u5f00\u53d1\u8005\u8d8a\u6765\u8d8a\u591a\uff0c\u5927\u5bb6\u6162\u6162\u6ce8\u610f\u5230\u4e00\u4e9b\u5728\u5f00\u53d1\u521d\u671f\u5bb9\u6613\u88ab\u5ffd\u89c6\u7684\u6f0f\u6d1e\uff0c\u5176\u4e2d\u6700\u5bb9\u6613\u88ab\u5ffd\u7565\u4f46\u5728\u6211\u4eec\u7684\u6587\u6863\u4e2d\u53c8\u5360\u636e\u4e86\u91cd\u8981\u5730\u4f4d\u7684\u5185\u5bb9\u5c31\u662f\uff1a\u6743\u9650\u7ba1\u7406\uff08 ACL \uff09\u7684\u4f7f\u7528\u3002

\n\n

ACL \u5168\u79f0\u4e3a Access Control List \uff0c\u7ef4\u57fa\u767e\u79d1\u89e3\u91ca\u4e3a\uff1a

\n\n
\n

\u5b58\u53d6\u63a7\u5236\u4e32\u5217\uff0c\u662f\u4f7f\u7528\u4ee5\u8bbf\u95ee\u63a7\u5236\u77e9\u9635\u4e3a\u57fa\u7840\u7684\u8bbf\u95ee\u63a7\u5236\u65b9\u6cd5\uff0c\u6bcf\u4e00\u4e2a\u5bf9\u8c61\u5bf9\u5e94\u4e00\u4e2a\u4e32\u5217\u4e3b\u4f53\u3002\u8bbf\u95ee\u63a7\u5236\u8868\u63cf\u8ff0\u6bcf\u4e00\u4e2a\u5bf9\u8c61\u5404\u81ea\u7684\u8bbf\u95ee\u63a7\u5236\uff0c\u5e76\u8bb0\u5f55\u53ef\u5bf9\u6b64\u5bf9\u8c61\u8fdb\u884c\u8bbf\u95ee\u7684\u6240\u6709\u4e3b\u4f53\u5bf9\u8c61\u7684\u6743\u9650\u3002

\n
\n\n

\"\"

\n\n

\u7b49\u7b49\uff0c\u8fd9\u4e2a\u542c\u4e0a\u53bb\u600e\u4e48\u4e00\u9635\u5934\u6655\uff0c\u8fd9\u8ddf\u6211\u7684\u5e94\u7528\u6570\u636e\u5b89\u5168\u5230\u5e95\u6709\u4ec0\u4e48\u5173\u7cfb\uff1f\u5148\u522b\u7740\u6025\uff0c\u6211\u4eec\u5f53\u7136\u4e0d\u4f1a\u7528\u8fd9\u4e48\u6666\u6da9\u7684\u8bed\u8a00\u6765\u8bb2\u89e3 ACL \uff0c\u6765\u770b\u4e0b\u9762\u7684\u4f8b\u5b50\uff1a

\n\n

\u516c\u53f8\u7684\u4fdd\u9669\u67dc\u53ea\u6709\u8d22\u52a1\u4eba\u5458\u624d\u80fd\u6253\u5f00\uff0c\u90a3\u4e48\u5bf9\u4e8e\u4fdd\u9669\u67dc\u6765\u8bf4\uff0c\u5176 ACL \u53ef\u4ee5\u8868\u793a\u4e3a\uff1a

\n
{\n "role:finance": {\n "access": true\n }\n}\n
\n\n

\u5373\u53ea\u6709\u89d2\u8272\uff08 role \uff09\u4e3a \u8d22\u52a1\uff08 finance \uff09\u7684\u4eba\u624d\u62e5\u6709\u6253\u5f00\u4fdd\u9669\u67dc\u7684\u6743\u9650\uff08 access \uff1d true \uff09\u3002

\n\n

<!--more-->

\n\n

\u8fd9\u4fbf\u662f\u5b9e\u73b0 ACL \u7684\u4e00\u79cd\u65b9\u5f0f\u3002\u5b9e\u9645\u4e0a ACL \u5c31\u662f\u4e00\u5f20\u6e05\u5355\uff0c\u7f57\u5217\u51fa\u8c01\u90fd\u53ef\u4ee5\u8bbf\u95ee\u548c\u64cd\u4f5c\u4ec0\u4e48\uff0c\u5176\u673a\u5236\u76f8\u5f53\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u4e2d\u300c\u7528\u6237\u300d\u548c\u300c\u7528\u6237\u7ec4\u300d\u2014\u2014 \u4f60\u82e5\u6307\u5b9a\u53ea\u6709\u67d0\u4e2a\u7528\u6237\u6216\u7528\u6237\u7ec4\u624d\u80fd\u67e5\u770b\u6216\u4fee\u6539\u6587\u4ef6\u6216\u6587\u4ef6\u5939\u7684\u5185\u5bb9\uff0c\u90a3\u4e0d\u76f8\u5e72\u7684\u4eba\u5c31\u88ab\u62d2\u4e4b\u95e8\u5916\u4e86\u3002\u5728\u6570\u636e\u5e93\u7cfb\u7edf\u4e2d\u8fd9\u79cd\u63a7\u5236\u7ba1\u7406\u4e5f\u5f88\u5e38\u89c1\uff0c\u6bd4\u5982\uff0c\u5de5\u8d44\u8868\u53ea\u80fd\u7531\u4eba\u4e8b\u90e8\u4e13\u5458\u6765\u8bfb\u53d6\u548c\u4fee\u6539\uff0c\u5e93\u5b58\u8868\u53ef\u4ee5\u8ba9\u9500\u552e\u4eba\u5458\u8bfb\u53d6\uff0c\u4f46\u4e0d\u80fd\u4fee\u6539\u7b49\u7b49\u3002

\n\n

\u90a3\u56de\u5230\u300c\u5e94\u7528\u6570\u636e\u5b89\u5168\u300d\u8fd9\u4e2a\u8bdd\u9898\u4e0a\u6765\u3002\u5728\u4f7f\u7528 LeanCloud \u5bf9\u6570\u636e\u8fdb\u884c\u589e\u5220\u6539\u67e5\u7684\u65f6\u5019\uff0c\u4f60\u662f\u5426\u60f3\u8fc7\u4e5f\u5e94\u8be5\u5728\u5e94\u7528\u4e2d\u5b9e\u65bd ACL \u673a\u5236\u6765\u4fdd\u62a4\u6570\u636e\u5462\uff1f

\n\n

\u7b54\u6848\u662f\u80af\u5b9a\u7684\uff0c\u800c\u4e14\u662f\u975e\u5e38\u5fc5\u8981\u7684\u3002

\n\n

\u4f7f\u7528 ACL \u7684\u5fc5\u8981\u6027

\n\n

\u5927\u5bb6\u77e5\u9053\uff0c\u6211\u4eec\u5728\u4f7f\u7528 LeanCloud SDK \u65f6\uff0c\u9700\u8981\u5728\u521d\u59cb\u5316\u4ee3\u7801\u4e2d\u660e\u6587\u5199\u5165 AppId \u548c AppKey \u3002\u5982\u679c\u4f60\u7684\u7ade\u4e89\u5bf9\u624b\u6216\u662f\u6076\u610f\u7528\u6237\uff0c\u53cd\u7f16\u8bd1\u4e86\u4f60\u7684 apk \u6216\u8005\u6253\u5305\u597d\u7684\u5b89\u88c5\u7a0b\u5e8f\uff0c\u5c31\u80fd\u63d0\u53d6\u51fa AppId \u548c AppKey \uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u6a21\u62df\u5ba2\u6237\u7aef\u8eab\u4efd\u6765\u63d0\u4ea4\u8bf7\u6c42\uff0c\u975e\u6cd5\u7be1\u6539\u6570\u636e\u3002

\n\n

\u800c\u7528 Javascript SDK \u505a\u5f00\u53d1\u90fd\u6d89\u53ca\u4e0d\u5230\u53cd\u7f16\u8bd1\uff0c\u53ea\u8981\u5728\u6d4f\u89c8\u5668\u4e2d\u67e5\u770b\u6e90\u4ee3\u7801\uff0c\u8fd9\u4e9b\u4fe1\u606f\u5c31\u90fd\u66b4\u9732\u65e0\u7591\u3002\u518d\u8005\uff0c\u5df2\u79bb\u804c\u7684\u5f00\u53d1\u56e2\u961f\u6210\u5458\u4e5f\u66fe\u7ecf\u4f7f\u7528\u6216\u4ecd\u77e5\u6653\u8fd9\u4e9b\u5173\u952e\u4fe1\u606f\uff0c\u8fd9\u4e5f\u662f\u9690\u60a3\u3002\u6240\u4ee5\u5f88\u663e\u7136\uff0c\u6211\u4eec\u4e0d\u80fd\u628a AppId \u548c AppKey \u4f5c\u4e3a\u5e94\u7528\u4ec5\u6709\u7684\u9632\u5fa1\u4f53\u7cfb\uff0c\u66f4\u4f55\u51b5\u6709\u4e9b\u9ad8\u624b\u8fd8\u80fd\u76f4\u63a5\u4ece\u5e94\u7528\u94fe\u63a5\u6216\u7f51\u7edc\u8bf7\u6c42\u4e2d\u622a\u83b7\u654f\u611f\u6570\u636e\u6765\u4f2a\u9020\u8bf7\u6c42\u3002

\n\n

\u4f46\u662f\uff0c\u5982\u679c\u4f7f\u7528\u4e86 ACL \uff0c\u4ee5\u4e0a\u7684\u5b89\u5168\u9690\u60a3\u5c31\u90fd\u53ef\u4ee5\u907f\u514d\u4e86\uff01

\n\n

\u6574\u4f53\u4e0a\u8bb2\uff0c\u56e0\u4e3a\u4f7f\u7528\u4e86 ACL \u7684\u6570\u636e\u53ea\u5141\u8bb8\u6307\u5b9a\u7684\u7528\u6237\u6216\u8005\u6307\u5b9a\u7684\u89d2\u8272\u6765\u8bfb\u53d6\uff0c\u800c\u8fd9\u79cd\u7528\u6237\u6216\u89d2\u8272\u4fe1\u606f\u5728\u53cd\u7f16\u8bd1\u7684\u4ee3\u7801\u4e2d\u662f\u4e0d\u5b58\u5728\u7684\uff0c\u6240\u4ee5\u5373\u4f7f\u8bf7\u6c42\u88ab\u6a21\u62df\u53d1\u9001\u5230 LeanCloud \u670d\u52a1\u7aef\uff0c\u4e5f\u4f1a\u56e0\u4e3a\u9274\u6743\u5931\u8d25\u800c\u88ab\u62d2\u7edd\u6267\u884c\uff0c\u4ece\u800c\u6570\u636e\u5b89\u5168\u6709\u4e86\u4fdd\u969c\u3002

\n\n

\u5177\u4f53\u6765\u770b\uff0c\u5728 LeanCloud \u540e\u7aef\u7684\u6570\u636e\u8868\u4e2d\uff0c\u6bcf\u4e00\u4e2a AVObject \u90fd\u4f1a\u6709\u81ea\u5df1\u7684 ACL \uff0c\u8fd9\u4e2a ACL \u5c31\u662f\u63d0\u4f9b\u7ed9\u5f00\u53d1\u8005\u7528\u6765\u7ba1\u7406\u6743\u9650\u7684\u3002\u4f8b\u5982\uff0c\u4e00\u4e2a\u5bf9\u8c61\u7684\u9ed8\u8ba4\u7684 ACL \u5982\u4e0b\uff1a

\n
{\n "*": {\n "read": true,\n "write": true\n }\n}\n
\n\n

\u8fd9\u8868\u793a\u8be5\u5bf9\u8c61\u7684\u6570\u636e\u5bf9\u6240\u6709\u4eba\u90fd\u662f\u5f00\u653e\u7684\uff0c\u53ea\u8981\u662f\u5408\u6cd5\u7684\u4fee\u6539\u8bf7\u6c42\uff08\u5373 AppId \u548c AppKey \u6b63\u786e\uff09\uff0c\u90fd\u4f1a\u88ab LeanCloud \u4e91\u7aef\u6267\u884c\u3002

\n\n

\u5982\u679c\u6b63\u786e\u8bbe\u7f6e\u4e86 ACL \uff0c\u6211\u4eec\u53ef\u4ee5\u53ea\u8ba9\u5177\u6709\u67d0\u4e9b\u7279\u5b9a\u89d2\u8272\u7684\u7528\u6237\u53d1\u6765\u7684\u4fee\u6539\u8bf7\u6c42\u751f\u6548\uff1a

\n
{\n "*": {\n "read": true\n },\n "role:Administrator": {\n "write": true\n }\n}\n
\n\n

\u4ee5\u4e0a\u8bbe\u7f6e\u4ee3\u8868\uff1a\u6240\u6709\u4eba\u90fd\u53ef\u8bfb\uff0c\u4f46\u662f\u53ea\u6709\u89d2\u8272\u662f Administrator \u7684\u7528\u6237\u624d\u80fd\u4fee\u6539\u3002

\n\n

\u5173\u4e8e ACL \u7684\u6df1\u5165\u4f7f\u7528\uff0c\u6211\u4eec\u8fd8\u7f16\u5199\u597d\u4e86\u8be6\u7ec6\u7684\u5f00\u53d1\u6307\u5357\uff0c\u6b22\u8fce\u56f4\u89c2\u3002

\n\n\n\n

\u6700\u540e\uff0c\u4f5c\u4e3a\u5f00\u53d1\u8005\u6c38\u8fdc\u7684\u5c0f\u4f19\u4f34\uff0c LeanCloud \u5728\u6b64\u5411\u4f60\u6e29\u99a8\u63d0\u793a\uff1a

\n\n
\n

\u98de\u9a70\u5728\u9053\u8def\u4e0a\u7684\u65f6\u5019\u522b\u5fd8\u4e86\u7ed9\u8f66\u52a0\u4e2a\u4fdd\u9669\u6746\uff01

\n
\n" }, { "author": { "url": "member/LeanCloudRRY", "name": "LeanCloudRRY", "avatar": "https://cdn.v2ex.com/avatar/278f/c5d5/103427_large.png?m=1430102721" }, "url": "t/226566", "title": "\u300c\u66f4\u65b0\u65e5\u5fd7\u300d2015 \u5e74 9 \u6708 LeanCloud \u66f4\u65b0\u6c47\u603b", "id": "t/226566", "date_published": "2015-10-09T03:54:13+00:00", "content_html": "

LeanCloud \u5411\u5927\u5bb6\u9001\u4e0a\u8fdf\u5230\u7684\u4e2d\u79cb\u795d\u798f\uff0c\u795d\u5404\u4f4d\u5f00\u53d1\u8005\u8eab\u4f53\u5065\u5eb7\u3001\u9616\u5bb6\u5e78\u798f\uff01

\n\n

\u4e0b\u9762\u6c47\u62a5\u4e00\u4e0b\u6211\u4eec\u5728 9 \u6708\u4efd\u6240\u505a\u51fa\u7684\u4ea7\u54c1\u6539\u8fdb\u3002

\n\n

\u7f51\u7ad9\u548c\u6587\u6863

\n\n

\u9996\u5148\uff0c\u6211\u4eec\u5bf9\u300c\u8d22\u52a1\u8d26\u5355\u300d\u505a\u51fa\u4e86\u5f88\u5927\u6539\u8fdb\u2014\u2014\u4ea4\u6613\u5386\u53f2\u83dc\u5355\u6309\u7167\u6d88\u8d39\u7c7b\u578b\u5206\u7c7b\uff0c\u53d1\u7968\u7533\u8bf7\u7684\u6d41\u7a0b\u5f97\u4ee5\u7b80\u5316\uff0c\u754c\u9762\u4e5f\u505a\u4e86\u8c03\u6574\u548c\u6539\u8fdb\u3002

\n\n

\u5176\u6b21\uff0c\u6211\u4eec\u5bf9\u5e94\u7528\u8bbe\u7f6e\u83dc\u5355\u505a\u4e86\u5982\u4e0b\u6539\u8fdb\uff1a

\n\n\n\n

<!--more-->

\n\n

\u6b64\u5916\uff0c\u6211\u4eec\u6539\u8fdb\u4e86\u5f00\u53d1\u8005\u8d26\u6237\u7684\u6ce8\u518c\u6d41\u7a0b\uff0c\u8981\u6c42\u5f00\u53d1\u8005\u8f93\u5165\u624b\u673a\u53f7\u7801\u5e76\u505a\u9a8c\u8bc1\u3002\u6211\u4eec\u5c06\u4f7f\u7528\u9a8c\u8bc1\u540e\u7684\u624b\u673a\u53f7\u7801\u6765\u53d1\u9001\u5e94\u7528\u5185\u7684\u544a\u8b66\u3001\u91cd\u8981\u901a\u77e5\u7b49\u4fe1\u606f\uff0c\u6240\u4ee5\u5f3a\u70c8\u5efa\u8bae\u73b0\u6709\u5f00\u53d1\u8005\u4e5f\u586b\u5199\u548c\u9a8c\u8bc1\u624b\u673a\u53f7\u7801\uff0c\u6211\u4eec\u5728\u540e\u53f0\u7684\u6570\u636e\u7ba1\u7406\u9875\u9762\u4e5f\u8bbe\u7f6e\u4e86\u76f8\u5e94\u7684\u63d0\u793a\u3002

\n\n

\u6211\u4eec\u8fd8\u53d1\u5e03\u4e86\u5168\u65b0\u7684 \u8054\u7cfb\u6211\u4eec \u9875\u9762\uff0c\u5e0c\u671b\u80fd\u66f4\u597d\u5730\u5f15\u5bfc\u7528\u6237\u4f7f\u7528\u6211\u4eec\u7684\u670d\u52a1\uff0c\u7ed9\u6211\u4eec\u63d0\u51fa\u5efa\u8bae\u6216\u8005 Bug \u53cd\u9988\u7b49\u3002\u6211\u4eec\u5728\u8bba\u575b\u5f00\u8bbe\u4e86\u4e13\u95e8\u7684 Bug \u53cd\u9988\u4e13\u533a\uff0c\u6b22\u8fce\u8bbf\u95ee\u3002

\n\n

\u6587\u6863\u4e0a\uff0c\u6211\u4eec\u53d1\u5e03\u4e86\u5168\u65b0\u7684 \u5b9e\u65f6\u901a\u4fe1\u5f00\u53d1\u6587\u6863\uff0c\u6211\u4eec\u8fd8\u5728\u7f16\u5199\u65b0\u7684\u5b89\u5168\u6587\u6863\uff0c\u656c\u8bf7\u671f\u5f85\u3002

\n\n

\u5b58\u50a8\u670d\u52a1

\n\n\n\n

\u5b9e\u65f6\u901a\u4fe1\u548c\u63a8\u9001

\n\n

\u5b9e\u65f6\u901a\u4fe1\uff0c\u6211\u4eec\u5728 SDK \u65b9\u9762\u5168\u9762\u542f\u7528\u4e86\u5185\u7f6e\u7684\u804a\u5929\u4f1a\u8bdd\u7f13\u5b58\uff0c\u9ed8\u8ba4\u7b56\u7565\u662f CACHE_ELSE_NETWORK \uff0c\u8fd9\u4e3b\u8981\u662f\u4e3a\u4e86\u63d0\u5347\u4e86\u5ba2\u6237\u7aef SDK \u7684\u6027\u80fd\u548c\u7a33\u5b9a\u6027\u3002\u5177\u4f53\u53c2\u89c1\u5404\u4e2a SDK \u7684\u66f4\u65b0\u5386\u53f2 ChangeLog \u548c\u6587\u6863\u3002

\n\n

\u5176\u6b21\uff0c\u5b9e\u65f6\u901a\u4fe1\u670d\u52a1\u7aef\u7684\u6539\u8fdb\u96c6\u4e2d\u5728\u7a33\u5b9a\u6027\u4e0a\uff0c\u6211\u4eec\u6539\u8fdb\u4e86\u5bf9 redis \u8bbf\u95ee\u7684\u7a33\u5b9a\u6027\uff0c\u907f\u514d\u518d\u6b21\u51fa\u73b0\u8fd9\u7c7b\u8bbf\u95ee\u5f15\u8d77\u7684\u6545\u969c\uff0c\u6539\u8fdb\u4e86\u6d41\u63a7\u673a\u5236\uff0c\u63d0\u5347\u4e86\u670d\u52a1\u7a33\u5b9a\u6027\u3002

\n\n

\u66f4\u91cd\u8981\u7684\u662f\uff0c\u6211\u4eec\u91cd\u65b0\u7f16\u5199\u4e86 \u5b9e\u65f6\u901a\u4fe1\u5f00\u53d1\u6587\u6863\uff0c\u5305\u62ec\u6982\u89c8\u6587\u6863\u548c\u5404\u4e2a SDK \u7684\u6587\u6863\uff0c\u5e0c\u671b\u80fd\u5e2e\u52a9\u5f00\u53d1\u8005\u66f4\u597d\u5730\u4f7f\u7528\u5b9e\u65f6\u901a\u4fe1\u670d\u52a1\u3002

\n\n

\u5176\u4ed6\u529f\u80fd\u6539\u8fdb\uff1a

\n\n\n\n

\u4e91\u5f15\u64ce

\n\n

\u4e91\u5f15\u64ce\u6700\u91cd\u8981\u7684\u8fdb\u5c55\u662f\u6211\u4eec\u5f00\u653e\u4e86 Redis \u670d\u52a1\u5185\u6d4b\uff0c\u8fd9\u6837\u5728\u4e91\u5f15\u64ce\u91cc\u53ef\u4ee5\u7533\u8bf7\u548c\u8bbf\u95ee Redis \u670d\u52a1\uff0c\u5177\u4f53\u53c2\u89c1 LeanCloud Redis \u670d\u52a1\u5185\u6d4b\u7533\u8bf7\u3002

\n\n

\u6211\u4eec\u8fd8\u5728\u6301\u7eed\u5730\u5bf9 Redis \u670d\u52a1\u505a\u51fa\u6539\u8fdb\uff0c\u5e0c\u671b\u80fd\u5728 10 \u6708\u4efd\u5411\u66f4\u591a\u7528\u6237\u63d0\u4f9b\u6d4b\u8bd5\u548c\u4f7f\u7528\u3002

\n\n

SDK

\n\n

SDK \u65b9\u9762\u9664\u4e86\u6539\u8fdb\u548c bug \u4fee\u590d\u4e4b\u5916\uff0c\u6211\u4eec\u5df2\u7ecf\u62db\u5230\u5c0f\u4f19\u4f34\uff0c\u5f00\u59cb\u7814\u53d1 PHP SDK \u4e86\uff0c\u8bf7\u611f\u5174\u8da3\u7684\u7ae5\u978b\u4eec\u5173\u6ce8\u4e0b\u6211\u4eec\u7684 Github \u4ed3\u5e93\uff1ahttps://github.com/leancloud/php-sdk\u3002

\n\n

iOS SDK \u6539\u8fdb

\n\n\n\n

\u73b0\u5728 Swift \u8bed\u8a00\u8d8a\u6765\u8d8a\u706b\uff0c\u6211\u4eec\u4e5f\u63a8\u51fa\u4e86\u4e00\u4e2a\u57fa\u4e8e Swift \u8bed\u8a00\u3001\u6f14\u793a\u5b58\u50a8\u529f\u80fd\u7684 Demo \u9879\u76ee\uff1a https://github.com/leancloud/LeanStorageDemo-iOS\uff0c\u6b22\u8fce\u5173\u6ce8\u548c\u6d4b\u8bd5\u3002

\n\n

Android SDK \u6539\u8fdb

\n\n\n\n

Javascript SDK \u6539\u8fdb

\n\n\n\n

Javascript \u5b9e\u65f6\u901a\u4fe1 SDK \u6539\u8fdb

\n\n\n\n

Python SDK \u6539\u8fdb

\n\n\n" }, { "author": { "url": "member/newtonisaac", "name": "newtonisaac", "avatar": "https://cdn.v2ex.com/gravatar/a52b07f39549245562ece41e9b74e44e?s=73&d=retro" }, "url": "t/224987", "date_modified": "2015-10-01T03:24:17+00:00", "content_html": "

\u8fd9\u4e2a\u6587\u4ef6 http://ac-5wox14xl.clouddn.com/hZCa7cNHzT0UcB7lKUKBR5C

\n\n

deleteInBackgroundWithBlock:^(BOOL succeeded, NSError *error)

\n\n

Printing description of error:
\nError Domain=AVOS Cloud Error Domain Code=1 "Not Found" UserInfo={NSLocalizedDescription=Not Found, code=1, error=Not Found}

\n\n
\n\n

\u4f60\u4eec\u6ca1\u6709\u81ea\u52a8\u6d4b\u8bd5\u7528\u4f8b\u5417\uff1f

\n", "date_published": "2015-10-01T03:20:01+00:00", "title": "\u6709 leancloud \u7684\u4eba\u5728\u5417\uff1f", "id": "t/224987" }, { "author": { "url": "member/scarlex", "name": "scarlex", "avatar": "https://cdn.v2ex.com/avatar/1a55/1b73/33193_large.png?m=1384587216" }, "url": "t/223632", "title": "LeanCloud \u4e2d\u7684 Relation \u662f\u4e0d\u80fd\u540c\u65f6 add \u548c remove \u7684\u4e48\uff1f", "id": "t/223632", "date_published": "2015-09-25T07:11:54+00:00", "content_html": "

\u4ee3\u7801\uff1a

\n
post.relation('items').remove(_items);\npost.relation('items').add(items);\npost.save().then(function(p) {\n res.send(p);\n}, function(err) {\n console.log(err);\n});\n
\n\n

\u7ed3\u679c\uff1a

\n
{ code: 1, message: 'Invalid op.' }\n
\n\n

\u4f46\u6211\u5355\u72ec\u6267\u884c .remove(_items) \u548c .add(items) \u662f\u4e0d\u4f1a\u62a5\u9519\u7684\u3002

\n" }, { "author": { "url": "member/LeanCloudRRY", "name": "LeanCloudRRY", "avatar": "https://cdn.v2ex.com/avatar/278f/c5d5/103427_large.png?m=1430102721" }, "url": "t/221514", "title": "LeanEngine 2.0 \u5347\u7ea7 3.0 \u6307\u5357", "id": "t/221514", "date_published": "2015-09-17T09:38:44+00:00", "content_html": "

\u968f\u7740\u6211\u4eec\u7684\u5347\u7ea7\uff0c LeanEngine \u5347\u7ea7\u53ef\u4ee5\u975e\u5e38\u7b80\u5355\u54e6\uff0c\u53c2\u8003\u300c LeanEngine 2.0 \u5347\u7ea7 3.0 \u6307\u5357\u300d\uff0c\u5f53\u7136\u5982\u679c\u662f\u65b0\u7684\u9879\u76ee\uff0c\u5efa\u8bae\u76f4\u63a5\u4f7f\u7528 3.0 \u7684 \u9879\u76ee\u6846\u67b6 \u4f5c\u4e3a\u8d77\u6b65\u3002\u5982\u679c\u662f\u9057\u7559\u9879\u76ee\u60f3\u5347\u7ea7\u5230 3.0 \uff0c\u53ef\u4ee5\u53c2\u8003\u8be5\u6307\u5357\u3002

\n" }, { "author": { "url": "member/kenshinhu", "name": "kenshinhu", "avatar": "https://cdn.v2ex.com/avatar/4b84/2771/88764_large.png?m=1772689002" }, "url": "t/214840", "title": "\u4e91\u4ee3\u7801 \u901a\u8fc7 leancloud \u7684\u547d\u4ee4\u884c\u90e8\u7f72\u5931\u8d25", "id": "t/214840", "date_published": "2015-08-21T05:49:19+00:00", "content_html": "LeanCloud SDK \u6216\u8005\u5de5\u5177\u7684\u7248\u672c\u53f7\r
avoscloud-code-command \u4e91\u4ee3\u7801\u547d\u4ee4\u884c\u90e8\u7f72\u5de5\u5177 \u7248\u672c\uff1a 0.7.8\r
\r
\r
\u76f8\u5173\u65e5\u5fd7\uff08 curl \uff0c\u5f02\u5e38\u5806\u6808\u8f93\u51fa\u7b49\uff09\r
[INFO] \u751f\u6210\u4e34\u65f6\u6587\u4ef6\uff1a/var/folders/05/8tw7bhh544dbgb1lwk0c_hnc0000gn/T/1440128925275.zip\r
[INFO] \u5f00\u59cb\u4e0a\u4f20\u9879\u76ee\u6587\u4ef6\u2026\u2026\r
2015-08-21 11:50:19 [INFO] \u547d\u4ee4\u884c\u90e8\u7f72\u5e94\u7528\u2026\u2026\r
2015-08-21 11:50:19 [INFO] \u83b7\u53d6\u90e8\u7f72\u5305\r
{ UNSENT: 0,\r
OPENED: 1,\r
HEADERS_RECEIVED: 2,\r
LOADING: 3,\r
DONE: 4,\r
readyState: 4,\r
onreadystatechange: [Function],\r
responseText: 'Error: connect ETIMEDOUT\\n at exports._errnoException (util.js:746:11 )\\n at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19 )',\r
responseXML: '',\r
status: 503,\r
statusText: { [Error: connect ETIMEDOUT] code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect' },\r
open: [Function],\r
setDisableHeaderCheck: [Function],\r
setRequestHeader: [Function],\r
getResponseHeader: [Function],\r
getAllResponseHeaders: [Function],\r
getRequestHeader: [Function],\r
send: [Function],\r
handleError: [Function],\r
abort: [Function],\r
addEventListener: [Function],\r
removeEventListener: [Function],\r
dispatchEvent: [Function] }\r
\r
\u8be6\u7ec6\u7684\u95ee\u9898\u63cf\u8ff0\r
\u5728\u6700\u8fd1\u4e24\u5929\u51fa\u73b0\uff0c\u5728\u4f7f\u7528 avoscloud deploy \u65f6\u51fa\u73b0\u8be5\u95ee\u9898\uff0c\u5c1d\u8bd5\u66f4\u6362\u73af\u5883\u53ca\u7f51\u7edc\u4e5f\u51fa\u73b0\u8be5\u95ee\u9898\uff0c\u4e5f\u5c1d\u8bd5\u8fc7\u65b0\u5efa\u9879\u76ee\u5e76\u90e8\u7f72\u4e5f\u51fa\u73b0\u8be5\u60c5\u51b5\u3002" }, { "author": { "url": "member/q84629462", "name": "q84629462", "avatar": "https://cdn.v2ex.com/avatar/c01c/2154/81152_large.png?m=1416997276" }, "url": "t/203312", "date_modified": "2015-07-17T11:34:03+00:00", "content_html": "

\u6211\u521a\u521a\u6d4b\u8bd5\u4e86\u4e00\u4e0b\uff1a

\n
for(var i = 0;i<500;i++) AV.User.current().save();\n
\n\n

\u8fd9\u6837\u5c31\u8017\u8d39\u4e86500\u6b21API\u8c03\u7528\u6b21\u6570\uff0c\u5982\u679c\u88abwhile(true) + \u591a\u6d4f\u89c8\u5668\u6302\u673a\uff0c\u4f30\u8ba1\u53ef\u4ee5\u4e00\u5929\u5c31\u7834\u4ea7\u4e86\u3002
\n\u6709\u4ec0\u4e48\u89e3\u51b3\u529e\u6cd5\u4e48\uff1f

\n\n

\"\"

\n", "date_published": "2015-07-04T09:36:32+00:00", "title": "\u5982\u4f55\u907f\u514d\u4f7f\u7528 JS sdk \u7684\u9875\u9762\u88ab\u6076\u610f\u4f7f\u7528\u7f51\u9875\u5f00\u53d1\u8005\u5de5\u5177\u5199\u4e2a\u6b7b\u5faa\u73af\u8c03\u7528 leancloud API\uff1f", "id": "t/203312" }, { "author": { "url": "member/wangxiao2015", "name": "wangxiao2015", "avatar": "https://cdn.v2ex.com/avatar/d764/7a07/120315_large.png?m=1695194677" }, "url": "t/200624", "date_modified": "2015-06-23T12:17:39+00:00", "content_html": "

\u5e2e LeanCloud \u7528\u6237\u8f6c\u53d1\u3002

\n\n

[\u5173\u4e8e\u6211\u4eec]
\n\u6211\u4eec\u5728\u505a\u4e00\u6b3e\u7c7b\u4f3c\u53ef\u6c57\u5b66\u9662\u7684\u4ea7\u54c1\uff0c\u5df2\u6709web\u7aef\u4ea7\u54c1\uff0c\u6e05\u6670\u7684\u4ea7\u54c1\u5b9a\u4f4d\u4e0e\u529f\u80fd\u8bbe\u8ba1\uff0c\u73b0\u5e0c\u671b\u5c06\u91cd\u5fc3\u8f6c\u79fb\u5230\u79fb\u52a8\u7aef\uff0c\u5f00\u53d1\u5e76\u957f\u671f\u7ef4\u62a4\u3001\u6539\u8fdb\u79fb\u52a8\u7aef\u4ea7\u54c1\u3002\u8001\u677f\u975e\u5e38\u770b\u91cd\u6280\u672f\uff0c\u4e5f\u6709\u8d44\u6df1\u5168\u6808\u5de5\u7a0b\u5e08\u5750\u9547\u3002

\n\n

[\u5de5\u4f5c\u5730\u70b9]
\n\u5317\u4eac\u6d77\u6dc0\u4e2d\u5173\u6751\uff0c\u6b65\u884c5\u5206\u949f\u52303w\u5496\u5561

\n\n

[Email]
\nhr@daydayupinc.com

\n\n

[\u8981\u6c42]
\n1\u3001\u57fa\u672c\u8981\u6c42\uff08\u9ad8\u624b\u81ea\u884c\u5ffd\u7565\uff09\uff1a\u65e5\u5e38\u5f00\u53d1\u57fa\u672c\u6d41\u7a0b\uff0c\u5305\u62ec\u4e0d\u9650\u4e8e\uff1a\u57fa\u672c\u5de5\u5177\u7684\u4f7f\u7528CocoaPods\uff0cInstruments\uff0cUI\u7f16\u5199\u65e5\u5e38\uff0cCore Animation\uff0c\u5e38\u7528\u5e93\u5982SQLite\uff0cAFNetworking\uff0c\u63a8\u9001\u673a\u5236\uff0c\u901a\u8fc7StackOverflow\u95ee\u9898\u89e3\u51b3\uff0c\u63d0\u4ea4app store\u7684\u6ce8\u610f\u4e8b\u9879\u3002\u5982\u679c\u4f60\u4e9b\u90fd\u4e86\u89e3\uff0c\u4f60\u5e94\u8be5\u4e5f\u662f\u4e00\u4e2a\u559c\u7231iOS\u5f00\u53d1\u7684\u5de5\u7a0b\u5e08
\n2\u3001\u4e0d\u8981\u6c42\u8ba1\u7b97\u673a\u76f8\u5173\u4e13\u4e1a\uff0c\u4e0d\u9650\u5236\u5de5\u4f5c\u5e74\u6570\uff0c\u4f46\u9700\u8981\u6709\u4e30\u5bcc\u7684\u5b9e\u8df5\u7ecf\u9a8c \u6216 \u5f88\u5f3a\u7684\u5b66\u4e60\u80fd\u529b\uff0c\u5982\u679c\u6709\u4f5c\u54c1\u94fe\u63a5\u8bf7\u968f\u7b80\u5386\u63d0\u4f9b\u3002
\n3\u3001\u613f\u610f\u5c1d\u8bd5 LeanCloud + React Native \u67b6\u6784\u3002
\n4\u3001\u6709Web\u5f00\u53d1\u7ecf\u9a8c\u4f18\u5148\u3002\u6709\u97f3\u9891\u5904\u7406\u7ecf\u9a8c\u4f18\u5148\u3002
\n5\u3001\u9762\u8bd5\u4f1a\u6d89\u53ca\u4f60\u7684\u8fc7\u5f80\u4f5c\u54c1\u4e0e\u7ecf\u5386\uff0c\u4f1a\u6709\u73b0\u573a\u5199\u4ee3\u7801\u73af\u8282\u3002

\n\n

[\u6211\u4eec\u4e3a\u65b0\u6210\u5458\u63d0\u4f9b]
\n1\u300130k+\u85aa\u8d44\u3001\u5177\u4f53\u9762\u8bae
\n2\u3001\u6709\u6e05\u695a\u7684\u5b9e\u4e60\u5408\u4f19\u4eba\u5230\u5408\u4f19\u4eba\u7684\u664b\u5347\u8def\u5f84
\n3\u3001\u7ec6\u5fc3\u6253\u9020\u4e00\u6b3e\u4f18\u79c0\u4ea7\u54c1\u7684\u673a\u4f1a\uff0c\u8fd9\u4f1a\u662f\u4f60\u672a\u6765\u7684\u7b80\u5386\u4e2d\u6700\u91cd\u8981\u7684\u4e00\u7b14\u3002
\n4\u3001\u6280\u672f\u4e0a\u81ea\u7531\u3001\u5f00\u653e\u7684\u73af\u5883\uff0c\u6709\u5c1d\u8bd5\u81ea\u5df1\u60f3\u6cd5\u7684\u673a\u4f1a\u3002Swift\u5f53\u7136\u4e0d\u5728\u8bdd\u4e0b\u3002
\n5\u3001\u89c1\u8bc1\u81ea\u5df1\u7684\u4ea7\u54c1\u6539\u53d8\u884c\u4e1a\u3002

\n\n

\u539f\u6587\u5730\u5740

\n\n

https://forum.leancloud.cn/t/ios-30k-leancloud-react-native/1195

\n", "date_published": "2015-06-23T12:07:51+00:00", "title": "\u521b\u4e1a\u516c\u53f8\uff0c\u5317\u4eac iOS \u4e3b\u7a0b\uff0c 30k+\uff0c React Native\uff0c LeanCloud \u7528\u6237\u3002", "id": "t/200624" }, { "author": { "url": "member/shell92", "name": "shell92", "avatar": "https://cdn.v2ex.com/avatar/0ae7/a919/119132_large.png?m=1432709843" }, "url": "t/199359", "title": "\u6211 leancloud \u8d26\u53f7\u7528 gmail \u90ae\u7bb1\u6ce8\u518c\uff0c\u4f46\u662f\u5fd8\u8bb0\u4e86\u767b\u5f55\u5bc6\u7801\uff0c\u7533\u8bf7\u66f4\u6539\u5bc6\u7801\u4f46\u662f\u9a8c\u8bc1\u4fe1\u606f\u6536\u4e0d\u5230\uff0c\u600e\u4e48\u7834", "id": "t/199359", "date_published": "2015-06-17T12:45:52+00:00", "content_html": "" }, { "author": { "url": "member/wangxiao2015", "name": "wangxiao2015", "avatar": "https://cdn.v2ex.com/avatar/d764/7a07/120315_large.png?m=1695194677" }, "url": "t/198663", "title": "LeanCloud \u53d1\u5e03\u7b80\u5355\u597d\u7528\u7684 Web \u7edf\u8ba1", "id": "t/198663", "date_published": "2015-06-15T05:48:25+00:00", "content_html": "

\u4e00\u4e2a\u975e\u5e38\u7b80\u5355\u7684\u81ea\u52a8\u7edf\u8ba1 SDK\uff0c\u5f53\u7136\u4e5f\u652f\u6301\u81ea\u5b9a\u4e49\u4e8b\u4ef6\uff0c\u975e\u5e38\u8f7b\u5de7\uff0c\u6b22\u8fce\u4f7f\u7528\u3002
\n\u6587\u6863 https://leancloud.cn/docs/js_analytics.html

\n\n

end

\n" }, { "author": { "url": "member/wangxiao2015", "name": "wangxiao2015", "avatar": "https://cdn.v2ex.com/avatar/d764/7a07/120315_large.png?m=1695194677" }, "url": "t/198041", "date_modified": "2015-06-12T08:11:20+00:00", "content_html": "

LeanCloud Javascript SDK \u662f\u652f\u6301 React Native \u7684\uff0c

\n\n

\u53ef\u4ee5\u53c2\u8003\u8fd9\u7bc7 Blog https://blog.leancloud.cn/3188/

\n", "date_published": "2015-06-12T08:11:10+00:00", "title": "\u5982\u4f55\u5728 React Native \u4e2d\u4f7f\u7528 LeanCloud\uff1f", "id": "t/198041" }, { "author": { "url": "member/q84629462", "name": "q84629462", "avatar": "https://cdn.v2ex.com/avatar/c01c/2154/81152_large.png?m=1416997276" }, "url": "t/197898", "date_modified": "2015-06-11T19:19:39+00:00", "content_html": "

\u4e00\uff0c\u7ba1\u7406\u540e\u53f0\u7684\u6570\u636e\u5b58\u50a8\u9875\u9762\u538b\u6839\u6ca1\u8fd9\u4e2a\u8bbe\u7f6e\u529f\u80fd
\n\u4e8c\uff0c\u53bb\u5de5\u5355\u7cfb\u7edf\u641c\u4e86\u4e00\u4e0b\uff0c\u627e\u5230\u5ba2\u670d\u56de\u590d\uff0c\u660e\u786e\u8bf4\u9700\u8981\u4e0b\u5de5\u5355\u8ba9\u5ba2\u670d\u64cd\u4f5c\u7ed9\u7528\u6237\u6307\u5b9a\u7684\u8868\u7684\u5b57\u6bb5\u8bbe\u7f6e\u552f\u4e00
\n\u4e09\uff0c\u90a3\u4e48\u95ee\u9898\u6765\u4e86\uff0c\u60f3\u4e0b\u5de5\u5355\u9700\u8981\u8d2d\u4e70200\u5143/\u6708\u7684[\u6280\u672f\u652f\u6301\u670d\u52a1]\u624d\u80fd\u4e0b\u5de5\u5355
\n\u6211\u4e0d\u53cd\u5bf9\u5bf9\u9700\u8981\u4eba\u624b\u64cd\u4f5c\u7684\u4e1a\u52a1\u8fdb\u884c\u6536\u8d39\uff0c\u751a\u81f3\u662f\u652f\u6301\u7684
\n\u4f46\u6211\u53ea\u662f\u60f3\u7ed9\u8868\u7684\u5b57\u6bb5\u52a0\u4e2a\u503c\u552f\u4e00\u5c5e\u6027\u800c\u5df2\u554a\u3002\u3002\u3002
\n\u5982\u679cleancloud\u89c9\u5f97\u7528\u6237\u4e71\u7ed9\u8868\u7684\u5b57\u6bb5\u52a0\u552f\u4e00\u5c5e\u6027\u4f1a\u5f71\u54cd\u5230\u6bcd\u9e21\u6027\u80fd\u4ec0\u4e48\u7684\u8bdd\uff0c\u53ef\u4ee5\u52a0\u4e2a\u9650\u5236\u554a\uff0c\u6bcf\u4e2a\u8868\u53ea\u80fd\u7ed9\u4e00\u4e2a\u5b57\u6bb5\u52a0\uff0c\u6bcf\u4e2a\u8d26\u53f7\u53ea\u67095\u4e2a\u9650\u989d\u4ec0\u4e48\u7684\u63aa\u65bd
\n\u6897\u91cd\u8981\u7684\u662f\u6211\u60f3\u8981\u552f\u4e00\u5c5e\u6027\u5b57\u6bb5\u8fd8\u662f\u4e3a\u4e86\u4f7f\u7528leancloud\u7684\u5373\u65f6\u901a\u8baf\uff0c
\nleancloud\u7684\u5373\u65f6\u901a\u8baf\u6bcf\u4e2a\u5ba2\u6237\u7aef\u90fd\u9700\u8981\u72ec\u7acb\u7684client ID\uff0c\u800cclient ID\u5728\u5373\u65f6\u901a\u8baf\u7cfb\u7edf\u91cc\uff0c\u662f\u53ef\u4ee5\u7b80\u5355\u7684\u5f53\u4f5c\u5ba2\u6237\u7aef\u6635\u79f0\u6765\u7528\uff0c\u5b98\u65b9demo\u4e5f\u662f\u8fd9\u6837\u7528\u7684
\n\u5982\u679c\u4e0d\u8fd9\u6837\u7528\u5462\uff0c\u90a3\u6bcf\u4e2aclient\u8fdb\u5165\u804a\u5929\u5ba4\u90fd\u9700\u8981\u6240\u6709\u5728\u7ebf\u7528\u6237\u53bb\u8bfb\u53d6\u4e00\u6b21client ID\u4ee3\u8868\u7684\u7528\u6237\u6635\u79f0\uff0c\u8fd9\u4f1a\u5e26\u6765\u4ec0\u4e48\u95ee\u9898\uff1f\u66f4\u7e41\u6742\u7684\u4ee3\u7801(\u7a0b\u5e8f\u733f)\u3001\u66f4\u591a\u7684\u80fd\u8017(leancloud)\uff0c\u66f4\u957f\u7684\u7b49\u5f85(\u804a\u5929\u7528\u6237)\uff0c\u66f4\u591a\u7684\u8c03\u7528\u6b21\u6570(leancloud\u53ef\u662f\u6309\u8c03\u7528\u6b21\u6570\u6536\u8d39\u7684)
\n\u89e3\u51b3\u65b9\u6cd5\u9664\u4e86\u5f00\u653e\u5b57\u6bb5\u552f\u4e00\u503c\u7684\u8bbe\u7f6e\u5916\uff0c\u5373\u65f6\u901a\u8baf\u8fdb\u5165\u804a\u5929\u5ba4\u63a5\u53e3\u53ef\u4ee5\u589e\u52a0\u6635\u79f0\u7684\u53c2\u6570\uff0c\u8fd9\u6837\u5c31\u4e0d\u9700\u8981\u4f7f\u7528\u8868\u6765\u5b58\u50a8client ID\u4e86\uff0c\u4e5f\u5c31\u4e0d\u9700\u8981\u552f\u4e00\u5b57\u6bb5\u4e86

\n\n

\u51cc\u66683\u70b9\u7528\u624b\u673a\u6253\u7684\u5185\u5bb9\uff0c\u6709\u9519\u5b57\u6216\u8bf4\u6cd5\u4e0a\u7684\u9519\u8bef\u6216\u540d\u8bcd\u7528\u9519\u4e86\u8bf7\u89c1\u8c05

\n", "date_published": "2015-06-11T19:16:10+00:00", "title": "LeanCloud \u6570\u636e\u5b58\u50a8\u8d77\u7801\u8981\u4ea4 200 \u5757\u624d\u80fd\u7ed9\u6570\u636e\u8868\u52a0\u8bbe\u503c\u552f\u4e00\u5b57\u6bb5\uff1f\uff1f", "id": "t/197898" }, { "author": { "url": "member/wangxiao2015", "name": "wangxiao2015", "avatar": "https://cdn.v2ex.com/avatar/d764/7a07/120315_large.png?m=1695194677" }, "url": "t/197038", "title": "Web \u5b9e\u65f6\u901a\u4fe1 Demo", "id": "t/197038", "date_published": "2015-06-08T13:16:35+00:00", "content_html": "

Demo http://leancloud.github.io/js-realtime-sdk/demo/demo2/
\n\u6e90\u7801 https://github.com/leancloud/js-realtime-sdk/tree/master/demo/demo2

\n" }, { "author": { "url": "member/wangxiao2015", "name": "wangxiao2015", "avatar": "https://cdn.v2ex.com/avatar/d764/7a07/120315_large.png?m=1695194677" }, "url": "t/197036", "title": "\u57fa\u4e8e LeanCloud \u7684 Javascript \u5b9e\u65f6\u5bf9\u6218\u6e38\u620f\u7b80\u5355 Demo", "id": "t/197036", "date_published": "2015-06-08T13:14:22+00:00", "content_html": "

\u79fb\u52a8\u7aef\u8bbf\u95ee\u66f4\u597d\uff0c\u5b9e\u65f6\u5339\u914d\u4e24\u4e2a\u7528\u6237\uff0c\u5982\u679c\u6ca1\u6709\u7528\u6237\u5c31\u4f1a\u5339\u914d\u4e00\u4e2a\u673a\u5668\u4eba\u3002
\nhttp://cutpage.sinaapp.com/

\n\n

\u6e90\u7801\u5730\u5740
\nhttps://github.com/wangxiao/cut-page

\n" }, { "author": { "url": "member/LeanCloudRRY", "name": "LeanCloudRRY", "avatar": "https://cdn.v2ex.com/avatar/278f/c5d5/103427_large.png?m=1430102721" }, "url": "t/196989", "date_modified": "2015-06-08T10:16:23+00:00", "content_html": "

\u5404\u4f4d LeanCloud \u7684\u7528\u6237\uff0c\u5927\u5bb6\u597d\u3002

\n\n

LeanCloud \u7684\u591a\u9879\u670d\u52a1\u5728\u516d\u6708\u516d\u65e5\u5468\u516d\u4e0b\u5348\u53d1\u751f\u4e86\u5927\u7ea6\u56db\u4e2a\u5c0f\u65f6\u7684\u4e2d\u65ad\u6216\u4e0d\u7a33\u5b9a\u3002\u5176\u4e2d 16:10 \u5230 19:09 \u4e3a\u6545\u969c\u9636\u6bb5\uff1b19:09 \u5230 20:17 \u4e3a\u9650\u6d41\u6062\u590d\u9636\u6bb5\u3002

\n\n

\u5728\u6545\u969c\u9636\u6bb5\u53d7\u5230\u91cd\u5927\u5f71\u54cd\u7684\u670d\u52a1\u5305\u62ec\uff1a\u6570\u636e\u5b58\u50a8\u3001\u7f51\u7ad9\u53ca\u63a7\u5236\u53f0\u3001\u4e91\u4ee3\u7801\u3001\u63a8\u9001\u3001\u5de5\u5355\u7cfb\u7edf\u3001\u7528\u6237\u53cd\u9988\u3001\u7b2c\u4e09\u65b9\u767b\u5f55\u3001\u5e94\u7528\u5185\u793e\u4ea4\uff1b\u53d7\u5230\u8f7b\u5ea6\u5f71\u54cd\u7684\u670d\u52a1\u5305\u62ec\uff1a\u77ed\u4fe1\u3001\u5b9e\u65f6\u901a\u4fe1\u670d\u52a1\u4e2d\u83b7\u53d6\u804a\u5929\u8bb0\u5f55\u7684 API\uff1b\u672a\u53d7\u5f71\u54cd\u7684\u670d\u52a1\u5305\u62ec\uff1a\u7edf\u8ba1\u5206\u6790\u3001\u79bb\u7ebf\u6570\u636e\u5206\u6790\u3001\u5e94\u7528\u5185\u641c\u7d22\u3001\u6587\u6863\u3002

\n\n

\u5728\u9650\u6d41\u6062\u590d\u9636\u6bb5\u53d7\u5230\u91cd\u5927\u5f71\u54cd\u7684\u670d\u52a1\u5305\u62ec\u6570\u636e\u5b58\u50a8\u3001\u7f51\u7ad9\u53ca\u63a7\u5236\u53f0\u3001\u4e91\u4ee3\u7801\u3001\u63a8\u9001\u3001\u77ed\u4fe1\u3001\u5de5\u5355\u7cfb\u7edf\u3001\u7528\u6237\u53cd\u9988\u3001\u7b2c\u4e09\u65b9\u767b\u5f55\u3001\u5e94\u7528\u5185\u793e\u4ea4\u3001\u7edf\u8ba1\u5206\u6790\u3001\u79bb\u7ebf\u6570\u636e\u5206\u6790\u3001\u5e94\u7528\u5185\u641c\u7d22\u3001\u6587\u6863\u3001\u5b9e\u65f6\u901a\u4fe1\u4e2d\u83b7\u53d6\u804a\u5929\u8bb0\u5f55\u7684 API\u3002\u5b9e\u65f6\u901a\u4fe1\u5728\u8fd9\u4e2a\u9636\u6bb5\u672a\u53d7\u5f71\u54cd\u3002

\n\n

\u5728\u8fd9\u6b21\u4e8b\u6545\u4e2d\u6ca1\u6709\u53d1\u751f\u670d\u52a1\u5668\u7aef\u6570\u636e\u7684\u4e22\u5931\u6216\u635f\u574f\u3002

\n\n

\u6211\u4eec\u77e5\u9053\u8fd9\u6b21\u670d\u52a1\u4e2d\u65ad\u7ed9\u5f88\u591a\u7528\u6237\u9020\u6210\u4e86\u5b9e\u8d28\u6027\u7684\u5f71\u54cd\u3002\u6211\u5199\u8fd9\u5c01\u4fe1\u7684\u76ee\u7684\u662f\u4e3a\u4e86\u5411\u7528\u6237\u8bf4\u660e\u53d1\u751f\u7684\u4e8b\u60c5\uff0c\u4ee5\u53ca\u6211\u4eec\u5c06\u5982\u4f55\u6539\u8fdb\u4ea7\u54c1\u548c\u670d\u52a1\u4ee5\u964d\u4f4e\u7c7b\u4f3c\u4e8b\u4ef6\u53d1\u751f\u7684\u53ef\u80fd\u6027\u3002

\n\n

\u67b6\u6784\u603b\u89c8

\n\n

\u4e3a\u4e86\u66f4\u597d\u5730\u89e3\u91ca\u8fd9\u6b21\u4e8b\u6545\uff0c\u6211\u60f3\u5148\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0b LeanCloud \u7684\u540e\u7aef\u67b6\u6784\u3002\u4ee5\u4e0b\u662f\u4e00\u4e2a\u7b80\u5316\u7248\u7684\u67b6\u6784\u56fe\u3002

\n\n

\"LeanCloud

\n\n

\u867d\u7136\u5b9e\u9645\u4e0a\u7cfb\u7edf\u95f4\u7684\u5173\u8054\u6bd4\u8fd9\u4e2a\u56fe\u8981\u590d\u6742\uff0c\u5e76\u4e14\u6709\u4e00\u4e9b\u505a\u5f02\u6b65\u5904\u7406\u7684\u7cfb\u7edf\u6ca1\u6709\u753b\u51fa\u6765\uff0c\u4f46\u7528\u4ee5\u8bf4\u660e\u95ee\u9898\u662f\u8db3\u591f\u7684\u3002

\n\n

\u5728 LeanCloud \u7684\u6700\u524d\u7aef\uff0c\u9664\u4e86\u8d1f\u8f7d\u5747\u8861\u4e4b\u5916\u5c31\u662f API \u670d\u52a1\u96c6\u7fa4\uff0c\u4e5f\u5c31\u662f\u5b9e\u73b0 RESTful API \u7684\u90e8\u5206\u3002\u5ba2\u6237\u7aef\u5e94\u7528\u901a\u8fc7 SDK \u6216\u76f4\u63a5\u8c03\u7528 API \u548c\u5b83\u901a\u8baf\u3002\u6839\u636e\u8bf7\u6c42\u7684\u7c7b\u578b\uff0cAPI \u670d\u52a1\u518d\u8c03\u7528\u540e\u7aef\u7684\u5404\u4e2a\u7cfb\u7edf\u5b8c\u6210\u6240\u9700\u7684\u529f\u80fd\u3002\u6bd4\u5982\u5982\u679c\u662f\u7edf\u8ba1\u670d\u52a1\u7684\u8bf7\u6c42\uff0c\u4e8b\u4ef6\u4fe1\u606f\u4f1a\u88ab\u53d1\u9001\u5230\u7edf\u8ba1\u670d\u52a1\u5e76\u6700\u7ec8\u88ab\u4fdd\u5b58\u5230 HBase \u96c6\u7fa4\uff1b\u5982\u679c\u662f\u6570\u636e\u5b58\u50a8\u670d\u52a1\u7684\u8bf7\u6c42\uff0c\u90a3\u4e48 API \u670d\u52a1\u5c31\u4f1a\u8c03\u7528 MySQL \u548c MongoDB \u96c6\u7fa4\u5b8c\u6210\u6570\u636e\u8bbf\u95ee\u3002\u56e0\u4e3a MongoDB \u5b58\u50a8\u4e86\u6bcf\u4e2a\u5e94\u7528\u7684\u5927\u90e8\u5206\u6570\u636e\uff0c\u6240\u4ee5\u4e0d\u5c11\u670d\u52a1\u90fd\u9700\u8981\u4ece\u8fd9\u91cc\u83b7\u53d6\u4e00\u4e9b\u4fe1\u606f\uff0c\u662f\u6574\u4e2a\u7cfb\u7edf\u4e2d\u5f88\u91cd\u8981\u7684\u7ec4\u4ef6\u3002

\n\n

MongoDB \u96c6\u7fa4\u5b58\u50a8\u4e86\u6240\u6709\u5e94\u7528\u9664\u4e86\u7edf\u8ba1\u548c\u5907\u4efd\u6570\u636e\u4ee5\u5916\u7684\u5176\u4ed6\u6570\u636e\u3002\u7531\u4e8e\u6570\u636e\u91cf\u5de8\u5927\uff0c\u6240\u4ee5\u6211\u4eec\u5bf9 MongoDB \u8fdb\u884c\u4e86\u5206\u7247\uff08sharding\uff09\uff0c\u8ba9\u6570\u636e\u5206\u5e03\u5728\u4e0d\u540c shard\u3002\u6bcf\u4e2a shard \u53c8\u7531 5 \u53f0\u670d\u52a1\u5668\uff08\u8282\u70b9\uff09\u7ec4\u6210\uff0c\u5176\u4e2d\u6bcf\u53f0\u90fd\u4fdd\u5b58\u7740\u8fd9\u4e2a shard \u7684\u5b8c\u6574\u6570\u636e\uff0c\u8fd9\u6837\u4e0d\u4f46\u53ef\u4ee5\u627f\u62c5\u66f4\u9ad8\u7684\u8d1f\u8f7d\uff0c\u4e5f\u4fdd\u8bc1\u4e86\u5373\u4f7f\u5176\u4e2d\u4e00\u4e9b\u670d\u52a1\u5668\u574f\u6389\uff0c\u6570\u636e\u4e5f\u662f\u5b89\u5168\u7684\u3002\u6bcf\u4e2a shard \u6709\u4e00\u53f0\u79f0\u4e3a primary \u7684\u670d\u52a1\u5668\uff0c\u6240\u6709\u5bf9\u6570\u636e\u7684\u4fee\u6539\u90fd\u4f1a\u9996\u5148\u5728\u8fd9\u53f0\u670d\u52a1\u5668\u8fdb\u884c\uff0c\u7136\u540e\u518d\u590d\u5236\u5230\u5176\u4ed6\u670d\u52a1\u5668\uff0c\u800c\u8bfb\u53d6\u53ef\u4ee5\u4ece\u4efb\u4f55\u4e00\u53f0\u670d\u52a1\u5668\u8fdb\u884c\u3002\u5f53 primary \u51fa\u73b0\u95ee\u9898\u65f6\uff0c\u4f1a\u6709\u4e00\u4e2a\u81ea\u52a8\u9009\u4e3e\u8fc7\u7a0b\u4ece\u5176\u4ed6\u6210\u5458\u91cc\u9009\u51fa\u65b0\u7684 primary\uff0c\u8ba9\u670d\u52a1\u53ef\u4ee5\u7ee7\u7eed\uff0c\u8fd9\u662f\u5b9e\u73b0\u5bb9\u9519\u7684\u65b9\u5f0f\u3002

\n\n

\u6545\u969c\u8bf4\u660e

\n\n

\u5728\u6545\u969c\u53d1\u751f\u524d\u7684\u4e00\u5468\uff0c\u6211\u4eec\u505a\u4e86\u4e0e\u672c\u6b21\u6545\u969c\u76f8\u5173\u7684\u4e24\u4e2a\u6539\u52a8\u3002

\n\n

\u4e3a\u4e86\u66f4\u597d\u5730\u7ba1\u7406 LeanCloud \u7684\u5927\u91cf\u670d\u52a1\u5668\uff0c\u6211\u4eec\u5728\u8fd1\u671f\u5f15\u5165\u4e86 Apache Mesos\uff0c\u8fd9\u662f\u4e00\u4e2a\u4e3a\u670d\u52a1\u5668\u96c6\u7fa4\u7684\u8d44\u6e90\u7ba1\u7406\u63d0\u4f9b\u9ad8\u5c42\u62bd\u8c61\u63a5\u53e3\u7684\u7cfb\u7edf\u3002Mesos \u4f1a\u5728\u6bcf\u53f0\u53d7\u7ba1\u7406\u7684\u670d\u52a1\u5668\u4e0a\u8fd0\u884c\u4e00\u4e2a mesos-slave \u8fdb\u7a0b\u3002

\n\n

\u6211\u4eec\u628a MongoDB \u4ece 2.4 \u5347\u7ea7\u5230\u4e86 2.6\u3002\u65b0\u7248\u672c\u5bf9\u5730\u7406\u4f4d\u7f6e\u7684\u67e5\u8be2\uff0c\u4ee5\u53ca count \u67e5\u8be2\u7684\u51c6\u786e\u6027\u6709\u6240\u6539\u8fdb\uff0c\u6240\u4ee5\u6211\u4eec\u8ba4\u4e3a\u8fd9\u6b21\u5347\u7ea7\u5bf9\u7528\u6237\u6765\u8bf4\u662f\u503c\u5f97\u7684\u3002\u4f46\u65b0\u7248\u672c\u7684\u4e00\u4e2a\u8d1f\u9762\u5f71\u54cd\u662f\uff0c\u56e0\u4e3a\u6bcf\u6b21\u542f\u52a8\u65f6\u8981\u68c0\u67e5\u7d22\u5f15\uff0c\u6240\u4ee5\u542f\u52a8\u65f6\u95f4\u5927\u5927\u5ef6\u957f\u4e86\u3002\u800c\u5982\u679c MongoDB \u662f\u5728\u51fa\u9519\u7684\u60c5\u51b5\u4e0b\u91cd\u65b0\u542f\u52a8\uff0c\u4f1a\u5bfc\u81f4\u5927\u91cf\u7684\u7d22\u5f15\u88ab\u91cd\u65b0\u5efa\u7acb\uff0c\u8fdb\u4e00\u6b65\u5ef6\u957f\u542f\u52a8\u7684\u65f6\u95f4\u3002

\n\n

\u5927\u7ea6\u5728 16:10 \u6211\u4eec\u7684\u8fd0\u7ef4\u5de5\u7a0b\u5e08\u6536\u5230 MongoDB \u96c6\u7fa4\u5185\u5b58\u4e0d\u8db3\u7684\u62a5\u8b66\uff0c\u5728\u521d\u6b65\u8bca\u65ad\u540e\uff0c\u786e\u5b9a\u539f\u56e0\u4e3a mesos-slave \u542f\u52a8\u7684\u4e00\u4e2a\u5b50\u8fdb\u7a0b\u5360\u7528\u5185\u5b58\u592a\u591a\uff0c\u6709\u53ef\u80fd\u662f\u5b58\u5728\u5185\u5b58\u6cc4\u6f0f\uff0c\u6240\u4ee5\u6211\u4eec\u5f00\u59cb\u7ec8\u6b62\u5404\u53f0\u670d\u52a1\u5668\u7684 mesos-slave \u8fdb\u7a0b\u3002\u5728\u8fd9\u65f6\u6211\u4eec\u53d1\u73b0 MongoDB \u7684\u5176\u4e2d\u4e00\u4e2a shard \u4e2d\u6709\u4e09\u4e2a\u8282\u70b9\u56e0\u4e3a\u53ef\u7528\u5185\u5b58\u4e0d\u8db3\u8fdb\u5165\u5f02\u5e38\u72b6\u6001\uff0c\u5176\u4e2d\u4e00\u4e2a\u662f primary\uff0c\u6240\u4ee5\u6211\u4eec\u5f00\u59cb\u91cd\u542f\u5176\u4e2d\u4e24\u4e2a\u8282\u70b9\u3002\u7531\u4e8e MongoDB 2.6 \u5728\u542f\u52a8\u8fc7\u7a0b\u4e2d\u9700\u8981\u6821\u9a8c\u6570\u636e\u5e76\u4fee\u590d\u7d22\u5f15\uff0c\u6240\u4ee5\u8fd9\u4e2a\u8fc7\u7a0b\u5f88\u6162\uff0c\u800c\u5f53\u65f6\u6b63\u662f\u6d41\u91cf\u9ad8\u5cf0\u671f\uff0c\u8fd9\u4e2a shard \u5269\u4e0b\u7684\u8282\u70b9\u4e0d\u8db3\u4ee5\u627f\u62c5\u5f53\u65f6\u7684\u8d1f\u8f7d\uff0c\u6240\u4ee5\u5f88\u5feb\u88ab\u538b\u57ae\u3002\u7531\u4e8e primary \u7684\u8fde\u63a5\u6570\u88ab\u5360\u6ee1\uff0c\u8fd9\u5bfc\u81f4\u51fa\u95ee\u9898\u7684\u4e24\u4e2a\u8282\u70b9\u65e0\u6cd5\u52a0\u5165\u96c6\u7fa4\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u51b3\u5b9a\u5c4f\u853d\u6240\u6709 API \u670d\u52a1\u8bf7\u6c42\uff0c\u5e76\u91cd\u542f\u5904\u4e8e\u9519\u8bef\u72b6\u6001\u7684\u4e09\u4e2a\u8282\u70b9\u3002

\n\n

\u5728\u6b64\u4e4b\u540e\uff0c\u8fd9\u4e09\u4e2a\u8282\u70b9\u5206\u522b\u7ecf\u5386\u4e86\u591a\u6b21\u91cd\u542f\uff0c\u539f\u56e0\u662f\u51fa\u95ee\u9898\u7684 shard \u5927\u7ea6\u6709 10,000 \u4e2a\u6570\u636e\u5e93\uff0c\u800c\u65b0\u7248 MongoDB \u8981\u9a8c\u8bc1\u6bcf\u4e2a\u6570\u636e\u5e93\u5e76\u4fee\u590d\u7d22\u5f15\u3002\u8fd9\u4e0d\u4f46\u4f7f\u5f97\u91cd\u542f\u5f88\u6162\uff0c\u800c\u4e14\u56e0\u4e3a\u6570\u636e\u5e93\u6570\u91cf\u592a\u591a\uff0c\u8fd9\u4e2a\u8fc7\u7a0b\u4f1a\u8017\u5c3d\u7cfb\u7edf\u5bf9\u5b50\u8fdb\u7a0b\u6570\u7684\u9650\u5236\uff0c\u6240\u4ee5\u5728\u91cd\u542f\u4e4b\u540e\u96c6\u7fa4\u65e0\u6cd5\u6062\u590d\u6b63\u5e38\u53ef\u7528\u72b6\u6001\u3002\u76f4\u5230\u6211\u4eec\u627e\u5230\u539f\u56e0\u5e76\u8c03\u6574\u4e86\u7cfb\u7edf\u8bbe\u7f6e\uff0c\u5404\u4e2a\u8282\u70b9\u624d\u5b8c\u6210\u6b63\u5e38\u542f\u52a8\uff0c\u96c6\u7fa4\u6062\u590d\u53ef\u7528\u3002

\n\n

\u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d\uff0c\u9664\u4e86\u4e8b\u6545\u672c\u8eab\uff0c\u6211\u4eec\u5728\u6c9f\u901a\u4e0a\u4e5f\u72af\u4e86\u4e00\u4e9b\u9519\u8bef\u3002\u5f53\u7528\u6237\u8be2\u95ee\u670d\u52a1\u6062\u590d\u65f6\u95f4\u65f6\uff0c\u6211\u4eec\u7ed9\u51fa\u4e86\u8fc7\u4e8e\u4e50\u89c2\u7684\u4f30\u8ba1\uff0c\u4f46\u56e0\u4e3a\u4ee5\u4e0a\u6240\u8bf4\u7684\u539f\u56e0\uff0c\u591a\u4e2a MongoDB \u8282\u70b9\u7ecf\u8fc7\u4e86\u591a\u6b21\u91cd\u542f\uff0c\u5b9e\u9645\u6062\u590d\u670d\u52a1\u7684\u65f6\u95f4\u665a\u4e86\u5f88\u591a\uff0c\u8fd9\u7ed9\u7528\u6237\u9020\u6210\u4e86\u8fdb\u4e00\u6b65\u7684\u56f0\u6270\u3002

\n\n

\u6539\u8fdb\u63aa\u65bd

\n\n\n\n

\u7ed3\u8bed

\n\n

\u6211\u4eec\u80a9\u4e0a\u627f\u8f7d\u7740\u4e3a\u6570\u4e07\u5f00\u53d1\u8005\u63d0\u4f9b\u7a33\u5b9a\u670d\u52a1\u7684\u8d23\u4efb\u3002\u5468\u516d\u508d\u665a\u4e8b\u6545\u6301\u7eed\u7684\u56db\u4e2a\u5c0f\u65f6\u4e5f\u662f\u6240\u6709 LeanCloud \u7684\u540c\u4e8b\u6700\u96be\u71ac\u7684\u4e00\u6bb5\u65f6\u95f4\u3002\u6211\u4eec\u4e86\u89e3\u5230\u6709\u7684\u521b\u4e1a\u56e2\u961f\u4e3a\u4e86\u5f53\u5929\u8fdb\u884c\u7684\u4e00\u4e2a\u6d3b\u52a8\uff0c\u5728\u8fc7\u53bb\u7684\u65f6\u95f4\u91cc\u975e\u5e38\u8f9b\u82e6\u5730\u5de5\u4f5c\uff0c\u800c\u6d3b\u52a8\u5374\u53d7\u5230\u4e86 LeanCloud \u4e8b\u6545\u7684\u5f71\u54cd\u3002\u8fd9\u6837\u7684\u4e8b\u60c5\u8ba9\u540c\u4e3a\u521b\u4e1a\u516c\u53f8\u7684\u6211\u4eec\u975e\u5e38\u5730\u96be\u53d7\u548c\u60ed\u6127\u3002

\n\n

\u6211\u4eec\u5e0c\u671b\u901a\u8fc7\u8fd9\u4e2a\u8be6\u7ec6\u7684\u62a5\u544a\u8ba9\u7528\u6237\u5168\u9762\u5730\u4e86\u89e3\u6574\u4e2a\u8fc7\u7a0b\uff0c\u5e76\u5c06\u5c3d\u4e00\u5207\u52aa\u529b\u964d\u4f4e\u672a\u6765\u53d1\u751f\u7c7b\u4f3c\u4e8b\u4ef6\u7684\u53ef\u80fd\u6027\u3002\u867d\u7136\u4efb\u4f55\u4eba\u90fd\u6ca1\u6709\u529e\u6cd5\u5b8c\u5168\u4fdd\u8bc1\u670d\u52a1\u4e2d\u65ad\u4e0d\u4f1a\u53d1\u751f\uff0c\u4f46\u6211\u4eec\u4f1a\u91c7\u53d6\u4e00\u7cfb\u5217\u63aa\u65bd\u907f\u514d\u53ef\u9884\u89c1\u7684\u95ee\u9898\uff0c\u5e76\u786e\u4fdd\u5728\u53d1\u751f\u610f\u5916\u7684\u65f6\u5019\u80fd\u66f4\u5feb\u5730\u6062\u590d\u3002\u4e3a\u4e86\u4fdd\u6301\u6539\u8fdb\u8fc7\u7a0b\u7684\u900f\u660e\uff0c\u6211\u4eec\u5f00\u653e\u4e86\u4e00\u4e2a\u8ffd\u8e2a\u5404\u9879\u5177\u4f53\u63aa\u65bd\u7684 Trello board\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u5b83\u968f\u65f6\u4e86\u89e3\u6211\u4eec\u7684\u6267\u884c\u8fc7\u7a0b\u3002

\n\n

\u6c5f\u5b8f

\nLeanCloud Cofounder/CEO

\n", "date_published": "2015-06-08T10:07:08+00:00", "title": "\u5bf9\u516d\u6708\u516d\u65e5 LeanCloud \u591a\u9879\u670d\u52a1\u53d1\u751f\u4e2d\u65ad\u7684\u8bf4\u660e", "id": "t/196989" }, { "author": { "url": "member/wangxiao2015", "name": "wangxiao2015", "avatar": "https://cdn.v2ex.com/avatar/d764/7a07/120315_large.png?m=1695194677" }, "url": "t/196610", "date_modified": "2015-06-06T14:51:27+00:00", "content_html": "

LeanCloud \u5e73\u53f0\u63d0\u4f9b\u4e86\u4e00\u4e2a\u79fb\u52a8 App \u7684\u5b8c\u6574\u540e\u7aef\u89e3\u51b3\u65b9\u6848\uff0c\u76ee\u6807\u662f\u5b8c\u5168\u6d88\u9664\u5199\u540e\u7aef\u4ee3\u7801\u548c\u7ef4\u62a4\u670d\u52a1\u5668\u7684\u5fc5\u8981\u6027.

\n\n

AV.Cloud.requestSmsCode('186xxxxxxxx').then(function(){
\n //\u53d1\u9001\u6210\u529f
\n}, function(err){
\n //\u53d1\u9001\u5931\u8d25
\n});

\n\n

AV.Cloud.verifySmsCode('6\u4f4d\u6570\u5b57\u9a8c\u8bc1\u7801', '11 \u4f4d\u624b\u673a\u53f7\u7801').then(function(){
\n //\u9a8c\u8bc1\u6210\u529f
\n}, function(err){
\n //\u9a8c\u8bc1\u5931\u8d25
\n});

\n\n

\u5177\u4f53\u8bf7\u53c2\u8003\u6587\u6863 https://leancloud.cn/docs/js_sms_guide.html

\n", "date_published": "2015-06-06T14:47:22+00:00", "title": "LeanCloud Javascript \u53d1\u9001\u77ed\u4fe1", "id": "t/196610" }, { "author": { "url": "member/wangxiao2015", "name": "wangxiao2015", "avatar": "https://cdn.v2ex.com/avatar/d764/7a07/120315_large.png?m=1695194677" }, "url": "t/196609", "date_modified": "2015-06-06T14:43:54+00:00", "content_html": "

\u4f60\u53ef\u4ee5\u57fa\u4e8e Push SDK \u505a\u5f88\u591a\u6709\u8da3\u7684 Web App\uff0c\u6bd4\u5982\uff1a\u5e74\u4f1a\u4e0a\u9762\u505a\u4e2a\u7b80\u5355\u7684\u5f39\u5e55\u5e94\u7528\uff0c\u4e00\u4e9b\u5ba2\u6237\u7aef\u53d1\uff0c\u5f39\u5e55\u5899\u63a5\u6536\u3002

\n\n

\u5f53\u7136\uff0c\u4f60\u53ef\u4ee5\u505a\u4e00\u4e2a\u6bd4\u8f83\u7b80\u5355\u7684\u6d88\u606f\u901a\u77e5\u529f\u80fd\u3002\u63a8\u9001\u6d88\u606f\u7684\u65b9\u5f0f\u4e5f\u662f\u5f88\u7075\u6d3b\u7684\uff0c\u53ef\u4ee5\u5728\u5ba2\u6237\u7aef\u901a\u8fc7\u5bf9\u5e94 SDK \u7684\u63a5\u53e3\u53d1\u9001\uff0c\u4e5f\u53ef\u4ee5\u5728\u300c\u63a7\u5236\u53f0\u300d- \u300c\u6d88\u606f\u300d\u4e2d\u624b\u52a8\u53d1\u9001\u63a8\u9001\u6d88\u606f\u5230\u5404\u4e2a\u5ba2\u6237\u7aef\u3002

\n\n

\u76f8\u5173\u6587\u6863\u5730\u5740 https://leancloud.cn/docs/js_push.html

\n", "date_published": "2015-06-06T14:41:20+00:00", "title": "LeanCloud Javascript \u63a8\u9001 SDK", "id": "t/196609" } ] } ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86