-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
f04ca67
commit e091d68
Showing
3 changed files
with
117 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# dart | ||
|
||
## 特性 | ||
* 虽然Dart是强类型语言,类型标注却是可选的,因为Dart可以推导类型。在以上的代码中, number 所推导的类型是 int。在你想要显式地说明无需设定类型, 使用特殊类型 dynamic. | ||
* 不同于Java,Dart没有public, protected和 private这些关键字。 如果一个标识符以下划线(_)开头,它是对库私有的。详情请参见 库和可见性. | ||
* 实例变量可以是 final ,但不能为 const。final实例变量必须在构造函数体开始之前进行初始化,通过构造函数参数在变量声明中或在构造函数的初始化程序列表中。 | ||
* 创建多行字符串的方式是使用三个单引号或三个双引号标记: | ||
* var 声明的变量,不能在 const 字符串中使用. | ||
* 条件判断的时候,必须是显式的检查值,而不是通过es中的隐式转换。 | ||
* 如果展开运算符右侧的表达式有可能为null,可通过使用可判空展开运算符(...?)来避免异常: | ||
* 创建为运行时常量的集,在对象前添加const: | ||
* 创建为编译时常量的映射,在映射字面量之前添加const,编译时候,如果被修改,会报错。`Uncaught Error: Unsupported operation: Cannot modify unmodifiable Map` | ||
* 映射像列表一样支持展开运算符 (... 和 ...?) 及collection if 和 for。 | ||
|
||
## 类 | ||
* Dart是一个带有类和基于mixin继承的面向对象语言。每个对象都是类的实例,所有类都继承自 [Object.。* 基于mixin的继承* 表示虽然每个类(除Object外)都只有一个超类,一个类主体可在多个类级别中复用。 | ||
* 构造两个相同的编译时常量会产生单个相同的实例。 | ||
```js | ||
var a = const ImmutablePoint(1, 1); | ||
var b = const ImmutablePoint(1, 1); | ||
assert(identical(a, b)); // 它们是相同的实例! | ||
``` | ||
* 关键字 const 在Dart 2的常量上下文成为可选。 | ||
* 要在运行时获取对象的类型,可以使用Object的 runtimeType 属性,它返回一个 Type 对象。 | ||
* 默认,子类中的构造函数调用超类中的未命名、无参数的构造函数。超类的构造函数在构造函数体的开头调用。如果还使用了 初始化程序列表,它在超类调用前执行。总之,执行的顺序如下: | ||
- 初始化程序列表initializer list | ||
- 超类的无参构造函数 | ||
- 主类的无参构造函数 | ||
* 如果超类中没有未命名的无参构造函数,那么就必须手动调用超类的一个构造函数。在冒号(:)后、刚好在构造函数体前(如有)指定超类构造函数。 | ||
* Warning: 超类构造函数的参数无法访问 this。例如,参数可调用静态方法但无法调用实例方法。 | ||
|
||
### 初始化程序列表 | ||
* 重定向构造函数??用途不明白 | ||
* 工厂构造函数无法访问 this。 | ||
|
||
|
||
### 抽象方法 | ||
* 实例、getter和setter方法可以是抽象的,定义接口并将其实现留给其它类。抽象方法仅能存在于 抽象类中。 | ||
* 要让方法为抽象的,使用分号 (:wink: 而非方法体: | ||
|
||
### 重载成员 | ||
* 子类可重载实例方法、getters和setters。可以使用 `@override` 标注来表明你想要重载一个成员:、 | ||
* 可以重载下表中所显示的运算符。 `!=` 并不是一个可重载运算符。表达式 e1 != e2 只是针对 !(e1 == e2)的语法糖。 | ||
|
||
### 静态变量 | ||
* 静态变量直到使用时才进行初始化。 | ||
|
||
### 静态方法 | ||
* 静态方法(类方法)不对实例进行操作,因此无法访问 this。 | ||
|
||
## 泛型 | ||
* 如果你在查看基本数组类型List的 API 文档,实际上看到的类型是 List<E>。<…>标记表示 List是一种泛型(或参数化)类型 – 使用拥有正式类型参数的类型。[按照惯例,大部分类型变量都有单字母名称,如 E, T, S, K和 V。 | ||
* 使用带有构造函数的参数化类型在使用构造函数时要指定一个或多个类型,将类型放在类名后的尖括号 (<...>) 中。 | ||
* 泛型集合及它们所包含的类型 Dart的泛型是实化(reified)类型,表示它们可以在运行时携带类型信息。例如,可以测试一个集合的类型: | ||
* 不同的是,Java中的泛型使用的是擦除(erasure)类型,表示泛型参数在运时会被删除。在 Java 中可以测试一个对象是否为List,但无法测试它是否为 List<String>。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,23 @@ | ||
flutter.md | ||
# flutter | ||
|
||
## 基础 Widget | ||
* Text:该 widget 可让创建一个带格式的文本。 | ||
* Row、 Column: 这些具有弹性空间的布局类Widget可让您在水平(Row)和垂直(Column)方向上创建灵活的布局。其设计是基于web开发中的Flexbox布局模型。 | ||
* Stack: 取代线性布局 (译者语:和Android中的LinearLayout相似),Stack允许子 widget 堆叠, 你可以使用 Positioned 来定位他们相对于Stack的上下左右四条边的位置。Stacks是基于Web开发中的绝度定位(absolute positioning )布局模型设计的。 | ||
* Container: Container 可让您创建矩形视觉元素。container 可以装饰为一个BoxDecoration, 如 background、一个边框、或者一个阴影。 Container 也可以具有边距(margins)、填充(padding)和应用于其大小的约束(constraints)。另外, Container可以使用矩阵在三维空间中对其进行变换。 | ||
* Theme.of(context)将查找Widget树并返回树中最近的Theme。 | ||
* Icon、 IconButton, 和Text 都是无状态widget, 他们都是 StatelessWidget的子类。 | ||
* stateful widget 是动态的. 用户可以和其交互 (例如输入一个表单、 或者移动一个slider滑块),或者可以随时间改变 (也许是数据改变导致的UI更新). Checkbox, Radio, Slider, InkWell, Form, and TextField 都是 stateful widgets, 他们都是 StatefulWidget的子类。 | ||
|
||
## 布局 | ||
### 对齐 widgets | ||
* 您可以控制行或列如何使用`mainAxisAlignment`和`crossAxisAlignment`属性来对齐其子项。 对于行(Row)来说,主轴是水平方向,横轴垂直方向。对于列(Column)来说,主轴垂直方向,横轴水平方向。 | ||
|
||
|
||
## 状态 | ||
* 有些widgets是有状态的, 有些是无状态的 | ||
* 如果用户与widget交互,widget会发生变化,那么它就是有状态的. | ||
* widget的状态(state)是一些可以更改的值, 如一个slider滑动条的当前值或checkbox是否被选中. | ||
* widget的状态保存在一个State对象中, 它和widget的布局显示分离。 | ||
* 当widget状态改变时, State 对象调用setState(), 告诉框架去重绘widget. | ||
* 状态的值,放到私有变量中,通过`setState`方法,来改变变量值,从而触发UI更新 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# 聊薪资 | ||
|
||
## 薪资构成 | ||
* 五险一金 | ||
* 年终奖 | ||
* 期权、股票、补贴 | ||
* 反问:您这边的工资结构是怎样的?我还不是很清楚。有没有任务绩效,五险一金的比例,年终奖的构成等。 | ||
* 会有调薪吗?大概什么时候,多少幅度? | ||
* 你们这个职位的预算大概多少? | ||
* 看中企业的平台和发展新方向,薪资方面在原有的基础上合理涨幅即可。 | ||
* 自己的范围:45到50K | ||
* 年终奖是否会写到offer里面?其他福利?餐补?outing? | ||
|
||
## 工资 | ||
工资:基本工资+职能工资+学历工资+有绩效工资等,比例金额各公司不等,还有餐补、话补、车补、出差补贴等,一年是12薪还是13薪。 | ||
有没有季度奖、半年奖,提成如何计算,何时发放? | ||
福利:节假日礼金、生日贺礼、带薪年假、病假、年度旅游 | ||
有没有固定的年度加薪?一般几月发生,大致涨薪幅度是多大,去年和前年的年度加薪幅度各百分之几? | ||
还有没有其他调薪机会?一般几次,分别在几月份?每次调薪幅度多少,跟年度加薪冲突吗? | ||
公司有没有期权和股票激励计划? | ||
|
||
## 为什么值得给钱 | ||
* 有大公司的带队经验,蘑菇街缺乏竞争力,团队一共7人。 | ||
* 未来集市,offer上是承诺的16薪,8人团队。 | ||
* 我愿意跟着闻竹一起,觉得还算有前景的,并且愿意干。 | ||
|
||
|
||
## 前端准备 | ||
* gitlab 仓库 | ||
* jenkins 打包部署 | ||
* 服务器的域名 | ||
* 前端技术选型 + 前端代码规范 | ||
* 自动化工具 | ||
|
||
|
||
|
||
|
||
|
||
|