【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

探索 RailsKits:停止编写重复冗余的代码

  • 2008-10-23
  • 本文字数:3099 字

    阅读完需:约 10 分钟

对于编写网络应用程序来说,Ruby on Rails 是近年来的一个流行 Ruby 架构。一个原因就在于编写网络应用程序的时候,需要重复地编写同样的基础功能,而 RailsKits 的出现有效地缓解了这个问题。

在进行应用程序的核心部分开发之前,开发者必须要完成一些东西。例如很多使用 Ruby On Rails 开发的程序需要实现认证、自动付款以及其他商业应用。RailsKits 就是为了快速解决这样的问题而生。

InfoQ 获得了一个和 RailsKits 作者 Benjamin Curtis 直接对话的机会。我们希望从中能够了解到更多关于 RailsKits 的信息,例如 RailsKits 的概念、RailsKits 可以提供的大量便捷的类型工具以及它们的使用。

Robert Bazinet (RB)介绍一下你自己吧,Benjamin Curtis

Benjamin Curtis (BC):我是一个西雅图的企业家,创业狂,还是一个 Rails 的开发者。我喜欢那些和在线商务有关的东西,无论它们是仅仅停留在概念上,还是处于开发中,或者正在后期宣传。我写过一些博客文章,内容是关于对比使用 Rails 以及没有使用 Rails 的网络开发,也使用过一些 Rails 的插件,我也同样热衷于为那些开源工程做自己的贡献,只要有时间的话 。我对在线商务的一个领域──电子商务尤其感兴趣,早期的 Rails 开发者已经构建了一个大型的网络商店解决方案,直到现在,我还在一直在构建电子商务的解决方案,例如 NextProof ,一个为专业的摄影者开发的解决方案,它包括自助的网络商店部件组合和网络商店的构建器。

RB什么是 RailsKits?能介绍一下吗?

BC:RailsKits 是一个基础的 Ruby On Rails 应用,它能够帮助开发者快速地开发应用程序,这些应用程序通常包含一些功能,这些功能很普通,但是底层基础实现非常复杂,比如商务上的经常性结算。基本上,这些应用程序都需要解决一些问题,例如安全地存储信用卡号以及月度地结算,这些问题是相当地普通,并且不会给你的应用程序的特色带来任何更多价值,所以,为什么要花时间在重新发明轮子上呢?使用 RailsKits 吧,它为这些问题提供了解决方案,你需要将精力放回到那些激动人心的地方上了。

RB你是怎么想起要做 RailsKits 这样一个东西呢?

BC:我是在编写了一系列的软件即服务(SaaS)的网络应用之后,产生了要写 RailsKits 的灵感。有段时间,我的主要工作是进行基于增值(免费 + 收费)模型 B2B 应用开发,在那些日子里,我发现每启动一个新的项目,我都是在重用之前项目已经写好的那些结算代码。随着我不断地重复着这些事情,我发现我真的不喜欢与这些代码打交道,这真是完全没有一点意思的事情,我估计肯定也有其他的开发者面临着这样烦人的问题。如果让他们选择,他们肯定愿意购买那些已经实现了经常性结算功能的代码──花小钱办大事,节省了时间不说,还能快速完成他们的程序。所以,我把在一些项目中改善过的结算部分抽取出来,然后打包并且出售。

RBRailsKits 希望解决什么特殊问题?

BC:我已经在之前提到了经常性结算和顾客订购管理是 RailsKits 专注解决的一些问题。近期发布的另一个 RailsKits 提供了构建地图程序的平台,在这个平台上,能够轻松地开发那些实现 Google Map API 和处理地址编码,自己的地图标注的应用程序。第三个 RailsKits,也就是 OpenID Kit,我将其免费地发布在网站上,这个工具提供 Rails 开发者一个起始点,来构建那些需要使用经典的用户名密码登录方式的应用程序,就像 OpenID 登录那样。所以,作为一个开发者,你不用担心什么 OpenID API,甚至不用担心需要在应用程序中集成 OpenID Rails 插件,你要做的仅仅是下载这个工具然后使用已经存在的登录方法构建你的应用程序。

RB什么样的项目适合使用 RailsKits 呢?

