让我们一起来学习别人学不动的deno

几天前,有人在github的一个开源项目denoissue区里用中文发了一篇贴子:

图片描述

引来各种争论,从而使得这个项目在短短几天时间里就达到了8000多星的热度,到现在还在持续增长,也许这是团队的一种反向营销策略?

不管怎么说,前端就是一个(至少在目前为止)需要不断学习的领域,说实在的,对于我们这些学习狂来说,如果前端不是有这么多好玩的可以学的东西,我们也不会参与到这个领域里头来。别人抱怨学不动的时候,恰恰是我们开始努力进步的时候,有句话怎么说来着:弯道超车。所以抓住这个机会,让我们来一窥deno的真面目吧!

关于deno

deno这个项目的发起者是ry,全名是Ryan Dahl,这位大神也是每位前端必定要关注的神级人物之一,因为是他于2009年写出了Node.js,才使javascript语言脱离了前端语言这个狭义范畴,开始堂而皇之侵入后端。但是3年后的2012年,ry离开了node团队,把团队的管理权交给了另一位大神isaacs,这位大神的代表作是——npm。现在ry重新出山,推出了deno。关于deno的评价,你可以先简单看一看这篇文章

安装

安装go

其实deno的安装很简单,你需要先安装好一个go语言的环境:

brew install go

通常情况下,它会在你的/Users/username下建立一个名字叫go的文件夹,以后所有跟go语言相关的依赖包都会被安装在这个文件夹里,所以你需要设置2个环境变量,一个是GOPATH,指向这个文件夹,另一个是PATH,把/Users/username/go/bin包含进来,然后go语言的环境就建立好了。

安装protobuf

接下来,我们开始用brew安装protobuf

brew install protobuf

因为我们前面已经安装好了go语言的环境,所以我们接下来安装编译deno所需要的2go语言依赖包:

go get -u github.com/golang/protobuf/protoc-gen-go
go get -u github.com/jteeuwen/go-bindata/...

安装v8worker2

v8worker2deno所依赖的最重要的一个包,这个包的体积也很大,超过了200m,所以我们先来安装它:

go get -u github.com/ry/v8worker2
cd $GOPATH/src/github.com/ry/v8worker2
./build.py --use_ccache

安装deno

安装好了v8worker2之后,我们就可以开始安装deno了:

go get -u github.com/ry/deno/...

编译

安装好deno之后,我们需要编译一下deno才能运行:

cd $GOPATH/src/github.com/ry/deno
make

运行

好了,我们来运行一下刚刚编译好的deno看看效果吧:

./deno testdata/001_hello.js

它的输出很简单,就是一行Hello World,因为它的源代码也很简单:

console.log("Hello World");

这不就是你熟悉的javascript吗?

好了,到此为止,那个别人抱怨学不动的deno已经可以成功地运行在你的电脑上了,你可以进入到testdata这个文件夹里去看一看更多的基于javascript和基于typescript的例子,进一步了解deno。目前deno还处于很早期很早期的开发阶段,每天都有无数的问题正在被修复,希望deno能够早日普及,使我们后端基于javascripttypescript语言的开发环境变得更为高效。


日新亭
苟日新,日日新,又日新。

现任北京联云天下科技有限公司技术副总裁。1994年毕业于清华大学计算机科学与技术专业;20多年软件开发...

13.3k 声望
4.7k 粉丝
0 条评论
推荐阅读
只在工作日执行的脚本
但是工作日有时候又不是简单的周一到周五,比如赶上个小长假什么的,有时候周六要上班,有时候周一又不上班,这时候这样的设置就容易乱,那我们怎么设置这个cronjob才能让他预知我们的放假排班计划,并做到丝毫不...

张京7阅读 1.4k评论 2

封面图
从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木66阅读 6.1k评论 16

从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木43阅读 7.3k评论 6

从零搭建 Node.js 企业级 Web 服务器(二):校验
校验就是对输入条件的约束,避免无效的输入引起异常。Web 系统的用户输入主要为编辑与提交各类表单,一方面校验要做在编辑表单字段与提交的时候,另一方面接收表单的接口也要做足校验行为,通过前后端共同控制输...

乌柏木33阅读 6.2k评论 9

从零搭建 Node.js 企业级 Web 服务器(五):数据库访问
回顾 从零搭建 Node.js 企业级 Web 服务器(一):接口与分层,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,控制层与服务层实现了业务处理过程,模型层定义了业务实体并以 对象-关系...

乌柏木34阅读 4.6k评论 9

从零搭建 Node.js 企业级 Web 服务器(十三):断点调试与性能分析
Node.js 官方提供了断点调试机制,出于安全性考虑默认为关闭状态,可以通过 node 参数 --inspect 或 --inspect-brk 开启,配合 IDE 能够非常方便地调试代码,本章就上一章已完成的项目 licg9999/nodejs-server-ex...

乌柏木31阅读 3.8k评论 9

从零搭建 Node.js 企业级 Web 服务器(八):网络安全
计算机网络依据 TCP/IP 协议栈分为了物理层、网络层、传输层、应用层,通常基础设施供应商会解决好前三层的网络安全问题,需要开发者自行解决应用层的网络安全问题,本章将着重表述应用层常见的网络安全问题及处...

乌柏木33阅读 5.8k评论 1

现任北京联云天下科技有限公司技术副总裁。1994年毕业于清华大学计算机科学与技术专业;20多年软件开发...

13.3k 声望
4.7k 粉丝
宣传栏