web開発用ツール導入のすすめ
TRANSCRIPT
目的
「みんな」が「効率的」にWeb アプリを作成出来るようになること
今までは…
● telnet でテストサーバに入ってvi で直接ソース書いて…
● PC のエディタで書いたのを FFFTP でアップロードして…
● 修正前のファイルをファイル名に日付追加してコピーしといて…
● デバッグのために print 文埋め込んで値表示して…
方法
● 現代的なツールや開発手法を導入する● 標準ツールを策定して開発方法を揃える
→ 自分の書いたソースを「将来の誰か」に読みやすくするため
「みんな」の対象範囲
● 「プログラマー」
だけじゃなくて● 「デザイナー」
にも 8 割がたは「使える」ツール
4 つの柱
● バージョン管理システム (git)● フレームワーク (CakePHP)● テスト (PHPUnit/Selenium)● IDE とデバッガー (Eclipse)
バージョン管理システム
● ソース内やファイルでバックアップを残さなくて良い
● やったことの「歴史」を残せる● チームでの並行開発が出来る● 修正を前に戻せる
git
● 分散バージョン管理システム● サーバと PC とに「分散」している● 軽い・構造がシンプル● 一人で使っても十分嬉しい● github
コード共有プラットフォーム
● GitExtensions
Windows の git GUI
フレームワーク
● フレームワークにすると良いこと– 手早く書ける
– 基本構造がみな一緒になる
→ 他人のソースをすぐ読める
● フレームワークの悪いとこ– フレームワークの「作法」を学ぶコスト
● なぜ PHP にしたのか– 言語の評判はあまり良くない
– でも PHP で作られている CMS は多いWordpress / NetCommons など
CakePHP(Web アプリフレームワーク )
● Ruby on Rails の PHP 版という感じ● 日本語の情報が一番多そうだった● MVC● 設定より規約● 名前重要● OR マッパー
Twig( テンプレートエンジン )
● 可読性が高い
<?php echo $foo->bar['id'];?>
→ {{foo.bar.id}} で OK
● ループや if も簡潔に書ける● フィルタ機能
{{foo|e}} で HTML エスケープなど
Bootstrap(CSS フレームワーク )
● 簡単● デザイン性が高い● HTML5● ポータブル(スマホ対応など)
テスト
● なぜテストがあるとうれしいか– 将来の変更に対して足がかりとなる
– ある意味「仕様」をコードにしたもの
– 動作チェックも容易になる
● ユニットテスト (PHPUnit)● UI テスト (Selenium)
IDE とデバッガー
● IDE で嬉しいこと– リアルタイムの文法チェック
– オートコンプリート
– デバッガー
● デバッガーを使おう– その場で値の確認
– ステップ実行
– Web アプリでも出来る
xampp
● Windows上の LAMPキット● 解凍するだけでネイティブで動く● 自分だけが気兼ねなく使える環境● 書いて即動作テスト出来る● Eclipse からデバッガーが利用出来る
Eclipse
● Java や PHP等の IDE● デバッガーを使うためだけでも
今後の予定
● それぞれのツールのインストールと設定– Cygwin
– GitExtensions
– Pleiades( 日本語化 xampp/Eclipse)
– CakePHP
● GitExtensions の使い方● Eclipse とデバッガーの使い方● CakePHP での開発方法