วิศวกรรมซอฟต์แวร์

ถาม - ตอบสำหรับมืออาชีพนักวิชาการและนักเรียนที่ทำงานในวงจรการพัฒนาระบบ

2
ตรวจสอบพารามิเตอร์ที่ใส่คำอธิบายประกอบด้วย @Nonnull เป็นค่าว่างหรือไม่
เราได้เริ่มใช้ FindBugs และใส่คำอธิบายประกอบพารามิเตอร์ของเรา@Nonnullอย่างเหมาะสมและใช้งานได้ดีในการชี้จุดบกพร่องในช่วงต้นรอบ จนถึงตอนนี้เราได้ตรวจสอบข้อโต้แย้งเหล่านี้อย่างต่อเนื่องเพื่อnullใช้ของ Guava checkNotNullแต่ฉันต้องการตรวจสอบnullเฉพาะที่ขอบ - สถานที่ที่ค่าสามารถเข้ามาโดยไม่ได้รับการตรวจสอบnullเช่นคำขอ SOAP // service layer accessible from outside public Person createPerson(@CheckForNull String name) { return new Person(Preconditions.checkNotNull(name)); } ... // internal constructor accessed only by the service layer public Person(@Nonnull String name) { this.name = Preconditions.checkNotNull(name); // remove this check? } ฉันเข้าใจ@Nonnullว่าไม่ได้บล็อกnullค่าตัวเอง แต่ให้ที่ …
19 java  null 

3
กฎการลิงก์ GPL คงที่เทียบกับแบบไดนามิกนำไปใช้กับภาษาที่ตีความได้อย่างไร
ในความเข้าใจของฉัน GPL ห้ามการเชื่อมโยงแบบคงที่จากรหัสที่ไม่ใช่ GPL ไปยังรหัส GPL แต่อนุญาตให้มีการเชื่อมโยงแบบไดนามิกจากรหัสที่ไม่ใช่ GPL ไปยังรหัส GPL ดังนั้นเมื่อรหัสในคำถามไม่ได้เชื่อมโยงเลยเพราะรหัสถูกเขียนในภาษาตีความ (เช่น Perl) ดูเหมือนว่าจะง่ายเกินไปที่จะใช้ประโยชน์จากกฎหากถือว่าเป็นการเชื่อมโยงแบบไดนามิก แต่ในทางกลับกันก็ดูเหมือนว่าจะเป็นไปไม่ได้ที่จะอ้างอิงรหัส GPL ที่ถูกกฎหมายจากรหัสที่ไม่ใช่ GPL หากถือว่าเป็นแบบคงที่! ภาษาที่คอมไพล์อย่างน้อยมีความแตกต่างระหว่างการเชื่อมโยงแบบสแตติกและแบบไดนามิก แต่เมื่อ "การเชื่อมโยง" ทั้งหมดเป็นเพียงการเรียกใช้สคริปต์มันเป็นไปไม่ได้ที่จะบอกว่าเจตนาคืออะไรโดยไม่ได้รับอนุญาตอย่างชัดเจน! หรือความเข้าใจของฉันเกี่ยวกับปัญหานี้ไม่ถูกต้องแสดงผลที่สงสัยคำถาม? ฉันเคยได้ยิน "ข้อยกเว้น classpath" ซึ่งเกี่ยวข้องกับการเชื่อมโยงแบบไดนามิก; นั่นไม่ใช่ส่วนหนึ่งของ GPL แต่แทนที่จะเป็นสิ่งที่สามารถเพิ่มเข้าไปได้ดังนั้นการเชื่อมโยงแบบไดนามิกจะได้รับอนุญาตเฉพาะเมื่อใบอนุญาตมีข้อยกเว้นนี้หรือไม่
19 licensing  gpl  perl 

