Change the world in 10 lines of code - 1503080398
Last updated
Was this helpful?
Last updated
Was this helpful?
视频发布时间
2014年12月16日
视频介绍
Coming up with a compelling idea for a new service is a challenge, and building an app that realizes your vision is even more difficult. However, if you harness some of today’s more powerful tools, you can leapfrog others and get to market sooner! In less than 15 minutes, Google engineer Wesley Chun will show how, in about 10 lines of code, you can build a skeleton app to get started. It features a well-known online service that is already available to most of your users. Add your special sauce and change the world!
视频推介语
暂无,待补充。
翻译
润稿
终审
原始链接
中文字幕
翻译流水号
加入字幕组
柚子皮
xin.zhang
——
1503080398
我是Wesley Chun 来自Google
你可能知道我是Python社区的成员
但是在这个视频中 我将要使用一些Python工具
向你展示如何用不到10行代码
创建一个面向全球的应用
来改变世界
对的 我为你下一次创业出了个主意
假设你想要做成一个非常成功的事业
推向市场的时间非常重要 你需要加快脚步
并且使用工具尽快地发布你的产品
一种方式是从一个MVP(最小可行性产品)开始
很快就能看见我们是否能够搭建一个web或者移动应用
当然之后这些都可以有
或者 你可以只是简单的做一个用户可以使用的
原型产品
那我们该怎么做呢
有什么是每个人上网时都会用到的
对了 电子邮件
我们会从某个人或某台电脑收到邮件
你也会给别人发邮件
但是你发过邮件给一个电脑吗
你待会就知道怎么实现了
因为这可以帮助你
跳过第一版的原生实现
因为邮件服务在所有的设备上都是兼容的 不管是移动端 还是桌面端
这也意味着我们只专注于
搭建一个能接收邮件的应用
那为什么做一个接收邮件的应用是个好主意呢
许多服务都发送email 但是这没什么意思
因为这只是一个简单的函数调用
但是 接受并且处理这些信息的话
这就有趣得多 而且非常带劲
就像宇宙大爆炸一样
你的用户向你的应用发送邮件
你的应用响应这些请求
想像一下
你可以发送邮件给某个人
但是你能向某个应用发送邮件吗
当然
还有 用户并不需要下载一个应用
因为他们的设备上
已经有了邮件服务
通过允许用户向你的应用发送指令
你就开启了无限的可能性
比如同步用户配置
向亲戚转账 订购药品
淘点东西 或者开关家里或公司里的
电视 炉子或者闹钟
所有这些都通过发往你应用的
正确填写的邮件信息实现
想像一下 先给你妈妈发邮件 然后向你的房子发邮件
让它把灯关了 因为你早上赶着去机场
是不是很厉害
自动处理也是可以升级的
实现在很短的时间内同时处理成百上千的邮件
然后执行这些请求
现在 这已经非常像一个 C/S 模型了
如果你熟悉的话
话说回来 我们怎么才能通过10行以内的代码实现这些呢
有了GAE的帮助
你不需要了解硬件
操作系统 网络编程
数据库 最重要的是 你甚至不需要了解email服务器
同样的 Python能够让你用很少的代码实现很多的功能
Python的语法非常简单 即使你不知道Python
你也可以跟着指南做 然后
用你喜欢的语言去实现
还有 虽然这个视频是面向初学者的
但是我们不准备向你介绍如何在GAE上开发
所以如果你没接触过的话 去看网站上的新手指南
然后你就清楚了
准备好了之后 创建一个Hello Worldd的app
不管是用你下载GAE时的启动器
还是从指南中复制的代码
我们将从这儿开始
我们只需要修改配置文件 app.yaml
和主要的控制文件main.py
不管你信不信 搭建这个app只需要几步而已
首先 创建模版应用
完成
第二步 启用接收email
只需要改下配置
第三 导入email处理库
第四 添加调用这个库的代码
最后 链接所有emai消息到那个
第四步中写的处理器上
步骤二只是一个配置的修改 对吗
所以 添加这两行红色的代码
到你的配置文件app.yaml中
这是一个新的功能 入站服务
在处理器功能之上运行
GAE提供许多入站服务
这里我们只关心email相关的
这就是我们需要做的
这样之后
你的应用现在能够接收邮件
其他的代码改动
只涉及控制器 也就是main.py 现在我们看一下
现在我们导入GAE中处理邮件的组件
对了 我们替换掉了文件顶部
自动生成的注释
这样更便于看代码
现在加上这两行红色的代码
第一行是导入logging
我们在原型中要做的
就是记录下应用接收到的邮件信息的发送方
当然你可以实现更多的功能 但是我们才刚开始
第三行导入了GAE处理邮件接收的代码
这你应该能猜得出
那为什么按这样的顺序导入文件呢
这是Python的推荐做法
像logging这样系统级的导入优先
其次是第三方库 比如这里的webapp2
接下来是本地SDK工具 比如GAE的API
最后 如果你要使用一些本地模块的话 这些最后导入
现在 我们来处理收到的邮件
这通过添加这个三行的控制类实现
这个receive方法提取发送方地址并打印它
你也可以获取其他的邮件属性
因为为了改变世界
你要使用其他所有的东西
比如邮件对象和内容
还有接收方和发送方的邮箱地址
最后一步 重定向所有的入站邮件请求
到那个我们刚刚添加的控制器上
当别人访问你的应用时
看见了Hello World 你觉得这是怎么实现的呢
第14行 它把发往首页的请求跳转到
那个5~7行的MainHandler类
仔细看一下13~16行那个
作为转发表的应用变量
每个路径都是(path-handle)这样二元组的形式
所以我们需要为进站邮件添加点东西
当GAE处理入站邮件
消息就会被发送到你的应用上的某个指定路径
也就是/_ah/mail/emailaddress这样的形式
既然我们要用同一个处理器处理这些邮件
我们需要使用一个正则表达式
匹配所有这样的地址 因此我们使用了(.+)
用于重定向到邮件处理器
对了 别忘了第14行末尾的逗号
这也就是这行被标红的原因
否则的话 就会报错
我刚刚帮你解决了一个面试问题
高兴去吧
这就是全部要做的了
不算导入语句和空行的话
我们只用差不多10行代码完成了所有工作
如果你非常严格
而且认为那个转发表只是一个简单的Python语句的话
那么就只有7行了
如果你只计算我们添加的代码的话
那么就只有6行了
天哪
这就是一个完整的可以实现基本功能的应用了
我们没有创建一个web应用 除非你算上那个Hello World字符
我们也没有创建一个Android或者iOS移动客户端 对吗
但是你也可以去做
通过使用Google Cloud Endpoints
你可以点开上面的视频观看
好了
现在我们启动它
GAE的SDK自带了一个部署服务器 或开发服务器
你可以在把你的应用发布到Google上之前
在本地运行调试它
不管你是通过启动器 还是通过命令行
在本地运行你的应用之前
请确保你已经记下了应用的端口号和管理员控制台的端口号
因为我们都要用到
用你的浏览器访问localhost:8080
你就会看到控制器输出了Hello World
因为我们在开发模式 所以你只能模拟发送邮件
通过访问控制台的开发服务器
所以现在用别的端口(8000)访问你的浏览器
到了这步
我们实际需要的就是左边栏里的入站邮件链接
点开它 你就会看到这个用来发送模拟邮件的表单
在这之前 我来说一下我们首先要发送的是什么
你要清楚你需要验证每一条邮件
因为你需要确保每个请求都是真的
不是垃圾邮件 也不是虚假邮件
最重要的 不是被劫持的邮件
这样的话 未认证用户发来的没有遵守你的服务条款的
非法邮件
比如一个短语密码或者两个元素验证
或者只是没有正确构造的
就会被丢弃或者被记录下来
在这里的邮件正文中 你可以看见
我们有许多的工具可以用来达成这个目的
如果我们在构建多个原型
好的
业务逻辑就是这样
下面我们讲一下发送邮件
GAE的应用会接收所有发送到
xxx@APP_ID.appspotmail.com这样地址的邮件
这里的xxx是收件人 你的应用ID就是主机名
确保在域名中使用appspotmail而不是appspot.com
在这个例子中 我们假装已经为我们的新闻小组
创建了完善的服务 让他们能够
通过简单的命令发布新闻
我们使用发布命令
接收邮件的是我们虚假的应用ID
对了 这是我找到的的别人的应用
所以在生产模式下
不要发送东西到那个地址
在开发模式中 这是没关系的
因为实际上并没有邮件被发送
一旦你点击了发送 并且受到了请求成功的消息
检查一下你的打印日志 确认一下你的处理器被调用了
点击启动器上的记录按钮
或者查看发送到控制台的命令行消息
你会看到 已收到一条消息
来自那个你设置的虚拟地址
在生产模式下运行之前还需要做一些事情
请确保你已经把那个唯一的ID
配置在了app.yaml文件里
然后去启动器 点击发布按钮
你的代码就会在验证之后被发布到Google上
也可以使用命令行工具
应用上线以后
你只需在浏览器中访问yourappID.appspot.com
看看是否有Hello World页面 确认是否已经生效
就像我们在开发服务器上做的一样
现在 打开你最喜欢的邮件客户端
向你的应用发送一条真正的邮件
同样的 你需要发送到xxx@yourappid.appspotmail.com这样的地址
然后去你在cloud.google.com/console上应用控制台
选择你的应用
点击左边栏上的App Engine
点击App Engine自菜单中 点击logs
你就会在屏幕中看到你想要的
你的邮件处理器的
打印日志
真棒
我们接下来要做什么呢
如果你想跳过编码
直接看源码的话 点击这个链接
下载压缩文件
或者 你想要一步步实现的话
在GAE的核心Python应用编程中
你可以找到一个手把手的教程
总而言之
我们刚刚一起创建了一个GAE的Python应用
这个应用能够接收邮件
不到10行代码
现在轮到你改变世界了
说真的 你已经拥有了开启一个新的事业的素质了
继续做吧 在Google云平台上走上人生巅峰
感谢收看