Scala语言的机遇


【Scala简介】
Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。
随着大数据的兴起,大数据核心框架Spark和Kafka也受到到广泛关注,Spark底层是Scala实现的,因此也带火了Scala语言,目前Scala被全球知名公司(如:谷歌、百度、阿里、Twitter、京东等)广泛用于Spark开发。
【Scala特性】
面向对象特性
Scala是一种纯面向对象的语言,每一个值都是对象。对象的数据类型以及行为由类和特征(Trait)描述。类抽象机制的扩展有两种途径。一种途径是子类继承,另一种途径是灵活的混入(Mixin)机制。这两种途径能避免多重继承的种种问题。
函数式编程
Scala也是一种函数式语言,其函数也能当成值来使用。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化 。Scala的Case Class及其内置的模式匹配相当于函数式编程语言中常用的代数类型(Algebraic Type)。
静态类型
Scala是具备类型系统,通过编译时的检查,保证代码的安全性和一致性。类型系统具体支持以下特性:
泛型类,型变注释(Variance Annotation),类型继承结构的上限和下限,把类别和抽象类型作为对象成员,复合类型,引用自己时显式指定类型,视图,多态方法。
扩展性
Scala的设计承认一个事实,即在实践中,某个领域特定的应用程序开发往往需要特定于该领域的语言扩展。Scala提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构:
任何方法可用作前缀或后缀操作符,可以根据预期类型自动构造闭包。联合使用以上两个特性,使你可以定义新的语句而无须扩展语法也无须使用宏之类的元编程特性。
使用Scala的框架
Lift是一个开源的Web应用框架,旨在提供类似Ruby on Rails的东西。因为Lift使用了Scala,所以Lift应用程序可以使用所有的Java库和Web容器。
【系统学习并掌握Scala】
尚硅谷Scala教程
https://www.bilibili.com/video/BV15t411H776
课程详情:
一、Scala核心编程课程简介
近年来随着大数据的兴起,大数据核心框架Spark和Kafka也受到到广泛关注, Spark底层是Scala实现的, 因此也带火了Scala语言,目前Scala被全球知名公司(如:谷歌、百度、阿里、Twitter、京东等)广泛用于Spark开发。新一代的物联网时代到来,会对大数据应用人才的需求越加紧迫。尚硅谷网罗和整合了学员很喜爱的师资,打造出专注于Spark开发的Scala课程,我们讲解Scala核心编程技术,同时也讲解编程思想、设计模式和Scala底层实现,让您有豁然开朗的感受。
二、课程内容和目标
本课程重点讲解Scala核心编程,内容包括: Scala语言概述、运算符、程序流程控制、数据结构之集合、Map映射、过滤、化简、折叠、扫描、拉链、视图、并行集合、高阶函数、函数柯里化、偏函数、参数推断、控制抽象、Trait、面向对象编程、异常处理、惰性函数、Akka及Actor模型、Spark Master和Worker通讯、隐式转换、隐式参数、工厂模式、单例模式、观察者模式、装饰者模式、代理模式、泛型、上下界、视图界定、上下文界定、协变逆变不变和源码剖析。通过系统全面的学习,学员能掌握Scala编程思想和Scala底层机制,为进一步学习Spark打下坚实基础。
三、谁适合学
1.希望以较低的投入和风险,来了解自己是否适合转型从事Spark开发的求职人员。
2.有一定的Java基础,或者自学过一些Java书籍与视频资料,想系统掌握Scala语言的程序员。
尚硅谷Scala数据结构和算法教程
https://www.bilibili.com/video/BV1zb411h78b
课程详情:
算法是程序的灵魂,为什么有些程序可以在海量数据计算时,依然保持高速计算,大家可能会说: 程序使用了内存计算框架(比如Spark)和缓存技术(比如Redis等),那再深入的思考一下,这些计算框架和缓存技术又是怎样被技术高手设计出来的呢? 拿实际工作经历来说, 在Unix下开发服务器程序,功能是要支持上千万人同时在线, 在上线前,做内测,一切OK,可上线后,服务器就支撑不住了, 公司的CTO对代码进行优化,再次上线,坚如磐石。那一瞬间,你就能感受到程序是有灵魂的,就是算法。如果你不想永远都是代码工人,那就花时间来研究下数据结构和算法吧。
本课程是使用Scala语言来讲解数据结构和算法,内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、表达式的转换与求值、递归与回溯、迷宫问题、冒泡排序、选择排序、插入排序、快速排序、归并排序、排序速度分析、二分查找、散列、哈希表、二叉树、二叉树与数组转换、二叉排序树(BST)、其它二叉树介绍(AVL 线索二叉树 赫夫曼树)。通过学习,学员能掌握主流数据结构的实现机制,开阔编程思路,提高优化程序的能力。
