Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
C   o   d    e   I g   n   i t e   r で   開   発               2011.05.14CodeIgniter東京勉強会        ネコネットデザイン事務所 宮川 貴子(NEKOGET)
自己紹介Self-introduction   NAME   宮川 貴子 (みやがわ たかこ)   Twitter/Blog   NEKOGET   http://pneskin2.nekoget.com/press/   WORK   ネコネ...
今日の話題Table of contents   1.開発の流れ   2.役立つ外部ライブラリ   3.Form_validationの拡張   4.まとめ
開発の流れWorkflow  1.設計  2.デザイン+HTML作成  3.実装  4.総合テスト受け入れテスト  5.完成→運用開始(リリース)
開発の流れWorkflow実際にブログっぽいものを作ってみたので、それを元に話をしたいと思います。
開発の流れWorkflow  サ イ ト の 目 的 と 欲 し い   機   能          ● 現在運営しているブログの引っ越し先にしたい。     ● 日本語の記事とそれを英語にしたページが欲しい。
開発の流れWorkflow  設計    ● 画面の流れを考える    ● 表示する内容を決める    ● 必要な機能を把握する
開発の流れWorkflow  設計 : 目に見える資料にする。    ● 画面の流れ→画面遷移図    ● 表示する内容→画面構成図    ● 機能一覧→機能一覧表
開発の流れWorkflow  設計 : 画面遷移図    作 成 ツ ー ル : A d o b e F ir e w o r k s C S 5    Fireworksでデータを作成すると、    データはpngファイルで保存さ    れま...
開発の流れWorkflow  設計 : 画面遷移図
開発の流れWorkflow  設計 : 画面遷移図から画面一覧         画面に名前と住所を決める    作 成 ツ ー ル   : エ ク セ ル (表 計 算 ソ フ ト )    ( 1 ) 作 成 し た 画 面 遷 移 図 上 ...
開発の流れWorkflow  設計 : 画面遷移図から画面一覧         画面に名前とURLを決める  URLが決まると、  クラス名、メソッド名が自然と決まります。
開発の流れWorkflow  設計 : 画面構成図     作 成 ツ ー ル : A d o b e F ir e w o r k s C S 5     画面に表示をする項目と、    その設置場所を図に起こします。     デザインを起こ...
開発の流れWorkflow  設計 : 画面構成図からデータ一覧       データの設計をする    表 示 す る 情 報 の 項 目 を 拾 い だ し 、    項 目 を 表 示 す る 為 に 必 要 な 情 報 を ま と め て...
開発の流れWorkflow  設計 : 画面構成図からデータ一覧       データの設計をする
開発の流れWorkflow  設計 : 機能一覧を作る    全体像を把握。
開発の流れWorkflow  デザイン + HTML作成    (1)画面構成図を元に、   デザインデータを作成    (2)デザインデータと画面構成図を元に     HTML設計(マークアップ作業)      (3)HTML+CSSの作成
開発の流れWorkflow  デ ザ イン + H TM L作 成 :     (1) 画面構成図を元に、デザインデータを作成    使 用 ツ ー ル : A d o b e F ir e w o r k s C S 5    Photosh...
開発の流れWorkflow  デ ザ イン + H TM L作 成 :    (2)デザインデータと画面構成図を元に     HTML設計(マークアップ作業)    使 用 ツ ー ル : 紙と 4色 ボ ー ル ペ ン    私は紙とボールペ...
開発の流れWorkflow  デ ザ イン + H TM L作 成 :     (3) HTML + CSSの作成    使 用 ツ ー ル : A d o b e D re a m w e a v e r C S 5    PHPでプログラム...
開発の流れWorkflow  実   装    :      C o d e I g n it e r 2 .0 で 実 装 を し ま し た 。      作業中使用した外部ライブラリや拡張については後ほど.....  使 用 ツ ー ル ...
開発の流れWorkflow  テ ス ト と バ グ            の   修   正         (1 )動 作 テ ス ト + 動 作 結 果 を 記 録      ( 2 )  動 作 不 良( バ グ )の 修 正     ...
開発の流れWorkflow  運   用   開   始( リ リ ー ス   )  マ ニ ュ ア ル 等 の 作 成 を し て 、運 用 サ ー バ へ 設 置 。  ブ ロ グ 公 開 。
役立つ外部ライブラリA favorite library Class   M    o d u l a r          E x t e n s i o n s              - H M       V C   https://...
Form_validationの拡張Expand the library   作業の流れ   (1)どういう結果が欲しいか決める   (2)拡張前の本体のコードを調べる   (3)実現方法を検討する   (4)実装する   (5)UnitTes...
Form_validationの拡張Expand the library   ( 5       )   U   n       i t     T       e   s   t す   る   ( 4       )   実       装...
Form_validationの拡張Expand the library   拡   張   前   の   問   題    点      c o n f ig / c o n f ig .p h p で 設 定 し た 言 語    $ c...
Form_validationの拡張Expand the library   本 体 コ ー ド を 調 べ て み た 結 果    $this->form_validation->run();の中で   言語ファイルが呼び出されている部分f...
Form_validationの拡張Expand the library   ネ イ テ ィ ブ ラ イ ブ ラ リ の 拡 張 (継 承 )   http://codeigniter.jp/user_guide_ja/general/crea...
Form_validationの拡張Expand the library   M      Y       _    f   o     r   m        _    v    a   l i d        a   t   i o  ...
Form_validationの拡張Expand the library   M   Y _ f o r m          _ v a l i d a t i o n . p h p       classMY_Form_validatio...
Form_validationの拡張Expand the library   M   Y _ f o r m           _ v a l i d a t i o n . p h p       classMY_Form_validati...
Form_validationの拡張Expand the library   U n i t _ t e s t         C l a s s を        使 っ て          単   体         テ    ス   ...
Form_validationの拡張Expand the library   U n it _ t e s t C la s s を 使 っ て 単 体                             テ   ス ト   http://...
Form_validationの拡張Expand the library   U n it _ t e s t C la s s を 使 っ て 単 体                             テ   ス ト   http://...
Form_validationの拡張Expand the library   U n it _ t e s t C la s sを 使 っ て 単 体 テ ス ト   ht :/ cdigit r / sr gid_ / r r suit t ...
Form_validationの拡張Expand the library   U n it _ t e s t C la s s を 使 っ て 単 体                             テ   ス ト   http://...
Form_validationの拡張Expand the library   U n it _ t e s t C la s sを 使 っ て 単 体 テ ス ト   ht :/ cdigit r / sr gid_ / r r suit t ...
Form_validationの拡張Expand the library   U n it _ t e s t C la s sを 使 っ て 単 体 テ ス ト   ht :/ cdigit r / sr gid_ / r r suit t ...
まとめImportant thing   ★ コードを書き始める前に準備をきちんとしておく    と、迷いが少なく綺麗に作れる気がします。   ★ 画面にURL(住所)を決めてあげると、    Controllerを書くところが自然に決まります...
まとめImportant thing   CodeIgniter大好きです♥
おわりEnding    ご清聴ありがとうございました。
おしらせInfomation    C o d e Ig n it e r日 本 ユ ー ザ 会 に は     メ ー リ ン グ リ ス ト が あ りま す よ !    http://codeigniter.jp/mailinglist
参考資料Reference materials■ CodeIgniter                   ■ Adobe Dreamweaverhttp://codeigniter.com/         http://www.adobe...
Upcoming SlideShare
Loading in …5
×

