Kairyou's Blog

专注于WEB前端开发, 追求更好的用户体验, 更好的开发体验 [长沙前端QQ群:234746733]
  • Dart 语言介绍

    / 分类: 开发 / No Comments

    把年初对dart/flutter/RN的分享内容慢慢整理下, 希望对刚入门app开发的同学有用.

    Dart是什么?

    • Google造的轮子(弥补js的不足)
    • 落: JavaScript(NodeJS/React/RN/Vue等)崛起
    • 起: Google内部孵化了Sky项目(用Dart编写, 后改名Flutter)
    • Google的未来操作系统Fuchsia中,Dart被指定为官方的开发语言
    • 2018年8月正式发布 Dart 2.0
    • Dart可运行在有自己的VM上(DartVM), 也可以编译成Native Code运行在硬件上(Flutter将代码编译成Native Code).

    Dart特性

    • 单线程异步事件模型(single-threaded), similar to NodeJS
    • 强类型语言,支持弱类型写法(2.0开始)
    • DartVM的性能比肩Java7的JVM(作者Lars Bak负责了 HotSpot JVM/V8 engine)
    • 面向对象的,一切数据类型派生自 Object
    • 独特的隔离区(Isolate), 可以实现多线程 (与线程类似但不共享内存)
    • Future、Stream模型(Dart:async库的核心API, 异步编程)
    • 跨平台: 前端、后端、移动

    Dart的方向 (Flutter: iOS,Android,Fuchsia,web,desktop)

    • Native (原生, 移动app/桌面程序)
    • server-side(Server端, 异步高并发/Isolate多线程)
    • client-side(前端, 利用dart2js编译成js)

    Dart 语法

    main() { // 应用的入口, 程序开始执行的地方
     print("Hello, world!");  // 打印信息
    }

    查看全文 »

  • discourse 插件开发

    / 分类: 开发,实践 / No Comments

    开发discourse插件, 依赖的知识: ES6/SCSS/Ember.js/Rails/handlebars.
    Ember是前端MVVM框架, 支持数据双向绑定/虚拟DOM, 模板引擎使用handlebars, 依赖jQuery(处理DOM兼容性操作), 遵循约定优于配置原则(类似Rails).

    discourse 本地环境搭建

    依赖: ruby, postgres, redis 需要提前安装好.

    • macOS 安装Ruby2.6

      brew install rbenv; rbenv init; rbenv install 2.6.2; # discourse依赖 Ruby 2.5+
    • (推荐) 用docker搭建本地 postgres, redis

      # code db.yml
      version: '3.1'
      services:
        redis:
          container_name: redis
          image: redis:alpine
          ports:
            - "6379:6379"
        postgres:
          container_name: postgres
          image: postgres:9-alpine
          ports:
            - "5432:5432"
          environment:
            - POSTGRES_USER=postgres
            - POSTGRES_PASSWORD=postgres
      # docker-compose up -d -f db.yml # 启动 postgresql/redis
      # docker restart postgres redis # 重启 postgresql/redis
    git clone https://github.com/discourse/discourse.git;
    # git checkout tags/v2.2.4; # 指定某个稳定的版本
    code config/database.yml # 设定 postgres 数据库信息
    development: # 设定正确用户名/密码
      username: name
      password: pass
      host: localhost
      host_names: # 本地论坛域名(不添加: 影响 hot reload)
        - leon.lvh.me
    bundle install; # 安装依赖
    rake db:create db:migrate; # 创建数据库
    # rails r "SiteSetting.min_password_length=8;SiteSetting.min_admin_password_length=8;" # 设定密码最少8位
    rake admin:create # 创建用户, 输入Email/password/是否管理员
    # rails r "u=User.find_by_email('test@test.com'); u.password='11112222'; u.save!;" # 修改用户密码
    rails s -p 8000 # 启动论坛, 访问 localhost:8000

    查看全文 »