• このエントリーをはてなブックマークに追加

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月に続編のレクチャーが計画されているとか。次も頑張ろう。