0%

微前端最早于2016年在 Micro-Frontends 被提出,并建⽴了早期的微前端模型。微前端的命名和能⼒和微服务有类似之处,微服务与微前端,都是希望将某个单⼀的单体应⽤,转化为多个可以独⽴运⾏、独⽴开发、独⽴部署、独⽴维护的服务或者应⽤的聚合,从⽽满⾜业务快速变化及分布式多团队并⾏开发的需求。如康威定律(Conway’s Law)所⾔,设计系统的组织,其产⽣的设计和架构等价于组织间的沟通结构;微服务与微前端不仅仅是技术架构的变化,还包含了组织⽅式、沟通⽅式的变化。微服务与微前端原理和软件⼯程,⾯向对象设计中的原理同样相通,都是遵循单⼀职责(Single Responsibility)、关注分离(Separation of Concerns)、模块化(Modularity)与分⽽治之(Divide & Conquer)等基本的原则。

课程目标

  1. 微前端如何解决业务场景的痛点,以 qiankun 为例接⼊微前端。
  2. 微前端的核⼼实现原理,从0到1实现简单的微前端框架。
阅读全文 »

本文转载自龙爪槐守望者微博

软/硬件特性

首屏

根据用户手机分辨率,考虑哪些信息必须首屏展示

系统和平台差异

注意系统差异,例如 Android picker 风格、返回机制、手势等
考虑小程序某些效果是否能实现

新老版本共存

新增功能时,对老版本的影响

阅读全文 »

课程目标

  • 掌握 TS 基础理论及原理
  • 熟练使用 TS
  • 了解 TS 的编译原理

TypeScript 是 JavaScript 的⼀个超集,⽀持 ECMAScript 6 标准

阅读全文 »

在一次业务实践中需要在 MongoDB 中使用自增 ID,而 MongoDB 本身并不支持自增 ID。我们需要通过一个单独的集合保存 ID,使用 FindOneAndUpdate$inc 操作符实现 ID 的自增.
然而此时需要操作两个集合,因 MongoDB 的原子性只是针对单文档的,故会出现 ID 增加而插入失败的情况。
好在 MongoDB 在 4.0 中,支持了副本集上的多文档事务,在版本 4.2 中,引入了分布式事务,这增加了对分片群集上的多文档事务的支持,并合并了对副本集上多文档事务的现有支持。

MongoDB事务

事务介绍

在 MongoDB 中,对单个文档的操作是原子的。由于您可以使用嵌入的文档和数组来捕获单个文档结构中的数据之间的关系,而不是跨多个文档和集合进行规范化,因此这种单一文档的原子性消除了对多文档的需求许多实际用例的事务。
对于需要对多个文档(在单个或多个集合中)进行读取和写入原子化的情况,MongoDB 支持多文档事务。对于分布式事务,事务可用于多个操作、集合、数据库、文档和分片。

阅读全文 »

Route

一个屏幕或页面的抽象
Route在Android中通常指一个 Activity,在iOS中指一个 ViewControlle

PageRoute
PageRoute 类是一个抽象类,表示占有整个屏幕空间的一个模态路由页面,它还定义了路由构建及切换时过渡动画的相关接口及属性。

MaterialPageRoute
MaterialPageRoute是Material组件库的一个Widget,它可以针对不同平台,实现与平台页面切换动画风格一致的路由切换动画

阅读全文 »

Pointers

在移动端,各个平台或UI系统的原始指针事件模型基本都是一致,即:一次完整的事件分为三个阶段:手指按下、手指移动、和手指抬起,而更高级别的手势(如点击、双击、拖动等)都是基于这些原始事件的。

当指针按下时,Flutter会对应用程序执行命中测试(Hit Test),以确定指针与屏幕接触的位置存在哪些widget, 指针按下事件(以及该指针的后续事件)然后被分发到由命中测试发现的最内部的widget,然后从那里开始,事件会在widget树中向上冒泡,这些事件会从最内部的widget被分发到widget根的路径上的所有Widget,这和Web开发中浏览器的事件冒泡机制相似, 但是Flutter中没有机制取消或停止冒泡过程,而浏览器的冒泡是可以停止的。

Flutter中可以使用Listener widget来监听原始触摸事件,它也是一个功能性widget。

阅读全文 »

基础 Widget

文本:Text Widget

文本是视图系统中的常见控件,用来显示一段特定样式的字符串,就比如 Android 里的 TextView、iOS 中的 UILabel。而在 Flutter 中,文本展示是通过 Text 控件实现的。

Text 支持两种类型的文本展示,一个是默认的展示单一样式的文本 Text,另一个是支持多种混合样式的富文本 Text.rich。

阅读全文 »

Widget 是什么?

Widget 是 Flutter 功能的抽象描述,是视图的配置信息,同样也是数据的映射,是 Flutter 开发框架中最基本的概念。前端框架中常见的名词,比如视图(View)、视图控制器(View Controller)、活动(Activity)、应用(Application)、布局(Layout)等,在 Flutter 中都是 Widget。

阅读全文 »

初步了解 Flutter 应用可以通过分析 Android Studio 创建的 Flutter 应用模板来了解。
打开 Android Studio,创建一个 Flutter 工程应用 flutter_app。Flutter 会根据自带的应用模板,自动生成一个简单的计数器示例应用 Demo。
该工程的代码如下:

阅读全文 »

变量

用 var 或者具体的类型来声明一个变量
当使用 var 定义变量时,表示类型是交由编译器推断决定的
未初始化的变量的值都是 null

常量

  • const,表示变量在编译期间即能确定的值
  • final 则不太一样,用它定义的变量可以在运行时确定值,而一旦确定后就不可再变
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    final name = 'Andy';
    const count = 3;

    var x = 70;
    var y = 30;
    final z = x / y; // 正确
    //const z = x / y; // 正确

    final time = new DateTime.now(); // 正确
    //const time = new DateTime.now(); // 错误
阅读全文 »