快速业务通道

跨越边界: Streamlined,第1部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

跨越边界: Streamlined,第1部分

时间:2011-07-22 IBM Bruce Tate

我生平首次参加马拉松培训。马拉松培训最有趣的方面——实际上,也是惟一的方面——就是提高不 断叠加所带来的影响。有时,我为了提高效率而进行专门为了改进身体条件而设计的长短跑。有时,在跑 步过程中,我学习避免小的错误,避免重复多余的姿势(多余的姿势对单个步幅没有太大影响,但却会在 整个 26.2 英里的跑步过程中浪费能量或伤害到我)。我每周都有提高,可每周之间的区别并不显著。但 是一个训练计划周期过后,我会从最初只能跑 4 英里提高到能跑 26.2 英里。软件开发也与此类似。如 果持续进行小的改进,消除多余的重复,您就会不断地累积提高,从而在今后的每个项目中都会做得更好 。

在这篇包含两部分的文章中,我把重点放在 Ruby on Rails 搭建上,这是一个能够在早期开发阶段削 减重复的 Rails 特性。第 1 部分介绍 Rails 搭建的限制和 Streamlined,Streamlined 是个代码生成 器,它高效地应用了元编程技术来消除更高层次上的重复。第 2 部分将进一步深入 Streamlined 的元编 程模型及其定制特性。

低级重复与高级重复

在整个 跨越边界 系列中,我介绍了通过降低重复和提高效率实现反复改进的语言和框架:

具备诸如 duck typing 这类特性的编程语言,通过使用更少的类型定义、减少纯粹为了支持编译器所 需要的代码数,能够提高灵活性和减少重复。

框架试图通过处理核心任务(例如持久性或事务)来提高效率和消除重复,这样就不必为每个新的应 用程序编写代码。

Ruby on Rails 通过利用公共规范消除重复配置,允许框架推断您的意图,而不是强迫您配置应用程 序特性(例如应用程序中特定的数据库表名称和列名称)。

就像所有高效的语言和框架必须做的那样,这些措施都把重点放在每个步骤上,或低级重复上。但是 一旦搭建了一个有效的基础,就可以把目标放得更高。Rails 的搭建特性试图通过公共应用程序类型(数 据库支持的 Web 应用程序)消除重复。

多数数据库支持的 Web 应用程序,几乎要为系统中每个主要的表都提供执行 CRUD 操作(创建、读取 、更新和删除)的用户界面。 搭建这些用户界面应当自动进行,而不应当重复。 Rails 通过 搭建开始 消除这种重复,搭建是一个特性,可以根据数据库表集合的内容构建默认的 CRUD 界面。使用 Rails,只 用几个简单步骤,就可以从头开始构建一个搭建完整的应用程序。如果一直跟随 跨越边界 系列,那么以 前就看过这些步骤。这次,我再把这些步骤简要介绍一下:

输入 rails trails 生成编排山地摩托车赛道的 Rails 应用程序。

用选中的数据库引擎创建叫作 trails_development 的数据库,并修改 trails/config/database.yml ,以反映选中的配置。

切换到 trails 目录,,生成模型和控制器:输入 ruby script/generate model Trail (如果在 UNIX 上运行,可以省略 ruby) 生成叫作 Trail 的模型,输入 script/generate controller Trails 生成叫作 TrailsController 的控制器。

把文件 db/migrate/001_create_trail.rb 编辑成清单 1 那样:

清单 1. 初始迁移

class CreateTrails < ActiveRecord::Migration   def self.up    create_table :trails do |t|     t.column :name, :string     t.column :difficulty, :string     t.column :description, :text    end   end   def self.down    drop_table :trails   end end

把文件 app/controllers/trails_controller.rb 编辑成像清单 2 一样:

清单 2. TrailsController 中的搭建

class TrailsController < ApplicationController   scaffold :trail end

输入 rake migrate,运行迁移。

用命

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号