4-4-応 スクリプト言語に関する知識
独立行政法人 情報処理推進機構
4-4-応 スクリプト言語に関する知識
Ⅰ.概要 コードの作成や修正が容易とされるスクリプト言語のうち、特に Ruby について学習し、応用的なアプリケーション開発の手法を習得する。 フレームワークによる Web アプリケーション開発やデータベース操作に ついて学習する。 Ⅱ.対象専門分野 職種共通 Ⅲ.受講対象者、 受講前提 本カリキュラムの「4-4-基 スクリプト言語に関する知識」を受講済み であること。または、同等の知識を有すること。 Ⅳ.学習目標 • 文字コードや多言語化の概念について理解する。 • Rails フレームワークを利用したアプリケーション開発(データベー スアプリケーション、Web アプリケーション、プラグイン導入)につ いて学習する。 • Ruby で開発されたオープンソースシステムのパッケージを導入 し、そのカスタマイズ方法について学習する。 • 他者が作成したソースコードを解析し、読み解く方法を理解する。 Ⅴ.使用教科書、 教材等 『プログラミング Ruby-達人プログラマーガイド』David Thomas/Andrew Hunt 著、ピアソンエデュケーション刊 『Ruby on Rails 入門-優しい Rails の育て方』
西和則著、秀和システム刊
『Rails によるアジャイル Web アプリケーション開発』
Sam Ruby/Dave Thomas/David Heinemerier Hansson 他著、 オーム社刊 その他、オリジナル教材やソースコードを教材として用いる Ⅵ.習得スキル の評価方法 講義終了後の受講レポート、定量アンケート、知識確認ミニテスト、 演習問題の取り組み状況を総合的に判断して評価を行う。 Ⅶ.カリキュラム の構成 レベル 3(応用) 第 1 回~第 11 回 独立行政法人 情報処理推進機構
2
講座内容
第1回 文字コードと多言語化(講義+ワークショップ 90 分)
コンピュータ上で文字を表すために必要な文字コードについて理解する。また、多言語化対応したプログ ラミング方法について理解する。 (1) 文字コード 1 文字コードとは 2 主要な文字コード • Shift-JIS • EUC • Unicode • UTF-8 3 実行時の文字コード指定 (2) 多言語化 (3) Ruby-GetText 1 Ruby-GetText とは 2 pot、po ファイルの作成 3 mo ファイルの作成 4 mo ファイルの配置 5 サンプルプログラム 独立行政法人 情報処理推進機構3
第2回 セキュリティ(講義 90 分)
Web アプリケーションにおける主要な脆弱性とその仕組みを理解する。また、脆弱性に対して有効な対策 を理解する。 (1) 脆弱性の種類 1 SQL インジェクション 2 OS コマンドインジェクション 3 クロスサイトスクリプティング 4 クロスサイトリクエストフォージェリ 5 その他の脆弱性(ディレクトリトラバーサル、HTTP ヘッダインジェクション、など) (2) 対策 1 バリデート(検証) 2 サニタイズ(無害化) 3 ライブラリ利用第3回 テストとデバッグ(講義 90 分)
OSS の品質保証活動を支援するテストとデバッグの手順を理解する。また、OSS の単体テストを自動化す るフレームワーク、カバレジ測定ツール、デバッグツールの使用方法を学習する。 (1) テスト 1 テストの概要(品質保証活動、ユニットテスト、カバレジ、OSS のテストツール、など) 2 ユニットテストの手法(テスト対象、テストケース、テスト環境、回帰テスト、カバレジ測定、など) 3 ユニットテスト自動化クラス/ツール(Test::Unit、RSpec、FlexMock、など) 4 カバレジ測定ツール(rcov、など) 5 サンプルプログラム (2) デバッグ 1 デバッグの概要(テストとデバッグ、テストケースの改修、など) 2 デバッグの手順(エラー内容、再現手順、発生箇所、原因、修正方法、修正実施、など) 3 デバッグモードでの実行(-rdebug オプション) 4 サンプルプログラム 独立行政法人 情報処理推進機構4
第4回 Ruby on Rails とは(講義 90 分)
Ruby を使用した Web アプリケーションを開発するフレームワーク Ruby on Rails(RoR)の概念と構成といっ た仕組みについて学習する。また、Ruby on Rails で採用されているソフトウェア設計アーキテクチャである MVC アーキテクチャの仕組みについて習得する。
(1) Ruby on Rails の仕組み 1 フレームワークとは
2 Ruby on Rails とは(Rails の概要、ディレクトリ構成、設定ファイル、など)
3 Rails フ レ ー ム ワ ー ク の 構 成 ( ActionMailer 、 ActionPack 、 ActiveRecord 、 ActiveSupport 、 ActionWebService、Railties)
4 Ruby on Rails の導入方法(RubyGems) 5 Rails の起動(WEBrick の概要、起動コマンド) (2) コードジェネレートの説明 1 コードジェネレートとは(概要) 2 コードの自動生成(script/generate コマンド) 3 scaffold のオプション(Model、View、Controller の生成) (3) MVC アーキテクチャ 1 ソフトウェア設計アーキテクチャの概要 2 MVC アーキテクチャの概要
3 Web アプリケーションフレームワークとしての Rails の構成要素(Model、View、Controller)
独立行政法人 情報処理推進機構
第5回 データベース連携(講義+ワークショップ 90 分)
Rails フレームワークの ActiveRecord を使用して、データベースへの操作を実現する方法を学習する。 (1) データベースの仕組み 1 データベースとは(概要、種類、導入方法) 2 データベースの構成(テーブル、フィールド、データ型) 3 データベースの構築(テーブルの定義方法、レコードの追加方法) (2) ActiveRecord の説明 1 O/R マッピングとは 2 ActiveRecord とは(概要、構成) (3) データベースとの連携 1 YAML • 概要 • 記述方法 2 database.yml の設定内容 3 マイグレーションとは 4 サンプルプログラム第6回 データベースアプリケーション開発(講義+ワークショップ 90 分)
Rails フレームワークを使用したデータベースアプリケーション開発の流れについて学習する。 (1) Model 開発 1 database.yml の設定 2 Model クラスの雛型作成 3 マイグレーションの雛型作成と、マイグレーションによるデータベース操作処理 4 検証メソッド (2) データベースアプリケーション開発1 Model の作成(Model のジェネレート、Model へのアクセス) 2 テーブルの定義 3 テーブル操作(追加、更新、削除、検索)の流れ 4 トランザクション処理の流れ (3) サンプルプログラム 独立行政法人 情報処理推進機構
6
第7回 Web アプリケーションの作成・1(講義+ワークショップ 90 分)
Rails フレームワークを使用した Web アプリケーション開発の流れについて学習する。また、Web アプリケ ーションフレームワークとしての Rails の構成要素(Model、View、Controller)の機能について学習する。 (1) Rails による Web アプリケーション開発の説明 1 Web アプリケーション開発の流れとは 2 Rails の構成要素(Model、View、Controller)のジェネレート • Controller • View(テンプレート) 3 データベースの設定(database.yml の設定) 4 Web サーバの起動と確認(WEBrick、ポート指定) 5 サンプルプログラム (2) scaffold によるアプリケーション生成 1 scaffold とは 2 scaffold によるアプリケーション生成手順 3 サンプルプログラム
第8回 Web アプリケーションの作成・2(講義+ワークショップ 90 分)
Rails フレームワークを利用した Web アプリケーションのカスタマイズ方法として、ルーティングやページ遷 移、リダイレクト処理、などを学習する。 (1) ルーティング(URL マッピング) 1 ルーティングとは 2 routes.rb ファイルの設定方法 3 サンプルプログラム (2) 表示内容の変更 1 scaffold により生成されたテンプレート 2 サンプルプログラム (3) リダイレクト処理 1 リダイレクトとは 2 redirect_to 3 サンプルプログラム 独立行政法人 情報処理推進機構7
第9回 プラグイン導入と開発(講義+ワークショップ 90 分)
Rails の機能を拡張する方法として、プラグインの導入について学習する。プラグインは、既存のものを使 用する方法と、新規にプラグインを作成する方法について学習する。 (1) プラグインとは 1 プラグインの概要(メリット) 2 プラグインの配置と構成 3 既存プラグインの種類(例外情報保存プラグイン、RJS テストプラグイン、など) 4 プラグインのインストール(プラグインコマンド(script/plugin、など)の説明) 5 サンプルプログラム(プラグインの導入例) (2) 新規プラグインの開発 1 新規プラグインの作成の流れ(ジェネレータの実行、機能の実装、実行) 2 テスト環境の構築(テスト定義ファイルの作成、テストの実行) 3 サンプルプログラム(新規プラグインの導入例)第10回 オープンソースシステムのカスタマイズ(講義+ワークショップ 90 分)
オープンソースシステムとして公開されている Rubricks という CMS(コンテンツマネジメントシステム)を利 用して、独自に作成したコンポーネントを導入することによってカスタマイズする方法について学習する。 (1) Rubricks とは 1 CMS(コンテンツマネジメントシステム)の概要 2 Rubricks の構成(Rubricks の機能、コンポーネントアーキテクチャ、ブロックアーキテクチャ、など) 3 Rich Internet Applications(Ajax、など)4 コンポーネントの種類と導入方法(サードパーティコンポーネント、など) (2) 新規コンポーネントの開発 1 新規コンポーネントの作成の流れ(ジェネレータの実行、機能の実装、実行) 2 テスト環境の構築(テスト定義ファイルの作成、テストの実行) 3 サンプルプログラム(新規コンポーネントの導入例) (3) オープンソースシステムのカスタマイズ例 1 オープンソースシステムの紹介(Xoops、suguarCRM、OpenPNE、など) 2 オープンソースシステムのカスタマイズ方法(例) 独立行政法人 情報処理推進機構
8
独立行政法人 情報処理推進機構