2012-04-18 56 views
5

Tôi đã thấy một bản demo tuyệt vời về các Hợp đồng Mã C# và tôi muốn bắt đầu triển khai chúng vào mã có thể. Tôi ước gì tôi đã có chúng trong mã của tôi rồi. Bắt đầu từ đâu?Bắt đầu từ đâu với hợp đồng mã?

Tôi không lấy được bất kỳ tài liệu in nào từ bản trình diễn. Bất kỳ bài đọc được đề xuất nào?

Bất kỳ đề xuất nào cho người mới bắt đầu bằng Hợp đồng mã?

Cảm ơn trước sự giúp đỡ của bạn.

+2

http://devjourney.com/blog/code-contracts-part-1-introduction/ – albertjan

+2

Hãy coi chừng chú thích Hợp đồng mã trong Khuôn khổ .NET BCL có phần hơi chói tai. Ví dụ, nhiều phương thức luôn trả về một đối tượng không null (trừ khi nó ném, dĩ nhiên) không được đánh dấu như vậy. Điều này buộc bạn phải xả rác mã của bạn với các kiểm tra null hoặc các cuộc gọi 'Assume' để thỏa mãn máy phân tích tĩnh. – phoog

+2

@phoog đúng, nhưng nhóm Hợp đồng Mã đã làm việc để thêm hợp đồng vào ngày càng nhiều BCL, vì vậy điều này đã được cải thiện gần như mọi bản phát hành. – Andy

Trả lời

6

Tôi bắt đầu với Wiki này mô tả Design by Contract. Sau đó, đi sâu vào tài liệu trên MS' implementation. Để thực sự làm việc với mã của bạn, tôi cho rằng bạn có thể bắt đầu ở hầu hết mọi nơi, nhưng có thể bắt đầu với các khu vực ít có khả năng tác động nhất. Vì vậy, có thể thêm một số Contract.Requires để đối số ctor, nếu thích hợp. Khi bạn cảm thấy thoải mái hơn, bạn có thể thêm chúng vào các giao diện, nhưng lưu ý rằng điều này có thể làm tăng mọi thứ ... nhưng theo một cách tốt. Lỗi hoặc cảnh báo có nghĩa là bạn đang vi phạm DbC và có khả năng là Liskov Substitution Principle.

5

Các user manual cung cấp tại trang dự án Code Contracts, đưa ra một mô tả rất tốt về cách sử dụng và các khả năng của Hợp đồng Mã.

Các vấn đề liên quan