6
ฉันควรจัดระเบียบโฟลเดอร์ตามโดเมนธุรกิจหรือโดเมนทางเทคนิคหรือไม่
ตัวอย่างเช่นถ้าฉันใช้สถาปัตยกรรมที่คล้ายกับ MVC ฉันควรใช้โครงสร้างโฟลเดอร์ใด: domain1/ controller model view domain2/ controller model view หรือ: controllers/ domain1 domain2 models/ domain1 domain2 views/ domain1 domain2 ฉันจงใจละทิ้งนามสกุลไฟล์เพื่อรักษาคำถามผู้ไม่เชื่อเรื่องภาษานี้ โดยส่วนตัวฉันต้องการแยกจากโดเมนธุรกิจ (ความรู้สึก gut) แต่ฉันเห็นว่ากรอบการทำงานส่วนใหญ่ / หลายแยกจากโดเมนทางเทคนิค ทำไมฉันถึงต้องเลือกอันใดอันหนึ่ง?

4
ตัวแยกวิเคราะห์กฎทั่วไปสำหรับกฎเกมกระดาน RPG - จะทำอย่างไร?
ฉันต้องการสร้างเครื่องมือแยกวิเคราะห์กฎทั่วไปสำหรับระบบ RPG แบบปากกาและกระดาษ กฎสามารถเกี่ยวข้องโดยปกติ 1 ถึง N เอนทิตี 1 ถึง N บทบาทของลูกเต๋าและการคำนวณค่าตามหลายคุณลักษณะของเอนทิตี ตัวอย่างเช่น: ผู้เล่นมี STR 18 อาวุธที่ติดตั้งในปัจจุบันของเขาให้โบนัสแก่ +1 STR แต่ malus ของ DEX -1 เขาโจมตีมอนสเตอร์เอนทิตี้ของและตอนนี้เกมลอจิกจำเป็นต้องเรียกใช้ชุดของกฎหรือการกระทำ: ผู้เล่นทอยลูกเต๋าถ้าเขาได้รับตัวอย่างที่ 8 ขึ้นไป (ค่าการโจมตีพื้นฐานที่เขาต้องผ่านคือหนึ่งในคุณสมบัติพื้นฐานของเขา!) การโจมตีของเขาสำเร็จแล้ว จากนั้นสัตว์ประหลาดจะทอยลูกเต๋าเพื่อคำนวณว่าการโจมตีผ่านเกราะหรือไม่ ถ้าใช่ความเสียหายจะเกิดขึ้นหากไม่ได้ถูกโจมตี นอกจากกฎทางคณิตศาสตร์อย่างง่ายยังสามารถมีข้อ จำกัด เช่นการใช้เฉพาะกับผู้ใช้ระดับหนึ่ง (ตัวอย่างนักรบ vs ตัวช่วยสร้าง) หรือคุณลักษณะอื่น ๆ ดังนั้นนี่ไม่ได้ จำกัด เฉพาะการดำเนินการทางคณิตศาสตร์ หากคุณคุ้นเคยกับระบบสวมบทบาทอย่างเช่นดันเจี้ยนและมังกรคุณจะรู้ว่าฉันทำอะไรอยู่ ปัญหาของฉันคือตอนนี้ฉันไม่มีเงื่อนงำวิธีการสร้างสิ่งนี้อย่างถูกวิธีที่สุด ฉันต้องการให้ผู้คนสามารถตั้งกฎชนิดใดก็ได้และต่อมาก็ทำการกระทำเช่นการเลือกผู้เล่นและสัตว์ประหลาดและทำการกระทำ (ชุดของกฎเช่นการโจมตี) ฉันขอความช่วยเหลือจากด้านฐานข้อมูลของสิ่งต่าง ๆ น้อยลง …

6
เป็นประโยชน์หรือไม่ที่จะละทิ้ง STL ในการพัฒนา C ++? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันรู้ว่าในบางพื้นที่ (เช่นอุตสาหกรรมเกม) ไม่แนะนำให้ใช้ STL ดังนั้นคำถามของฉันคือจริง ๆ แล้วมันเป็นการปฏิบัติที่ดีที่จะไม่ใช้ STL ในบางกรณีหรือไม่? ถ้าเป็นเช่นนั้นเหตุผลที่ดีที่สุดที่ไม่ใช้ STL ของ C ++ สมัยใหม่คืออะไร
19 c++  stl 

