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

flowerwrong · 发布于 2014年8月08日 · 最后由 pepsin 回复于 2014年8月09日 · 4139 次阅读
9442

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

路还很长,欢迎补充。

共收到 5 条回复