Web Application Architectures @Coursera 学习笔记(一)

Coursera上关于web开发的一门好课,以Ruby on Rails为基础讲述web开发的方方面面,包括网络架构、设计模式、版本控制等等,老师讲述非常清晰,值得推荐。简单做了些备忘笔记。

课程地址:https://www.coursera.org/course/webapplications 果壳MOOC学院介绍地址:

Module 1: Introduction and BackgroundWeb 1.0, 2.0, 3.0Client-Sever Model

Web Application Architecture Tiers

Module 2: Ruby on RailsModel-View-Controller

搭建环境ruby on rails环境

资源列表 – 官网 – 中文指南

Mac使用Homebrew快速安装 mac虽然自带ruby,但是版本较老,建议使用Homebrew进行安装。

$ brew install ruby# 由于国内网络原因,建议换成淘宝gem源,参考:$ gem sources –remove https://rubygems.org/$ gem sources -a https://ruby.taobao.org/$ gem sources -l*** CURRENT SOURCES ***https:$ gem install rails创建一个rails应用$ rails new blog$ cd blog$ rails server# 打开 :3000

rails项目目录详解

博客应用初始化rails new blog# 创建文章和评论组件rails generate scaffold post title:string body:textrails generate scaffold comment post_id:integer body:text# 生成数据库表rake db:migrate# 显示所有URL路径rake routesRails 哲学版本控制

Git Workflow–Remote Repository

Module 3: Database Interactions关系型数据库 join table(多对多关系用join table来连接)

– Schema and Entity-Relationship Models – 可以使用mysqlworkbench来进行方便的建模

Rails EnvironmentsActive Record Design Pattern

通过将对象(object)和关系(ralation)进行映射(ORM- object-relational mapping),使得程序里可以使用一个“虚拟对象数据库”来实现CRUD(数据库的增、查、改、删)。

在rails中使用ActiveRecord模块来实现。

ActiveRecord模块解析模块定义 模块使用 如果从ActiveRecord::Base继承新建类Post,则程序会假定存在数据表posts,并从数据库中将其各项数据赋值到该类中(通过ORM)可以用该类直接调用部分SQL语句,如: Ruby交互命令行# 原生解释器$ irb# 从rails应用根目录执行,会自动载入rails环境,并有自动补全功能$ rails consoleAssociations in Rails

使用方法示例:

has_many belongs_to :postendActiveRecord Validations

rails在生成model的时候进行数据验证:

Module 4: The Ruby Programming Language执行ruby脚本# 列出所有gem包$ gem list # 直接命令行执行ruby语句$ ruby -e ‘puts”hello world!”‘hello world!# 执行ruby文件$ ruby hello.rbruby类my_method , mc = MyClass.new# 创建对象mc.my_method.cls_method# 调用类方法

变量命名通用规则: – name – could be a local variable. – @name – an instance variable. – @@name – a class variable. – $name – a global variable.

Strings 和 正则表达式# string内置变量> “360 degrees=#{2*Math::PI} radians”=> “360 degrees=6.283185307179586 radians”# 反引号执行命令> `date`=> “Tue Oct 15 09:10:21 MDT 2013\n”# 正则匹配,,返回第一个匹配的index,无匹配返回nil> “Homer” =~ /er/ => 3Symbols

ruby中使用symbol表示“名字”,创建方法是在字符串加上冒号,如:foo或:”foo”。其与string 的区别为: – symbol在整个ruby运行期间只有一个,相同的symbol在内存中只有一份;而string是随用随建,即使内容相同的string也会创建不同的两个string对象 – string是可变的,而symbol不可变 – string多用于表示需要改变的文本,而symbol用于key

大理的洱海形如人耳,风平浪静时,

Web Application Architectures @Coursera 学习笔记(一)

相关文章:

你感兴趣的文章:

标签云: