タグ

2007年12月18日のブックマーク (11件)

  • Enterprise Library 2.0を特徴づけるDI機能とは - @IT

    「マイクロソフトが推進するオープンソース・ライブラリ」として開発された「Enterprise Library」(以下EntLib)は2005年1月のリリースから稿執筆時点ですでに1年以上が経過し、その間さまざまなツール、エクステンション、Application Blockが開発され、さらに2005年6月にはマイナー・バージョン・アップ版としてEntLib 1.1もリリースされた。 それと並行して米マイクロソフトのPAGチーム(Platform Architecture Guidance Team)は、来るべき新しい時代を見据えて.NET Framework 2.0対応のEntLibの開発を着々と進め、2006年1月に晴れて「Enterprise Library for .NET Framework 2.0」(以下EntLib 2.0)をリリースしたのである。 EntLib 2.0は従来の

    Suicom
    Suicom 2007/12/18
  • オブジェクト指向設計帖 巻之二

    一、はじめに 今日のソフトウェアで扱う問題は非常に複雑であり、近年では、さらに複雑化かつ多様化する方向にあります。しかし困ったことに、われわれ生身の人間は、一度に考える範囲が限られている為、全ての問題を一度に取り掛かることは、現実問題として不可能です。そのため設計では、実現手段を考える上で、複雑な問題を分割する作業も必要になります。オブジェクト指向設計では、問題を構成する責務を意識して、クラスとして分割します。そして、そのクラスのインスタンスであるオブジェクトが協調作業することによって、提示された問題を解決するのです。 ここで、クラスをどうやって導出する、あるいは既存のクラスに何を実行させるか、ということを考える際に「責務(Responsibility)」という視点が非常に重要になってきます。もちろん、責務だけを考えればで優れた設計ができるわけではありません。しかしながら、責務を意識するこ

  • ブール値を返すメンバー関数の命名規則

    関数の名前の付け方は人それぞれですが、使う単語が同じなら、関数の名前はほぼ同じものになると思います。例えば、サイズをセットする関数の名前を、「set」と「size」という単語を使って考えると、ほぼ全員が「SetSize」と答えるでしょう。「SizeSet」「SizeToSet」「SizeSetted」「SettingSize」といった名前を考える人は、ほとんどいないと思います。 ところが、真か偽かのブール値を返す関数の名前は、混乱することが多いようです。 ここでは、Java言語で採用されている命名規則と、その解釈の仕方を紹介します。 関数名が混乱する例 ブール値を返す関数では、「Is○○」という名前を良く見かけます。例えば、中身が空っぽかどうか、の判定をする関数には、IsEmptyという名前が良く使われます。MFCのCStringクラスや、JavaのListインターフェースなどにも、IsE

  • エラー処理とログ出力

    ソフトウェアの開発において、エラー処理は、時には来の機能よりも重要です。業務として開発するソフトウェアでは、来の処理を行うためのコードよりも、エラー処理のコードの方が量が多くなることも良くあります。 ところが、実際のソフトウェアの開発では、エラーをどこでどのように出力するかについては、実装者任せになってしまうことが多いようです。ソフトウェア設計書を見ても、エラーの出力については記述されていないことも良くあります。実装が終わってから、最後に慌しくエラーの出力を組み込むこともあります。 エラー処理について考えてみると、たくさんの難しい問題があることが分かります。これらの問題を理解した上で、きちんとエラー処理の仕組みを考えないと、ソフトウェアの設計や品質にも、重大な影響が及ぶかもしれません。 エラー処理とログ出力は、来、どのようにして行うべきなのでしょうか。 エラーを知らせる仕組み ソフト

  • インピーダンス・ミスマッチを解決する、O/Rマッピングの設計

    オブジェクト指向言語であるJava言語からリレーショナル・データベースにアクセスする際には、インピーダンス・ミスマッチという問題が起こることは、よく知られている。 とはいえ、Java言語でデータベースにアクセスするソフトウェアを作るのは、難しいことではない。インピーダンス・ミスマッチは、コーディングが難しかったり、ソフトウェアを動かすと障害が起きる、といった類の問題ではないため、結局、何が問題なのか、良く分からないかもしれない。 ここでは、オブジェクト指向言語からリレーショナル・データベースにアクセスする際に、具体的にどのような問題に遭遇するのか、分かりやすい例を使って紹介しよう。 さらに、インピーダンス・ミスマッチを解決すべく、いくつかのO/Rマッピング方法を考えてみて、その良し悪しを検討してみよう。 ここで紹介する「伝言板システム」では、シャドウ・インフォメーションをインターフェースで

    Suicom
    Suicom 2007/12/18
    [O/Rマッピング][オブジェクト指向]
  • 連載:Enterprise Library概説 一貫した例外管理機能を実装しよう(1/2) - @IT

    ―― 例外ポリシーの構築を支援する「Exception Handling Application Block」 ―― 市川 龍太(patterns & practices Champion) 2005/10/01 前回では、Logging & Instrumentation Application Blockを使ったログ出力機能の実装とカスタム・ログの作成について解説した。 今回は初めにMicrosoft Patterns & Practices(以下P&P)が提示する例外管理のベスト・プラクティスを紹介し、それを踏まえてException Handling Application Block(以下EHAB)を使った例外ポリシーの構築方法について解説していく。 例外管理のベスト・プラクティス 「例外管理」とひと口にいっても、アプリケーションの内部で発生した例外に対しては、考慮すべき点がいく

  • ドメイン固有言語 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "ドメイン固有言語" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2023年12月) ドメイン固有言語(ドメインこゆうげんご)またはドメイン特化言語(ドメインとっかげんご、英語: domain-specific language、DSL)は、特定のタスク向けに設計されたコンピュータ言語[1]である。 DSL は一種類のタスクをうまく記述することに集中したプログラミング言語であり、古くから存在した。何らかのプログラミング言語それ自体の構文と処理系を利用する internal DSL(あるいは embedded DSL)と、独立した構文と

    Suicom
    Suicom 2007/12/18
  • ITmedia エンタープライズ:第3回 話題騒然! 「言語内DSL」の概念とRake【前編】 (1/2)

    第3回 話題騒然! 「言語内DSL」の概念とRake【前編】:Ruby on Rails究極指南(1/2 ページ) 近年、特定の領域に存在する問題の解決に特化してデザインされたコンピュータ言語「DSL」が注目を集めている。稿では、RubyとDSLの関係について解説していく。Railsによって注目を浴びたRakeを取り上げて、DSLの概念やRakeの特徴、その使い方などを説明する。 RubyとDSLの関係 近ごろ、DSLという考え方が注目を集めています。DSLとは、特定の領域(ドメイン)に存在する問題の解決に特化してデザインされたコンピュータ言語のことを指します。 DSLの考え方*は新しいものではありません。例えば、awkは「テキストをフィルタリングする」という問題を解くことに特化したDSLと考えられます。そのほか、自分で特定の問題を解くためにミニ言語を設計・実装された経験のある方もいるで

    ITmedia エンタープライズ:第3回 話題騒然! 「言語内DSL」の概念とRake【前編】 (1/2)
    Suicom
    Suicom 2007/12/18
  • Martin Fowler's Bliki in Japanese - ドメイン特化言語

    http://martinfowler.com/bliki/DomainSpecificLanguage.html ドメイン特化言語(DSL:Domain Specific Language)とは、 ある特定の種類の問題に特化したコンピュータ言語のことです。 様々な問題に対応できる汎用的な言語のことではありません。 ドメイン特化言語についてはこれまでも議論されてきましたし、 コンピュータが使われてきたのと同じくらい長い間使われてきました。 DSLを頻繁に使用しているコミュニティにUnixコミュニティがあります。 そこでは、DSLは「リトル言語」や「ミニ言語」などと呼ばれています (この伝統について、Eric Raymondが素晴らしい議論を提供してくれています)。 最も一般的なUnixスタイルのやり方は、 言語の文法を定義し、コード生成機能を使ってDSLから汎用的な言語を生成する、 あるい

    Suicom
    Suicom 2007/12/18
  • Seasar2 - S2JDBC - S2JDBCとは

    概要 S2JDBCは、データベースプログラミングの生産性を10倍以上高めることを目標として作成した Seasar2のO/R Mapperです。何に比べて生産性が10倍かというとJava標準のJPA(Java Persistence API)に対してです。次のような特徴があります。 流れるようなインターフェースと脱CoC 「流れるようなインターフェース」とは、文章を記述していくようにメソッドを呼び出していく手法です。 詳しくは、ファウラーたんの 流れるようなインターフェース を参照してください。あれこれ説明するよりも、検索の例を見たほうがわかりやすいでしょう。 List<Employee> results = jdbcManager.from(Employee.class) .join("department") .where("id in (? , ?)", 11, 22) .orderB

  • Martin Fowler's Bliki in Japanese - 流れるようなインターフェース

    http://www.martinfowler.com/bliki/FluentInterface.html 2005/12/20 数ヶ月前、Eric Evansと一緒にあるワークショップに参加した。 そこで彼がとあるインターフェースのスタイルについて語ったのだが、 我々はそれを「流れるようなインターフェース(fluent interface)」と名づけることにした。 一般的なスタイルではないが、もっと評価されるべき代物だ。 おそらく例を示したほうがいいだろうから、そうしてみることにする。 一番簡単な例は、EricのtimeAndMoneyライブラリだろう。 時間の間隔を作るには、通常は、以下のようにする。 TimePoint fiveOClock, sixOClock; ... TimeInterval meetingTime = new TimeInterval(fiveOClock,