什么叫"功能单一"

昨天开始看《Build Awesome Command-Line Applications in Ruby 2》这本书,看完第一章。其中提到一个Awesome的Command,应该是功能单一(single-purpose)的,但是具体什么叫功能单一呢?为了解释这个问题,书中举了两个反例,来解释什么不是功能单一。 第一个例子是一个备份数据库的脚本。其中需要备份的数据库有两个,这个脚本一次性把两个脚本都备份了,脚本大概是这么写的: #!/usr/bin/env ruby # File: db_backup.rb #两个数据库的信息 databases = { big_client: { database: 'big_client', username: 'big', password: 'big', }, small_client: { database: 'small_client',…

Continue Reading什么叫"功能单一"

Rails Authentication From Scratch

这是一个对railscast250的学习笔记,所有copyright belongs to Railscast作者 Ryan Bates ### 1. 创建User Model rails g resource user email password_digest 这里有两点说明,一是关于rails g resource,你可能对rails g scaffold熟悉,那resource是什么呢?在这里,scaffold和resource都是rails generator,就是可以帮你自动生成很多琐碎的东西的助手,这样你就不用自己一遍一遍写类似的东西了。resource跟scaffold最主要的不同是,resource不会帮你生成对应的controller里面的任何个action以及他们对应的任何view;第二点需要说明的是“password_digest”这个字段,这个字段比较关键,因为接下来我们要用到rails为我们提供的has_secure_password这个helper method,这个method默认需要用到这个字段。 ### 2. Migrate database 在命令行执行rake db:migrate创建你的database ###…

Continue ReadingRails Authentication From Scratch