図書館職員のための アプリケーション開発講習会

Slides:



Advertisements
Similar presentations
1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
Advertisements

情報アプリケーション1 2006 年 10 月 12 日 第四回資料 担当 重定 如彦. 目次 データの送信とフォーム クイズ CGI 複数のパーツのデータの分割方法 配列変数.
1 なんとなく Ajax ~新しくて古い XMLHttp 川合孝典 (Kansai.pm) 2005/5/22.
オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
プログラミング言語ADP 大藤雄久.
プログラマのレベルアップ.
プログラミング基礎I(再) 山元進.
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
Lightweight Language Weekend ls-lRシェル
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
プログラミングⅡ 前期中間試験用出題の傾向 および 訂正箇所
シミュレーション物理5 運動方程式の方法: サブルーチンの使い方.
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
平成19年11月8日 図書系職員のための アプリケーション開発講習会
構造体.
平成19年11月16日 図書系職員のためのアプリケーション開発講習会
プログラミング論 II 電卓,逆ポーランド記法電卓
アスペクト指向プログラミングを用いたIDSオフロード
アスペクト指向プログラミングと Dependency Injection の融合
平成22年6月15日 図書系職員のための アプリケーション開発講習会
9.1 DOMの概要 9.2 DOMプログラミングの基礎 9.3 DOMのプログラミング例
DirectX 勉強会 第4回.
ガジェット・マスターへの まわり道!? ~Ajaxを理解しよう~
C言語講習 第0章 Hello, world!.
関数の定義.
プログラミング演習I 2003年6月25日(第10回) 木村巌.
メモリの準備 メモリには、その準備の方法で2種類ある。 静的変数: コンパイル時にすでにメモリのサイズがわかっているもの。 普通の変数宣言
平成20年6月11日 「図書系のための アプリケーション開発講習会」
平成19年10月19日 図書系のための アプリケーション開発講習会
プログラミング言語論 第五回 理工学部 情報システム工学科 新田直也.
情報アプリケーション1 2006年 10月 19日 第四回資料 担当 重定 如彦 .
2016年度 植物バイオサイエンス情報処理演習 第6回 情報処理(4) データを加工する・2
Nakano School of Business 経営情報ビジネス科 【 C言語入門(Test2)】
PowerPoint 2007 のご紹介 新しい機能について.
Limeを使ったユニットテストの実装方法
情報基礎Ⅱ (第11回) 月曜4限 担当:北川 晃.
プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)
Fortranについて 高エネルギー加速器研究機構 平山 英夫.
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
Cプログラミング演習資料.
ファイルの読み込み #!/usr/bin/env perl #Perlスクリプトの指定 open(FILE, "food.txt");
プログラミング演習I 2003年7月2日(第11回) 木村巌.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
図書系職員のための アプリケーション開発講習会
オープンソースソフトウェアに対する コーディングパターン分析の適用
第5回 プログラミングⅡ 第5回
オブジェクト指向言語論 第五回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第四回 知能情報学部 新田直也.
情報処理Ⅱ 2007年12月3日(月) その1.
モジュール分割.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
プログラミング演習I 2003年6月11日(第9回) 木村巌.
Cプログラミング演習資料.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
君ならどうする – ls-lRシェル Python編
情報処理Ⅱ 小テスト 2005年2月1日(火).
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
計算技術研究会 第5回 C言語勉強会 関数(function)を使う
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

図書館職員のための アプリケーション開発講習会 Perlの星 ~第2話: コードの再利用~ 図書館職員のための アプリケーション開発講習会

コードの再利用 定型処理をサブルーチン(関数)にまとめる モジュール化する いずれも基本的な発想は同じです。 ここでは簡単なサブルーチンに まとめる方法について紹介します。

サブルーチンとは 複数のプログラムで使う場合にも便利(ライブラリやモジュール) 定型処理をまとめたもの プログラム中で複数回呼び出す処理をまとめておくと便利! プログラム中で似たようなプログラムを書かなくて(コピー&ペーストしなくて)もよくなる サブルーチンをバグ対策すると、関係箇所がすべて対策される → 管理が楽になる プログラムが短くなる → 読むのが楽になる プログラムの構造を把握しやすくなる プログラム中で一回のみ呼び出す処理にも有効 同じインターフェイスをもつサブルーチンを切り替えて使える 複数のプログラムで使う場合にも便利(ライブラリやモジュール)

変換テーブルを参照するテキスト加工の 基本的な例(簡略誌名変換、ISBNによる重複チェックなど) # ステップ1 変換テーブル読み込み open (HENKAN, “HenkanTable.txt”) or die; while my $line1 (<HENKAN>) { @field_henkan = split(“\t, $line1”); $table{filed_henkan[1]} = $fiels_henkan[3]; } # ステップ2 データ変換 open (INPUT, “input.txt”) or die; while my $line2 (<INPUT>) { chomp $line2; @field_input = split(“\t, $line2”); print $line, “\t”, $talbe{$filed_input[2]}; ハッシュ %table を 仲介にして変換

サブルーチンにまとめる 同色の部分は同一のデータが入る。 赤字の部分はサブルーチンの定型。 $Result = &test{$Data1, $Data2); #サブルーチン name 呼び出し print $Result; # 結果を print # サブルーチン test sub test { my ($data1, $data2) = @_; # なんらかの処理 return $result; # return文で結果を返す } 同色の部分は同一のデータが入る。 赤字の部分はサブルーチンの定型。

同一のインターフェイスの サブルーチンを用意すると メインの処理 標準化した呼び出し仕様 標準化した結果形式仕様 サブルーチンAの処理 サブルーチンBの処理 B A サブルーチンAと同種の機能をもつ サブルーチンBに処理を切り替えても そのままメインの処理が動く!

具体的な手法(サブルーチン切り替え) サブルーチンの入出力仕様の統一がミソ 以下、必要に応じて追加する # mainの処理 $mode = 1; # 手で修正などなど $result = &test-1($data) if $mode == 1; $result = &test-2($data) if $mode == 2; print $result; # サブルーチン test-1 sub test-1 {  # 略 } # サブルーチン test-2 sub test-2 { # 略 サブルーチンの入出力仕様の統一がミソ 以下、必要に応じて追加する

ライブラリ形式(複数プログラムで使用可能)にすると プログラムB 固有の部分を記述 B プログラムA 固有の部分を記述 A 必要に応じて、共通部分を 呼び出し

ライブラリ (上記の例では mylibrary.pl )を別ファイルにできる 具体的な手法(ライブラリ) myscript_A.pl require “mylibrary.pl”; # 略 $result = &MyLib::format($data); print $result; pakage MyLib; sub format { # 略 } 1; mylibrary.pl ライブラリ (上記の例では mylibrary.pl )を別ファイルにできる

より高度な話 モジュールを使うと、オブジェクト指向的な処理ができます。 その場合でも基本的な考えは、今回の処理例と同じです