タグ

developmentに関するthraktのブックマーク (342)

  • データベースの内部動作を知る

    SQLのプログラミングは奥が深い。特にパフォーマンスの観点から、そう言えるだろう。 みなさんご承知の通り、同じ結果を出すプログラムでも、SQLの書き方次第で処理時間に何倍もの差が生じ得る。効率の悪いSQLを書いてしまう原因は、多くの場合、リレーショナルデータベースの内部動作やアプリケーションに関する理解不足である。両者をよく知った上で最適なSQLを書けるようになることは、システムエンジニアとしての重要なスキルの一つである。 特集『基礎から理解するデータベースのしくみ』では、リレーショナルデータベースの内部動作について、基的な部分を分かりやすく解説している。SQLプログラミングに役立つことはもちろん、SQLチューニングやデータベース設計のための基礎知識としても不可欠だ。 イントロダクション ブラックボックスのままでいいの? Part 1:SQL文はどのように実行されるのか SQL実行までの

    データベースの内部動作を知る
  • チケット管理システム大決戦第二弾 Trac vs Redmine vs JIRA vs Backlog を開催しました!勝者は? - Sean_SF’s blog

    デブサミで開催した「チケット管理システム大決戦第一弾」の続編として、昨日 Shibuya.trac にて「第二弾」を開催いたしました。日でよく使われているチケット管理システムである4製品、Trac、Redmine、JIRA、Backlogのユーザーを2名ずつ集め、その良し悪しについて意見交換し戦おうという企画です。 第一弾では大決戦と銘打ったわりには「戦いになっていない」というご意見をいくつか頂いたので、今回の第二弾は「ガチで戦う」方針で企画を立てました。モデレーターの @ryuzee さんが素晴らしく、時に「煽り」を交えながらディスカッションは進行しました。おかげで特に前半はパネリスト同士、チーム同士が戦っていたのではないかと思います。 ITSへの注目を集めたい、役立つ資料を作りたい この企画の目的は2つありました。1つは、チケット管理システムに対する注目を広く集めたいということです。

    チケット管理システム大決戦第二弾 Trac vs Redmine vs JIRA vs Backlog を開催しました!勝者は? - Sean_SF’s blog
  • svn+TeXでcommitするとPDF - オーム社開発部の出版システムでの書籍執筆:Geekなぺーじ

    以前、オーム社開発部の出版体制を取材しましたが、今回、私自身がそのシステムを使ってを書きました。 Subversionでバージョン管理をしつつLaTeXを書く形式です。 複数人でを書く時にバージョン管理ツールを使わないと、誰がどこをどういじったのかがわからなくなったり編集箇所が競合する場合が多いのですが、Subversionを使うことでそれらが解決可能です。 さらに、筆者か編集者のうちの誰かがsvn commitを行って最新版を更新すると、それに連動して最終原稿として印刷所に入稿されるものと同じ形のPDFが自動的に生成され、DTP作業がゼロになるとともに、筆者がアウトプットを細かく確認ができるという特徴もあります。 しかも、Subversionのコミットメールを編集者側も見ていて、該当部分に対する編集やコメントがすぐに投入され、こちらが文章を書いた数分後に編集側意見が含まれるPDF

  • 【資料公開】自動テスト vs 手動テスト

    みなさんこんにちは。@ryuzeeです。 SlideShareを徘徊していたところ自動テストと手動テストに関する良いスライドがあったので、翻訳して公開します。 ライセンスはオリジナルに準じてCC BY-SA 3.0とします。 内容としては、僕自身も一貫して主張しているテスト自動化の必要性の話で、主に以下の観点で記載されています。 作業量とコスト再利用性ユニットテストによる良い設計への誘導手動テストのリスクリスクマネジメント書き方が若干極端な箇所もあると思いますが、全体としてはかなり分かりやすいのではないでしょうか。 なお、テストの自動化に際しては、必ずしも全てのテストを自動化「しなければならない」わけではありません。 スライドではROIの例があがっていますが、テストの自動化のコスト>手動コストの1回あたりのコスト×実行回数になる場合もあり得るので、ROIやテスト自動化によって得られる効果に

    【資料公開】自動テスト vs 手動テスト
  • 僕がTDDをやめた理由 - カタチづくり

    タイトルは、まあ、半分釣り。TDDな人もそうでない人も、肩の力を抜いてお気楽にどうぞ。 題に入る前に まずお礼 ここで書くことは、前の記事 TDDはYAGNIに矛盾する? - カタチづくり から派生して色んな方と意見を交わした経験が元になっています。この場を借りて、色々とアドバイスを頂いた方に心から感謝の意を表します。 特にコメント欄にお寄せいただいた きしだ さんのコメントは、コメントと言うよりももはや一つの素晴らしい記事となっていて、もう必読といってもいいレベルじゃないでしょうか。当にありがとうございます。特にBDDについて大きなヒントを頂きました。 押し付けではなく、交換 タイトルから想像がつくとおり、ここにはどうしてもTDDに対して否定的な意見ばかりが並んでしまう。でも、だからといって僕がTDDを完全に否定しているとは思わないで欲しい。 僕が今一番恐れていることは、TDDに対し

    僕がTDDをやめた理由 - カタチづくり
  • EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指して

    十年一昔といいますが、文字通り一昔前の書籍ではJ2EEのEJBコンポーネントはプロセスが分散化されたリモート呼び出しにより処理を行う分散コンポーネントとして説明されています。そして、残念ながら現状Java EE関連の日語の書籍はこうした古い時代に書かれたものがほとんどとなっています。それゆえ、 開発効率がきわめて悪い 実行性能が悪い*1 仕様がきわめて複雑で理解が大変 といった悪いイメージが定着してしまっているのではないかと思います。しかしながら、最新バージョンのJava EE6では、Spring、Guice、SeamなどのOSSの軽量コンテナのアイデアを取り込むことにより、以前とは比較にならないくらい開発効率が改善されているという事実があります。 ここでは、Hello WorldのEJBの書き方を以前の古いバージョンから順次振り返りながら比較してみることで、EJBのプログラミングモデル

    EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指して
  • なぜUnitTestは理解されない?

    TwitterでこんなTweetが流れた… エビデンスとしてNUnitGUIのスクリーンショットと、対応するテストコードが含まれている部分のVSのスクリーンショットを取る作業が終りません・・・ UnitTestのエビデンスって…なに? 一般的にテストのエビデンスというと、次の2点を指す。 テスト手順を明らかにするもの(ex. テスト設計書、テスト仕様書、...) テスト結果の証拠(ex. 画面ハードコピー、DBスナップショット、...) UnitTestでは、これはこのように解釈できる。 テスト手順を明らかにするもの = テストコード テスト結果の証拠 = 今実行すればテストが全てグリーンになること これがなぜか理解されず、軋轢とストレスと大きな工数追加になっている現場がずいぶんある。 なぜUnitTestはいつまでも理解されないのだろう。 余談。これらのことは、Seleniumなどを使

    なぜUnitTestは理解されない?
  • GitHubへpull requestする際のベストプラクティス - hnwの日記

    みなさん、Git使ってますか?僕はまだメインのVCSがSubversionなのもあって、なかなか慣れません。せっかくGitを使っているのに、ちょっと不便なSubversionくらいの位置づけです。でも、同じような理解度の人って多いんじゃないでしょうか。 一方で、最近はGitHub管理のオープンソースプロジェクトが増えてきました。バグレポートを送るにしてもpull request*1が前提のような空気があり、Git初心者には少し敷居が高い印象があります。 そんな僕も先日初pull requestをしてみたんですが、色々な失敗の積み重ねで残念なpull requestになってしまいました。その反省を元に、稿ではpull requestする際のベストプラクティスを紹介します。これは「Git Workflow」をベースにコマンド例などを加筆したものです。 概要 pull requestする際は、

    GitHubへpull requestする際のベストプラクティス - hnwの日記
  • Gitを使った開発・運用フローの紹介

    私の所属している会社では、2年程前にバージョン管理システムをSubversionからGitに移行し、現在まで開発フローを試行錯誤してきました。ようやく形になってきたということで、守秘義務に接触しない程度に紹介&考察していきたいと思います。 形になってきたとはいえ、まだまだ試行錯誤中ですので色々なツッコミは大歓迎です。 現在の開発フローの俯瞰図# 現在の開発フローを俯瞰してみると大体下記図のような感じになっています。途中で図を書くのが面倒になった都合上、Jenkinsさんが1人しか居ませんが、実際はmasterブランチの他にreleaseブランチも監視してもらっています。 以降この図を元に話を進めていきたと思います。 Gitoriousを利用して自由に開発# GitoriousというGitHubに似たサービスがあります。このGitoriousはオープンソースとしても公開されていますので社内に

    Gitを使った開発・運用フローの紹介
  • いきあたりばったりのアーキテクチャと教訓

    スライドの作者であるGleicon Moraesは、これらの図を示した上で、リレーショナルデータベースはガムテープのようにつぎはぎで使えるような万能薬ではない。シャーディングや非正規化などは検討すべきよい選択肢であり、またリレーショナル以外のデータベースも選択肢としていれるとよいだろうと説いています。 そして次のような「リレーショナルデータベースの間違った使い方10項目」を示しているのです(訳は前述の記事「データベースの間違った使い方10項目」から)。 Dynamic table creation(動的なテーブルの作成) Table as cache(テーブルをキャッシュとして使う) Table as queue(テーブルをキューとして使う) Table as log file(テーブルをログとして使う) Distributed Global Locking(分散したグローバルなロック)

    いきあたりばったりのアーキテクチャと教訓
  • <チェック表>WEBサービスを立ち上げるまでにやらなければならないこと - プログラマー幸福論

    WEBサービスを立ち上げるまでに、やらなければならないことを自分用にまとめてみました。少人数でやっていると、いろいろやらなければならないことが多くてつい忘れてしまいがちですよね。 1) サービス名決定 サービス名とキャチフレーズだけは、最初に決定しておいた方がいいです。思いつかない場合は、TOPページのワイヤフレームを書きながら考えたりします。また、サイト名を Google などで検索してみて、ユニークな名前であるかを調べておかないと後で後悔したりします。 2) ドメイン取得/DNS反映 サービス名が決定したら、ドメインが利用可能か調べます。 最近では、.in や .me などを使った面白いドメイン名もありますよね。なるべく短く、覚えやすいドメイン名にします。 3) サーバー サービスを配置する、クラウドやレンタルサーバーなどからサーバーを選びます。 特殊なモジュールのインストールなどが必

    <チェック表>WEBサービスを立ち上げるまでにやらなければならないこと - プログラマー幸福論
  • その一方で、ウォーターフォールの現場にて開発者が出来ること

    Cummins onan dgca detector sentinel control generator set service repair manualjfjskeksemmmd

    その一方で、ウォーターフォールの現場にて開発者が出来ること
    thrakt
    thrakt 2011/04/19
    12ページ目で早くも挫けそうになってきた / 果たして今いる現場は変化を求めているんだろうか・・・
  • アジャイル開発 基本のキ - ヲトナ.backtrace

    今、アジャイルの導入のお手伝いをさせてもらっている現場で「他のスタッフにもアジャイルについてざっくり教えてよ」というオーダーで勉強会をやりました。 そこで「アジャイル開発 基のキ」と題し、実際の進め方の説明ではなく、その手前の考え方や心構えにフォーカスして話をしました。 20名ほどの人数向けに作った資料なのですが、普段アジャイルについてのイントロダクションの話をする時にいれるキーワードは大体盛り込んだ感じになったので、もしかすると誰かの役に立つかもしれないので公開しておきます。 ただし、勉強会のターゲットがエンジニアではなかったので、エンジニアリングについては薄くなっているのでご注意を。 Basic of Basics of Agile DevelopmentView more presentations from Nishimura Naoto. あと、話は変わりますが、普段アジャイル

    アジャイル開発 基本のキ - ヲトナ.backtrace
  • 大規模アジャイル開発の実態~ セールスフォース・ドットコムの作り方(前編)

    クラウド上に構築したアプリケーションをサービスとして提供するセールスフォース・ドットコム。同社は千人以上の開発者を抱える開発部門全体でアジャイル開発手法を採用し、開発を行っています。 アプリケーションのメジャーアップデートは年3回。クラウドで提供しているサービスという性格上、もしもアップデートにバグがあればそれは全ユーザーに対して大きな影響を与える可能性があります。バグがないこと、性能低下を起こさないこと、品質管理はパッケージソフトウェア以上に重要です。 同社はどのようにしてアジャイル開発手法を採用し、品質を重視した開発を進めているのか。2月17日に行われたデベロッパーズサミット2011で、株式会社セールスフォース・ドットコム CTO 及川喜之氏のセッション「salesforce.comの作り方 どのように世界最大規模のアジャイル開発を実現したか」で詳しく紹介されていました。 同社の開発手

    大規模アジャイル開発の実態~ セールスフォース・ドットコムの作り方(前編)
  • 「10分でスクラム」、アジャイル開発の「スクラム」に興味がわいた方へ

    今週は、野中郁次郎氏とジェフ・サザーランド氏というアジャイル開発手法「スクラム」の生みの親2人が基調講演を行った歴史的イベント「Innovation Sprint 2011」のレポートを2公開し、たくさんの方に記事を読んでもらうことができました。 スクラムの生みの親が語る、スクラムとはなにか? たえず不安定で、自己組織化し、全員が多能工である ~ Innovation Sprint 2011(前編) 重要なテクノロジーは10名以下のチームで作られた ~ Innovation Sprint 2011(後編) この記事きっかけに「スクラム」に興味を持ったという読者もおられたようで、そんな方のために(かどうかは分かりませんが:-)、「Innovation Sprint 2011」の実行委員長だった川口恭伸氏が「10分でスクラム」というスライドを公開しました。

    「10分でスクラム」、アジャイル開発の「スクラム」に興味がわいた方へ
  • 09:15の儀式

    XPのプラクティスや推奨事項の中には「なんだ。別にそれ今更新しい訳でもないじゃん。昔からずーっと言われてるけどできなかっただけで。ていうかすんなりできりゃそんなもん誰も苦労しねーよ」的なモノも結構ある訳で。 てな訳で今回のネタはスタンドアップミーティングなのですが。これも特に目新しいとかそうゆう訳じゃないですよね。ずーっと前から結構頻繁にいろんなところで話出てる。 で、これ実は既に経験済です。前の常駐先で強制的にやらされまして(笑)。んじゃ始めに感想書いておきましょうか?素直に。シンプルに。 (・∀・)イイ! 顔文字使うなよ>俺。 いやね。信じられない、と言う方もいるかもしれませんけど。このプラクティス(まぁ正確にはプラクティスじゃないんだけど)、ちゃんと使えば、確実に機能します。ちゃんと使えば・・・ね。 含みを持たせたところでちょっと体験談を書いてみようと思いますが。 とある常駐先に合流

  • ソーシャルゲームのためのMySQL入門その2 | BLOG - DeNA Engineering

    こんにちはこんにちは。11インチMacBook Airが欲しくてたまらないiwanagaです。 前回の記事 が幸いにもご好評を頂けた様で非常にうれしいです。嬉しくなって、ついがんばって第2弾を書いてしまいました。引き続き、ソーシャルゲームでよく使われるテーブルタイプ毎にちょっとしたテクニックを紹介していきます。 今回はちょっとライトな感じ&読み物になってしまっていますが「ユーザID単位で1つだけ持つデータ」と「パラメータなどのマスターデータ」についてご説明したいと思います。ちなみに次回はInnoDBのデータ構造の簡単な説明と複合プライマリーキーのデータについて、その次で紹介し損ねたちょっとマニアックなテクニックや性能管理のための手法を紹介することを予定しています。 その前に。。。 先日行われた JAPAN INNOVATION LEADERS SUMMIT で弊社松信が「ソーシャルゲーム

    ソーシャルゲームのためのMySQL入門その2 | BLOG - DeNA Engineering
  • Atlassianと永和が提携 - JIRAなどを活用したアジャイル開発支援を提供へ | エンタープライズ | マイコミジャーナル

    永和システムマネジメントと豪Atlassian(以下、アトラシアン)は2月15日、パートナー契約を締結したことを発表した。今後、永和システムマネジメントが、アトラシアンのサービスパートナーという立場からアトラシアンユーザーに向けたアジャイル導入サービスを提供していく。 豪AtlassianでDiretor of Business Developmentを務めるTodd Revolt氏 アトラシアンは、ソフトウェア開発を効率化する各種のツール群を提供する企業。バグ/課題管理ツール「JIRA(ジラ)」、アジャイルプロジェクト管理「GreenHopper(グリーンホッパー)」、継続的インテグレーション「Bamboo(バンブー)」、リポジトリブラウザー「FishEye(フィッシュアイ)」、コードレビュー「Crucible(クルーシブル)」、エンタープライズウィキ「Confluence(コンフルエン

  • 自宅サーバのインフラ設計書を公開します - @int128

    自宅サーバのインフラ設計書を公開します。 Design paper of the home server(抜粋) 昨夜にTwitterで公開したら予想外に反響があったので、ちゃんとエントリに残すことにしました。クラックされるおそれがあるので、細かい部分は公開できないことをご了承ください。 内容はこんな感じ。 要件概要 機器仕様 ネットワーク設計 ソフトウェアスタック設計 共通基盤設計 サーバ詳細設計 上記にバックアップ設計や運用管理まわり*1を加えれば、インフラの設計書はだいたいこんな感じではないかと思います。 インフラの要件定義は難しい 一方で、インフラの要件定義は十分に標準化が進んでおらず、会社やチームによって文化がかなり違います。特に受託開発(SI)の場合は、お客様の中にインフラに詳しい人がいなくて調整に苦労することも多いと思います。費用と可用性のトレードオフの部分はなかなか伝わりづ

    自宅サーバのインフラ設計書を公開します - @int128
  • 最近興味深いと思ったWeb記事のリンク集 - give IT a try

    社内のメンバーに紹介しようと思ってためてきた各種Web記事へのリンクが大量に溜まっちゃいました。 ついでにここでも紹介しておきます。 一部の記事は会員登録が必要かもしれません。あしからず。。。 プログラミング/プログラム設計 プログラミングについてあまり知られていない7つのこと http://www.tommyjp.com/2010/08/blog-post_1710.html => どれも超重要。知らなかった人はこれを機に覚えておきましょう。 ソースコードの質 http://el.jibun.atmarkit.co.jp/genmaicha/2010/11/post-5c3e.html => 保守性、可読性、拡張性の重要性について。 技術的負債 http://d.hatena.ne.jp/asakichy/20101210/1291936604 => 技術的負債の原因や解決策について(そ

    最近興味深いと思ったWeb記事のリンク集 - give IT a try