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 技能图谱 ### 岗位职责* 建立技术团队文化* 规划技术发展路线* 落地产品研发成果* 宣传公司技术品牌* 吸引优秀技术人才 ### 基本素质* 正直诚实的道德修养* 谦虚谨慎的工作态度 ...
随机推荐
- H5页面二次分享
对于H5页面来说二次分享还是蛮重要的,毕竟qq还是微信发出去之后习惯性的使用自带的分享功能.和PC端不同,PC直接复制地址了.前两天在做请柬,踩了不少的雷,个人开发和公司开发还是不一样,各种问题,其他 ...
- windows10激活
(1).首先,我们先查看一下Win10正式专业版系统的激活状态:按住win+r键,运行命令提示符,输入slmgr.vbs -xpr,点击确定,查看系统的状态是什么时候到期或者是处于通知状态. (2). ...
- 斯坦福【概率与统计】课程笔记(三):EDA | 直方图
单个定量变量的直方图表示 大家知道,定量变量是连续型变量,即不会像分类变量那样有明显的分类,那么如何将其画成直方图呢?一般来说,会将其按照某个维度来将其分组(group),举个例子. 我们有15个学生 ...
- 嵌入式C语言3.5 关键字---运算符
1. 算数运算符 + - A +/- B 要求A,B数据类型一致 * 乘法 / 除法 %取模 乘法CPU可能需要多个周期,甚至需要利用软件的模拟方法来实 ...
- Python基础代码1
Python基础代码 import keyword#Python中关键字 print(keyword.kwlist) ['False', 'None', 'True', 'and', 'as', 'a ...
- python opencv 生成验证码
基本思路是使用opencv来把随机生成的字符,和随机生成的线段,放到一个随机生成的图像中去. 虽然没有加复杂的形态学处理,但是目前看起来效果还不错 尝试生成1000张图片,但是最后只有998张,因为有 ...
- Java8 新增BASE64加解密API
什么是Base64编码? Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法 基于64个字符A-Z,a-z,0-9,+,/ ...
- XMPP即时通讯协议使用(十)——好友关系状态
sub ask recv 订阅 询问 接受 含义 substatus -1- 应该删除这个好友 Indicates that the roster item should be ...
- 后台执行循环(done &)
- SVN 的安装及配置
1.安装subversion yum install subversion 2.创建仓库目录 mkdir /svn 3. 为项目3创建仓库 svnadmin create /svn/proj3 4.修 ...