คำถามติดแท็ก c#

C # เป็นภาษาการเขียนโปรแกรมเชิงวัตถุที่มีการจัดการและรวบรวมขยะที่สร้างขึ้นโดย Microsoft ควบคู่ไปกับแพลตฟอร์ม. NET

9
การตั้งค่าสไตล์ LINQ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันมาใช้ LINQ ในการเขียนโปรแกรมทุกวันเป็นจำนวนมาก ในความเป็นจริงฉันไม่ค่อยได้ใช้ลูปที่ชัดเจน ฉันมี แต่พบว่าฉันไม่ได้ใช้ SQL เช่นไวยากรณ์อีกต่อไป ฉันใช้ฟังก์ชั่นเสริม ดังนั้นแทนที่จะพูดว่า: from x in y select datatransform where filter ฉันใช้: x.Where(c => filter).Select(c => datatransform) คุณชอบสไตล์ของ LINQ แบบไหนและคนอื่นในทีมของคุณพอใจกับอะไรบ้าง?
21 c#  coding-style  linq 

16
ผู้พัฒนา C # สามารถผลิตโค้ดได้กี่บรรทัดต่อเดือน [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ผู้บริหารในที่ทำงานของฉันถามคำถามกับกลุ่มนักพัฒนาของฉัน: ผู้พัฒนา C # สามารถผลิตโค้ดได้กี่บรรทัดต่อเดือน ระบบเก่าจะถูกส่งไปยัง C # และเขาต้องการให้มาตรการนี้เป็นส่วนหนึ่งของการวางแผนโครงการ จากแหล่งที่มา (น่าเชื่อถือ) บางแห่งเขาได้คำตอบของ "10 SLOC / เดือน " แต่เขาไม่พอใจกับสิ่งนั้น กลุ่มเห็นพ้องต้องกันว่านี่เป็นไปไม่ได้ที่จะระบุเพราะมันขึ้นอยู่กับรายการสถานการณ์ที่ยาวนาน แต่เราสามารถบอกได้ว่าชายคนนั้นจะไม่จากไป (หรือผิดหวังมากในตัวเรา) หากเราไม่ได้คำตอบที่เหมาะสมกับเขาดีกว่า ดังนั้นเขาจึงออกไปพร้อมกับคำตอบที่ดีกว่า "10 SLOC ต่อวัน " ตอบคำถามนี้ได้ไหม? (เฉพาะหน้าหรือแม้กระทั่งกับการวิเคราะห์บางส่วน)

