タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

契約による設計に関するJHashimotoのブックマーク (9)

  • 「オブジェクト指向入門 第11章 契約による設計」を読んだ - $shibayu36->blog;

    オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング) 作者:バートランド・メイヤー翔泳社Amazon これまでの続きで、「オブジェクト指向入門 第11章 契約による設計」を読んだ。「オブジェクト指向入門 第6章 抽象データ型」を読んだ - $shibayu36->blog; で紹介した抽象データ型と同様に非常に面白い章であった。プログラムの設計を考える時に役立ちそうな知識が自分の中で言語化されたので、今後の設計時や、コードレビューの指摘の時にも役に立ちそう。 この章は信頼性の高いソフトウェアを記述するために、表明という概念を解説してくれる。例えば、ソフトウェアが正しいとは何かについての議論や、事前条件・事後条件・クラス不変表明のような表明の種類の説明、それぞれの表明の役割、表明の使いみち、表明の監視などについての

    「オブジェクト指向入門 第11章 契約による設計」を読んだ - $shibayu36->blog;
  • 10 Steps for Implementing Code Contracts Static Analysis

    JHashimoto
    JHashimoto 2014/12/28
    “I'm a fan of the Code Contracts from Microsoft Research. Adding them to an existing code base can be an exercise in frustration, though. If you turn on static analysis, it can generate thousands of warnings. I have some tips on how to attack those warnings, based on my experience.”
  • コード コントラクト

    コード コントラクトには、事前条件、事後条件、およびオブジェクト不変条件を .NET Framework コードで指定する方法が用意されています。 事前条件とは、メソッドやプロパティに入るときに満たされている必要がある要件です。 事後条件は、メソッドやプロパティのコードが終了するときの予測を表します。 オブジェクト不変条件は、正しい状態のクラスに対して予期される状態を表します。 コード コントラクトには、コードをマーク付けするためのクラス、コンパイル時の分析のための静的アナライザー、およびランタイム アナライザーが含まれます。 コード コントラクトのクラスは System.Diagnostics.Contracts 名前空間にあります。 コード コントラクトには次のような利点があります。 テストの強化: コード コントラクトでは、コントラクトの静的検証、ランタイム チェック、およびドキュメ

    コード コントラクト
  • ContractPublicPropertyNameAttribute クラス (System.Diagnostics.Contracts)

    public ref class ContractPublicPropertyNameAttribute sealed : Attribute [System.AttributeUsage(System.AttributeTargets.Field)] [System.Diagnostics.Conditional("CONTRACTS_FULL")] public sealed class ContractPublicPropertyNameAttribute : Attribute [<System.AttributeUsage(System.AttributeTargets.Field)>] [<System.Diagnostics.Conditional("CONTRACTS_FULL")>] type ContractPublicPropertyNameAttribute = c

    ContractPublicPropertyNameAttribute クラス (System.Diagnostics.Contracts)
    JHashimoto
    JHashimoto 2014/12/28
    "フィールドの可視性がメソッドよりも低い場合に、フィールドをメソッド コントラクトで使用できることを指定します。"
  • MSDN マガジン: Cutting Edge - クラスにソフトウェア コントラクトを導入する

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 クラスにソフトウェア コントラクトを導入する Dino Esposito ソフトウェア開発の古くからの良き慣習として、重要な動作を行う前に、各メソッドの先頭に条件付きステートメントという防壁を設置することが推奨されてきました。各条件付きステートメントでは、入力値が確かめなければならないさまざまな条件をチェックします。条件が満たされなければ、コードで例外をスローします。このパターンは、多くの場合、"If-Then-Throw" と呼ばれます。 しかし、効果的で正しいコードを記述するのに必要なのは If-Then-Throw だけでしょうか。これであらゆる場合に事足りるのでしょうか。 If-Then-Throw

    MSDN マガジン: Cutting Edge - クラスにソフトウェア コントラクトを導入する
    JHashimoto
    JHashimoto 2014/11/30
    “コードでチェックを行っておくと、クラスが自己記述的になり、クラスで実行できる処理と実行できない処理が明確になります。これは、コントラクトを使用するサービスの条件にとてもよく似ています。”
  • .NET 4の新機能を探る:コード契約

    垂直スケーラビリティと効果的なテストによる金融取引システムのパフォーマンスと効率の最大化 Peter Lawrey氏はJavaチャンピオンであり、Chronicle SoftwareのCEOとして、開発者を鼓舞してソリューションのクラフトマンシップを高めることに情熱を注いでいる。経験豊富なソフトウェアエンジニアとして、Lawrey氏はソフトウェア開発プロセスにおけるシンプルさ、パフォーマンス、創造性、革新性を奨励することに努めている。

    .NET 4の新機能を探る:コード契約
    JHashimoto
    JHashimoto 2014/11/30
    “ObjectInvariant(invariantは不変という意味)メソッドという仕組みがある。この特別なメソッドは契約だけを持ち、これを各メソッドの最後に挿入して目的のオブジェクトの状態が変わってないかを確かめるのに使う。”
  • Code Contracts

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. August 2009 Volume 24 Number 08 CLR Inside Out - Code Contracts By Melitta Andersen | August 2009 This column is based on a prerelease version of the Microsoft .NET Framework 4. Details are subject to change. Contents Parts of the Code Contracts System T

    Code Contracts
  • MSDN マガジン: Cutting Edge - Visual Studio 2010 における Code Contracts の設定

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 Visual Studio 2010 における Code Contracts の設定 Dino Esposito 先月は、Microsoft .NET Framework 4 に実装するソフトウェア コントラクトについて紹介しました。Code Contracts というソフトウェア コントラクトを使用すると、コードが正しく機能するために満たすべき正式な条件を表現できます。メソッドが想定しているデータを受け取らない場合や、想定している事後条件に従わないデータを生成した場合は、Code Contracts によってコードから例外をスローします。事前条件と事後条件の概要については、先月のコラム (msdn.micr

    MSDN マガジン: Cutting Edge - Visual Studio 2010 における Code Contracts の設定
    JHashimoto
    JHashimoto 2011/06/12
    "Code Contracts は、十分に調査する価値のある .NET Framework の領域です。ここでは、構成オプションの表面をなぞったにすぎず、静的チェッカーの使用については詳しく説明しませんでした。"
  • neue cc - Tester-DoerパターンとCode Contracts

    僕と契約して安全性の高いソフトウェアを作ってよ!というだけじゃ、何か、弱い。動機付けに足りない。という、分かったような分からないようなCode Contracts。困ったところは、で、何が嬉しいの?にたいする積極的具体的な動機付けを提供しにくいということ。契約をしっかり行うことで、強固なソフトウェアが設計出来ます。うーん、理念は分かりますけど実用的に便利ー?if hoge==null throw に毛が生えた程度のものだったら、ちょっとよくわからない。 // こういうコード見るともう目も当てられなくて、画面の半分が引数チェックで埋まってるよ! public void Hoge(string arg1, string arg2, string arg3) { if (arg1 == null) { throw new ArgumentNullException("arg1"); } if (

    JHashimoto
    JHashimoto 2011/05/12
    "静的チェックが最も強力なのは確かですが、Standardのユーザーのためにも、ドキュメント生成、IntelliSense表示サポート、Pex自動テスト生成サポート、引数名を文字列で書かなくていい。"
  • 1