自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

這也是C#代碼嗎?代碼閱讀性進階

開發(fā) 后端
第二個技術點,流暢型接口, 對內(nèi)是功能封裝,對外是使用接口(API). 用Facade模式來看待,會更好理解。如果在功能實現(xiàn)內(nèi)部使用Facade當然會頭痛。

沒有太多的羅嗦,代碼本身已經(jīng)足夠。如果,要添幾個標簽的話就是: 中文化,流暢性接口(Fluent Interface),API.

只有幾點補充說明:

1。 這都是真實可運行的代碼,請看測試狀態(tài): 點擊Login as guest

2。 測試使用Machine Specification, 重點是Establish部分。

3。僅僅使用于集成測試(用戶故事);不建議業(yè)務領域和單元測試使用。

4。這里只列出最終使用代碼(測試說明一切);避免細節(jié)/實現(xiàn)的干擾。實現(xiàn)請看: Examples.cs "一個“語法的實現(xiàn) ”要“語法實現(xiàn)

文章發(fā)布后,很多的評論,特作出以下解釋:

這一段代碼的技術重點,首先是行為驅(qū)動開發(fā)(BDD), 偏重于需求描述(測試用例),而輕編程能力。

第二個技術點,流暢型接口, 對內(nèi)是功能封裝,對外是使用接口(API). 用Facade模式來看待,會更好理解。如果在功能實現(xiàn)內(nèi)部使用Facade當然會頭痛。

最后,才是使用中文。即使,不用中文,前兩點也會很有用。

我是實踐派,不是學院派。這是我實際項目的真實代碼,不是為了裝酷。

得心應手武器庫

MSpec

本文所涉及使用的工具, 見前文:我的.Net武器庫 ------ 新.Net架構(gòu)必備工具列表