CodeIgniter東京勉強会 2011.05.14

3,366 views

Published on

  • Be the first to comment

CodeIgniter東京勉強会 2011.05.14

  1. 1. C o d e I g n i t e r で 開 発 2011.05.14CodeIgniter東京勉強会 ネコネットデザイン事務所 宮川 貴子(NEKOGET)
  2. 2. 自己紹介Self-introduction NAME 宮川 貴子 (みやがわ たかこ) Twitter/Blog NEKOGET http://pneskin2.nekoget.com/press/ WORK ネコネットデザイン事務所 WEBのお仕事10年目。 イラスト、デザイン、HTML、Javascript、PHP フロントエンドなお仕事をしています。
  3. 3. 今日の話題Table of contents 1.開発の流れ 2.役立つ外部ライブラリ 3.Form_validationの拡張 4.まとめ
  4. 4. 開発の流れWorkflow 1.設計 2.デザイン+HTML作成 3.実装 4.総合テスト受け入れテスト 5.完成→運用開始(リリース)
  5. 5. 開発の流れWorkflow実際にブログっぽいものを作ってみたので、それを元に話をしたいと思います。
  6. 6. 開発の流れWorkflow サ イ ト の 目 的 と 欲 し い 機 能 ● 現在運営しているブログの引っ越し先にしたい。 ● 日本語の記事とそれを英語にしたページが欲しい。
  7. 7. 開発の流れWorkflow 設計 ● 画面の流れを考える ● 表示する内容を決める ● 必要な機能を把握する
  8. 8. 開発の流れWorkflow 設計 : 目に見える資料にする。 ● 画面の流れ→画面遷移図 ● 表示する内容→画面構成図 ● 機能一覧→機能一覧表
  9. 9. 開発の流れWorkflow 設計 : 画面遷移図 作 成 ツ ー ル : A d o b e F ir e w o r k s C S 5 Fireworksでデータを作成すると、 データはpngファイルで保存さ れます。 ファイルそのものは画像データとして扱えます。 redmineやwiki等に生データをUPしただけで画像として、 プラウザからデータを見ることができます。 またそれをダウンロードしたものをそのまま編集する事も出来て、 とても便利です。 (ただの画像データに比べるとデータサイズは大きめ) ★私の周囲のエンジニアから聞いたところ、エクセルで作ると答えて くれた人が多いようです。
  10. 10. 開発の流れWorkflow 設計 : 画面遷移図
  11. 11. 開発の流れWorkflow 設計 : 画面遷移図から画面一覧    画面に名前と住所を決める 作 成 ツ ー ル : エ ク セ ル (表 計 算 ソ フ ト ) ( 1 ) 作 成 し た 画 面 遷 移 図 上 の 画 面 に 、番 号 を 書 く 。 ( 2 ) 番 号 と 画 面 の 名 前 を 拾 い だ し 、一 覧 に す る (3 ) 一 覧 に し た そ れ の U R L を 考 え る 。 URLが決まると、Contrller名メソッド名が決まります。
  12. 12. 開発の流れWorkflow 設計 : 画面遷移図から画面一覧    画面に名前とURLを決める URLが決まると、 クラス名、メソッド名が自然と決まります。
  13. 13. 開発の流れWorkflow 設計 : 画面構成図 作 成 ツ ー ル : A d o b e F ir e w o r k s C S 5 画面に表示をする項目と、 その設置場所を図に起こします。 デザインを起こしやすくするため、 画面幅、 フォントサイズについては デザインと同じぐらいのサイズで作成しています。 ツールを使わずに手書きで済ましてしまう場合も ありますが、その場合は、大体のサイズを 画面に書き込むようにしています。
  14. 14. 開発の流れWorkflow 設計 : 画面構成図からデータ一覧     データの設計をする 表 示 す る 情 報 の 項 目 を 拾 い だ し 、 項 目 を 表 示 す る 為 に 必 要 な 情 報 を ま と め て 、 一 覧 表 に し ま す 。→ D B 設 計 使 用 ツ ー ル :p h p M y A d m in 定義書は、 phpMyAdminのデータ辞書をプラウザからpdfにしています。 MySQLWorkbench挑戦中ですが、 まだ使いこなせていません。
  15. 15. 開発の流れWorkflow 設計 : 画面構成図からデータ一覧     データの設計をする
  16. 16. 開発の流れWorkflow 設計 : 機能一覧を作る 全体像を把握。
  17. 17. 開発の流れWorkflow デザイン + HTML作成 (1)画面構成図を元に、 デザインデータを作成 (2)デザインデータと画面構成図を元に  HTML設計(マークアップ作業) (3)HTML+CSSの作成
  18. 18. 開発の流れWorkflow デ ザ イン + H TM L作 成 : (1) 画面構成図を元に、デザインデータを作成 使 用 ツ ー ル : A d o b e F ir e w o r k s C S 5 Photoshop,illustratorを使用するデザイナーさんが大多数です。 Fireworksはおそらく小数派
  19. 19. 開発の流れWorkflow デ ザ イン + H TM L作 成 : (2)デザインデータと画面構成図を元に    HTML設計(マークアップ作業) 使 用 ツ ー ル : 紙と 4色 ボ ー ル ペ ン 私は紙とボールペンで手書きです。 いきなり Adobe Dreamweaverで(3)HTMLを書き始めるのと、 紙に手書きで設計メモを作るのとでは、 メモを作る方が作業が早く、 品質が高いです。 設計ができていると、 後々の変更や追加も楽です。
  20. 20. 開発の流れWorkflow デ ザ イン + H TM L作 成 : (3) HTML + CSSの作成 使 用 ツ ー ル : A d o b e D re a m w e a v e r C S 5 PHPでプログラムを書く前にHTML+ CSSを作ります。 今年のPHPカンファレンス関西でLT発表させていただいた時に 会場の方へ質問をさせていただいた結果、 約8割以上が同時並行で PHPノコーディングとHTMLのコーディングを行っていると答えました。 びっくりしました。 きちんと設計ができている、 HTML + CSSを先に書いてしまったほうが、 書かない場合に比べて、 3割ぐらい開発スピードは早いと私は思ってます。
  21. 21. 開発の流れWorkflow 実 装 : C o d e I g n it e r 2 .0 で 実 装 を し ま し た 。 作業中使用した外部ライブラリや拡張については後ほど..... 使 用 ツ ー ル : PHPエディタ: Adobe Dreamweaver CS5 MySQL管理 : phpMyAdmin タスク管理 : Redmine ソースコード管理 : Mercurial (gitやsubversion等) Mercuralクライアント : MacHg ローカルでの動作環境: MAMP
  22. 22. 開発の流れWorkflow テ ス ト と バ グ の 修 正 (1 )動 作 テ ス ト + 動 作 結 果 を 記 録 ( 2 ) 動 作 不 良( バ グ )の 修 正 (3 )動 作 不 良 の 解 消 を 確 認 使 用 ツ ー ル :R e d m in e redmineやtrac等のバグ管理ツールで管理。 バグは、 URL、画面キャプチャ、 発生した条件をチケットに登録するように しています。 総合テスト、 受け入れテスト等詳しい情報は 以下のサイトが参考になると思います。 ※アプリケーションテストについての参考URL  http://www.jacic.or.jp/feature/program/018test/e_test_1.htm
  23. 23. 開発の流れWorkflow 運 用 開 始( リ リ ー ス ) マ ニ ュ ア ル 等 の 作 成 を し て 、運 用 サ ー バ へ 設 置 。 ブ ロ グ 公 開 。
  24. 24. 役立つ外部ライブラリA favorite library Class M o d u l a r E x t e n s i o n s - H M V C https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home C o d e Ig n it e r の M V C の 構 造 を 階 層 化 M V C 構 造 に し て く れ る ラ イ ブ ラ リ Q d m a i l http://hal456.net/qdmail/ Q d m a ilと は 、P H P の マ ル チ バ イ ト 環 境 特 に 日 本 語 ) て 、 文 字 化 け し な い 」 ( に 「 「 簡 単 に ” デ コメ デ コメ ー ル ) や H T M Lメ ー ル 等 の 電 子 メ ー ル を 送 信 す る こ と ( ” が で き る 」メ ー ル ク ラ ス ラ イ ブ ラ リ で す 。 文 字 化 け 完 全 制 覇 を目 指 し て い ま す 。 CodeIgniter2.0本体のEmailクラスを、2.0正式リリース前に試しました。 コードを書き換えてみたり しましたが、 一部メールクライアントでタイトルの文字化けの解消ができなかった為、 本体のEmailクラス は使用しませんでした。 今回作成したアプリではqdmailを、 helperとして設置し、使用しています。 必要ないかもとは思いましたが、 英語のリプライメールはUTF8で送信するように実装しています。
  25. 25. Form_validationの拡張Expand the library 作業の流れ (1)どういう結果が欲しいか決める (2)拡張前の本体のコードを調べる (3)実現方法を検討する (4)実装する (5)UnitTestする
  26. 26. Form_validationの拡張Expand the library ( 5 ) U n i t T e s t す る ( 4 ) 実 装 す る T D D の 場 合 は 、 先 に ( 4 ) テ ス ト 。 後 で 何 度 も き ち ん と 動 い て い る か を 確 認 す る に 違 い な い! 確 認 作 業 は U R L を 叩 く だ け に し て お くと 、作 業 時 間 短 縮 に な り ま す ♪ 参考資料 gihyo.jp:和田卓人のTDD講座 http://gihyo.jp/dev/serial/01/tdd
  27. 27. Form_validationの拡張Expand the library 拡 張 前 の 問 題 点 c o n f ig / c o n f ig .p h p で 設 定 し た 言 語 $ c o n f ig [ ’la n g u a g e ’] = ‘j a p a n e s e ’; 表 示 を 英 語 に 切 り 替 え た 場 合 に 、 バ リ デ ー シ ョ ン エ ラ ー が 日 本 語 が 表 示 さ れ る 。 希 望 す る 動 作 英 語 の 表 示 に 切り 替 え た 場 合 は バ リ デ ー シ ョ ン エ ラ ー も 英 語 で 表 示 さ れ る べ き 。
  28. 28. Form_validationの拡張Expand the library 本 体 コ ー ド を 調 べ て み た 結 果 $this->form_validation->run();の中で 言語ファイルが呼び出されている部分form_validation.php320行目付近 //Loadthelanguagefilecontainingerrormessages $th is-> C I-> la n g -> lo a d (’fo rm _v a lid a tio n ’); ファイルは指定されているが、 言語の指定が省略されている。 $th is-> C I-> la n g -> lo a d (’fo rm _v a lid a tio n ’,’言 語 の 指 定 ’); 言語の指定さえここでされていれば、 言語が切り替えられる。 form_validationクラスの中で、 言語が設定できさせすれば、 国際化対応が できる。
  29. 29. Form_validationの拡張Expand the library ネ イ テ ィ ブ ラ イ ブ ラ リ の 拡 張 (継 承 ) http://codeigniter.jp/user_guide_ja/general/creating_libraries.html ユーザガイドより抜粋: 既存の関数に何かの機能を追加する -おそらく一つか二つのメソッド追加 -だけでよいのであれば、 ライブラリの全部をユーザバージョンに置き換えて しまうのはやり過ぎです。 このようなケースでは、 クラスを単に拡張(継承)するのが適しています。 クラスの拡張はクラスの置き換えと次の2点を除いてよく似ています: *クラス宣言では親クラスを継承する必要があります。 *新しいクラスの名前とファイル名には、 MY_というプリフィックス (この項目は変更できます。 このページの下の方をご覧ください)を付ける 必要があります。
  30. 30. Form_validationの拡張Expand the library M Y _ f o r m _ v a l i d a t i o n . p h p c la s s M Y _ F o r m _ v a lid a t io n e x t e n d s C I _ F o r m _ v a lid a t io n { v a r $ la n g _ id = “ ” ;/ / 言 語 を 保 存 す る と こ ろ を 用 意 f u n c t io n _ _ c o n s t r u c t ( ) { $ t h is - > C I = & g e t _ in s t a n c e ( ) ; $ t h is - > s e t _ la n g ( ) ;/ / c o n f ig で 設 定 さ れ て い る 言 語 で 設 定 を す る } ......中略 }
  31. 31. Form_validationの拡張Expand the library M Y _ f o r m _ v a l i d a t i o n . p h p classMY_Form_validationextendsCI_Form_validation { .....中略..... /* *文字コードの設定 文字コードが */ 指定されていない場合は functionset_lang($lang_id=””) { config.phpで設定されている言語 if($lang_id) を設定する。 { $this->lang_id=$lang_id; } else { $this->lang_id=$this->CI->config->item(”language”); } } .....中略..... }
  32. 32. Form_validationの拡張Expand the library M Y _ f o r m _ v a l i d a t i o n . p h p classMY_Form_validationextendsCI_Form_validation { .....中略..... functionrun($group=‘’){ .....中略..... //Loadthelanguagefilecontainingerrormessages $this->CI->lang->load(’form_validation’,$this->lang_id); .....中略..... } .....中略..... } 82行目付近、form_validation用言語ファイルの読み込み時に、 言語を指定するよう変更
  33. 33. Form_validationの拡張Expand the library U n i t _ t e s t C l a s s を 使 っ て 単 体 テ ス ト http://codeigniter.jp/user_guide_ja/libraries/unit_testing.html テ ス ト し た い 内 容 。 $ t h is -> f o r m _ v a lid a t io n -> s e t _ la n g (” 言 語 ” ); を 実 行 し た と き の 動 作 (1 )$ t h is -> f o r m _ v a lid a t io n -> la n g _ id の 値 が 、 上 記 で 指 定し た 言 語 に な ること ; (2 )$ t h is -> f o r m _ v a lid a t io n -> r u n ();を 実 行 し バ リ デ ー シ ョ ン エ ラ ー が 発 生 し た 場 合 、指 定 し た 言 語 で エ ラ ー 文 を h e lp e r で 取 り 出 せ る 。
  34. 34. Form_validationの拡張Expand the library U n it _ t e s t C la s s を 使 っ て 単 体 テ ス ト http://codeigniter.jp/user_guide_ja/libraries/unit_testing.html ● テ ストを 書く場 所 に つ い て (1)Modular Extensions - HMVC を利用している場合は、 テスト用の モジュールを用意し、 本体コードとテストコードを分離する。 (2)上記を利用していない場合は、 テスト用のControllerクラスを用意し、 本体コードとテストコードを分離する。 1.7系からModular Extensions - HMVCを利用しているため、 私はテスト用にモジュールを用意することにしています。 テストの結果もブラウザ上から確認しています。
  35. 35. Form_validationの拡張Expand the library U n it _ t e s t C la s s を 使 っ て 単 体 テ ス ト http://codeigniter.jp/user_guide_ja/libraries/unit_testing.html ---中略--- $this->load->library(”form_validation”); $ck = $this->form_validation->lang_id; $ans = $this->config->item(”language”); echo $this->unit->run( $ck, $ans, “言語に初期設定の言語がはいっている”, “configの設定は japanese 変更前と変わらない挙動を確認” ); ---中略---
  36. 36. Form_validationの拡張Expand the library U n it _ t e s t C la s sを 使 っ て 単 体 テ ス ト ht :/ cdigit r / sr gid_ / r r suit t sin.hm tp / oe n e.jpue_ u ejalibaie/ n _et g t l 結果の表示
  37. 37. Form_validationの拡張Expand the library U n it _ t e s t C la s s を 使 っ て 単 体 テ ス ト http://codeigniter.jp/user_guide_ja/libraries/unit_testing.html ---中略--- $this->load->library(”form_validation”); $this->form_validation->set_lang(”english”); $ck = $this->form_validation->lang_id; $ans = “english”; echo $this->unit->run( $ck, $ans, “言語設定は、 englishにかわる。 //テストのタイトル ”, “configの設定は japanese。 設定した値はenglish” //メモ ); ---中略---
  38. 38. Form_validationの拡張Expand the library U n it _ t e s t C la s sを 使 っ て 単 体 テ ス ト ht :/ cdigit r / sr gid_ / r r suit t sin.hm tp / oe n e.jpue_ u ejalibaie/ n _et g t l 結果の表示
  39. 39. Form_validationの拡張Expand the library U n it _ t e s t C la s sを 使 っ て 単 体 テ ス ト ht :/ cdigit r / sr gid_ / r r suit t sin.hm tp / oe n e.jpue_ u ejalibaie/ n _et g t l テストモジュールで の結果表示 メモもかねているので、 だらだらと出力結果は長いです... ライブラリの拡張は、 unittestを書いてしまうまでが が拡張ですよね?
  40. 40. まとめImportant thing ★ コードを書き始める前に準備をきちんとしておく  と、迷いが少なく綺麗に作れる気がします。 ★ 画面にURL(住所)を決めてあげると、  Controllerを書くところが自然に決まります。 ★ テストを書くまでが拡張です ! ★ ライブラリもヘルパーも、 テストを書いておくと、   後で動作確認が楽です。   その拡張ファイル、使うの今回だけじゃないよね?
  41. 41. まとめImportant thing CodeIgniter大好きです♥
  42. 42. おわりEnding ご清聴ありがとうございました。
  43. 43. おしらせInfomation C o d e Ig n it e r日 本 ユ ー ザ 会 に は メ ー リ ン グ リ ス ト が あ りま す よ ! http://codeigniter.jp/mailinglist
  44. 44. 参考資料Reference materials■ CodeIgniter ■ Adobe Dreamweaverhttp://codeigniter.com/ http://www.adobe.com/jp/products/dreamweaver.html■ CodeIgniter日本ユーザー会 ■ Adobe Fireworkshttp://codeigniter.jp/ http://www.adobe.com/jp/products/fireworks.html■ NEKOGET’ Report ■ gihyo.jp:和田卓人のTDD講座http://press.nekoget.com/ http://gihyo.jp/dev/serial/01/tdd■ Redminehttp://redmine.jp/http://www.redmine.org/■ Mercurialhttp://ja.wikipedia.org/wiki/Mercurialhttp://mercurial.selenic.com/■ MacHghttp://jasonfharris.com/machg/mweaver.html■ Modular Extensions - HMVChttps://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home

×