6
ทำไมเว็บถึงชนะพื้นที่ของแอปพลิเคชั่นทางไกลและ X ไม่ได้?
X Window System มีอายุ 25 ปีมีวันคล้ายวันเกิดเมื่อวาน (วันที่ 15) อย่างที่คุณทราบกันอยู่หนึ่งในคุณสมบัติที่สำคัญที่สุดคือการแยกฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ในลักษณะที่ไม่มีทั้งหน้าต่างของ Microsoft, แอปเปิ้ลหรือระบบหน้าต่างของ Wayland ย้อนกลับไปในวัน (ขออภัยสำหรับการใช้ถ้อยคำที่คลุมเครือ) หลายคนเชื่อว่า X จะมีอิทธิพลเหนือวิธีอื่น ๆ ในการทำ windows เนื่องจากการแยกเซิร์ฟเวอร์และไคลเอนต์นี้ทำให้แอปพลิเคชันทำงานบนเซิร์ฟเวอร์ที่อื่นขณะที่ผู้ใช้คลิก คอมพิวเตอร์ของตัวเองที่บ้าน เห็นได้ชัดว่าการใช้งานนี้ยังคงมีอยู่ แต่เป็นสิ่งที่ดีที่สุด เมื่อเราเขียนและใช้โปรแกรมที่ทำงานบนเซิร์ฟเวอร์เรามักจะใช้เว็บด้วย html / css / js ทำไมเว็บถึงชนะและ X ไม่ใช่ เทคโนโลยีที่ใช้สำหรับเว็บ (กล่าวว่า html / css / js) นั้นไม่เป็นระเบียบ เมื่อรวมกับ back-end-frameworks (Rails, Django และอื่น ๆ ) มันเป็นป่าที่จะนำทางผ่าน เว็บยังคงเติบโตด้วยความคิดสร้างสรรค์และความก้าวหน้าในขณะที่แอป …
19 history  web 

6
ข้อดีและข้อเสียในการใช้ XAML / C # หรือ HTML5 / JavaScipt สำหรับแอพ Metro? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันแค่สงสัยว่ามีข้อดีหรือข้อเสียที่สำคัญในการใช้ XAML / C # หรือ HTML5 / JavaScript สำหรับ Metro Apps หรือไม่
19 c#  javascript  html5  xaml  metro 

5
สามารถกำหนดรูปแบบ csv โดย regex ได้หรือไม่?
เพื่อนร่วมงานและฉันเพิ่งจะถกเถียงกันว่า regex บริสุทธิ์นั้นมีความสามารถในการห่อหุ้มรูปแบบ csv อย่างเต็มที่หรือไม่ซึ่งมันสามารถแยกวิเคราะห์ไฟล์ทั้งหมดด้วย escape char ที่ระบุไว้, ถ่าน char และถ่านคั่น regex ไม่จำเป็นต้องสามารถเปลี่ยน chars เหล่านี้หลังจากการสร้าง แต่จะต้องไม่ล้มเหลวในกรณี edge อื่น ๆ ฉันได้แย้งว่านี่เป็นไปไม่ได้สำหรับแค่ tokenizer regex เดียวที่อาจทำสิ่งนี้เป็นรูปแบบ PCRE ที่ซับซ้อนมากซึ่งเคลื่อนไปไกลกว่าเพียงแค่โทเค็น ฉันกำลังมองหาบางอย่างตามแนวของ: ... รูปแบบ csv เป็นบริบทไวยากรณ์ฟรีและเป็นไปไม่ได้ที่จะแยกวิเคราะห์ด้วย regex เพียงอย่างเดียว ... หรือฉันผิด เป็นไปได้หรือไม่ที่จะแยก csv ด้วย POSIX regex? ตัวอย่างเช่นถ้าทั้ง char char และ quote char อยู่"ดังนั้นทั้งสองบรรทัดนี้จะเป็น csv ที่ถูกต้อง: """this is …

