Dynamic Static

Jaron的博客 - 关于代码及其他

Fork me on GitHub

Angular2 Dart快速上手指南

注:本文翻译的是Angular2快速上手指南的Dart版本,转载请添加本文链接并标明出处。水平有限,仅供参考,更新更全的内容请查看原文:https://angular.io/docs/dart/latest/quickstart.html



让我们用Dart从零开始编写一个超级简单的Angular2应用。 (译注:Angular2支持TypeScript,JavaScript与Dart三种语言,而据Dart项目组透露,Google内部几个大项目都在使用Dart版本的Angular2)

本篇教程假设你已经设置好Dart SDK及相关的开发工具。如果你还没有一个合适的编辑器,可以尝试一下拥有Dart插件的WebStorm。当然,你也可以去官网的工具页面下载各种IDE与编辑器的Dart插件。在配置好Dart SDK及你喜欢的开发工具后,再回到这里来。

准备新应用的目录

创建一个新文件夹,并在其中新建一个 pubspec.yaml。(译注:在命令行下执行以下指令)

> mkdir angular2_getting_started
> cd angular2_getting_started
> vim pubspec.yaml  # 这里使用vim,你可以使用任意其他你喜欢的编辑器!

pubspec.yaml 中,指定angular2跟browser作为项目依赖,并对transformer也进行配置。因为Angular2的API还在变化,所以这里指定了一个版本:2.0.0-beta.17。(译注:指定使用某个版本可以避免多版本间的api冲突)

1
2
3
4
5
6
7
8
9
10
11
name: angular2_getting_started
description: QuickStart
version: 0.0.1
environment:
  sdk: '>=1.13.0 <2.0.0'
dependencies:
  angular2: 2.0.0-beta.17
  browser: ^0.10.0
transformers:
- angular2:
    entry_points: web/main.dart

Dart移动开发框架Flutter快速上手指南

注意:因为Flutter还处于发展初期,框架跟API在不停迭代,除了开发环境配置等部分,本文的大部分内容已经过时,你可以访问Flutter官网查看最新的教程。

引言

Flutter是Chromium项目组与Dart项目组合作开发的一个新的移动应用开发框架,虽然还处于初级阶段(版本号还处于0.0.X),但已经可以拿来写点简单的东西了。本文的内容就是让你了解如何配置flutter的开发环境,并编写一个简单的Hello World。

注意:

  • Flutter目前对ios开发的支持还不完善,所以本文将只以android开发来进行讲解。
  • Flutter的应用打包功能也还没有完善,所以本文暂时不会对此进行讲解。
  • Flutter目前要求Android 5.0或以上的设备才能进行开发调试,打包的apk最低支持Android 4.0(未确定)。
  • 本文的操作都是在Mac下进行的,大致的流程应该也应该适用于Linux(flutter对Windows的支持将在不久后推出)。

开发环境配置

安装 Dart SDK

在Mac下用Homebrew,Linux(Debian和Ubuntu)下通过apt-get,都可以方便的安装、升级Dart SDK,具体可以参考我写的文章 - Dartlang实践:Dart SDK安装指南。安装完成后,先确保在命令行下可以执行dart跟pub这两个指令,然后新建一个环境变量$DART_SDK,并将其指向Dart SDK的安装路径(通过homebrew安装的路径应该是:/usr/local/opt/dart/libexec/)。

安装 android-platform-tools

因为是进行android开发,自然需要安装adb(android debug bridge),你可以通过以下指令进行安装(只需要安装adb就可以,不需要完整的Android SDK):

Dartlang实践:Dart SDK安装指南

本文讲解了如何在Mac/Windows/Linux上自动化安装Dart SDK,适合初次接触dartlang的开发者。如果你需要手动下载安装,请访问 - https://www.dartlang.org/downloads/archive/

注意:因为安装过程中需要访问google的资源站点,请确保你能够访问google(科学上网)。

Mac

个人认为Mac是从事dartlang开发的最佳平台,mac上的homebrew又几乎是开发人员的标配,所以我们这里使用homebrew来安装Dart SDK。

安装

用homebrew安装Dart SDK是小菜一碟,你只要在终端中运行以下指令:

$ brew tap dart-lang/dart
$ brew install dart

如果是web开发者,你可能需要dartium(可以直接运行Dart的Chromium), 那你可以这样:

$ brew tap dart-lang/dart
$ brew install dart --with-dartium

Dartlang学习笔记:变量、内置类型、函数和操作符

这是Dart学习笔记的第二篇,主要记录变量、内置类型和函数的一些重要知识点。

变量

Dart的变量都是引用(reference),它们都指向一个对象。变量可以指定类型,也可以不指定(使用var)。不管任何类型的变量,只要没有对它进行初始化,它都将被赋予null。

如果某个变量的值不会被更改,请用final或者const来修饰它。Final与const的区别:被final修饰的变量只能被初始化一次,但其所指对象还可以被修改;而const表示当前变量是“编译时常量”,它所指的对象在创建后不能再修改。

示例如下:

Dartlang学习笔记:Dartlang的重要概念

因为最近工作比较忙,对Dart的学习也是断断续续,积累下来的东西不多,还是写点学习笔记吧。今天先来第一篇,记录一下Dartlang的一些重要概念(或者说区别于其他编程语言的一些特性,这里主要使用Java与JavaScript来作些对比)。

Dart能在前端/后端运行

Dart代码是通过dart2js编译成JavaScript在浏览器上运行的,它的标准库包含专门处理HTML的dart:hmtl库,在应用层也有Polymer.dart、AngularDart这样的web框架(Angular2也将支持Dart),通过它们,你可以方便的编写web应用。另一方面,通过DartVM,Dart也能运行在服务端,虽然这样使用的人可能不多,但凭借易用的标准库以及逐渐丰富的第三方库,用Dart来开发中小型命令行应用还是绰绰有余的。