BC:如果你是需要构建一个有着一般化需求的应用程序,例如经常性结算,或者 OpenID 认证,那么这个应用程序就非常适合使用 RailsKits 作为起始点来进行开发。需要解决全新问题的应用程序并不推荐使用 RailsKits。

RB你提供了哪些不同的 RailsKits 以及它们各自专注于什么?

BC:第一个是 SaaS RailsKits,它专注于为那些基于顾客订购的网络应用提供起始点。如果你想开发一个多房客管理网络应用来处理房客们月度用信用卡结算的账单,这个工具提供了你经常性结算的代码和为客户创建、升级以及降级帐号的功能。它同样提供了一个多功能的架构,能够完成多客户的隐私数据维护,以及实现产品计划中不同层次的限制,例如一个帐号中用户的数量,磁盘空间使用总量等。其他的工具包括了一个 PayPal API 的简单实现,一个 OpenID 的实现,以及一个为 Radiant 内容管理系统的扩展,这个扩展为一个基于 Radiant 的网站提供了仅仅向会员开放的功能。

RB你对这些工具提供什么样的支持呢?

BC:我对那些关于在这些工具的基础上实现、定制、部署应用程序时产生的问题提供电子邮件支持。我也拥有一个客户的邮件列表,对他们提供其他问题的支持。

RB我们注意到这些工具是开源的,那么是基于哪个许可证呢?开发者如何才能合法地改进和分发这些工具。

BC:在购买一个工具之后,你就能获得源代码,但是它并不是基于任意一个开源许可证的。这个工具的许可证允许你使用和修改代码,但是不能重新分发,除非你能使用这个工具作为起始点,为客户构建一个解决方案。这个时候你就能够和客户共享这些代码。

RB能不能给我们的读者举一些客户如何使用这个工具的例子?例如一些拥有自己站点的读者希望能够发现一些使用这些工具能够创造的有意思的东西。

BC:第一个将要部署的用户应用程序 NextProof 使用了 SaaS Rails Kit,这是一个为专业摄影师提供的电子商务平台。这也是我的客户项目,在这个项目中我重用了结算代码,这些代码是在 Catch the Best 首次编写的,我将这些代码抽取出来,放入这个架构中,这样就能在大量的项目中重用这些代码。 Sifter 是另外一个使用了 SaaS Rails Kit 的站点。

RB我注意到你使用你自己提供的一个工具构建了一个相当独特的程序,用来寻找本地可用的办公室。你能告诉我们一些有关这个工具以及这个程序的信息吗?

BC:近期我启动了 Map Rails Kit,这个工具旨在快速搭建一个 Google Maps 的混搭应用。它包含一个 Google Maps API 的实现,还有为开发者提供地址的地理编码,所以所有你需要做的就仅仅是提供一个地址的列表,然后工具会负责为这些地址生成地理编码并且为你把这些地址在地图上标注出来。使用这个工具,编写一个地图应用程序将是相当容易的一件事,我也在 OfficeMapper 中使用这个工具。当时我现在的办公室租期快到了,在寻找新的办公地点的时候,我编写了一个脚本,将 Craigslist 上的出租办公室地址列表下载下来并且使用这个工具将他们标记在地图上,现在我能够对我房子附近哪个办公地点可用一目了然。

RB你打算在将来提供哪些类型的 RailsKits 呢?

BC:我有三到四个处于不同完成情况的工具,有些多数时候在不断被裁剪优化,然后为那些通用的实现问题提供一个良好的参考样例(例如 PayPal Rails Kit),有些多数时候的朝着对于有着共同需求的 Rails 应用,能够成为一个候选的参考解决方案的目标不断被开发完善(例如 SaaS Rails Kit)。我会在接下来的时间在 RailsKits 的邮件列表中发布一些通知(同样也会提供折扣!),所以务必确保已经在 RailsKits web site 的页脚下的订阅栏中订阅相关信息。

更多关于 RailsKits 的信息请参见公司网站

查看英文原文: Discover RailsKits and Stop Writing Redundant Code


译者简介:杨晨,毕业于东北大学,曾就职多家大型互联网公司,从事研发及测试工作。对数据库和搜索引擎有深入了解,尤其擅长经典计算机科学理论,对历史学兴趣浓厚。