4
อะไรคือความแตกต่างระหว่างหลักการความรับผิดชอบเดี่ยวและการแยกความกังวล
a) ความแตกต่างระหว่างSRPและSoCคืออะไร? บางทีนั่นอาจจะSRPถูกนำไปใช้ในระดับชั้นในขณะที่SoCสามารถนำมาใช้ในระบบ , ระบบย่อย , โมดูล , ระดับหรือฟังก์ชั่นระดับ b) ถ้าคำตอบต่อa)ใช่แล้วSoC จะใช้คำพ้องความหมายสำหรับSRPในระดับชั้นเรียนหรือไม่? ขอขอบคุณ

4
การใช้การทดสอบหน่วยใน บริษัท ที่ไม่ได้ทำ
หัวหน้าฝ่ายพัฒนาซอฟต์แวร์ของ บริษัท ของฉันเพิ่ง "ลาออก" (ถูกไล่ออก) และตอนนี้เรากำลังมองหาวิธีปรับปรุงการพัฒนาที่ บริษัท ของเรา เราต้องการนำการทดสอบหน่วยในซอฟต์แวร์ทั้งหมดที่สร้างจากที่นี่ออก ข้อเสนอแนะจากนักพัฒนาคือ: เรารู้ว่าการทดสอบนั้นมีค่า แต่คุณเปลี่ยนสเปคอยู่เสมอดังนั้นมันจึงเป็นการเสียเวลา และกำหนดเวลาของคุณแน่นมากเราไม่มีเวลาเพียงพอที่จะทำการทดสอบ คำติชมจากประธานเจ้าหน้าที่บริหารคือ: ฉันต้องการให้ บริษัท ของเรามีการทดสอบอัตโนมัติ แต่ฉันไม่รู้ว่าจะทำให้มันเกิดขึ้นได้อย่างไร เราไม่มีเวลาเขียนเอกสารขนาดใหญ่ นักพัฒนาจะได้รับรายละเอียดในขณะนี้ได้อย่างไร เลื่อนคำจากปากหรือ PowerPoint เห็นได้ชัดว่าเป็นปัญหาใหญ่ คำแนะนำของฉันคือ: ให้ชุดข้อมูลการทดสอบและการทดสอบหน่วย นั่นคือสเป็ค ขึ้นอยู่กับการจัดการที่ชัดเจนและมีปริมาณเกี่ยวกับสิ่งที่ต้องการ นักพัฒนาสามารถใส่ฟังก์ชั่นอื่น ๆ ที่พวกเขารู้สึกว่าจำเป็นและไม่จำเป็นต้องได้รับการทดสอบ ถ้าคุณเคยอยู่ใน บริษัท ที่อยู่ในสถานการณ์เช่นนี้คุณจะแก้ปัญหาอย่างไร วิธีนี้ดูสมเหตุสมผลหรือไม่?
19 unit-testing  tdd 

9
คุณควรสร้างที่พักส่วนตัวหรือไม่?
private string mWhatever; private string Whatever { get { return this.mWhatever; } set { this.mWhatever = value; } } ฉันเคยเห็นบางคนที่สร้างคุณสมบัติให้กับสมาชิกทุกคนเป็นส่วนตัวหรือไม่ ... สิ่งนี้มีเหตุผลหรือไม่? ฉันเห็นว่ามันสมเหตุสมผลใน 1% ของกรณีในบางครั้งเมื่อคุณต้องการควบคุมการเข้าถึงสมาชิกภายในชั้นเรียนที่มีเพราะถ้าคุณไม่ได้ใช้คุณสมบัติสำหรับสมาชิกทุกคนมันจะนำไปสู่ความไม่สอดคล้องกันและการตรวจสอบเพื่อดูว่า สมาชิกมีสิทธิ์เข้าถึงหรือไม่ (เนื่องจากคุณสามารถเข้าถึงได้ทั้งในขอบเขตของคลาส)
19 c# 

