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についてはじめてまともに勉強した気がした。
- HTTP, HTTPS(Request, Responce) https://ja.wikipedia.org/wiki/Hypertext%5FTransfer%5FProtocol
REST, SOAPは未だにわからないな。。。
- REST-based, Restful, https://ja.wikipedia.org/wiki/REST
- RPC-based, SOAP SOAP (プロトコル) - Wikipedia
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をつかったこともあったが、それらの役割や関わりを基礎からおさえられた気がした。
もっとウェブサービスを理解したいと思って、こんな本も購入してみた。
- 「プロになるためのWeb技術入門」 https://amzn.to/2ZzYA8a
広く浅くなので、まだまだ入り口を学んだだけだ。ものたりないな、と思っていたところに朗報!なんと8月にレクチャーの再放送、そして9月に続編のレクチャーが計画されているとか。次も頑張ろう。