使用的視屏演示:

  1. using System.Linq;  
  2. using Machine.Specifications;  
  3. using Skight.Arch.Domain;  
  4. using Skight.Arch.Domain.Core.Containers;  
  5. using Skight.Arch.Domain.Extensions;  
  6. using Skight.Arch.UserStories.Helpers;  
  7. using Skight.ES.Register.Presentation;  
  8. using Skight.ES.Register.Presentation.Modal;  
  9. using Skight.ES.Register.Presentation.Web.Application;  
  10. using Skight.ES.Register.Presentation.Web.ExamDistrictAdmin;  
  11. using Skight.ES.Register.Services;  
  12. using Skight.ES.Register.UserStories.Helpers;  
  13.  
  14. namespace Skight.ES.Register.UserStories.作為.考區(qū)組考人.我想查看考試從而可以了解考試信息  
  15. {  
  16.     [Subject("考試"), Tags("集成測試""用戶故事")]  
  17.     public class 當瀏覽某考試界面 : CommandTestBase  
  18.     {         
  19.         private Establish that =  
  20.             () =>  
  21.             {  
  22.                 要.創(chuàng)建(示例.考區(qū).省直);  
  23.  
  24.                 要.創(chuàng)建(示例.考試定義.計算機)  
  25.                     .添加科目(示例.科目.AutoCAD)  
  26.                     .添加科目(示例.科目.Windows2000)  
  27.                     .添加科目(示例.科目.WindowsExcel);  
  28.  
  29.                 要.創(chuàng)建(示例.考試.省直2012年1月計算機考試)  
  30.                     .設為電子化考試()  
  31.                     .設置考試起始時間(Date.Of(2012,1,1),Date.Of(2012,2,1))  
  32.                     .設置審核()  
  33.                     .設置考場容量(50)  
  34.                     .設置科目費用(Money.of(100))  
  35.                     .添加科目(示例.科目.AutoCAD)  
  36.                     .添加科目(示例.科目.Windows2000)  
  37.                     .添加科目(示例.科目.WindowsExcel)  
  38.                     .添加個人信息定義(示例.個人信息定義.姓名)  
  39.                     .添加個人信息定義(示例.個人信息定義.性別)  
  40.                     .添加個人信息定義(示例.個人信息定義.身份證)  
  41.                     .添加考場(示例.考場信息定義.考場01)  
  42.                     .添加考場(示例.考場信息定義.考場02)  
  43.                     .添加考場(示例.考場信息定義.考場03); ;  
  44.  
  45.                 var exam_service = Container.get<ExamService>();  
  46.                 subject = new ExamDetailGet(exam_service);  
  47.                 ui.load_context_data(Keys.Context.ExamDate.with_value(示例.考試.省直2012年1月計算機考試));  
  48.             };  
  49.  
  50.         private Because of =  
  51.             () =>  
  52.             {  
  53.                 subject.process(ui);  
  54.                 result = ui.get_model<ExamDetailDTO>(Views.DisplayExamDetail);  
  55.             };  
  56.  
  57.         private It 應該顯示考試科目列表 =  
  58.             () => result.Subjects.Select(s=>s.Code)  
  59.                       .ShouldContainOnly(示例.科目.AutoCAD.Code, 示例.科目.Windows2000.Code, 示例.科目.WindowsExcel.Code);  
  60.  
  61.         private It 應該顯示考試開始日期 =  
  62.             () => result.BeginDate.ShouldEqual(Date.Of(2012, 1, 1));  
  63.         private It 應該顯示考試結(jié)束日期 =  
  64.             () => result.EndDate.ShouldEqual(Date.Of(2012, 2, 1));  
  65.  
  66.         private It 應該顯示是否電子化考試 =  
  67.             () => result.IsElectronicExam.ShouldBeTrue();  
  68.         private It 應該顯示是考試考場容量 =  
  69.             () => result.ExaminationRoomCapacity.ShouldEqual(50);  
  70.  
  71.         private It 應該顯示是否考試報名需要審核 =  
  72.             () => result.NeedInspection.ShouldBeTrue();  
  73.         private It 應該顯示考試默認科目費用 =  
  74.             () => result.DefaultCharge.ShouldEqual(Money.of(100));  
  75.  
  76.         private It 應該顯示報考人員信息項目 =  
  77.             () => result.PersonalInfoDefs.ShouldContainOnly(示例.個人信息定義.姓名, 示例.個人信息定義.身份證, 示例.個人信息定義.性別);  
  78.  
  79.         private It 應該顯示考試相關考場信息 =  
  80.             () => result.Scenes.ShouldContainOnly(示例.考場信息定義.考場01, 示例.考場信息定義.考場02, 示例.考場信息定義.考場03);  
  81.  
  82.         private static ExamDetailGet subject;  
  83.         private static ExamDetailDTO result;  
  84.     }  

原文鏈接:http://www.cnblogs.com/Wonner/archive/2012/07/19/CSharp_In_Chinese.html

【編輯推薦】

  1. C#、LINQ與ADO.NET主從表比對操作
  2. C#幾個經(jīng)常犯錯誤匯總
  3. C#開發(fā)高性能Log Help類設計開發(fā)
  4. C#使用委托調(diào)用實現(xiàn)用戶端等待閃屏
  5. 淺談C#結(jié)構(gòu)
責任編輯:張偉 來源: 卓越之行的博客
相關推薦

2022-03-09 15:48:13

Java代碼

2009-04-03 10:25:32

C#XML擴展代碼

2009-08-14 16:54:19

C# Hello Wo

2009-08-19 15:38:59

C#代碼

2009-09-07 06:48:13

C#透明窗體

2025-02-13 00:28:26

2009-08-06 09:32:03

C#代碼協(xié)同執(zhí)行

2011-04-13 17:31:16

C#.NET

2009-09-01 10:37:51

C#項目代碼C#代碼規(guī)范

2009-08-13 17:36:54

編譯C#代碼

2009-09-02 17:12:06

C#關機代碼

2009-08-03 18:37:30

Nant和Nunit構(gòu)

2009-08-03 16:58:59

C#不安全代碼

2009-08-18 13:35:06

C#枚舉文件

2009-08-06 10:55:46

C#代碼解釋器

2009-08-31 14:44:30

2024-08-06 12:35:42

C#代碼重構(gòu)

2009-08-03 13:53:30

C#調(diào)用Excel

2020-07-15 14:51:39

代碼C+開發(fā)

2009-03-12 13:49:30

DataTemplatWPFC#
點贊
收藏

51CTO技術棧公眾號