`

Rails 的原始碼行數比?

阅读更多
實例

看完 JavaEye 今天的文章,發現到根據 Robbin 估計
网站来说,包含了forum,blog,SNS三种大型软件 的主要功能,每个部分单独去做,都要花好几个月,合起来的代码量(包括XML配置行数)保守估计至少要3-5万行。现在用ruby on rails编写,ruby代码量只有不到5000行。
根據 Robbin 這一篇截至现在JavaEye2.0 CVS上面代码行数,目前只有 3243行code。他保守估計 Java 跟 Rails 原始碼行數,大概是 6 : 1 ~ 10:1 的份量。

根據 poocs.net 在這篇文章的說法
The old codebase roughly consisted of around 50.000 lines of PHP code (plus a closed-source CMS that’s not included in this calculation). We’ve rewritten most of it (some features were left out on purpose) in about 5.000 lines of Rails code.
他用 Rails 改寫 PHP 現有的 Project ,做出來的原始碼行數 PHP : Rails 是 10 : 1(註1)

根據 Beyond JAVA 裡面,Justin Gehtland 用 Rails 重寫一個用 JAVA Spring/Hibernate 寫好的 Project,他發現程式碼比例 JAVA :Rails 大概是 3.48 : 1 。附帶一提,他重寫的開發時間開發時間比是 16 : 1,更噁心的數字。(註2)

我曾經將以前寫過的一個小小 PHP Project 重寫,之前使用的 Framework 是我自己寫的 MVC 架構的PHP 程式。扣掉 HTML code ,程式碼行數大概PHP :Rails 是 8 : 1 左右吧。

GMANE 裡面有一位 Rick Bradley 提出一個healthcare網站的實例,他們將 JAVA/Hibernate/JSP/pojos/beans/Struts/Ajax 的專案轉換到 Ruby on Rails 時,他發現所有程式碼比例: JAVA 比 Rails 高達 20853 : 823,這是 25 : 1 的可怕程式碼數量比例。(註3)

結論

開發時間很難去作 Benchmark ,不過程式碼行數就很赤裸裸了。我們可以發現到,Rails 在程式碼行數上面的優勢還是相當相當明顯的。程式碼的行數代表的意思不只是開發速度的快慢有絕對的正相關,維護程式的速度也會加快,重構等等議題也會簡單許多,這是一個 Ruby on Rails 巨大的優勢。


註解
  1. 根據原文,PHP行數裡面,沒有計算一個 close source 的 CMS ,用 Ruby on Rails 實做時,也沒有implement 一些他們後來認為不重要的功能。我將兩者造成的程式碼數量增減都視為抵銷
  2. 原始碼的比例是 3293:1164,設定檔的行數是 1161:113
  3. GMANE提出 25 : 1 的驚人實例的詳細數據列表
Java version:

10361 lines of Java code
1143 lines of JSP
8082 lines of XML
1267 lines of build configuration
-----------------------------------------------------------
20853 TOTAL lines of stuff

Rails version:

494 lines of code (386 "LOC" per rake stats)
254 lines of RHTML
75 lines of configuration (includes comments in routes.rb)
0 lines of build configuration
-----------------------------------------------------------
823 TOTAL lines of stuff
分享到:
评论

相关推荐

    mini-rails:仅有600行代码的精简版Rails,可作为学习Rails原始码的向导-代

    本想学习一下Rails原始码,看看有什么魔术;但二进制文件太多,核心代码都没没在大量细节实现中,全部看完不现实,走马观花又很难领会精髓;纸上得来终觉浅,眼过千遍,不如手过一遍,干脆重新造个轮子;于是就有了...

    重构你的Rails程式码

    ### 重构你的Rails程式码 在进行Rails版本升级时,重构代码是一个绝佳的机会。本文将深入探讨为何这是个好时机来进行重构,并提供一系列实用的方法帮助您优化代码。 #### 为什么这是一个好时机重构代码? 1. **...

    Rails项目源代码

    Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...

    Ruby-APITaster一种快速而简单的方法来可视化测试你的Rails应用API

    Ruby-APITaster是一款强大的工具,专为Rails应用的API测试和可视化设计。它使得开发者能够迅速地对API接口进行互动式测试,从而确保API的功能正确性和性能稳定性。这款工具的出现,极大地简化了API测试过程,提高了...

    Rails101_by_rails4.0

    《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    #### 二、什么是Rails? - **定义**:Rails是一种用于快速开发Web应用程序的开源框架,基于Ruby语言。 - **特点**:Rails遵循“约定优于配置”的原则,简化了Web应用的开发过程,使得开发者能够专注于业务逻辑而非...

    关于rails 3.1 cucumber-rails 1.2.0

    Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...

    rails指南 中文版

    Rails指南中文版是针对Ruby on Rails框架的一份详尽教程,旨在帮助开发者深入理解并熟练掌握这个强大的Web应用开发工具。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-...

    rails2-sample

    从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...

    使用Aptana+Rails开发Rails Web应用(中文)

    在开发Web应用时,Ruby on Rails(简称Rails)框架因其高效、简洁的代码风格和强大的社区支持而备受青睐。Aptana是一款强大的集成开发环境(IDE),尤其适用于Rails项目的开发,它提供了丰富的特性来提升开发效率。...

    Ruby on Rails安装指南(Ruby 1.8.6+Rails 2.0.2)

    Ruby on Rails 安装指南 Ruby on Rails 安装指南是指安装 Ruby 1.8.6 和 Rails 2.0.2 的详细步骤。首先,需要下载 Ruby One-Click Installer 版本,并安装 Ruby。然后,下载 Rails 2.0.2 版本,并安装。接下来,...

    Rails

    标题 "Rails" 指的是 Ruby on Rails,一个开源的Web应用程序框架,它基于Ruby编程语言,遵循MVC(模型-视图-控制器)架构模式。Rails由David Heinemeier Hansson在2004年创建,其设计理念是强调代码的简洁性、DRY...

    [Rails] Crafting Rails Applications (英文版)

    [Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Rails 3 is a huge step forward. You can now easily extend the framework, ...

    rails敏捷开发的购物车系统

    在本文中,我们将深入探讨如何使用Rails敏捷开发技术构建一个购物车系统,特别是在参考《rails敏捷开发第四版》中的示例。Rails 3.2.6是本文的基础框架,它是一个强大的Ruby Web应用程序框架,以其MVC(模型-视图-...

    rails api(文档)

    6. **错误处理**:Rails API鼓励返回标准的HTTP状态码和结构化的错误消息,以便客户端可以理解并适当地处理错误。 7. **JSON Schema**:通过使用JSON Schema,开发者可以定义API的数据结构和验证规则,增强API的可...

    rails 2.3.2离线安装rails 2.3.2离线安装

    rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails ...

    Rails recipes

    Rails Recipes是一本针对Ruby on Rails框架的实用书籍,它收集了一系列高效解决问题的技巧和方法,也被称为“Rails开发者的宝典”。作者们通过分享自己的经验和见解,为Rails程序员提供了一本既有实际操作指导又有...

    好用的rails 2.0 Api 文档

    Rails 2.0 API 文档是一个非常宝贵的资源,它为开发者提供了全面的指南,以便于在使用Ruby on Rails 2.0版本时更好地理解和利用其框架功能。Ruby on Rails(简称Rails)是一个开源的Web应用框架,它遵循MVC(模型-...

Global site tag (gtag.js) - Google Analytics