coursera でProgramming Cloud Services for Android Handheld Systems を受けた.
長かった Android シリーズもこれで最後だ. 過去の記事は以下.
- Programming Mobile Applications for Android Handheld Systems で Andoroid アーキテクチャの基礎を体系的に学んだ | Futurismo
- オブジェクト指向設計と並列プログラミングを Andoird で学ぶ!Pattern-Oriented Software Architectures を受けた | Futurismo
内容について
全 10week 中,
- 7week は C. Jules White さんのはなし.
- 3week は Douglas C. Schmidt さんのはなし.
タイトルで Android と書いてあるにも関わらず, なんと Android の実装は出てこなかった.
ウェブアプリケーション技術を徹底解説
前半は, Jules さんの講義.Java の Spring フレームワークを例に, Web アプリケーション技術を網羅的に解説されるという,かなり実践的な内容.
Spring Framework
Spring フレームワークは, Java で Web アプリケーションを開発するさいの デファクトスタンダードだ.
幅広い Web 知識
HTTP Protocol, サーブレット, セッションとクッキー, セキュリティと認証などなど, 幅広い知識が解説される.
Assignments
Assignments は 2 つ.
1 つは, Spring を利用して mp3 をアップロードする Web サービスを作成す る. HTTP GET, POST をどのようにしてプログラミングするのかを理解で きた. Spring の Annotation が便利過ぎてビックリする.
もう 1 つは, OAuth 2.0 による認証の実装. これは一度理解したけど,忘れてしまったな.. orz.
ウェブアプリケーションのアーキテクチャを徹底解説
後半は, Doug 氏による, Pattern Oriented Software Archtecture のお話.
C++ のネットワーク/Web アプリケーション用フレームワークである ACE を利 用しつつ, POSA2 の全パターンを次から次へと解説していく.
POSA2 については, 講義についていくために Kindle で購入.
Assignments
POSA2 で解説される, 以下のパターンを実装する課題.
- Wrapper Facade
- Reactor
- Acceptor-Connector
- Half-Sync/Half-Async
Java の Network 用フレームワーク, Netty を利用して実装した.
感想について
HTTP Protocol の仕組みを理解できた.
HTTP Protocol を理解できたことは有益だった.
ブラウザを利用してネットを閲覧するという, 毎日当たり前のようにやっていることの裏側について, 自分は今まで理解していなかったのだ.
オブジェクトストレージのアーキを理解できた
また, ストレージ業界に身をおく自分としては, オブジェクトストレージのアーキテクチャを垣間見たことは有益だった. 今までは, 本や WEB で知識を読んでもどうもピンとこなかった. コードから 学ぶことで,構造や機能が頭に思い浮かべられるようになった.
ネットワークアーキテクチャについて学べた
今仕事では, CIFS プロトコルを利用して ミドルウェアのアプリケーションを作成しようとしてる. ネットワークの知識がまるでない自分にとって, ネットワークの知識ことは差し迫った急務だった.
そんな自分にとって, HTTP Protocol の仕組みや Archtectore Pattern を学ぶ機会は, 絶好のタイミングだった. ソケットプログラミングのアーキテクチャパターンなどは, すぐにでも仕事に応用できそうな知識だ.
その一方で, POSA2 については消化不良も否めない. 折に触れて, 再度復習しなければと思う.