Tag: dart

  • Dart 1.5.3的一些变化

    Ashampoo_Snap_2014.07.15_22h13m10s_003_

    Dart是一个发展非常快速的语言。如今最新的版本是1.5.3。自从今年1月份我写了两篇关于Dart的文章( )以来,Dart语言本身,尤其是我用到的Polymer部分,有了很大的变化。

    为了准备8月9日(暂定)于苏州举行的,由G4P.ccGDG Suzhou联合举办的活动,我对之前编写的Dart小程序进行了调试。本文就在这次调试中发现的变化进行一些总结。

    一个Dart/Polymer程序的架构没有变化,还是由三部分组成:

    • 入口程序,比如getqotd.html。这个文件提供了页面的布局和对Polymer元素的调用。
    • Polymer元素模板,比如qotd.html。这个文件定义了一个Polymer元素的布局和一些基本设置。
    • Polymer元素的代码,比如qotd.dart。这个文件也是该Polymer元素的驱动代码部分,也可以是我们编写的一个Polymer/Dart程序的核心。

    入口程序

    <head>
      <meta charset=utf-8>
      <meta name=viewport content=width=device-width, initial-scale=1.0>
      <title>QOTD Sampe App</title>
      <script src=packages/web_components/platform.js></script>
      <script src=packages/web_components/dart_support.js></script>
      <!-- import the qotd -->
      <link rel=import href=qotd.html>
      <script type=application/dart>export 'package:polymer/init.dart';</script>
      <script src=packages/browser/dart.js></script>
      <link rel=stylesheet href=css/bootstrap.min.css>
    </head>

    这是一个标准的入口程序的HTML头部分。与之前相比,该部分加入了移动设备的支持。

    另外,所引用的JS文件也改为platform.jsdart_support.js。而原来的:<script type=application/dart>export 'package:polymer/init.dart';</script><script src=packages/browser/dart.js></script>已经被弃用。我个人对这个改变比较欢迎。毕竟原来的语句很不像HTML。

    模板

    重要的改变有两个。

    一个是在原先的<polymer-element>定义之前必须再加一个<link rel=import href=packages/polymer/polymer.html>语句。

    第二,鉴于Dart已经重新对shadow DOM进行了更好的支持,于是可以在<template>中直接加入对CSS的引用,如:<link type=text/css rel=stylesheet href=css/bootstrap.min.css>这样。

    代码

    鉴于上述的第二点,代码中原先需要的对shadowDOM进行applyAuthorStyles的操作就不再必要。事实上,如果你写了,Dart编译器会给出deprecated的警告。

    基本上我发现的改动就是这些。当然,改动肯定不止这些。我在O\’Reilly买了一本Dart: Up and Running的书,电子版已经更新并专列了一章介绍新的变换。我印象比较深的是Reflection的引入。

    本文收录于[go4pro.org]

  • 任氏有无轩最新改版

    任氏有无轩改版已经很多次了,从最早的Symfony 1.x开始,在Symfony框架进入到2.x的时候重新改版了一次,最近的这次刚刚结束,也算是很大的一次。

    根据我在Bitbucket的提交记录,3月12日开始第一次重新提交,4月22日完成最后一次的提交,历时40余天。但是,众所周知,我的开发是很断续的,平均下来每天投入的时间不会超过1个小时,所以这次改版的总耗时不超过40小时,也就是常规工作时间下一周的工作量——加班的话也就3天左右。

    这次的改版牵涉面非常广。

    前端我还是使用Symfony 2来搭建我的应用,这个框架我已经用了很多年,如果没有什么大的变动和根本性的原因,我应该不会轻易切换别的框架——比如这个帖子里提到的Laraval和Phalcon。

    我原来的站点是用Bootstrap自己搭建的。优点是没有约束,自由度大,而且Bootstrap提供的部件已经给出了足够的基础来进行这个工作;缺点是我不是设计人员,设计出来的页面总是脱不了Bootstrap本身提供的一些模板。所以,下定决心花了$4在wrapbootstrap.com买了一个商业模板Grove(顺大便说一句,这个模板涨到$12了)。

    用商业模板的好处是,总可以找到适用的基本页面来改造;缺点是,很依赖它提供的样式。不过总的来说,利大于弊,我觉得我这个$4花得很值得。 另外,也许是我运气好,这个模板还提供了一个3D/2D幻灯片过渡的库,让我轻松做出很炫的Carousel场景切换效果。

    最后,我还加入了长久以来一直缺失的按照书籍tag搜索书籍的功能。下一步,我还想加入一个tag云。

    后端**后端是这次改动最大的地方。**

    首先,数据库结构重新编写。

    在我给Sitepoint写的文章中,我明确表示:我是很反对使用一个自增长的整数字段来作为主键(Primary Key)的。但是,为了进行Symfony 2下的数据自动填充和另外一个后台(还没有实现)Phreeze的要求,我不得不重新构造我的数据库为那些原来没有自增长字段PK的表格重新加入这样的一个主键。数据迁移工作也花费了不少重复性的工作。

    第二,部分前端的动态内容提供,我开始采用Dart,而不是之前的纯jQuery。使用Dart,我的开发速度大大加快。虽然有一些限制——比如我这个帖子中提到的,但是总体来说利大于弊,而且我作为曾经在苏州Google Developer Group组织的Fly Dart活动中主讲过Dart的人,当然那更应该以身作则,多使用一些Dart。

    第三,我整合了Wordpress的一些功能,比如获得最新的N个帖子。

    总的来说,这次的改造是非常成功的,部署也很顺利。感觉自己对Symfony 2的掌握又深入了一层。 放张首页的效果图(点击可看大图):

    Ashampoo_Snap_2014.04.23_19h33m20s_001_Chrome

  • Symfony和Dart的整合——第二部分

    (原文发布于2014年1月20日,原文链接Integrating Polymer/Dart and Symfony – Part 2

    本文收录于[go4pro.org]

    ====

    在第二部分,我继续讨论Symfony和Dart的整合,还是异步数据的获得——但注重在远程数据,并讨论了一种避免JSONP的方法。同时,对编译为JavaScript后的Dart的局限性进行了讨论。

  • Symfony和Dart的整合——第一部分

    (原文发布于2014年1月13日,原文链接Integrating Polymer/Dart and Symfony – Part 1

    本文收录于[go4pro.org]

    ====

    我继续进行着Dart的研究,并在该两部分的文章中讲述Dart和Symfony的结合。

    这一部分,着重在异步数据获得,前台模板(Twig)于Dart/Polymer的整合。

  • 一个老游戏的新生:猜动物

    (原文发布于2013年12月9日,原文链接Dart and PHP: A Legacy Animal Guess Game

    本文收录于[go4pro.org]

    ====

    11月份我没能在Sitepoint发表文章,原因是10月份的费用支付出了问题,所以我暂时停止了供稿直到我收到第一次的稿酬为止。

    这片文章是我第一次开始结合Dart和PHP进行开发。其出发点是我早年玩Apple II时的印象:一个猜动物的游戏。

  • 在Sitepoint上发表的文章

    到目前,我已经在SitePoint的PHP专栏上发表了11篇文章,涵盖Symfony,Dart,MySQL,WMI等各个方面,也获得了肯定,当然也有报酬。

    在和我的编辑联系后,我可以将所有文章翻译为中文,然后发表在自己的Blog上——但是我不准备这么做,因为实在是很累的一件事。所以,我准备退而求其次,给出我文章的一个中文摘要,给出原文(英文)链接,发表在自己的Blog上。