11
คุณใช้กรอบการรวมต่อเนื่องแบบใดและเพราะเหตุใด [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา มีกรอบการทำงานร่วมกันอย่างต่อเนื่อง (CI) ที่แตกต่างกันออกไปเล็กน้อยและฉันสงสัยว่าสิ่งใดที่ได้รับความนิยมมากที่สุด กรอบการทำงานแบบใดที่คุณใช้ใน บริษัท ที่คุณทำงาน มีเหตุผลใดที่กรอบหนึ่งของ CI ได้รับความนิยมมากกว่ากรอบอื่น ๆ บางทีนี่อาจจะเกี่ยวกับคุณสมบัติที่มีให้สิ่งต่าง ๆ ที่รวมเข้ากับมันหรืออาจเป็นเพียงการตลาด ดูเหมือนว่ามีการใช้การรวมอย่างต่อเนื่องในโลก Java และ. net มากกว่าการพูดว่า ruby ​​หรือ python ทำไมนี้

9
วิธีสอนการจัดการข้อยกเว้นสำหรับโปรแกรมเมอร์ใหม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว คุณจะสอนการจัดการข้อยกเว้นให้โปรแกรมเมอร์อย่างไร มีการสอนสิ่งอื่น ๆ ทั้งหมดได้อย่างง่ายดาย - โครงสร้างข้อมูล, ASP.NET, WinForms, WPF, WCF - คุณตั้งชื่อมันทุกอย่างสามารถสอนได้อย่างง่ายดาย ด้วยการจัดการข้อยกเว้นการสอนให้พวกเขาลองจับในที่สุดก็เป็นเพียงลักษณะทางวากยสัมพันธ์ของการจัดการข้อยกเว้น สิ่งที่ควรสอนคือ - คุณใส่ส่วนใดของรหัสไว้ในบล็อคลอง คุณทำอะไรในบล็อกcatch ให้ฉันอธิบายด้วยตัวอย่าง คุณกำลังทำงานในโครงการ Windows Forms (ยูทิลิตี้ขนาดเล็ก) และคุณได้ออกแบบดังต่อไปนี้ด้วย 3 โครงการที่แตกต่างกัน UILayer BusinessLayer ชั้นข้อมูล หากมีข้อยกเว้น (ให้เราพูดว่าการโหลด XDocument มีข้อผิดพลาดเกิดขึ้น) จะถูกยกขึ้นที่ DataLayer (UILayer เรียกว่า BusinessLayer ซึ่งในทางกลับกันเรียก DataLayer) คุณเพิ่งทำสิ่งต่อไปนี้ //In DataLayer try …

10
แนวทางปฏิบัติและมารยาทที่ดีที่สุดสำหรับการตั้งค่าการแจ้งเตือนทางอีเมล
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา หากคุณกำลังจะตั้งค่าการแจ้งเตือนทางอีเมลสำหรับลูกค้าของเว็บไซต์ของคุณเพื่อสมัครสมาชิกกฎของมารยาทที่ควรปฏิบัติตามคืออะไร? ฉันสามารถนึกถึงส่วนบนของหัวของฉัน: ผู้ใช้สามารถเลือกไม่ใช้ ข้อความเท่านั้น (หรือภาพระยะไกลที่มีรสนิยม) ไม่ได้ส่งออกมากกว่าหนึ่งครั้งต่อสัปดาห์ ลูกค้าสามารถควบคุมสิ่งที่พวกเขาได้รับอีเมลอย่างละเอียด (รับเฉพาะสิ่งที่พวกเขาสนใจ) ฉันควรพิจารณาประเด็นอื่น ๆ อีกบ้าง? จากมุมมองการเขียนโปรแกรมวิธีที่ดีที่สุดในการตั้งค่าและเรียกใช้การแจ้งเตือนทางอีเมลคืออะไร ฉันควรใช้บริการ ASP.NET หรือไม่ บริการ Windows สิ่งที่ผิดพลาดอย่างใดอย่างหนึ่งคืออะไร? ฉันจะบันทึกอีเมลที่ส่งได้อย่างไร ฉันไม่สนใจว่าพวกเขาได้รับ แต่ฉันต้องพิสูจน์ได้ว่าฉันทำหรือไม่ได้ส่งอีเมล

2
ใครทำ async / รอก่อน
Python เพิ่ม async / await constructs ใน 3.5 ในปี 2015 ชุมชน Javascript ได้ทำตามขั้นตอนมาเป็นเวลากว่าพันล้านปีและในที่สุดก็เพิ่มการใช้งานที่คล้ายกันมากกับร่างใน ES8 ที่เปิดตัวในปี 2017 (จากความเข้าใจของฉัน) typescript ยังเพิ่มวิธีการ async ในปี 2015 ในรุ่น 1.7 ที่ดวงตาที่ไม่ได้รับการฝึกฝนดูเหมือนว่าวิธี js async C # วิธีการเพิ่ม async ในปี 2012 ที่ดูเหมือนว่าการใช้งานอื่น ๆ ของ async / await และขึ้นอยู่กับการทำงานที่คล้ายกันของ F # แต่เวิร์กโฟลว์แบบอะซิงโครนัสที่ดูแตกต่างกันซึ่งถูกนำมาใช้ใน F # 2.0 ในปี 2010 นี่เป็นตัวอย่างแรกสุด - …

4
ควรใช้ฟังก์ชั่นที่ทำหน้าที่เป็นพารามิเตอร์หรือไม่และนำพารามิเตอร์ไปใช้กับฟังก์ชันเหล่านั้นเป็นพารามิเตอร์ด้วยหรือไม่
ฉันมักจะพบว่าตัวเองกำลังเขียนฟังก์ชั่นที่มีลักษณะเช่นนี้เพราะพวกเขาทำให้ฉันสามารถเข้าถึงข้อมูลได้อย่างง่ายดายและยังมีลายเซ็นที่ยอมรับพารามิเตอร์เพื่อกำหนดข้อมูลที่จะเข้าถึง public static string GetFormattedRate( Func<string, RateType>> getRate, string rateKey) { var rate = getRate(rateKey); var formattedRate = rate.DollarsPerMonth.ToString("C0"); return formattedRate; } หรือ public static string GetFormattedRate( Func<RateType, string> formatRate, Func<string, RateType>> getRate, string rateKey) { var rate = getRate(rateKey); var formattedRate = formatRate(rate); return formattedRate; } จากนั้นฉันก็ใช้สิ่งนี้: using FormatterModule; …

3
การจัดการแพ็คเกจ NuGet ภายใน บริษัท ด้วยการเข้าถึงซอร์สโค้ด
เรามีห้องสมุดมากมายที่เราต้องการแบ่งปันระหว่างโครงการต่างๆภายใน บริษัท ข้อกำหนดเหล่านี้คือ: แหล่งไลบรารีถูกเก็บไว้ในที่เก็บซึ่งแยกจากโครงการปลายทาง โครงการสุดท้ายรวมถึงห้องสมุดผ่าน NuGet ต้องเป็นไปได้ที่จะตรวจสอบซอร์สโค้ดสำหรับ libary ที่กำหนดได้อย่างง่ายดายในขณะที่ทำงานในโปรเจ็กต์ปลายทาง การตั้งค่าที่เก็บส่วนตัวของ NuGet ไม่ใช่ปัญหา แต่การจัดการแหล่งข้อมูลนั้น เราพยายามที่จะเปิดเผยแหล่งที่มาผ่านทางเซิร์ฟเวอร์ต้นทางและมันครับทำงาน แต่ไม่มาก: VS ดาวน์โหลดแหล่งที่มาในขณะที่การแก้จุดบกพร่องรหัสภายนอก แต่ไม่ได้เมื่อคุณพยายามที่จะนำทางนิยาม / การดำเนินงาน โดยทั่วไปคุณสามารถไปที่ซอร์สโค้ดเมื่อทำการดีบั๊กซึ่งไม่ใช่สิ่งที่เราต้องการ ดังนั้นคำถามคือ: มีวิธีใดที่จะให้การเข้าถึงซอร์สโค้ดของไลบรารีภายในโดยไม่จำเป็นต้องมีโค้ดใน repo / solution เดียวกัน มีวิธีในการตั้งค่าเซิร์ฟเวอร์ Symbol / คำสั่งผสม NuGet เพื่อให้ VS ใช้สัญลักษณ์สำหรับการนำทางไม่ใช่แค่สำหรับการดีบัก? ใช้ ReSharper / อื่น ๆ เพิ่มเติมเป็นตัวเลือก

8
มีวิธีที่ง่ายกว่าในการทดสอบการตรวจสอบอาร์กิวเมนต์และการเริ่มต้นฟิลด์ในวัตถุที่ไม่เปลี่ยนรูปแบบหรือไม่?
โดเมนของฉันประกอบด้วยคลาสที่ไม่เปลี่ยนรูปแบบง่าย ๆ มากมายเช่นนี้ public class Person { public string FullName { get; } public string NameAtBirth { get; } public string TaxId { get; } public PhoneNumber PhoneNumber { get; } public Address Address { get; } public Person( string fullName, string nameAtBirth, string taxId, PhoneNumber phoneNumber, Address address) { …
20 c#  unit-testing 

1
มาตรฐานในการจัดการกับ pluralia tantum ในรหัสของคุณคืออะไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว เมื่อใช้ตัวแปรที่มีพหูพจน์และเอกพจน์เหมือนกันคุณจะตั้งชื่อพวกเขาอย่างไร มีมาตรฐานออกมาบ้างไหม? ตัวอย่างเช่น: Series[] series // Plural Series series // Singular ลึก: หากต้องการเจาะจงชุดของฉันจะต้องเรียกว่าชุด (เนื่องจากการจัดรูปแบบ JSON) คุณจะพิจารณาตั้งชื่อรูปแบบเอกพจน์ของซีรี่ส์ที่เพิ่มเข้าไปในคอลเลกชันSeries sหรือไม่ ในขณะที่: List<Series> series = new List<Series>(); Series s; while (someBool) { s = new Series(); s.Name = "Name"; while (anotherBool) { s.AddValue(someValue); } series.Add(s); }

3
Generics vs อินเตอร์เฟสทั่วไป?
ฉันจำไม่ได้เมื่อฉันเขียนชั้นเรียนทั่วไปครั้งที่แล้ว ทุกครั้งที่ฉันคิดว่าฉันต้องการมันหลังจากที่ฉันคิดว่าจะทำข้อสรุปที่ฉันทำไม่ได้ คำตอบที่สองสำหรับคำถามนี้ทำให้ฉันต้องขอคำชี้แจง (เนื่องจากฉันยังไม่สามารถแสดงความคิดเห็นได้ฉันจึงได้ตั้งคำถามใหม่) ดังนั้นลองใช้โค้ดที่ได้รับเป็นตัวอย่างของกรณีที่ใครต้องการยาชื่อสามัญ: public class Repository<T> where T : class, IBusinessOBject { T Get(int id) void Save(T obj); void Delete(T obj); } มันมีข้อ จำกัด ประเภท: IBusinessObject วิธีคิดตามปกติของฉันคือคลาสมีข้อ จำกัด ในการใช้IBusinessObjectดังนั้นคลาสที่ใช้สิ่งนี้Repositoryคือ พื้นที่เก็บข้อมูลเก็บลูกค้าเหล่านี้IBusinessObjectส่วนใหญ่ของสิ่งนี้Repositoryจะต้องการรับและใช้วัตถุผ่านIBusinessObjectอินเตอร์เฟซ ดังนั้นทำไมไม่เพียงเพื่อ public class Repository { IBusinessOBject Get(int id) void Save(IBusinessOBject obj); void Delete(IBusinessOBject obj); } ถึงแม้ว่าตัวอย่างจะไม่ดีเนื่องจากเป็นเพียงคอลเล็กชันอื่นและคอลเล็กชันทั่วไปคือคลาสสิก ในกรณีนี้ประเภทของข้อ จำกัด …

7
แนวคิดในการตั้งชื่อคลาสที่มีคำต่อท้าย“ ข้อมูล” เช่น:“ SomeClass” และ“ SomeClassInfo” คืออะไร
ฉันกำลังทำงานในโปรเจ็กต์ที่เกี่ยวข้องกับอุปกรณ์ทางกายภาพและฉันสับสนว่าจะตั้งชื่อคลาสบางคลาสในโครงการนี้ได้อย่างไร เมื่อพิจารณาถึงอุปกรณ์จริง (เซ็นเซอร์และตัวรับสัญญาณ) เป็นสิ่งหนึ่งและการเป็นตัวแทนของพวกเขาในซอฟต์แวร์นั้นเป็นอีกสิ่งหนึ่ง ตัวอย่างเช่นในขณะที่Sensorคลาสจะเป็นตัวแทนของเซ็นเซอร์จริง (เมื่อเชื่อมต่อกับอุปกรณ์ที่ใช้งานจริง) SensorInfoจะถูกใช้เพื่อแสดงเฉพาะคุณสมบัติของเซ็นเซอร์ดังกล่าว ตัวอย่างเช่นเมื่อบันทึกไฟล์ฉันจะทำให้เป็น a SensorInfoถึงส่วนหัวของไฟล์แทนการทำให้เป็นอันดับ a Sensorซึ่งเรียงลำดับของจะไม่ทำให้รู้สึก แต่ตอนนี้ฉันสับสนเพราะมีวงจรกลางในวงจรชีวิตของวัตถุที่ฉันไม่สามารถตัดสินใจได้ว่าฉันควรใช้อย่างใดอย่างหนึ่งหรืออื่นหรือวิธีการได้รับอย่างใดอย่างหนึ่งหรือแม้กระทั่งว่าตัวแปรทั้งสองควรจะยุบลงในชั้นเดียวเท่านั้น นอกจากนี้Employeeคลาสตัวอย่างที่ธรรมดาเกินไปก็ชัดเจนว่าเป็นเพียงตัวแทนของบุคคลจริง แต่ไม่มีใครแนะนำให้ตั้งชื่อชั้นเรียนEmployeeInfoแทนเท่าที่ฉันรู้ ภาษาที่ฉันทำงานด้วยคือ. NET และรูปแบบการตั้งชื่อนี้ดูเหมือนจะเป็นเรื่องทั่วไปตลอดทั้งเฟรมเวิร์กสำหรับตัวอย่างของคลาสเหล่านี้: DirectoryและDirectoryInfoชั้นเรียน FileและFileInfoชั้นเรียน ConnectionInfoชั้นเรียน (ไม่มีConnectionชั้นเรียนผู้สื่อข่าว); DeviceInfoชั้นเรียน (ไม่มีDeviceชั้นเรียนผู้สื่อข่าว); ดังนั้นคำถามของฉันคือ: มีเหตุผลทั่วไปเกี่ยวกับการใช้รูปแบบการตั้งชื่อนี้หรือไม่? มีกรณีที่เหมาะสมหรือไม่ที่จะมีชื่อคู่ ( ThingและThingInfo) และกรณีอื่น ๆ ที่ควรมีอยู่เฉพาะThingInfoคลาสหรือThingคลาสโดยไม่มีคู่

7
สมาชิกในทีมที่สงสัยจะย้ายจาก VBA ไปยัง C #
พื้นหลัง เมื่อปีที่แล้วฉันถูกขอให้สร้างเครื่องมือที่จะใช้สำหรับการวางแผนธุรกิจสำหรับผู้ใช้ประมาณ 10 คน สิ่งนี้ทำในนามของทีมงานไอทีอีกคนที่ "ทำสัญญาย่อย" ทำงานให้ฉันและเนื่องจากกำหนดเวลาโครงการไม่ได้วางแผนมาก่อนที่ด้านข้างของพวกเขาฉันจึงต้องดำเนินการอย่างเร่งด่วน ในเวลานั้นเราตัดสินใจว่าวิธีที่เร็วที่สุดคือการสร้างเวิร์กบุ๊ก Excel ด้วย VBA จากนั้นให้ผู้ใช้ดาวน์โหลดเวิร์กบุ๊กที่ปรับปรุงด้วย VBA นี้จากอินทราเน็ตเพื่อใช้บนพีซีของพวกเขา Excel เป็นข้อ จำกัด ในกรณีนี้เนื่องจากระบบการวางแผน (เช่นฐานข้อมูล) ที่เราใช้สามารถโต้ตอบผ่านทาง Add-in ของ Excel เท่านั้นซึ่งจะต้องโหลดในเวลาเดียวกันเมื่อสมุดงานการวางแผนเปิดอยู่ อย่างไรก็ตาม VBA ไม่ใช่ข้อ จำกัด ในเวลานั้น สมุดงานที่ฉันสร้างขึ้นประมาณ 4,000 บรรทัดของรหัส VBA และในขณะที่ฉันพยายามแยกข้อมูลและเลเยอร์การนำเสนอฉันไม่สามารถทำได้ในทุกกรณีเนื่องจากกำหนดเวลาโครงการ จริงๆแล้วในขณะที่ฉันภูมิใจในการสร้างเวิร์กบุคนี้ฉันก็รู้สึกผิดหวังเล็กน้อยที่มันสามารถทำได้ดีกว่าทั้งในแง่ของการเข้ารหัสและการปรับใช้กับผู้ใช้ ในวันนี้ ย้อนกลับไปวันนี้และทีมไอทีได้มาหาฉันอีกครั้งเพื่อขอสมุดงานที่คล้ายกัน (ดังนั้นฉันจึงสามารถใช้ซ้ำบางส่วนของสมุดงานอื่นด้านบนได้) แต่คราวนี้มันซับซ้อนมากขึ้นและจะมีผู้ใช้จำนวนมากขึ้น ( ประมาณ 200) อย่างไรก็ตามในครั้งนี้มันเป็นการวางแผนที่ดีขึ้นเล็กน้อยและฉันเห็นว่าเรามีเวลาอีกเล็กน้อยในการวางแผนสิ่งต่าง ๆ จากนี้ฉันคิดเกี่ยวกับโซลูชันและโครงสร้างพื้นฐานเนื่องจากการเขียนโปรแกรมสำหรับผู้ใช้ 100 คนมีผลกระทบมากกว่าผู้ใช้ 10 คน ดังนั้นฉันแนะนำทีมว่าบางทีเราควรพิจารณาย้ายรหัสที่มีอยู่ไปยังโซลูชัน …

6
“ เลิกทำ” การสรุปจำนวนเต็ม
ฉันพบปัญหาทางทฤษฎีที่น่าสนใจเมื่อหลายปีก่อน ฉันไม่เคยพบวิธีแก้ปัญหาและยังคงหลอกหลอนฉันเมื่อฉันนอนหลับ สมมติว่าคุณมีแอปพลิเคชัน (C #) ที่มีตัวเลขอยู่ใน int ที่เรียกว่า x (ค่าของ x ไม่ได้รับการแก้ไข) เมื่อโปรแกรมทำงาน x จะถูกคูณด้วย 33 แล้วเขียนลงในไฟล์ ซอร์สโค้ดพื้นฐานมีลักษณะดังนี้: int x = getSomeInt(); x = x * 33; file.WriteLine(x); // Writes x to the file in decimal format หลายปีต่อมาคุณค้นพบว่าคุณต้องการค่าดั้งเดิมของ X ย้อนกลับ การคำนวณบางอย่างง่าย: เพียงแค่หารจำนวนในไฟล์ด้วย 33 อย่างไรก็ตามในกรณีอื่น X มีขนาดใหญ่พอที่การคูณจะทำให้เกิดการล้นจำนวนเต็ม ตามเอกสาร , C # …
20 c# 

3
ความยากลำบากในการใช้ TDD และการสร้างใหม่ (หรือ - ทำไมจึงเจ็บปวดกว่าที่ควรจะเป็น)
ฉันต้องการสอนตัวเองให้ใช้วิธีการของ TDD และฉันก็มีโครงการที่ฉันอยากจะทำอยู่พักหนึ่ง มันไม่ใช่โครงการขนาดใหญ่ดังนั้นฉันคิดว่ามันจะเป็นตัวเลือกที่ดีสำหรับ TDD อย่างไรก็ตามฉันรู้สึกว่ามีบางอย่างผิดปกติ ขอยกตัวอย่าง: ในระดับสูงโครงการของฉันเป็นส่วนเสริมสำหรับ Microsoft OneNote ที่จะให้ฉันติดตามและจัดการโครงการได้ง่ายขึ้น ตอนนี้ฉันยังต้องการให้ตรรกะทางธุรกิจสำหรับสิ่งนี้แยกออกจาก OneNote มากที่สุดในกรณีที่ฉันตัดสินใจที่จะสร้างที่เก็บข้อมูลที่กำหนดเองของฉันเองและกลับมาสิ้นสุดวันหนึ่ง ก่อนอื่นฉันเริ่มต้นด้วยการทดสอบการยอมรับคำธรรมดาเบื้องต้นเพื่อสรุปสิ่งที่ฉันต้องการให้คุณสมบัติแรกของฉันทำ ดูเหมือนบางสิ่งนี้ (ทำให้ลดความกระชับลง): ผู้ใช้คลิกสร้างโครงการ ผู้ใช้พิมพ์ชื่อเรื่องของโครงการ ตรวจสอบว่าโครงการสร้างขึ้นอย่างถูกต้อง ข้ามสิ่งที่ UI และการวางแผนตัวกลางฉันมาทดสอบหน่วยแรกของฉัน: [TestMethod] public void CreateProject_BasicParameters_ProjectIsValid() { var testController = new Controller(); Project newProject = testController(A.Dummy<String>()); Assert.IsNotNull(newProject); } จนถึงตอนนี้ดีมาก สีแดงเขียว refactor ฯลฯ เอาล่ะตอนนี้มันต้องการบันทึกของจริง ตัดขั้นตอนที่นี่ฉันปิดท้ายด้วยสิ่งนี้ [TestMethod] public void CreateProject_BasicParameters_ProjectMatchesExpected() { …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.