タグ

ブックマーク / www.ryuzee.com (17)

  • 【資料公開】強いチームの作り方 | Ryuzee.com

    2015年11月10日に某社の社内勉強会で、「強いチームの作り方」というテーマで話をしたのでその際の資料を公開しておきます。 内容自体は、WEB+DB PRESS 83号に書いた内容なので興味があればそちらを参照ください。 最近DevOpsの文脈ですぐに「インフラ自動化しないといけない」とか「ツール使って効率化」みたいな話を頻繁に聞きます。 が、端的にいえば、「実際のところ、ソフトウェア開発上の問題の多くは、技術的というより社会学的なものである」というデマルコの一節の通りであり、 DevOpsの質もツールではなく、CLAMS(Culture、Lean、Automation、Measurement、Sharing)であって、土台となるのはやはり組織やチームの文化になります。 一度自分たちのチームや組織について考えてみるとよいと思います。

    【資料公開】強いチームの作り方 | Ryuzee.com
  • PHPUnitのアンチパターンとベストプラクティス

    みなさんこんにちは。@ryuzeeです。 SlideShareを徘徊していたらPHPUnitのアンチパターン・ベストプラクティスに関する素晴らしいスライドを見つけたので内容を抜粋で紹介します。 1. テストの中で何もテストしていない class FooTest extends PHPUnit_Framework_TestCase { public function testSomething() { $foo = new Foo; $foo->doSomething(new Bar); } } こういうテスト。どこにもアサーションがなくて何もチェックしていません。 $foo->doSomethingの戻り値を検証しないならなんの意味もありません。 純粋にTDDをしていれば、テストコード作成→テスト実行でRed→プロダクションコード作成→テスト実行でGreenなのでこういうテストは登場しませ

    PHPUnitのアンチパターンとベストプラクティス
  • コマンドラインからDropboxを操作する方法 (+Jenkinsとの連携) | Ryuzee.com

    前回のエントリでは、ReVIEWとJenkinsを組み合わせてPDFを自動でビルドする方法について説明しました。今回は更に進んで、ビルドされたPDFをJenkinsサーバから自動でコマンドライン経由でDropboxに保存する方法について説明します。 なお、ここで説明する内容は別にJenkinsと連携しなくても使えます。 例えば、サーバのファイルを定期的にバックアップしたり、シェルスクリプトの中で呼び出したりといったことが可能です。 Dropbox API Commandの導入コマンドライン経由でDropboxを操作するためには、Dropbox API Commandと呼ばれるツールを使うのが簡単です。 githubで公開されており、ライセンスはMITライセンスです。 https://github.com/s-aska/dropbox-api-command インストールDropbox AP

    コマンドラインからDropboxを操作する方法 (+Jenkinsとの連携) | Ryuzee.com
  • PHPの外部ライブラリの管理にComposerを使う | Ryuzee.com

    みなさんこんにちは。@ryuzeeです。 ComposerはRubyでいうところのBundlerのようなもので、アプリケーションが必要とする外部ライブラリを、そのアプリケーション固有の状態で一元的に管理してくれるツールです。 PHPではPearのようなコマンドを使ってライブラリをインストールすることが一般的ですが、アプリケーションによって必要とするバージョンが違う、といったケースでは問題が起こりやすくなります。 例えば手動でインストールをしていた場合、将来的にライブラリの配布が終わってしまったり、特定のバージョンが配布されなくなると困ってしまいます(したがって、インストールしたバージョンは構成管理の対象とするべきで、常に環境を再現可能にしなければいけません)。 Composerを使うことで、そのような問題からは簡単に解放されます。 なお、ComposerはPHP5.3.2以降で利用可能です

    PHPの外部ライブラリの管理にComposerを使う | Ryuzee.com
  • 会議で成果を出すための10の方法 | Ryuzee.com

    Categories Agile・生産性向上 (104) Ajax/Web2.0 (7) apache (14) CMS (3) Delphi (11) Linux (45) Perl (29) PHP (115) Ruby (4) Trac (82) Zope (11) オープンソース (104) Firefox (9) OpenVZ (3) phpBB (3) phpMyFaq (12) scuttle (3) taskfreak (2) wordpress (28) セキュリティ (13) フリーソフト (20) マニアックス (69) 日記 (534) 書評 (24) 翻訳・日語化 (3) 自宅サーバ (17) Archives 2010年7月 (9) 2010年6月 (9) 2010年5月 (19) 2010年4月 (16) 2010年3月 (7) 2010年2月 (9)

  • 【書評】手動デプロイからの卒業指南書「継続的デリバリー」

    継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化著者/訳者:David Farley、Jez Humble、和智 右桂、高木 正弘出版社:KADOKAWA/アスキー・メディアワークス発売日:2012-03-14大型:544ページISBN-13:9784048707879ASIN:4048707876 レビューに参加させていただいた縁でアスキー・メディアワークス社様より献いただきました。和智さん、高木さんの黄金コンビによる翻訳です。 デプロイ自動化に関する話を網羅的に扱ったはこれがはじめてでしょう。 上級技術者向けと書かれているように内容は結構ハイレベルで、構成管理、CI、テスト戦略についての前提知識が求められるように思いますが、アジャイルプロジェクトの中で日々改善を繰り返している人たちにとっては理解しやすいのではないかと思います。 デプ

    【書評】手動デプロイからの卒業指南書「継続的デリバリー」
  • 「塹壕よりScrumとXP」その後とテスト自動化順序の決め方

    みなさんこんにちは。@ryuzeeです。 「塹壕よりScrumとXP」はHenrik Kniberg氏が書いた無料書籍で、日語を含めて13ヶ国語で読まれている最も有名なスクラムとXPに関する導入事例の1つです。 日語訳はInfoQの以下のページからダウンロード可能です。 http://www.infoq.com/jp/minibooks/scrum-xp-from-the-trenches そのHenrik氏が、Agile Israele 2011で行ったキーノートが、非常に良いものなのでご紹介します。 資料は氏のサイトからダウンロードできます。 このスライドでは、Henrik氏がもし記事を書いた2006年に戻ったら今度は違うやり方をするであろう項目について説明しています。 項目は以下の15個です。 キューを制限するチーフプロダクトオーナーのロールを設けるバックログの項目はユーザースト

    「塹壕よりScrumとXP」その後とテスト自動化順序の決め方
  • Selenium + PHPUnitで簡単エンドツーエンドテストを実現する

    ここではSeleniumとPHPUnitを使って簡単にスモークテストを実現する方法を解説します。 基礎的な内容ですが、復習ということで。 下準備FirefoxにSelenium IDEをインストールするSelenium Serverを導入する(※ダウンロードへの直リンクはこちら)どちらもhttp://seleniumhq.org/download/からダウンロード可能です。Selenium IDEを使ったテストケースの作成もうこれはあちこちのサイトで説明されているので特に説明の必要はないでしょう(笑) 簡単に言えば、Firefoxを起動し、さらにSelenium IDEをたちあげて、操作を記録していけば良いだけです。 参考サイト SeleniumでWebアプリケーションテストを自動化 (ちょっと古いですが内容は役にたちます)Selenium IDE日語ドキュメントテストケースを自動で実行

    Selenium + PHPUnitで簡単エンドツーエンドテストを実現する
  • Hudson+phpmdでPHPコードの問題を自動検出する方法

    Hudson+PHPシリーズです(Javaとか他の言語でもいけるはずです)。 phpmdって何?phpmdはPHP Mess Ditectorの略で、PHPコードの潜在的なバグになりそうな箇所や実装上の問題を検出してくれるツールです。 例えば未使用の変数の指摘、多数のpublicメソッドのある巨大クラスの検出、一文字変数等もこのツールで検出可能です。 詳細はhttp://phpmd.org/about.htmlを参照してください。 phpmdのインストールこれは簡単で、いつものようにpearコマンドでさくっと入ります pear channel-discover pear.pdepend.org pear install --alldeps pdepend/PHP_Depend-beta pear channel-discover pear.phpmd.org pear channel-di

    Hudson+phpmdでPHPコードの問題を自動検出する方法
  • ソフトウェア開発におけるムダ | Ryuzee.com

    みなさんこんにちは。@ryuzeeです。 Alan Shalloway氏のWastes of Software Developmentが良い記事でしたので、抜粋・意訳にてご紹介します。 僕のトレーニングではいつもトヨタ生産方式の話やStandishのレポートの話をしています。 7つのムダのうち特に作り過ぎのムダをなくすことはとても重要で(もちろんほかも重要)、これがないと頻繁に継続的に顧客に価値あるフィーチャーを届けることはできなくなるからです。 さらに開発のプロセスの中で、常にどこにムダがあるのかを考えて改善していくことはチームに課された責任でもあります。 例えば思いつく限り以下のようなものはムダです。 使わない機能たくさんのオプション設定読まない仕様書読まない報告書やたらと体裁にこだわった文書更新されない文書目的のない会議決定事項が守られない会議遅いPC小さいディスプレイ行動の監視目的

    ソフトウェア開発におけるムダ | Ryuzee.com
  • BehatとSeleniumを組み合わせ受け入れテストを自動化する

    みなさんこんにちは。@ryuzeeです。 Behatは良さそうなので引き続き検証しています。 今回は、BehatとSeleniumを組み合わせて、受け入れテスト型のテストを自動化してみたので、その方法について説明しましょう。 なお、前回の記事を読まれていない場合はまずそちらを参照してください。 PHPでBDD(Behavior Driven Development)する方法 Seleniumの課題僕が関わっている案件では受入テストを自動化しているケースももちろんあって、その際はPHPUnitとSeleniumを組み合わせています。 このテストには以下のような課題があります。 画面の操作をするphpコードが大量にあって、ソースを見ただけでは何をしているのか分かりにくいSeleniumは操作に画面の要素名利用するため、例えばサイトのデザインを大幅に変えたりすると、テストの中身も大幅に書き換えな

    BehatとSeleniumを組み合わせ受け入れテストを自動化する
  • 開発をより良くしたい人が読んでおくべき10冊

    アジャイルな開発の導入支援の現場や色々な勉強会でよく「どんなを読んだら良いですか」と聞かれたりします。 何のためにを読んで勉強するかは人それぞれですし、自分のおかれたコンテキストでどのが役にたつかは分からないですが、以下にあげたは個人的に強くオススメできるです。人に聞くのも大事だし自分で試行錯誤するのも大事だけど、を読んで体系的に学んだり先人の知恵を学ぶことは続けたほうが良い。 プロダクティブ・プログラマ -プログラマのための生産性向上術どうやったら自分自身の生産性を高くすることができるのか。PCの使いこなしから始まり、自動化やバージョン管理等にも触れている プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)著者/訳者:Neal Ford、島田 浩二 (監訳)、夏目 大出版社:オライリージャパン発売日:2009-04-27単行

    開発をより良くしたい人が読んでおくべき10冊
  • 継続的デリバリー vs 継続的デプロイ

    みなさんこんにちは。@ryuzeeです。 Jez Humble氏のContinuous Delivery vs Continuous Deploymentが分かりやすいので抜粋・意訳にてご紹介します。 (翻訳部分はCC-BY−SAとします) ティモシー・フィッツの継続的デプロイに関するブログは、デイブと私が継続的デリバリーについてのを出版する1年以上も前に、すでに書かれていた。そんな中でなぜ私たちは異なる名前を選んだのだろうか。実際に違いはあるのだろうか?それとも単に我々が不親切なだけなのだろうか? 我々はいくつかの理由での名前を「継続的デリバリー」とすることにした。まず第一に、デプロイがリリースを意味しないというちょっと学者ぶった事実。我々がの中で言っているように、継続的に顧客受け入れ環境にデプロイすることはできるだろう。それ自体はたいしたことはない。継続的デプロイを特別なものにす

    継続的デリバリー vs 継続的デプロイ
  • 継続的デリバリーとは何か?

    みなさんこんにちは。@ryuzeeです。 継続的デリバリー(Continuous Delivery)の定義を改めて整理してみました。 まず1つめの定義は以下の通りです。 Continuous DeliveryとはリリースのスケジュールをIT部門が握るのではなく、ビジネス部門が握るということだ。 Continuous Deliveryを実装するということは、全体のライフサイクルを通じて常にソフトウェアが番環境にリリース可能であるということを意味する。すなわちどのビルドもボタン一発で、完全に自動化されたリリースプロセスを通じて、秒とか分の時間で利用者にリリース可能である、ということだ。 Jez Humble Continuous Deliveryとは何か?ユーザーとプロジェクトチーム(顧客やプロダクトオーナーも含む)の間に固いフィードバックループを作ることは、結局のところ、試験的な変更や新し

    継続的デリバリーとは何か?
  • Jenkinsでビルド・パイプラインを作る

    Jenkinsのプラグインでビルド・パイプラインを作ることができるので紹介。 #12月20日のワンクリックデプロイ勉強会の発表のネタバレっぽいのですが。 ビルド・パイプラインとはビルド・パイプラインとは、継続インテグレーションのプラクティスの1つで、テスト等を複数の単位に分割し、順番に流していくものである。一般的には継続的インテグレーションを利用していれば、SCMにソースコードをコミットした段階ですぐにユニットテストを走らせ、以降に、静的解析や結合テスト、受け入れテスト、ステージング環境へのデプロイ、番環境へのデプロイという形で進んでいくことになり、その単位でパイプライン要素を分ける。 当然パイプラインの途中で試験に不合格であれば、その後のプロセスには進めない。 これによって、例えばコミット時には即座にユニットテストレベルの結果を返して開発者のペースを阻害しないようにすることができる。(

    Jenkinsでビルド・パイプラインを作る
  • CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法

    みなさんこんにちは。@ryuzeeです。 CakePHP2.0になってテスティングフレームワークがSimpleTestからPHPUnitに変わったことで、以前に比べると大分簡単にはなっていますが、まとまった情報が少ないので整理しておきます。 事前準備JenkinsのインストールおよびCIサーバへのPHPのインストールは済ませておいてください。 CakePHP2.0でCIを行う場合は、以前のようにStagehand_TestRunnerを使ったりPhingを使う必要はありません(Phingは以前も使わない手もあった)が、PHPUnit、Xdebugのインストールは行なっておきます。 また今後利用するであろう、PMDやCPD等も導入しておくと良いでしょう。 なお、今回の作業はCentOS5.7上でPHP5.3.8を利用して行いました。 PHP関連のパッケージ導入 pecl install xd

    CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法
  • 5分で分かるデプロイ自動化への道

    12月20日に第1回ワンクリックデプロイ勉強会で、デプロイの自動化について好き勝手に喋ったりデモしたりする予定なのですが、当日話す内容の概略について以下に載せておきます。 以下にあげることをやっておけばデプロイ自動化、ワンクリックデプロイはそんなに遠くないところにあると思います。 ソースコードのバージョン管理いわずもがな。全ての起点はここにあるコードの共同所有の原則への理解このソースコードは番環境または開発環境などで同じように動作しなければならないテストを書く習慣、コミット前に他のテストも含めて通してからコミットする習慣設定ファイルのバージョン管理環境によって異なる設定値(接続先データベース情報など)が書かれた設定ファイルもバージョン管理する開発環境用、ステージング環境用、番環境用などに分けて定義し、容易に切り替え可能にする番環境に配置する際に、アプリケーションの各所を書き換えなけれ

    5分で分かるデプロイ自動化への道
  • 1