文章目录
  1. 1. 基于scala的框架
  2. 2. 动态类型和静态类型
    1. 2.1. 为什么要静态类型
    2. 2.2. 为什么要动态特性
  3. 3. 为什么要面向对象
  4. 4. 为什么要函数式编程
    1. 4.1. 为什么函数式编程没有流行起来?
  5. 5. scala特性
  6. 6. 学习资源

基于scala的框架

play: web框架, 仿制rails

spark: 大数据分析

动态类型和静态类型

动态: 运行时, 进行类型检查

静态: 编译时, 进行类型检查

简单地说,在声明了一个变量之后,不能改变它的类型的语言,是静态语言;能够随时改变它的类型的语言,是动态语言.

为什么要静态类型

  • 编译检查, 安全类型
  • 工具提示
  • 性能好
  • Java/C#

为什么要动态特性

  • 轻量和灵活, 可根据框架自动生成代码
  • 运行时改变程序的行为
  • Python/Ruby, JavaScript

什么是码农? 人肉编译器, 把业务场景编译成代码

为什么要面向对象

解决问题更方便, 快捷?

面向对象更好地描述业务逻辑, 与人认知世界的方式相似(总结)

三大特征, 解决三个问题

Java数据和行为分开(Dao和Model), 不太面向对象. ruby on rails把数据和行为一同封装(面向对象).

TODO: 丧钟为谁而鸣?

为什么要函数式编程

什么是纯函数

函数可以当做参数传递, 表述清晰

函数式编程特性, 如何解决 可维护性, 可重用性, 可扩展性?

面向对象, 对象在做事情; 函数式, 函数在做

解决问题 面向对象 函数式
重用单位 方法
可维护性 信息封装 信息不变化
可扩展性 类组合 方法组合

深入函数式,请猛击

为什么函数式编程没有流行起来?

图灵完备: 可计算的都可计算. (递归, 需要无限的计算资源)

物理限制, 计算资源有限, 内存有限

现今内存和 cpu 运算速度指数增长, 以及对并行运算的需求

scala特性

动态性: REPL, 运行时编译

tuple: 可以存储不同类型的集合

学习资源

twitter scala 指南

typesafe scala 交互学习

scala官方文档中文

scala在线学习

文章目录
  1. 1. 基于scala的框架
  2. 2. 动态类型和静态类型
    1. 2.1. 为什么要静态类型
    2. 2.2. 为什么要动态特性
  3. 3. 为什么要面向对象
  4. 4. 为什么要函数式编程
    1. 4.1. 为什么函数式编程没有流行起来?
  5. 5. scala特性
  6. 6. 学习资源