志愿参与 InfoQ 中文站内容建设,请邮件至 editors@cn.infoq.com 。也欢迎大家到 InfoQ 中文站用户讨论组参与我们的线上讨论。

2008-10-23 00:252451
用户头像

发布了 90 篇内容, 共 33.0 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

魔兽争霸3冰封王座中文下载_冰封王座 mac下载_解除8M地图限制

Rose

魔兽争霸3 冰封王座 Warcraft III Mac游戏下载

Mac强大音频采样器Kontakt 7 激活版

Rose

mac音频采样器 Kontakt 7激活版 Native Instruments Kontakt 7 mac下载

HashMap 底层是如何实现的?

做梦都在改BUG

Java hashmap

硬核!阿里出品2023版Java架构师面试指南,涵盖Java所有核心技能

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

JVM调优神器,运用 Arthas 释放 Java应用性能的全部潜力

做梦都在改BUG

Java JVM 性能调优 Arthas

5个编写高效Makefile文件的最佳实践

小万哥

c++ Linux 程序员 面试 后端

2023最新最全的Java面试八股文小抄开源!带你摸熟 20+ 互联网公司面试考点

采菊东篱下

Java 面试

熬了一个月肝出这份32W字Java面试手册,在Github标星31K+

程序知音

Java java面试 后端技术 Java八股文 Java面试题

吃透阿里2023版Java性能优化小册后,我让公司系统性能提升了200%

做梦都在改BUG

Java 性能优化 性能调优

Cloud Studio 高阶玩家:强大的 YAML 模板

CODING DevOps

互联网广告全国精准投放合作 全媒体广告平台代理加盟 利润80%

互联网广告践行者

创业 互联网广告 互联网创业

肝完阿里最新Java并发编程全优笔记,我成功晋升公司架构组

做梦都在改BUG

Java 并发编程

美团二面:聊聊ConcurrentHashMap的存储流程

Java你猿哥

Java 源码 ssm ConcurrentHashMap 红黑树

2023最新版互联网Java高级工程师面试八股文出炉!面面俱到,太全了

架构师之道

编程 java面试

从源码分析可重入锁(ReentrantLock)

做梦都在改BUG

Java 源码 多线程 ReentrantLock

Mac平台上的条形码生成工具分享~

真大的脸盆

Mac Mac 软件 条形码生成工具 条形码软件

JDK源码怎么学?看这篇文章就够了!

Java永远的神

Java 程序员 多线程 jdk源码 架构师

卷起来了!阿里最新出品“微服务全阶笔记”,涵盖微服务全部操作

做梦都在改BUG

Java 架构 微服务 Spring Cloud spring cloud alibaba

太爆了!阿里最新出品2023版JDK源码学习指南,Github三天已万赞

Java你猿哥

Java 源码 jdk 多线程 jdk源码

内部消息!阿里首次10亿级并发系统设计文档,Github都为之低头?

Java你猿哥

架构 ssm 高并发 并发系统设计 并发系统

Java 创建一个大文件

HoneyMoose

原生Mac视频下载器Downie4许可证下载v4.6.17

Rose

Mac 视频下载工具 Downie 4 下载 Downie4许可证 Downie 4 Mac版 Downie 4中文版

PoseiSwap以2500万美元估值,再获新一轮融资

西柚子

阿里P8整理的《百亿级并发系统设计》实战手册,实在是太香了

程序知音

Java 高并发 java架构 Java进阶 后端技术

真香!阿里最新出品Java面试核心讲(终极版),Github已星标50K

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

神界原罪2游戏下载|DLC终极版|Mac游戏专区

Rose

神界:原罪2 神界原罪 Mac游戏 神界原罪 破解版下载

Exposure X7 Bundle下载|专业的照片处理插件套装

Rose

滤镜插件 Exposure X7 Bundle下载 Exposure X7中文版

弯道超车!阿里高工新产Java面试速成指南,面试骚操作都在里面了

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

2024深圳电子信息展

AIOTE智博会

小白白也能学会的 PyQt 教程 —— 图像类及图像相关基础类介绍

繁依Fanyi

Python PyQt

深入理解 ThreadLocal:原理及源码解读

Java你猿哥

Java 源码 多线程 ssm ThreadLocal

探索RailsKits:停止编写重复冗余的代码_Ruby_Robert Bazinet_InfoQ精选文章