Ruby 技能图谱
# Ruby 技能图谱
说明: 本图谱只捡重点的列举,并非包含全部。文中所列举或没有列举的资源信息都可以在[awesome-ruby](https://github.com/markets/awesome-ruby)中找到。
## Ruby应用生态
* [Web开发](#Web开发)
* [自动化测试](#自动化测试)
* [安全](#安全)
* [云计算基础](#云计算基础)
* [嵌入式](#嵌入式)
### Web开发
- Rails全栈式Web框架
- 轻量级Web开发框架(Sinatra,Cuba等)
- 异步无阻塞Ruby Server框架:Goliath
### 自动化测试
- RSpec: BDD测试框架
- Cucumber: BDD验收测试框架
- Watir: Web应用测试工具
### 安全
- Metasploit:也许是最好的渗透测试框架
- Gitrob: Github敏感信息收集工具
### 云计算基础
- chef: 自动化运维工具
- puppet: 自动化运维工具
- fog: 强大的云服务库
### 嵌入式
- mruby: Ruby的轻量版本,为嵌入式开发而生
- [mruby-cli](https://github.com/hone/mruby-cli): 为linux等平台构建本地命令行应用
## Web开发需要学习的主力框架
- Rails: 全栈Web开发框架
- Sinatra: 轻量级的Web开发框架
- Goliath: 异步非阻塞Ruby Server框架
## 彻底掌握Ruby所需要的「道」与「术」
### 「道」
- 面向对象基础
- 深入理解Ruby背后的设计哲学和设计原则
- 深入理解Ruby对象模型
- 深入理解block和闭包
- 深入理解Ruby的作用域
- 深入理解Ruby的方法查找机制
- 深入理解Ruby的内存管理(变量和对象内存布局,GC算法和工作机制)
- 进阶:有余力的可以研究Ruby底层的实现
- 进阶:通过学习lisp(Elixir亦可),来反观Ruby中block(函数式编程风格),以及元编程的实现(Lisp是暴露AST的宏,Ruby是利用Block和作用域隐式操作AST的宏)
### 「术」
- 各种具体类型的处理方法和方式,比如字符串和相关编码、正则表达式、IO等处理
- 并发与并行:
- 彻底了解Ruby的GIL及其机制
- 彻底了解Ruby线程的发展变化及其工作机制(从用户线程到本地线程)
- 彻底了解Fiber及其应用(重点在Goliath中的应用,终结异步回调地狱)
- 彻底了解进程相关(重点在各种Ruby多进程应用服务器的工作机制)
- 尝试了解基于actor模型的Ruby并发库Celluloid。
- 社区中各种Gem的实现原理及其用法
## 学习资源
- [「诱人的Ruby」视频教程](http://edu.51cto.com/lecturer/index/user_id-140924.html)
- [Ruby Weekly订阅](http://rubyweekly.com/)
- 其他请自行Google: Ruby books
Ruby 技能图谱的更多相关文章
- 微服务架构 技能图谱skill-map
# 微服务架构 技能图谱 ## 理论基础### 概念#### 多微合适 - 非代码函数 - 非重写时间 - 适合团队最重要 - 独立业务属性 - 全功能团队 #### 进程隔离 - 服务运行在独立的进 ...
- fir.im Weekly - 人人都需要的 IT 技能图谱
AlphaGo 与李世石的人机世纪大战落下帷幕,不禁让人思考<失控> 中说道的 "机器正在生物化,而生物正在工程化 ".作为人类,在未来能否保全最后的智力骄傲成为一个疑 ...
- DBA的技能图谱
最近发现公布的技术岗位的技能图谱中没有DBA的,比较心塞,于是根据自己的工作经验写了一个,写的过程中发现,还的不断的完善,但是先放出来,欢迎大家提建议.
- [转]StuQ 技能图谱(全套13张)
程序开发语言综述.jpg 前端工程师必备技能.jpg 大数据工程师必备技能.jpg 安全工程师必备技能.jpg 嵌入式开发必备技能.jpg iOS开发工程师必备技能.jpg 移动无线测试工程师 ...
- PHP 工程师技能图谱
# PHP 工程师技能图谱## 基础知识 - HTTP - HEADER - REQUEST - RESPONSE - GET/POST/PUT/DELETE/PATCH/CONNECT/OPTION ...
- Node.js 开发技能图谱
# Node.js 开发技能图谱 ## Node.js 语言环境搭建 - Node.js 安装(3m大法:nvm.npm.nrm)- Node.js 命令- Node.js开发工具(推荐vscode) ...
- Golang 开发技能图谱
# Golang 开发技能图谱 ## Go 语言环境搭建- Go 安装- GOPATH 与工作空间- Go 命令- Go开发工具 ## GO 语言编程基础- 关键词和语法(Language Synta ...
- Python 工程师技能图谱skill-map
# **Python 工程师技能图谱** ## **入门**- 笨办法学Py- 官方教程- Hitchhiker- coursera * codeskulptor.org ## **进阶/脚本** # ...
- CTO 技能图谱skill-map
# CTO 技能图谱 ### 岗位职责* 建立技术团队文化* 规划技术发展路线* 落地产品研发成果* 宣传公司技术品牌* 吸引优秀技术人才 ### 基本素质* 正直诚实的道德修养* 谦虚谨慎的工作态度 ...
随机推荐
- (转)springboot应用启动原理(二) 扩展URLClassLoader实现嵌套jar加载
转:https://segmentfault.com/a/1190000013532009 在上篇文章<springboot应用启动原理(一) 将启动脚本嵌入jar>中介绍了springb ...
- soj#552 449E Jzzhu and Squares
分析 https://www.cnblogs.com/Memory-of-winter/p/11209128.html 代码 #include<bits/stdc++.h> using n ...
- qbxt Day3 on 2019-8-18
qbxt Day3 on 2019-8-18 一.基础数论 1.进制转换 进制转换是一个非常简单且基础的问题. 也许我们只需要...Emmm... 列个式子就好了鸭 设\(k\)进制数每一位上是\(a ...
- Hadoop 架构与原理
1.1. Hadoop架构 Hadoop1.0版本两个核心:HDFS+MapReduce Hadoop2.0版本,引入了Yarn.核心:HDFS+Yarn+Mapreduce Yarn是资源调度框 ...
- 用 Flask 来写个轻博客 (18) — 使用工厂模式来生成应用对象
Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 工厂模式 使用工厂方法 Factory Method 创建 app 对 ...
- BootStrap的一些基本语法
一, 1.@using :引入命名空间 2.@model:声明强类型的数据 Model 类型 3.@section:定义要实现母版页的节信息 4.@RenderBody():当创建基于此布局页面的视图 ...
- JavaScript Stack
function Stack() { var items = []; this.push = function(item) { items.push(item) } this.pop = functi ...
- python打开文件失败,报错'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence
python3.7,python3.6都存在的问题: 读取的文件编码是utf-8 第1行是空行.#开头都可能会报这个错误: E:\count_packet>python string_count ...
- rpm相关
rpm命令是RPM软件包的管理工具.rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采用.RPM ...
- Java技术中的三大特性
1.虚拟机 Java虚拟机JVM(Java Virtual Machine)在Java编程里面具有非常重要的地位,约相当于前面学到的Jav ...