Submit Search
Upload
Net commons3 研究会 2014 0616
•
1 like
•
1,598 views
Takako Miyagawa
Follow
PHP NetCommons3 UnitTest
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 37
Download now
Download to read offline
Recommended
最新追従 バリバリの NetCommons3 紹介
最新追従 バリバリの NetCommons3 紹介
Mitsuru Mutaguchi
Nc3開発環境(vagrant)構築(Windows編)
Nc3開発環境(vagrant)構築(Windows編)
snakajima
Engine Yardで作る NetCommons3のクラウド環境
Engine Yardで作る NetCommons3のクラウド環境
Yusuke Ando
Goで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgent
Goで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgent
Reo Yamada
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Tetsuyuki Kobayashi
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Tetsuyuki Kobayashi
react勉強会 #3
react勉強会 #3
KentaIwadate
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
Tetsuyuki Kobayashi
Recommended
最新追従 バリバリの NetCommons3 紹介
最新追従 バリバリの NetCommons3 紹介
Mitsuru Mutaguchi
Nc3開発環境(vagrant)構築(Windows編)
Nc3開発環境(vagrant)構築(Windows編)
snakajima
Engine Yardで作る NetCommons3のクラウド環境
Engine Yardで作る NetCommons3のクラウド環境
Yusuke Ando
Goで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgent
Goで書くNeoVimプラグイン - OpenAppLab Aizu LT feat. CyberAgent
Reo Yamada
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Tetsuyuki Kobayashi
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Tetsuyuki Kobayashi
react勉強会 #3
react勉強会 #3
KentaIwadate
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
Tetsuyuki Kobayashi
NetCommons3の困った事あるあるの対応方法& NetCommons3不具合の報告・確認方法
NetCommons3の困った事あるあるの対応方法& NetCommons3不具合の報告・確認方法
Mitsuru Mutaguchi
react勉強会 #2
react勉強会 #2
KentaIwadate
slide for Himeji study Nov, 2016 by fu7mu4
slide for Himeji study Nov, 2016 by fu7mu4
home
2018年06月28日 commonsnet総会発表 NetCommons3の困った事 あるあるの対応方法(技術者向け)
2018年06月28日 commonsnet総会発表 NetCommons3の困った事 あるあるの対応方法(技術者向け)
Mitsuru Mutaguchi
TravisCI Nightに行ってきたので情報展開
TravisCI Nightに行ってきたので情報展開
Makoto Abe
Sendslacker
Sendslacker
RyogaHorikoshi
20090124shibuya Trac
20090124shibuya Trac
Kazuya Hirobe
LionでOpenMP
LionでOpenMP
14159265
最近流行りのビルドツールとは
最近流行りのビルドツールとは
Takahiro Maki
Laravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作る
infinite_loop
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
slankdev
Redmine.tokyo 08 questionnaire
Redmine.tokyo 08 questionnaire
Jun Naitoh
Laravel5.1 Release
Laravel5.1 Release
Yuuki Takezawa
30分で出来ちゃう簡単グループウェアサイト by NetCommons
30分で出来ちゃう簡単グループウェアサイト by NetCommons
Mitsuru Mutaguchi
130719 03
130719 03
openrtm
Net commonsアドオンモジュールセミナー第4回小ネタ集
Net commonsアドオンモジュールセミナー第4回小ネタ集
株式会社 オープンソース・ワークショップ
CMS Cafe NetCommons紹介
CMS Cafe NetCommons紹介
株式会社 オープンソース・ワークショップ
NetCommons 情報共有基盤システム --- システムをユーザの手に
NetCommons 情報共有基盤システム --- システムをユーザの手に
Open Source Software Association of Japan
MicrometerとPrometheusによる LINEファミリーアプリのモニタリング
MicrometerとPrometheusによる LINEファミリーアプリのモニタリング
LINE Corporation
「オープンソースソフトウェア活用事例の最前線」で豊橋・浜松で講演
「オープンソースソフトウェア活用事例の最前線」で豊橋・浜松で講演
株式会社 オープンソース・ワークショップ
20190625 OpenACC 講習会 第1部
20190625 OpenACC 講習会 第1部
NVIDIA Japan
An Empirical Study of Android APK Distribution Sites Using Headless Browser w...
An Empirical Study of Android APK Distribution Sites Using Headless Browser w...
Ruo Ando
More Related Content
What's hot
NetCommons3の困った事あるあるの対応方法& NetCommons3不具合の報告・確認方法
NetCommons3の困った事あるあるの対応方法& NetCommons3不具合の報告・確認方法
Mitsuru Mutaguchi
react勉強会 #2
react勉強会 #2
KentaIwadate
slide for Himeji study Nov, 2016 by fu7mu4
slide for Himeji study Nov, 2016 by fu7mu4
home
2018年06月28日 commonsnet総会発表 NetCommons3の困った事 あるあるの対応方法(技術者向け)
2018年06月28日 commonsnet総会発表 NetCommons3の困った事 あるあるの対応方法(技術者向け)
Mitsuru Mutaguchi
TravisCI Nightに行ってきたので情報展開
TravisCI Nightに行ってきたので情報展開
Makoto Abe
Sendslacker
Sendslacker
RyogaHorikoshi
20090124shibuya Trac
20090124shibuya Trac
Kazuya Hirobe
LionでOpenMP
LionでOpenMP
14159265
最近流行りのビルドツールとは
最近流行りのビルドツールとは
Takahiro Maki
Laravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作る
infinite_loop
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
slankdev
Redmine.tokyo 08 questionnaire
Redmine.tokyo 08 questionnaire
Jun Naitoh
Laravel5.1 Release
Laravel5.1 Release
Yuuki Takezawa
What's hot
(13)
NetCommons3の困った事あるあるの対応方法& NetCommons3不具合の報告・確認方法
NetCommons3の困った事あるあるの対応方法& NetCommons3不具合の報告・確認方法
react勉強会 #2
react勉強会 #2
slide for Himeji study Nov, 2016 by fu7mu4
slide for Himeji study Nov, 2016 by fu7mu4
2018年06月28日 commonsnet総会発表 NetCommons3の困った事 あるあるの対応方法(技術者向け)
2018年06月28日 commonsnet総会発表 NetCommons3の困った事 あるあるの対応方法(技術者向け)
TravisCI Nightに行ってきたので情報展開
TravisCI Nightに行ってきたので情報展開
Sendslacker
Sendslacker
20090124shibuya Trac
20090124shibuya Trac
LionでOpenMP
LionでOpenMP
最近流行りのビルドツールとは
最近流行りのビルドツールとは
Laravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作る
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
Redmine.tokyo 08 questionnaire
Redmine.tokyo 08 questionnaire
Laravel5.1 Release
Laravel5.1 Release
Similar to Net commons3 研究会 2014 0616
30分で出来ちゃう簡単グループウェアサイト by NetCommons
30分で出来ちゃう簡単グループウェアサイト by NetCommons
Mitsuru Mutaguchi
130719 03
130719 03
openrtm
Net commonsアドオンモジュールセミナー第4回小ネタ集
Net commonsアドオンモジュールセミナー第4回小ネタ集
株式会社 オープンソース・ワークショップ
CMS Cafe NetCommons紹介
CMS Cafe NetCommons紹介
株式会社 オープンソース・ワークショップ
NetCommons 情報共有基盤システム --- システムをユーザの手に
NetCommons 情報共有基盤システム --- システムをユーザの手に
Open Source Software Association of Japan
MicrometerとPrometheusによる LINEファミリーアプリのモニタリング
MicrometerとPrometheusによる LINEファミリーアプリのモニタリング
LINE Corporation
「オープンソースソフトウェア活用事例の最前線」で豊橋・浜松で講演
「オープンソースソフトウェア活用事例の最前線」で豊橋・浜松で講演
株式会社 オープンソース・ワークショップ
20190625 OpenACC 講習会 第1部
20190625 OpenACC 講習会 第1部
NVIDIA Japan
An Empirical Study of Android APK Distribution Sites Using Headless Browser w...
An Empirical Study of Android APK Distribution Sites Using Headless Browser w...
Ruo Ando
モニタリングプラットフォーム開発の裏側
モニタリングプラットフォーム開発の裏側
Rakuten Group, Inc.
量子コンピュータ向けアプリケーション開発フレームワークReNomQとは
量子コンピュータ向けアプリケーション開発フレームワークReNomQとは
ReNom User Group
20130329 rtm2
20130329 rtm2
openrtm
190418 titech robotics
190418 titech robotics
NoriakiAndo
日本マイクロソフト Forefront tmg_セミナ受講メモ_2011-09-01
日本マイクロソフト Forefront tmg_セミナ受講メモ_2011-09-01
Yukio Saito
HSM用ミドルウェア Conduit Toolkitの概要と使い方
HSM用ミドルウェア Conduit Toolkitの概要と使い方
Hiroshi Nakamura
4.総合演習(1)
4.総合演習(1)
openrtm
販売店向けコールセンターシステム開発
販売店向けコールセンターシステム開発
Cybozucommunity
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf
勇 黒沢
20130329 rtm3
20130329 rtm3
openrtm
160608 02
160608 02
openrtm
Similar to Net commons3 研究会 2014 0616
(20)
30分で出来ちゃう簡単グループウェアサイト by NetCommons
30分で出来ちゃう簡単グループウェアサイト by NetCommons
130719 03
130719 03
Net commonsアドオンモジュールセミナー第4回小ネタ集
Net commonsアドオンモジュールセミナー第4回小ネタ集
CMS Cafe NetCommons紹介
CMS Cafe NetCommons紹介
NetCommons 情報共有基盤システム --- システムをユーザの手に
NetCommons 情報共有基盤システム --- システムをユーザの手に
MicrometerとPrometheusによる LINEファミリーアプリのモニタリング
MicrometerとPrometheusによる LINEファミリーアプリのモニタリング
「オープンソースソフトウェア活用事例の最前線」で豊橋・浜松で講演
「オープンソースソフトウェア活用事例の最前線」で豊橋・浜松で講演
20190625 OpenACC 講習会 第1部
20190625 OpenACC 講習会 第1部
An Empirical Study of Android APK Distribution Sites Using Headless Browser w...
An Empirical Study of Android APK Distribution Sites Using Headless Browser w...
モニタリングプラットフォーム開発の裏側
モニタリングプラットフォーム開発の裏側
量子コンピュータ向けアプリケーション開発フレームワークReNomQとは
量子コンピュータ向けアプリケーション開発フレームワークReNomQとは
20130329 rtm2
20130329 rtm2
190418 titech robotics
190418 titech robotics
日本マイクロソフト Forefront tmg_セミナ受講メモ_2011-09-01
日本マイクロソフト Forefront tmg_セミナ受講メモ_2011-09-01
HSM用ミドルウェア Conduit Toolkitの概要と使い方
HSM用ミドルウェア Conduit Toolkitの概要と使い方
4.総合演習(1)
4.総合演習(1)
販売店向けコールセンターシステム開発
販売店向けコールセンターシステム開発
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf
20130329 rtm3
20130329 rtm3
160608 02
160608 02
More from Takako Miyagawa
OmegaTでドキュメント翻訳
OmegaTでドキュメント翻訳
Takako Miyagawa
CodeIgniter4 PHPCon 2016
CodeIgniter4 PHPCon 2016
Takako Miyagawa
Idcfクラウド 初心者の事始め(2)資料
Idcfクラウド 初心者の事始め(2)資料
Takako Miyagawa
CodeIgniter4 (PHPカンファレンス関西2016 懇親会LT)
CodeIgniter4 (PHPカンファレンス関西2016 懇親会LT)
Takako Miyagawa
Idcfクラウド 初心者の事始め
Idcfクラウド 初心者の事始め
Takako Miyagawa
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますように
Takako Miyagawa
Fuelphp & codeigniterユーザの集い
Fuelphp & codeigniterユーザの集い
Takako Miyagawa
PHPCON fukuoka 2015 CodeIgniter update
PHPCON fukuoka 2015 CodeIgniter update
Takako Miyagawa
Net commons3 開発環境
Net commons3 開発環境
Takako Miyagawa
最近のCodeIgniter 2014.06.19
最近のCodeIgniter 2014.06.19
Takako Miyagawa
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
Takako Miyagawa
PHPUnitでリファクタリング
PHPUnitでリファクタリング
Takako Miyagawa
CodeIgniterのライセンスについて
CodeIgniterのライセンスについて
Takako Miyagawa
Bear.sunday meetup #2 自己紹介LT
Bear.sunday meetup #2 自己紹介LT
Takako Miyagawa
phpmatsuri2013 LT大会 資料
phpmatsuri2013 LT大会 資料
Takako Miyagawa
Code ignitertalk 01
Code ignitertalk 01
Takako Miyagawa
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
PHPMATSURI2011 LT大会
PHPMATSURI2011 LT大会
Takako Miyagawa
CodeIgniter東京勉強会 2011.05.14
CodeIgniter東京勉強会 2011.05.14
Takako Miyagawa
PHP勉強会 #51
PHP勉強会 #51
Takako Miyagawa
More from Takako Miyagawa
(20)
OmegaTでドキュメント翻訳
OmegaTでドキュメント翻訳
CodeIgniter4 PHPCon 2016
CodeIgniter4 PHPCon 2016
Idcfクラウド 初心者の事始め(2)資料
Idcfクラウド 初心者の事始め(2)資料
CodeIgniter4 (PHPカンファレンス関西2016 懇親会LT)
CodeIgniter4 (PHPカンファレンス関西2016 懇親会LT)
Idcfクラウド 初心者の事始め
Idcfクラウド 初心者の事始め
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますように
Fuelphp & codeigniterユーザの集い
Fuelphp & codeigniterユーザの集い
PHPCON fukuoka 2015 CodeIgniter update
PHPCON fukuoka 2015 CodeIgniter update
Net commons3 開発環境
Net commons3 開発環境
最近のCodeIgniter 2014.06.19
最近のCodeIgniter 2014.06.19
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
PHPUnitでリファクタリング
PHPUnitでリファクタリング
CodeIgniterのライセンスについて
CodeIgniterのライセンスについて
Bear.sunday meetup #2 自己紹介LT
Bear.sunday meetup #2 自己紹介LT
phpmatsuri2013 LT大会 資料
phpmatsuri2013 LT大会 資料
Code ignitertalk 01
Code ignitertalk 01
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
PHPMATSURI2011 LT大会
PHPMATSURI2011 LT大会
CodeIgniter東京勉強会 2011.05.14
CodeIgniter東京勉強会 2011.05.14
PHP勉強会 #51
PHP勉強会 #51
Net commons3 研究会 2014 0616
1.
NetCommons3 UnitTestコードのある未来 宮川 貴子
2.
概要 NetCommonsは巨大なアプリケーションです。 そのアプリケーションのコードを、
どのように保守管理すべきなのか? メンテナンスするべきなのか? 開発するべきなのか? UnitTestコードのあるということが、どのような役 割を果たすのか というお話をさせていただきます。
3.
NetCommonsは巨大なシステム NetCommons2で育まれた機能 h0p://www.netcommons.org/ダウンロード/
最新版より計測 : NetCommons-‐2.4.2.0 sloccountを利用した解析結果 モジュール数 : 49 + (拡張モジュール5) 行数 :161,075行 (拡張モジュール含まず) SLOC / 行数 ディレクトリ 言語別行数 89493 webapp php=89,493 71316 maple php=71,292, sh=24 239 htdocs php=239 27 top_dir php=27
4.
NetCommonsは巨大なシステム 動作を確認すべき詳細機能項目 3500項目以上 ※上記データ状態による処理分岐を含みません。
NetCommons3設計調査時の初版資料
5.
質問 NetCommons2の 全機能の動作確認 をしたことがある方いらっしゃ いますか?
6.
NetCommonsとPHPの10年 2004年 PHP5.0リリース 2005年
NetCommons1 リリース 2007年 PHP4 サポート終了 2006年 PHP5.2リリース 2008年 NetCommons2 リリース 2010年 PHP5.3 リリース 2012年 PHP5.4リリース 2013年 PHP5.5リリース PHP5.2 サポート終了 2014年 PHP5.3 サポート終了
7.
巨大なシステムの保守運用 巨大なシステムが健全に成長するために (1)健康状態の確認 (2)環境変化に対するメンテナンス
(3)適切な機能改善・機能追加
8.
巨大なシステムの保守運用 巨大なシステムが健全に成長するために (1)健康状態の確認 (2)環境変化に対するメンテナンス
(3)適切な機能改善・機能追加
9.
(1)健康状態の確認 変化に対応しつづけ、 健やかな状態のシステムであるために
状態の確認をいつ実施すべき?
10.
(1)健康状態の確認 変化が発生した
その後
11.
(1)健康状態の確認 早ければ早いほど良い 即時確認
バグ、不具合が育つ前に早期治療。 風邪もかかりはじめにやっつけるんです!
12.
UnitTestコード が無い世界 3500項目以上の機能を目視確認しながら、データベー スのログから発行されているSQLを確認しながら、画面 を見ながら、エクセルにメモした一覧表を見ながら….. 何が出力されたのか?
何が保存されたのか? 何が削除されたのか? 何が変更されたのか? を人が頑張って確認する。
13.
UnitTestコードがある世界 UnitTestコードを実行するために、 コマンドラインを入力し、実行させます。 実行が終了するのを待ちます。
結果が表示されたら、それを見ます。 結果エラーがでたならば、それはバグなので調査し修正します。 何が出力されたのか? 何が保存されたのか? 何が削除されたのか? 何が変更されたのか? は、UnitTestコードが調べるので、人はその結果を待つだけです。 (※UnitTestコードを書く時間(コスト)はかかりますよ)
14.
UnitTestコードがある未来 「状態の確認」にかかる人に依存するコストが 非常に小さい 「変化が発生したら即確認する」ことを
実現することが現実的に 可能です。
15.
巨大なシステムの保守運用 巨大なシステムが健全に成長するために (1)健康状態の確認 (2)環境変化に対するメンテナンス
(3)適切な機能改善・機能追加
16.
(2)環境変化に対するメンテナンス (例)PHP5.4から5.5へバージョンアップしたい! 「PHP5.4で正常に動いている」コードが、
「PHP5.5で正常に動いている」を どのように確認しますか? 自信を持って証明できますか? バージョンアップしたら動くのか? 動かないならどこが問題で動かないのか?を確認したいという要求を どう実現しますか?
17.
UnitTestコード が無い世界 3500項目以上の機能を目視確認しながら、データベー スのログから発行されているSQLを確認しながら、画面 を見ながら、エクセルにメモした一覧表を見ながら….. 何が出力されたのか?
何が保存されたのか? 何が削除されたのか? 何が変更されたのか? を人が頑張って確認する。
18.
UnitTestコードがある世界 UnitTestコードを実行するために、 コマンドラインを実行させます。 実行が終了するのを待ちます。
結果が表示されたら、それを見ます。 結果エラーがでたならば、それはバグなので調査し修正します。 そしてその結果は目視できます。 何が出力されたのか? 何が保存されたのか? 何が削除されたのか? 何が変更されたのか? は、UnitTestコードが調べるので、人はその結果を待つだけです。 (※UnitTestコードを書く時間(コスト)はかかりますよ)
19.
(2)環境変化に対するメンテナンス 何の機能改善も 機能追加もないそれのために 膨大なコストを払い続けることは不可能です。
なぜなら、利用者にメリットがない 利用者にとって機能が追加されるわけでもなく、目に見える成果が無い コストをかけるのが難しい....
20.
巨大なシステムの保守運用 巨大なシステムが健全に成長するために (1)健康状態の確認 (2)環境変化に対するメンテナンス
(3)適切な機能改善・機能追加
21.
(3)適切な機能改善・機能追加 Aという機能を変更した結果、 Bという機能が正常動作しなくなる。 そんなことが無い改善
が適切な機能改善ですよね?どのように防ぎますか?確認しますか?
22.
(3)適切な機能改善・機能追加 Cという機能を追加した結果 Bという機能とAという機能が正常動作しなくなる。 そんなことが無い機能追加
が適切な機能追加ですよね?どのように防ぎますか?確認しますか?
23.
(3)適切な機能改善・機能追加 人間のできるこ とには限界が あります。
24.
巨大なシステムの保守運用 この3つが実現できてこそ (1)健康状態の確認
(2)環境変化に対するメンテナンス (3)適切な機能改善・機能追加
25.
NC3のUnitTestコードのある未来とは ブラックじゃない世界です。 動作確認にかかる時間が少ない世界です。
(画面の表示崩れ等の確認は人の目が必要です。それ以外の事はできる) メンテナンスにかかる時間を、 新たなサービスや機能のために 使う事ができる世界です。
26.
こんな未来は嫌ですよね? 「PHP5.xのサーバにセキュリティホールが発見されました。至 急NetCommons3を設置しているサーバのPHPのバージョンを 上げる必要が有ります!」 「いつまでに必要ですか?」
「大至急です、明日午前中までになんとかして!」 「えー?」 .o(数ヶ月かかるんですけど……)
27.
NetCommons3の構造 NetCommons3は 外部で作成されたライブラリ(フレームワーク) を利用し、構成されています。
外部で作成されたもの ?
28.
NetCommons3の構造(図) 動作環境 PHP
Apache MySQL(Postgres) Composer (PHP 依存関係管理システム) CakePHP2 (PHP アプリケーション フレームワーク) NetCommons3 Core (本体) NetCommons3 Plugin (モジュール) JQuery / BootStrap (HTML + CSS + Javascriptフレームワーク) AngularJS (Javascript フレームワーク)
29.
UnitTestコードの有無と実行状況 名称 UnitTestの 有無 Travis-‐CIの 利用有無 AngularJS
◯ ◯ BootStrap ◯ ◯ JQuery ◯ ◯ NetCommons3 ◯ ◯ CakePHP2 ◯ ◯ Composer ◯ ◯ UnitTestコードが用意されています。
30.
たとえばComposer h0ps://travis-‐ci.org/composer/composer
31.
たとえばCakePHP h0ps://travis-‐ci.org/cakephp/cakephp
32.
たとえばJQuery h0ps://travis-‐ci.org/jquery/jquery
33.
たとえばAngularJS h0ps://travis-‐ci.org/angular/angular.js
34.
たとえばBootstrap h0ps://travis-‐ci.org/twbs/bootstrap
35.
そしてNetCommons3 ! h0ps://travis-‐ci.org/NetCommons3/NetCommons3
36.
世界は既に UnitTestコードがある世界
37.
ご清聴ありがとうございました。
Download now