乐趣区

关于scala:Scala技术与架构

1. 前言

Scala 是综合了面向对象个性与函数式个性的程序设计语言,是由 EPFL 主导与保护的开源高级编程语言,Scala 提供的动态类型机制能够让程序在一些简单的运行场景中防止一些缺点的呈现,Scala 同时反对 JVM、JavaScript 以及其余有待反对的运行时环境,Scala 同时也提供弱小的、开源的、基于生态的反对库,开发者应用 Scala 的反对库能开发出高效与高性能的利用零碎。

1.1 运行环境

Scala 反对的运行时环境形容如下所示:
JVM
Scala 反对 Java 虚拟机的运行时环境,应用 Scala 的编译环境能够将 Scala 的程序语言编译成合乎 JVM 执行规范的文件格式,Scala 能够间接援用 Java 语言的类办法、变量以及属性,Scala 的打包归档格局应用 JAR 规范规格
JavaScript
Scala 反对 JavaScript 前端或者 Nodejs 后端的运行时环境,应用 Scala 的编译环境能够将 Scala 的程序语言编译成合乎 ECMAScript 执行规范的文件格式
Scala Native
Scala 反对 LLVM 类型的机器语言的编译,利用于嵌入式设施相干的高中低级别的操作系统的来自底层应用逻辑的运行时环境

1.2 全栈技术

从传统的应用软件零碎的分层架构的角度剖析,Scala 将提供全栈式的技术栈,开发者能够应用 Scala 生态体系开发出全栈式的技术框架、工具集以及大规模的分布式应用软件系统。目前,Scala 被宽泛地使用于不同的业务畛域,其反对的技术栈分类如下所示:

异步、并发、分布式编程
异步以及响应式编程,次要提供异步编程框架,实现高性能的并发编程模型
分布式音讯零碎以及微服务,次要提供分布式的消息中间件或者分布式的微服务服务(Apache Kafka 应用 Scala 开发)
调度器,次要提供定时或者定时距离的任务调度框架

大数据处理
数据源与连接器,用于连贯数据存储端与数据处理端,实现数据的读写操作,或者用于数据源采集
数据可视化,用于解决汇总剖析的数据,以及综合不同的汇总剖析的数据,用于用户界面的数据审计以及展现
分布式计算,用于实现大规模数据的剖析与计算,例如 Apache Spark

计算迷信
算法与数据结构,用于图计算、单纯函数式计算、非凡数据结构的计算
缓存,用于本地数据缓存或者连贯分布式数据缓存

配置、日志、测试、监控

命令行解析,用于服务器端解析近程保护工具的输出命令行,实现近程系统维护
环境配置,用于保护服务器或者利用零碎的配置,实现配置的集中保护
日志,用于利用零碎的日志记录或者日志采集
性能监控,用于分布式应用的拜访链路的追踪、数据不同维度的统计分析的监控
测试,提供实现零碎功能测试的框架

数据库、索引、搜寻
数据库,用于时序数据库、图数据库、数据源连接器提供查问与拜访操作
索引与搜寻,应用异步操作或者更优的索引技术改善 Elasticsearch 索引零碎的查问性能

部署、虚拟化、云计算
云部署,用于大规模的云计算零碎、云原生零碎的部署
FAAS,用于云计算、云服务中提供 Serverless 服务类型的 Lambda 式编程
版本治理,用于工程项目的版本治理与保护
虚拟化与容器化,用于容器镜像的创立与服务编排

开发工具
构建工具,用于工程项目的构建
代码剖析,用于代码生成、代码剖析与审计
代码编辑,用于实现服务器版的 IDE、本地版 IDE 的插件、记事本
代码格式化,用于代码款式的保护
依赖库治理,用于工程项目依赖库或者库版本的治理
代码重构,用于代码优化与重构
打包公布,用于工程项目的打包与公布
控制台信息,用于提供控制台信息的输入
REPL,用于实现脚本或者交互式解析器
动态资源,用于实现网站或者文档相干动态资源的管控

图像与多媒体
音频与音乐,用于音频文件的编辑或者合成
视频与图像处理,用于实现图像的剖析与解决,与 JVM 轻易集成提供实现视频解决性能

数学、金融、数据迷信、生物信息
生物信息,用于大规模基因信息数据的剖析
密码学与哈希,用于区块链以及数据安全的加密解密
经济、金融与加密货币,用于比特币的实现、高性能的寰球货币的转换计算
自然语言解决,用于自然语言的剖析与解决
数字特色计算,用于数学运算相干的数字解决与计算
概率、统计学与机器学习,用于预测剖析、统计分析、概率分析、监督型或者非监督型的机器学习

挪动、桌面、游戏开发
图形接口与游戏开发,用于创立 JVM 类型的桌面端利用、2D 或 3D 游戏引擎、图向量计算
挪动利用,用于安卓端的利用开发

操作系统、硬件、机器人
文件系统解决,用于文件系统中解决文件的读写操作
硬件与模仿,用于智能硬件的开发
网络,用于操作系统中网络层利用或者网络层工具的开发

文本、格局、压缩
文件归档与压缩,用于实现文件的归档与压缩
CSV,用于数据表格的读写操作
JSON,用于 JSON 文本格式的创立、编辑以及解析
文本编辑器,用于文本的操作、转换以及格式化
PDF,用于 PDF 文件的创立、编辑以及解析
序列化,用于协定传输内容的序列化与反序列化
YAML,用于 YAML 文本格式的创立、编辑以及解析

工夫、地位、测量
工夫与日期,用于工夫与日期的解决
地位,用于地理位置的计算与解决
测量,用于工业畛域的计量与测量相干的计算

Web 开发
管理系统,用于内容、信息、资产零碎的治理
权限治理,用于提供用户的集中受权与鉴权服务
电子邮件,用于实现电子邮件协定
表单与验证,用于实现 web 界面表单的提交与合法性校验
HTTP,用于反对服务器端或者客户端的 HTTP 协定的交互
国际化,用于反对 web 界面中不同的地区语言
语义,用于解析语法语义
模板,用于实现 web 界面组件的模板定义或者模板解决
API,用于开发 API 服务或者对接第三方的 API 服务
路由,用于前端页面显示门路的跳转
前端,用于前端框架开发
文档,用于解析 XML、HTML 中元素或文档的解析
JSON,用于反对 JSON 文本类型的编辑、解析

退出移动版