7
จะเป็นผู้เล่นที่ดีได้อย่างไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันได้รับการเขียนโปรแกรม (อย่างย่ำแย่) ตั้งแต่ฉันอายุ 12 ปีฉันมีความรู้พอสมควรในภาษาต่าง ๆ ตั้งแต่การประกอบการจนถึง C ++ จาวาสคริปต์จนถึง Haskell Lisp และ Qi แต่ทุกโครงการของฉันเป็นของตัวเอง ฉันสำเร็จการศึกษาด้านวิศวกรรมเคมีไม่ใช่ CS หรือวิศวกรรมคอมพิวเตอร์ แต่เป็นครั้งแรกที่ฤดูใบไม้ร่วงนี้ฉันจะทำงานในโครงการเขียนโปรแกรมขนาดใหญ่กับคนอื่น ๆ และฉันก็ไม่รู้วิธีเตรียม ฉันใช้ Windows มาตลอดชีวิต แต่โครงการนี้จะเป็นยูนิกซ์มากฉันจึงซื้อ Mac เมื่อไม่นานมานี้โดยหวังว่าจะได้ทำความคุ้นเคยกับสภาพแวดล้อม ฉันโชคดีที่ได้มีส่วนร่วมในการแฮ็กฮ็อตกับเพื่อนบางคนเมื่อปีที่แล้ว - ทั้งวิชาเอก CS - และน่าตื่นเต้นมากที่เราชนะ แต่ฉันรู้ว่าฉันทำงานกับพวกเขาว่ากระบวนการทำงานของพวกเขาแตกต่างจากของฉันมาก พวกเขาใช้ Git สำหรับการควบคุมเวอร์ชัน ฉันไม่เคยใช้มันในเวลานั้น แต่ฉันได้เรียนรู้ทุกอย่างที่ฉันสามารถทำได้แล้ว พวกเขายังใช้เฟรมเวิร์กและไลบรารีจำนวนมาก ฉันต้องเรียนรู้ว่า Rails นั้นค่อนข้างค้างคืนสำหรับ …

2
แอปพลิเคชันทั่วไปของ Lisp แมโครคืออะไร
ฉันกำลังพยายามเรียนรู้ LISP และฉันได้อ่านเกี่ยวกับความสำคัญของมาโคร LISP มากดังนั้นฉันจึงอยากได้ประสบการณ์การทำงานกับพวกเขา คุณสามารถแนะนำพื้นที่แอปพลิเคชั่นที่ใช้งานได้จริงซึ่งช่วยให้ฉันใช้แมโครเพื่อแก้ปัญหาในโลกแห่งความเป็นจริงและทำความเข้าใจถึงประโยชน์ของการเขียนโปรแกรมนี้ได้หรือไม่? บันทึก นี่ไม่ใช่โครงการทั่วไปที่ฉันควรทำคำถามต่อไป ฉันสนใจที่จะเข้าใจว่าปัญหาประเภทใดที่แก้ไขได้ด้วยแมโคร LISP เช่นพวกเขาจะดีสำหรับการใช้ชนิดข้อมูลนามธรรม? ทำไมโครงสร้างนี้จึงถูกเพิ่มเข้าไปในภาษา มันแก้ปัญหาอะไรบ้างที่ไม่สามารถแก้ไขได้ด้วยฟังก์ชั่นพื้นฐาน

