Ruby 一份 ruby web 进阶的名词和问题,欢迎补充

flowerwrong · 2014年08月08日 · 最后由 pepsin 回复于 2014年08月09日 · 6611 次阅读

https://rubygems.org https://www.ruby-toolbox.com/

名词

bundler rack 中间件 rake 任务构建工具 sinatra framework padrino framework(基于 sinatra)camping(非阻塞式,类似 nodejs)rails grape gem(用于构建 api)goliath(构建 api 的杀手级产品)(EventMachine)SwaggerUI(api 的 ui 界面)

gem

devise(登录注册 gem)

进程监控

god gem(进程监控)God vs. Monit(http://stackoverflow.com/questions/768184/god-vs-monit)god vs monit vs supervisord(http://noops.me/?p=133)newrelic supervisord python 的进程管理工具,配合 nginx(supervisord 的弊端)压力测试工具 siege 和 ab

======================================================

部署

passenger+apache/nginx(首选) Unicorn Rainbows puma thin ansible,FPM 打包成 deb

======================================================

markdown 浏览器端解决方案:https://code.google.com/p/pagedown/wiki/PageDown markdown.min.js(https://github.com/evilstreak/markdown-js) diaspora 社交网站 关于测试:https://leanpub.com/everydayrailsrspec-cn

====================================================== docker(segmentfault.com 文章)vagrant(http://segmentfault.com/blog/fenbox/1190000000264347) 分发:http://tutorials.jumpstartlab.com/topics/vagrant_setup.html https://gist.github.com/dergachev/3866825 整理版:http://flowerwrong.iteye.com/blog/2123258 parallels tools(搭配 vagrant,虚拟机与主机直接共享文件和剪贴板) puppet(C/S 架构集中配置管理系统)chef(简化服务器配置)英文书籍:http://gettingstartedwithchef.com/ mina(作用同 Capistrano)capistrano(http://www.tuicool.com/articles/bEJnqyj)Twitter 如何在數千台伺服器上快速部署程式碼(BitTorrent)

======================================================

爬虫

curb 适合 json 类通信的数据 mechanize 适合少 js 和少 iframe 类页面的抓取 watir 适合测试,虽然完全模拟浏览器行为,但是性能是个大问题 验证码:rtesseract py 的 Scrapy(大名鼎鼎)

======================================================

大数据

hadoop(java)海量数据处理,但不具有实时性。本质上是一个批处理系统(HDFS,mapreduce,hbase)google 三大论文 hadoop 应用案例(http://wenku.baidu.com/link?url=DAv570Aph9ZdJ1OOkajvYaaqrUNaO8gq-ngvidkjEkRfkRZixYB-F0VPxUIsltRQE0HUB91Zbh5kx8PibDCBrBkBbwKvWgQlxiNyEuf_f_3)例如处理千万级的六度人脉,即好友推荐;联通的电话记录和流量记录查询 storm(Clojure)实时处理模型,比如把 Twitter 上的热门话题发送到浏览器中,目前来看,优于 S4 OpenStack(python)为建设公共云计算和私有云计算建立通用基础的开源项目。http://trystack.cn/

======================================================

开源巨头

1.Facebook(https://github.com/facebook)hhvm+WordPress(http://wuduoyi.com/note/hhvm/

======================================================

数据库

1.数据库读写分离 2.数据库主从架构

======================================================

XMPP

vines(ruby) ejabberd(erlang) openfire(java) tigase strophe.js(bosh)xmpp4r 集成架构:social stream(重点研究对象)

======================================================

实时 websocket

faye(node 和 ruby 两个版本) socket.io(nodejs websocket) node-webkit(开发桌面应用,基于 Chromium 与 NodeJS 的应用程序运行器,)webRPC(WebRTC 实现了基于网页的视频会议,标准是 WHATWG 协议) nodeOS 对于实时通信(视频和音频),使用 WebRTC 会是更好的选择 sse 协议(w3c html5 标准),websocket 的简化版,工作于 http/https

ruby websocket server em-websocket(http://stackoverflow.com/questions/4767268/best-ruby-on-rails-websocket-tool) Websocket-Rails(http://blog.pogoapp.com/websockets-on-rails-4-and-ruby-2/) https://github.com/websocket-rails

EventMachine(fast, simple event-processing library for Ruby programs)

MQTT 协议

https://github.com/mqtt/mqtt.github.io/wiki/software?id=software http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1308_xiangr_mqtt/1308_xiangr_mqtt.html

纯 java 的 websocket 实现 http://java-websocket.org/

websocket 解析库(自己实现 websocket 服务器)http://blog.csdn.net/yl02520/article/details/7366033 LibWebSockets(c)WebSocket-Node(nodejs)PyWebSocket(python)

======================================================

长微博

ImageMagick wkhtmltoimage(http://my.oschina.net/lidonghao/blog/90083)适合建立全局网页快照 wkhtmltopdf PhantomJS(适合建立全局网页快照)CasperJS(可以部分截屏)建议采用他,使用方便 slimerjs(据说字体支持比较好) txt2img gem imgkit(https://github.com/csquared/IMGKit 基于 wkhtmltoimage,可搭配 rails,可以使用 css 截图,不错的 gem)最后实现:rmagick+casperjs,效果类似 36kr.com 现在也可以考虑 imgkit+rmagick,都是 gem

======================================================

thor(构建命令行接口的 gem)

======================================================

全文检索

ElasticSearch(http://www.elasticsearch.cn/)solr + sunspot(https://ruby-china.org/topics/21562 https://www.digitalocean.com/community/tutorials/how-to-install-solr-on-ubuntu-14-04 https://ruby-china.org/topics/21473)elasticsearch + tire

Sphinx

前段主题

adminica(http://themeforest.net/item/adminica-the-professional-admin-template/full_screen_preview/160638)clip-one

移动端 js 框架

quojs 各种手势事件 jquery bulid jquery mobie app the easy way(https://codiqa.com

富文本编辑器

pagedown+simditor codemiror 编辑器

nodejs 其他应用

node-webkit(https://github.com/rogerwang/node-webkit/wiki/List-of-apps-and-companies-using-node-webkit)webRTC nodeOS PDFKIT

nodejs 论坛

nodebb(GPLv3)nodejs 博客 ghost(MIT)

meteor(案例:telescope)

======================================================

代码行统计工具:CLOC

======================================================

浏览器内核

blink webkit

======================================================

docker

fig(python) 泛域名解析 (https://gist.github.com/ngoldman/7287753) Dokku 一个迷你版的 Heroku

电子商务

spree(https://github.com/spree/spree)中国省市区(china-city)

CRM ERP

fat_free_crm odoo(python)

项目管理系统

redmine

邮件服务器

sendcloud(搜狐) amazon ses sendgrid

问题

1.开发 rails 一直用 bundle install,他是怎么工作的? 小测试:手动构建基于 Gemfile 的 sinatra app

2.rake and rack 你是否搞混? 小测试:基于 config.ru 部署 1 中的 sinatra app(生产环境)

3.能否自己手动构建最佳实践? 最佳实践使用方便,但是对于新手却隐藏了太多细节,不妨试着用 sinatra 构建一个最佳实践。 小测试:基于 sinatra 构建最佳实践(可参考https://github.com/SaitoWu/simba

4.能开发 gem 了吗? 小测试:写一个简单的豆瓣 api 的 gem(部分 api 即可)官方文档:http://guides.rubygems.org/ 我的渣渣翻译:http://flowerwrong.iteye.com/blog/2091683

路还很长,欢迎补充。

第一个就被打出一个暴击,洒家没用过 sinatra 啊

#1 楼 @saiga 哈哈,最近接触的也就只有这些了。他们都比较有名。

很喜欢这样的 list。

不错,长见识了

journey

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册