“真正的面向对象”

在谈到面向对象的编程语言时,Java经常被人提起,但其实Java并非“真正的面向对象”,因为它的基本数据类型都不是对象。而在Dart中,“一切皆对象”。Dart的类都继承自Object类,所有的变量都指向一个对象,数字、函数甚至null本身也是一个对象,所有未被初始化的变量也都被赋予null,可以说Dart才是一门“真正面向对象”的编程语言。示例如下:

Dartlang背后的那些大牛们

最开始接触Dart,是想尝试一下除JavaScript外的浏览器编程语言(确切的说是以JavaScript为编译目标的语言,除Dart外,还有CoffeScript、TypeScript等)。在学习一段时间后,发现dart确实有很多优秀的语言特性,对它也越发喜欢了。最近,在好奇心驱使下,我开始搜索Dart项目组成员的相关资料。不查不知道,一查吓一跳,Dart项目组真算的上是藏龙卧虎。下面,我们就来介绍几位Dart项目组的主要成员:

你可能需要注意(也算是比较有趣)的一点:以下多位成员都有Java/JVM研发背景。

Gilad Bracha


Gilad Bracha是一位经验丰富,专注于面向对象语言研究的专家。他曾经就职于Sun,专门从事Java/JVM规范的定制与实现工作。他不仅是Java语言规范第二、三版的合著者(co-author),也是JVM规范第二版的主要贡献者。在进入Google后,他加入了Dart项目组,他的主要工作就是Dart语言规范的编写。目前,Gilad正在编写一本全面介绍dart的书 - The Dart Programming Language

Node.js实践:读取Excel,查询MySQL

注意:本文假设你对JavaScript异步编程,Node.js,MySQL数据库等有基本的了解。本文中大部分操作都是基于Mac OS的终端(Windows环境推荐使用Git附带的Git Bash)。

需求

假设有个小需求:提供一个Excel文件(xlsx格式),其中含了用户数据,你需要查询MySQL数据库,把其中没有验证邮箱的用户给筛选出来。

Excel数据格式如下(第一行为标题):

数据库用户表(users)关键字段:username, email_activation(0表示未激活,1表示已激活)

准备

为了应对这个任务,我们使用了三个package,分别是:xlsx, mysql, async。从它们的名字可以看出它们各自的功能,xlsx负责读写xlsx文件,mysql负责连接查询数据库,async则用来简化异步代码。

Dartlang译文:Dart快速入门

译注:本文是博主的原创翻译,转载请添加本文链接并标明出处。本文翻译的是Google Dart项目组撰写的《Dart:Up and Running》的第一章。文中存在一些新近出现、暂无标准翻译的技术向词语,已使用星号做了标注,在文章尾部附注可以查看它们的原文。博主的语文跟英语都很菜,如有翻译不妥或错误之处请多见谅。水平有限,本文仅供参考。



欢迎你来学习Dart!Dart是一个开源、开箱即用的(*1),专注于构建HTML5 web应用的开发平台。本文将告诉你Google为什么要创造Dart,Dart具有哪些酷炫的特性,以及如何编写、运行你的第一个Dart应用。

Dart不仅是一门新的语言,它还提供了标准库、编辑器、虚拟机(VM)、一个能直接运行Dart的浏览器,以及将Dart代码编译为JavaScript的编译器。Dart立志成为一个更加高效的开发工具,能够开发出满足用户需求的,高性能的现代应用。

Google为什么要创造Dart

Google始终致力于使Web变得更好。我们(译者注:指Google,下同)编写了很多web应用,它们大都异常复杂,如:Gmail,Google Calendar,Google+等。我们希望web应用能快速加载、运行流畅、有趣而富有吸引力。我们想让不同知识背景的开发者都能够在浏览器上创建高质量的应用。

SublimeText插件推荐:JS错误检查工具 - JSHint与JSHint Gutter

引言

我喜欢使用SublimeText(以下将简称为Sublime)来写JavaScript,但有时候代码量一多,难免会犯些小错误,比如变量名写错,多了一个括号等等;而Sublime是编辑器,本身没有代码检查功能,只有当JS代码在浏览器里运行报错了,才发现问题,而这样就会浪费不少的时间。所以,我就想有没有这样的插件,能使Sublime具备检测基本的JS语法错误。经过一番搜索后,终于找到,而这也是今天要介绍的:JS错误检查工具 - JSHint与JSHint Gutter。

注意:如果你是Windows用户,本文文字或图片中出现的某些指令如:which,是无法在windows命令行下运行的,你可以安装Git for windows,其附带的Git Bash可以运行大多数的linux命令。

SublimeText插件推荐:代码格式管家-EditorConfig

引言

从大学毕业到现在,用过不少IDE与编辑器,记得起来的有:VisualStudio,Eclipse,NetBeans,SublimeText,Jetbrains家族(WebStorm,PhpStorm),VIM等。在这么多小伙伴中,用的最顺手的还是SublimeText(以下将简称为Sublime),它轻量,易用(对比VIM),跨平台,功能强大(对比其他编辑器,非IDE)。而Sublime丰富的第三方插件库,我认为是它优于其他编辑器的重要原因。接下来几篇博客,我将推荐一些我个人非常喜欢的插件。如果你还没有使用过SublimeText,你可以查看这篇入门介绍

简介

今天要推荐的Sublime插件是:“代码格式管家”-EditorConfig,它最主要的功能是,同一项目代码在不同编辑器下能够保持统一的代码风格(主要是缩进)。此外,如果你不喜欢编辑器自带的默认风格(如sublime默认缩进宽度是4),那EditorConfig也可以帮到你。