4
การเขียนโปรแกรมได้รับผลกระทบจากความถนัดเชิงพื้นที่อย่างไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา พื้นหลัง ยิ่งฉันทำงานโปรเจ็กต์นานเท่าไหร่ก็ยิ่งชัดเจนมากขึ้นเท่านั้น มันเหมือนว่าฉันไม่สามารถแยกชั้นเรียน / สิ่งของต่าง ๆ ในหัวของฉันได้อีกแล้ว ทุกอย่างเริ่มปะปนกันและมันก็ยากมากที่จะแยกมันออกจากกันอีกครั้ง ฉันเริ่มวางฟังก์ชั่นในชั้นเรียนที่พวกเขาไม่ได้เป็นของจริงและทำผิดพลาดอย่างโง่เขลาเช่นการเขียนโค้ดที่ฉันพบในภายหลังว่าล้าสมัย 100%; สิ่งต่างๆไม่ได้อยู่ในหัวของฉันอย่างชัดเจนอีกต่อไป มันไม่ได้จนกว่าฉันจะย้อนกลับไปเป็นเวลาหลายชั่วโมง (หรือบางวัน!) ที่ฉันสามารถเห็นสิ่งที่เกิดขึ้นอีกครั้งและมีประสิทธิผล ฉันมักจะพยายามต่อสู้ผ่านสิ่งนี้ฉันหลงใหลเกี่ยวกับการเขียนโค้ดที่ฉันจะไม่ให้ชีวิตของฉันรู้ว่าฉันจะทำอะไรได้อีก นี่คือตอนที่สิ่งต่าง ๆ จะแปลกจริง ๆ ฉันลุกขึ้นในหัวของฉันว่าฉันไม่ได้สัมผัสกับความเป็นจริง (ในระดับหนึ่ง) ในการกระทำต่าง ๆ เช่นการเทแก้วน้ำไม่เกิดขึ้นในระดับที่จริงจัง มันเกิดขึ้นกับนักบินรถยนต์ในระหว่างที่ความตั้งใจของฉันค่อนข้างเข้มข้น (นั่นคือแม้กระทั่งบางสิ่ง) จะทุ่มเทให้กับการแก้ปัญหาแบบไร้พรมแดน (พยายามแยกองค์ประกอบของโค้ด) มันให้ความรู้สึกเหมือนการต่อสู้ที่พ่ายแพ้ ดังนั้นฉันจึงทำการทดสอบไอคิวเมื่อไม่นานมานี้ (Wechsler Adult Intelligence Scale ฉันเชื่อว่ามันเป็นแบบนั้น) และปรากฎว่า Spatial Aptitude ของฉันค่อนข้างต่ำ ฉันยังคงได้คะแนนรวมที่สูงกว่าค่าเฉลี่ยดังนั้นฉันจึงไม่ต้องตะโกนด้วยไม้เพื่อหาเลี้ยงชีพ แต่ฉันกังวลเล็กน้อยว่านี่เป็นแต้มต่อเมื่อเขียน / โปรแกรมคอมพิวเตอร์วิศวกรรมที่ฉันชนะ …

9
รหัสยืนยันมากเกินไปมีกลิ่นหรือไม่
ฉันตกหลุมรักกับการทดสอบหน่วยและ TDD - ฉันติดเชื้อทดสอบ อย่างไรก็ตามการทดสอบหน่วยปกติใช้สำหรับวิธีสาธารณะ บางครั้งฉันก็ต้องทดสอบสมมติฐาน - ยืนยันด้วยวิธีส่วนตัวเช่นกันเพราะบางคนก็เป็น "อันตราย" และการปรับโครงสร้างไม่สามารถช่วยอะไรได้อีก (ฉันรู้ว่ากรอบการทดสอบอนุญาตให้ทดสอบวิธีส่วนตัว) ดังนั้นมันจึงกลายเป็นนิสัยของฉันที่ทั้งวิธีแรกและบรรทัดสุดท้ายของวิธีการส่วนตัวเป็นการยืนยัน อย่างไรก็ตามฉันสังเกตเห็นว่าฉันมักจะใช้การยืนยันในวิธีสาธารณะ (เช่นเดียวกับส่วนตัว) เพียงแค่ "เพื่อให้แน่ใจ" นี่อาจเป็น "การทำซ้ำการทดสอบ" เนื่องจากสมมติฐานของวิธีสาธารณะได้รับการทดสอบจากภายนอกโดยกรอบการทดสอบหน่วย ใครบางคนอาจคิดว่าการยืนยันรหัสมากเกินไปเป็นกลิ่นรหัส?

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