courseraでWeb Application Archtecturesを受講しました。

Motivation

ちょうど仕事でもRubyを使い始めたときだった。

Rubyのキラーアプリ。Railsに触れる、“チャンス"と思ってやってみた。

Course

Lecture

Railsをあつかいながら、ウェブアーキテクャチャを学ぶ講義。

スライドでいろいろと概念が説明されたあとに、コンソール画面で実際にコーディングする進め方。毎週少しずつ、ブログサービスを作成する。(イテレーション)

内容もそうだが、動画がおもしろい。画面を先生がいろいろと飛び回る!

上から下からGreg先生がスライドインしてきたり、先生が巨人になったり小人になったり・・・(一度だけ、2人に分身して表示された!)。この人は動画編集で遊んでるなと思った。

Assignment

4つのAssignmentがだされる。講義の内容を自分でも手を動かして真似するだけなので、とても簡単。だれでもできる。

完成したら、git commit してbitbucketにpushする。そうすると、それをトリガとしてRSpecで自動採点されるという仕組み。

自分の宿題repositoryは以下。

Contents

期間が6weekということで、広く浅くという内容だ。

Railsというのは、ウェブを学ぶための手段だった。実際は、Railsをつかってインターネットやウェブの歴史と技術が紹介された。

git, Agileに関わる開発手法、Rubyもあわせて学べる。また、言語もRubyだけではなくて、HTMLやCSS, JQueryなどなど。幅広い。

Web開発に関わるいろんな知識がたくさんでてくる。

Webの発展

まずは、Webの歴史が紹介される。

  • Web1.0 ・・・クライアントは静的ページをWebサーバから取得する。ウェブページ。ウェブを読む。
  • Web2.0 ・・・クライアント/サーバ側で動的にページを作成する。ウェブサービス。ウェブを使う。
  • Web3.0 ・・・クライアントごとがつながりあう。データの上のメタデータをあつかう。

Web Archtecture

概ね、以下のようなアーキテクチャの各部分を、各週に分けて説明される。

  Web Client
      |
  (NetWork)
      |
  Web Server
      |
  Script/Service
      |
  (Connector)
      |
   DataBase

Railsということで、MVCアーキも随所随所で強調される。

Database Layer

MVCのモデルに当たる部分。データベースとそれをRailsからどうあつかうかを学ぶ。

Week Three – Module 3: Database Interactions
  Lecture 1: Relational Databases
  Lecture 2: Databases in Rails
  Lecture 3: The Active Record Design Pattern

ブログの記事とコメントの関係をMySQLをつかって説明される。

モデル層で、データのValidateをチェックする役割も紹介される。

Middleware Layer

MVCのコントローラに当たる部分。HTTPやそれをベースにした通信プロトコルの解説。

Week Five – Module 5: Middleware
  Lecture 1: What is Middleware?
  Lecture 2: The Hypertext Transfer Protocol (HTTP) – Introduction
  Lecture 3: HTTP – Request
  Lecture 4: HTTP – Response
  Lecture 5: The Model-View-Controller (MVC) Design Pattern
  Lecture 6: Rails Controllers – Request Handling
  Lecture 7: Rails Controllers – Response
  Lecture 8: MVC Implementation in Rails

以下のような概念が紹介される。はずかしながら、HTTPについてはじめてまともに勉強した気がした。

REST, SOAPは未だにわからないな。。。

Presentation Layer

Week Six – Module 6: Presentation/User Interface
  Lecture 1: Introduction and Background
  Lecture 2: HTML – Basic Syntax
  Lecture 3: HTML – Document Structure
  Lecture 4: HTML – Forms
  Lecture 5: Dynamic Content
  Lecture 6: Cascading Style Sheets (CSS)
  Lecture 7: JavaScript and jQuery
  Lecture 8: Ajax

Presentation Layerの構成要素は以下。

  • HTML(構造)
  • CSS(表現)
  • JavaScript(動作)

これらは絶対に、絶対に、絶対に、分けなければいけないと強調される。

感想

今まで漠然と知っていたことを、改めて学び直した気がする。

このブログもWordPressでできており、ブログの改造をすることでHTMLやCSS,JavaScriptをつかったこともあったが、それらの役割や関わりを基礎からおさえられた気がした。

もっとウェブサービスを理解したいと思って、こんな本も購入してみた。

広く浅くなので、まだまだ入り口を学んだだけだ。ものたりないな、と思っていたところに朗報!なんと8月にレクチャーの再放送、そして9月に続編のレクチャーが計画されているとか。次も頑張ろう。