分类目录归档:技术分享

这些年我们爱着的 Objective-C

obj-c

Objective-C 是开发 OS X 和 iOS 应用的标准语言。即便是天天跟它打交道的开发者,有些也会误以为 Objective-C 就是 Apple 公司创建出来的语言,但实际上它并不是 Apple 的亲骨肉,而是从别人家过继过来的孩子。

程序设计语言是一个规范,它可以有许多种实现。在历史的漫漫长河中也出现过其他 Objective-C 实现,下面我会主要以 Apple 的 Objective-C 实现来论述。

继续阅读

LeanCloud 与阿里云到底有什么区别?

LeanCloud-与阿里云到底有什么区别

不是很了解 LeanCloud(https://leancloud.cn)的开发者经常会问「LeanCloud 与已有的很多云服务有什么区别呢?」下面我们就以国内比较有代表性的阿里云为例,跟我们做下对比。

产品的区别

进入阿里云网站可以看到阿里云的产品介绍。产品列表有弹性计算、数据库、存储与 CDN、网络、大规模计算、云盾、管理与监控、应用服务、互联网中间件、移动服务、域名与网站等,每个选项下面又有非常多的子产品列表,提供的服务种类繁多。个人感觉几乎开发中需要使用的服务器产品,阿里云应该都提供了。这些产品更偏向于较底层的服务,用户要想使用起来需要具备一定的能力。

继续阅读

LeanCloud 安全性提醒

thumb-security-640x360

最近向我们反馈受到数据安全性方面恶意攻击的用户有增多的趋势。虽然 LeanCloud 提供了全面可靠的安全机制,但不少用户因为只关注了开发上的方便,没有足够重视安全性,以至于没有合理使用(有时甚至是没有使用)我们提供的安全机制,以至于给了攻击者可乘之机。我们在此特别提醒所有用户对自己应用的安全性进行检查,特别是:

  • 仔细阅读 LeanCloud 的 数据和安全 文档。
  • 全面检查 Class 和 Object 级别的 ACL 设置,确保只开放了实现应用功能所需的最低权限。
  • 如果对 _User 表没有特殊查询需求,请关闭查询权限,这不会影响注册和登录等操作。虽然 LeanCloud 对密码加密存储以确保不会泄漏,但仍然应该关闭查询权限以避免用户 email、电话号码等高价值信息被非法访问。
  • 对于特别敏感的数据,可以考虑关闭所有权限,使用 LeanEngine 提供有更多自定义限制的访问接口。

我们在近期也将推出安全检查工具,帮助用户自动发现应用设定中可能存在的风险,并在开发者后台做出改进让我们的安全机制更加易用。

如果您在这方面有任何疑问,欢迎在我们的 论坛 或工单系统提出。如果您受到数据安全性方面的威胁或者攻击而需要我们协助,可以发送邮件到 support@leancloud.rocks。

使用 New Relic 监控云引擎应用的性能

LeanCloud 云引擎为应用开发者省去了服务端系统的部署和维护方面的负担,但代价是一定程度上减弱了线上环境的透明性。不少云引擎的用户希望能对线上代码的错误及性能特征有更多的了解,以便优化自己的程序。New Relic 是全球知名的应用性能监控工具,它可以告诉开发者一个应用的性能瓶颈,比如最耗时和最常用的请求、远程调用等等。

在云引擎项目中集成 New Relic 比较简单,这里以一个 Node 项目为例来说明:

继续阅读

使用 LeanCloud 与 React Native 构建原生应用

reactnative_toptal_coverimage

图片来源:toptal

React Native 是 Facebook 在今年的 F8 大会上发布的移动应用开发方案。它基于 JavaScript 和 React,可以让 Web 应用开发者在保持原有的开发体验和效率的同时,为 Web 应用带来原生应用的体验。

React Native 使用 JavaScript 作为开发语言,其内建的打包系统支持包括 CommonJS 在内的多种模块化标准,因此很多支持浏览器运行环境的 Node Package 也可以运行在 React Native 中。LeanCloud JavaScript SDK 便是其一。

本文将介绍:

  • 如何在 React Native 中使用 Flux 架构来组织应用的数据流,以配合我们的 JavaScript SDK 向 LeanCloud 云端保存数据,重用代码和实现平台差异化。
  • 异步获取当前用户对象
  • 文件上传
  • 向移动端推送消息

继续阅读

「大概可能也许是」目前最好的 JavaScript 异步方案 async/await

构建一个应用程序总是会面对异步调用,不论是在 Web 前端界面,还是 Node.js 服务端都是如此,JavaScript 里面处理异步调用一直是非常恶心的一件事情。以前只能通过回调函数,后来渐渐又演化出来很多方案,最后 Promise 以简单、易用、兼容性好取胜,但是仍然有非常多的问题。其实 JavaScript 一直想在语言层面彻底解决这个问题,在 ES6 中就已经支持原生的 Promise,还引入了 Generator 函数,终于在 ES7 中决定支持 async 和 await。

async_image03

基本语法

async/await 究竟是怎么解决异步调用的写法呢?简单来说,就是将异步操作用同步的写法来写。先来看下最基本的语法(ES7 代码片段):

继续阅读

基于 LeanCloud 云引擎的 Web 全栈方案:LeanEngine-Full-Stack

很多工程师使用 LeanCloud 之后,发现一个人就可以 hold 住一个完整项目,尤其是一个 Web 项目。原因很简单,本来复杂繁琐的数据库操作,通过使用 LeanCloud 的 JavaScript SDK 变得轻而易举,再结合 LeanCloud 提供服务器端容器 —— 云引擎 LeanEngine(支持 Node.js 和 Python 两种环境),就可以很高效地开发出一个 Web 端项目。

QQ20151009-1@2x

背景

开始尝试 LeanCloud 时项目并不大,也不算复杂,大家都是很简单地去写代码,但是随着使用的深入,开发变得越来越顺手,有些工程师开始尝试设计复杂的项目。只要项目复杂了,就会有很多底层的事情需要考虑,比如协作分工、自动化流程、代码组织结构、框架选择、国际化方案等等。LeanCloud 的很多项目就是基于自身所提供的服务,在开发过程中我们遇到过很多问题,也为此纠结过,所以我们将目前使用的 Web 全栈方案整理成一个新的项目,作为一个 Generator 或者 Seed,供大家交流和使用。

简介

项目名为「LeanEngine-Full-Stack」,就放在 LeanCloud 官方的 GitHub 仓库中,地址为 https://github.com/BaaSBeginner/LeanEngine-Full-Stack

继续阅读