11月8日〜11月10日の学習内容

11月8日(水)の学習内容

N予備校プログラミングコースの「プログラミング入門Webアプリ」

第3章「サーバサイドプログラミング入門」

04.ライブラリ

05.Slackのボット開発

06.HubotとSlackアダプタ

07.モジュール化された処理

08.ボットインターフェースとの連携

 

04.ライブラリ

npm (Node.jsのパケットマネージャ)を使ってパッケージを作成→パッケージを使ったアプリケーションの作成

 

以下のページは時間のあるときに目を通しておきます。

標準ビルトインオブジェクト - JavaScript | MDN

Node.js v6.11.1 Documentation

 

 

05.Slackのボット開発

Slackというチャットツールの使い方を学びました。

アカウントの作成→メンション機能(remind)

プライベートチャンネルの作成→javascriptのコードを投稿

 

06.HubotとSlackアダプタ

Slack上で動くタスク管理ボットを作成していきます。

・yo

・generator-hubot

・CoffeeScrip

の3つのパッケージをインストール

 

HubotというGitHub社のボット作成のフレームワークを使用しました。

まずはHubotを動かしてみようということで以下の流れ

Hubotの作成→Slackに新しいworkspaceを作成→Slack AppでHubotの設定→Slackにチャンネル作成→チャンネルにhubotを招待→ボットの起動→botに機能追加(おみくじ)

 

07.モジュール化された処理

要件を考える際に要件漏れがないかをチェックするためのCRUDという概念を学びました。

Create(生成)Read(読み取り)Update(更新)Delete(削除)

更にCRUD操作に要件漏れがないかチェックするためのオブジェクトのライフサイクルについても学びました。

 

Hubotに実装するタスク管理のパッケージを作成しました。 

タスクを作成するtodoコマンドの実装→未完了のタスクを表示するlistコマンドの実装→テストの追加→doneとdonelistの実装→delコマンドの実装

という流れで作成することができました。

 

08.ボットインターフェースとの連携 

07.モジュール化された処理 で作ったnmpパッケージを利用してタスクを管理するhubotをSlack上で起動することができました。

 

11月9日(木)の学習内容

N予備校プログラミングコースの「プログラミング入門Webアプリ」

第3章「サーバサイドプログラミング入門」

09.同期I/Oと非同期I/O

10.例外処理

11.HTTPサーバー

12.ログ

13.HTTPのメソッド

14.HTTPのフォーム

15.テンプレートエンジン

 

09.同期I/Oと非同期I/O

同期I/Oと非同期I/Oの違いについて学びました。

Node.jsはデフォルトでは非同期→Syncで同期化

 

10.例外処理

タスク管理ボットでのタスク情報の永続化に対応しました。

同期的にタスクをファイルに書き出すように実装→ボットを起動した時にファイルを読み込む機能を実装

try-catch文=例外処理(tryの処理でエラーが出たらcatchの処理を実行する)

 

11.HTTPサーバー

Node.js(httpモジュール)を使ってHTTPサーバーの作成を行いました。

 

12.ログ

アクセスログの出力とエラーログの出力を行いました。

 

13.HTTPのメソッド

GETメソッドとPOSTメソッドについて学びました。

switch文を使ってGETとPOSTのリスエストを実装しました。

 

14.HTTPのフォーム

formタグとPOSTメソッドでサーバーにデータを送信する機能を実装しました。

 

15.テンプレートエンジン

jade(現Pug)というテンプレートエンジンを利用してHTMLを動的に出力することができました。

 

11月10日(金)の学習内容

N予備校プログラミングコースの「プログラミング入門Webアプリ」

第3章「サーバサイドプログラミング入門」

16.Herokuでwebサービスを公開

17.認証で利用者を制限する

18.Cookieを使った秘密の匿名掲示板

19.UI、URI、モジュールの設計

20.フォームによる投稿機能の実装

 

16.Herokuでwebサービスを公開

HerokuというWebサービスを動かすことができるプラットフォームの使い方を学びました。

Herokuのアカウントを作成→コンソール上でherokuコマンドが使用できるようにするためにHeroku CLIをインストール→Herokuで起動できるようにファイルを修正→Herokuにサーバーを作成→デプロイ(サーバー上に配置)

という流れでした。

 

17.認証で利用者を制限する

ユーザー名とパスワードを入力するBasic認証の実装について学びました。

ステータスコード  

200-OK リクエストの成功

401-Unauthorized アクセス権不正

/logoutにアクセスしたら401を返すことでログアウトの実装もしました。

 

18.Cookieを使った秘密の匿名掲示板

秘密の匿名掲示板の作成に向けて「匿名ではあるが同じユーザーであることを認識する」ためにWebブラウザに情報を記録するCookieの仕組みについて学びました。

最後にアクセスした時間をCookieに記録することと、有効期限を設定することができました。

 

19.UI、URI、モジュールの設計

秘密の匿名掲示板の作成に向けて、UI (ユーザーインタフェース)設計、URI 設計、モジュール設計について学びました。

今回はステータスコード302-Foundを返すことで別のページに転送するリダイレクトする処理を実行しました。

 

20.フォームによる投稿機能の実装

投稿機能の実装を行いました。

HTTPサーバーを実装→モジュールを2つ作成→投稿フォームをjadeで作成→投稿されたログを書き出し投稿フォームにリダイレクトするようにモジュールを修正

という流れでした。

 

そのほか、「CSVファイル」についてと「LocalStorage」についても勉強しました。

 

 

N予備校のプログラミングコースは第3章に入って段々内容が複雑になってきた感じがします。