タグ

ソフトウェア開発に関するkkotyyのブックマーク (10)

  • いまさらながらだけど、オブジェクトとクラスの関係を究めてみようよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    オブジェクトとクラスの関係について、次のような説明を見かけました(文言の引用ではなくて、檜山による要約)。 オブジェクトとクラスは全体としてツリー構造をしていて、ツリーの末端をオブジェクト、末端以外のノードをクラスという。末端であるオブジェクトは、その親ノードであるクラスのインスタンスと呼び、クラスどおしの親子関係を継承関係と呼ぶ。 うーむ、この説明、ある意味「簡潔でわかりやすい」とも言えるのだけど、ちょっと単純化し過ぎでしょ。 オブジェクトやクラスの概念て、そんなに美しくもなきゃ、整合的でもありません。実用性やら実装上の都合やらでゴチャゴチャですがね。しかし、そのゴチャゴチャが悪いともいえません。ゴチャゴチャを無理に単純化することなく、必然性を持った(幾分は偶発的だけど(苦笑))複雑さとして理解すべきかと思います。 というわけで、メタクラスやレイフィケーション(reification)な

    いまさらながらだけど、オブジェクトとクラスの関係を究めてみようよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • なぜUnitTestは理解されない?

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

    なぜUnitTestは理解されない?
  • 求ム、障害分析アナリスト - rabbit2goのブログ

    終了した開発プロジェクトの問題分析を行っている。「バグの源流をたどれ」の如く、なぜなぜ分析で問題の根原因を探り、抜対策案をまとめるのが目的だ。さすがに限られた時間内で全障害を検証するのは不可能なので、優先度の高い問題のみをピックアップしてから分析を行う。Tracのチケットに記載された情報を元に、仕様書の記載ミスなら変更前後の仕様書を見比べ、コーディングミスなら該当するコミット状況を確認し、テスト漏れならテスト手順書の記載を検証するといった感じだ。 開発対象も開発者も異なるプロジェクトを見ているけれど、いずれの開発でも共通の傾向があるので面白い。 障害は偏在する 全ての障害が一様に分布するのではなく、特定の機能、開発者、モジュール等に著しく偏って発生することが多い。パレートの法則ほどではないけれど、その偏り方は目に見えてはっきりと分かる程だ。 類似の障害は繰り返し発生する 一つのプロジェ

    求ム、障害分析アナリスト - rabbit2goのブログ
    kkotyy
    kkotyy 2011/05/18
    確かにコメントがすごい。
  • DDDの読書記録(第1部序章、ドメインモデルを機能させる) - 達人プログラマーを目指して

    先日開催されたQCon Tokyoにて、翔泳社さんのブースでエリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)をTシャツ付きで購入しました。そして、Twitterにて翔泳社の岩切さんと というやり取りがあったのですが、結局、ご好意で急遽サイン会を開催していただけることになりました。 それで、原著者のエヴァンスさんと翻訳者の一人である和智さんのサインをいただくことができました。当に感激です、ありがとうございました。(ご愛嬌で和智さんのサイン日が11日になっていますが、実際は12日です。) ということで、もともと大好きなDDDのだったのですが、サイン入りということでますます真剣に読書に取り組みたいという気がしてきました。今後日語版を用いた勉強会も計画されているみたいですが、とりあえず、章ごとに読書記録をつけていきたいと思います。

    DDDの読書記録(第1部序章、ドメインモデルを機能させる) - 達人プログラマーを目指して
  • レガシープロジェクトでテストの自動化を始める

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    レガシープロジェクトでテストの自動化を始める
    kkotyy
    kkotyy 2011/02/05
    "一気にレガシーアプリケーション全体を自動化する機会はほとんどない" "うまくいったのは、様々な要素の組み合わせ"
  • ソフトウェア工学とは何か

    ソフトウェア設計とは何か? (原文: What Is Software Design?) by Jack W. Reeves (c)C++ Journal - 1992 訳者まえがき この文書は,Jack W. Reeves 氏が1992年に C++ Journal に寄稿した記事の邦訳です。 記事では,オブジェクト指向プログラミング言語の代表として C++ を挙げていますが,これは記事が執筆された当時,一般的に利用可能なオブジェクト指向言語は C++ だけであったという事情があるためです。 今では C++ に加えて Java,Delphi,C# といったオブジェクト指向言語が利用可能となっていますが,そんな今でさえこの記事は古さを感じないものとなっており,ソフトウェア開発の質,現状を鋭くえぐるものとなっています。 邦訳の公開を許諾していただいた Jack W. Reeves 氏に,

  • Don't Tell, Ask - 求めよ、命じるな - @katzchang.contexts

    えーと、どんな因果か、レビューされる側よりもする側になることが多くなってしまった。 対象となる生産物の欠点を指摘することは、レビューの大事な役割の一つであるとされている。だが、レビュアーとして一番怖いのは、間違った指摘や無意味な指摘をしてしまうことだったりする。そう、レビュアーもまた間違いを犯すんだよ。恐ろしいことに。 そこで有効なのが、"Don't Tell, Ask."「求めよ、命じるな」の原則。 レビュー対象物の「至らなさそうな点」に対して、なぜそこはそうなっているのかについて答えるよう求める。自分がより良いアイデアを持っていれば、それを伝え、どちらが優れているか判断を求める。「ここは、こうしてよ」のような命令(出す側は「アドバイス」と呼ぶ)は出さない。だって、レビュアーの意見の方が優れている保証なんて、何もないんだからね。 そもそもレビューをするのは、そのアドバイスに黙って従う初級

    Don't Tell, Ask - 求めよ、命じるな - @katzchang.contexts
    kkotyy
    kkotyy 2011/01/02
    『レビュー対象物の「至らなさそうな点」に対して、なぜそこはそうなっているのかについて答えるよう求める。』『レビューの最初に、気にかかっていることはないか尋ねる』
  • マイクロソフト Project Server 簡単導入パック | 大塚商会

  • チェックリストを使えばレビューの指摘件数増に統計的有意差があったという報告。で、チェックリストをどう使えばよいか?:森崎修司の「どうやってはかるの?」:オルタナティブ・ブログ

    チェックリストを使えばレビューの指摘件数増に統計的有意差があったという報告。で、チェックリストをどう使えばよいか? 情報処理学会第170回ソフトウェア工学研究会で発表した内容。坂東祐司、森崎修司、松健一「セキュリティ要件のレビューにおけるチェックリストの表記方法の比較」。 チェックリストに収録された質問に答えていくことにより、レビュー対象の欠陥を検出する。論文では、90名超の協力者による実験を実施し、チェックリストを使わない場合、表記方法だけが異なる2種類のチェックリストの3つのグループで、指摘の正答数、正答率を調べた。チェックリストを使わない場合と比較するとチェックリストを使用したほうが、正答数、正答率ともに向上し、統計的有意差があった、というもの。 チェックリストを使ったほうが欠陥の検出数、正答率も高くなるという結果となった。今回のチェックリストは論文のタイトルのとおり、セキュリティ

    チェックリストを使えばレビューの指摘件数増に統計的有意差があったという報告。で、チェックリストをどう使えばよいか?:森崎修司の「どうやってはかるの?」:オルタナティブ・ブログ
    kkotyy
    kkotyy 2010/11/17
    『長年の蓄積で巻物と化した長いチェックリストを網羅的に消化するだけでは、今回のような結果にはなりにくいだろう』はげどう。チェックリストはあった方がいいけど「巻物」はイクナイ !
  • アジャイルって受託開発との相性が最悪な気がする - GoTheDistance

    全くもって、その通りだなぁと思った。 初期段階ですべての意志決定をしても、問題はコードを書き始めてから表れるのです。そして終わりに近い時点で判断する方が、より正しい判断ができるはずです。ですから、できるだけ意志決定は先延ばしにして、正しい意志決定をしようとするのがアジャイルのやり方です。 「有能な人がコードを書くべき」「意志決定はできるだけ先延ばし」「契約を変えるのは難しい」アジャイルの専門家の答え - Publickey 「ウオーターフォールとは」のラベル貼りの議論になるとめんどくさいから、とりあえず「初期段階ですべての意志決定をしようとするシステム開発の進め方」という定義で話を進めたいと思います。 滝 「要件定義」→「設計」→「実装」→「テスト」という一連の流れがあって、ウオーターフォールなるものは前工程が100になるまでひたすらそこでPDCAを回します。100になると言う意味は、ソフ

    アジャイルって受託開発との相性が最悪な気がする - GoTheDistance
  • 1