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

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

4
รูปแบบโดเมนที่หลากหลาย - พฤติกรรมนั้นเข้ากันได้อย่างไร
ในการอภิปรายเกี่ยวกับโมเดลโดเมน Rich and Anemic อินเทอร์เน็ตเต็มไปด้วยคำแนะนำทางปรัชญา แต่ย่อมาจากตัวอย่างที่เชื่อถือได้ วัตถุประสงค์ของคำถามนี้คือการหาแนวทางที่ชัดเจนและตัวอย่างที่เป็นรูปธรรมของโมเดลการออกแบบที่ขับเคลื่อนด้วยโดเมนที่เหมาะสม (นึกคิดใน C #.) สำหรับตัวอย่างในโลกแห่งความจริงการใช้ DDD นี้ดูเหมือนจะผิด: โดเมน WorkItem รุ่นด้านล่างไม่มีอะไรนอกจากถุงคุณสมบัติซึ่ง Entity Framework ใช้สำหรับฐานข้อมูลรหัสแรก ต่อฟาวเลอร์ก็เป็นโรคโลหิตจาง เห็นได้ชัดว่าชั้น WorkItemService เป็นความเข้าใจผิดทั่วไปของบริการโดเมน มันมีพฤติกรรม / ตรรกะทางธุรกิจทั้งหมดสำหรับ WorkItem ต่อ Yemelyanov และคนอื่น ๆ ก็เป็นขั้นตอน (หน้า 6) ดังนั้นถ้าด้านล่างผิดฉันจะทำให้ถูกต้องได้อย่างไร พฤติกรรมเช่นAddStatusUpdateหรือCheckoutควรเป็นของคลาส WorkItem ที่ถูกต้องหรือไม่ แบบจำลอง WorkItem ควรพึ่งพาอะไร? public class WorkItemService : IWorkItemService { private IUnitOfWorkFactory _unitOfWorkFactory; …

7
หุ่นยนต์สามารถเอาชนะ CAPTCHAs ได้อย่างไร
ฉันมีแบบฟอร์มอีเมลเว็บไซต์ ฉันใช้ CAPTCHA ที่กำหนดเองเพื่อป้องกันสแปมจากหุ่นยนต์ อย่างไรก็ตามเรื่องนี้ฉันยังได้รับจดหมายขยะ ทำไม? หุ่นยนต์เอาชนะ CAPTCHA ได้อย่างไร พวกเขาใช้ OCR ขั้นสูงบางประเภทหรือเพียงแค่หาวิธีแก้ปัญหาจากที่เก็บไว้? ฉันจะป้องกันสิ่งนี้ได้อย่างไร ฉันควรเปลี่ยนเป็น CAPTCHA ประเภทอื่นหรือไม่ ฉันแน่ใจว่าอีเมลนั้นมาจากฟอร์มเนื่องจากส่งจากผู้ส่งอีเมลของฉันที่ให้บริการข้อความฟอร์ม สไตล์ของจดหมายก็เหมือนกัน สำหรับบันทึกฉันใช้ PHP + MySQL แต่ฉันไม่ได้ค้นหาวิธีแก้ไขปัญหานี้ ฉันสนใจสถานการณ์ทั่วไปว่าหุ่นยนต์เอาชนะเทคโนโลยีเหล่านี้ได้อย่างไร ฉันเพิ่งบอกสถานการณ์นี้เป็นตัวอย่างเพื่อให้คุณสามารถเข้าใจได้ดียิ่งขึ้นในสิ่งที่ฉันถาม
84 security  captcha 

11
ทำไมต้องเรียนรู้ git เมื่อมีแอพ GUI สำหรับ GitHub
เนื่องจาก GitHub ให้แอป GUI สำหรับทั้งMacและWindowsประโยชน์ของการเรียนรู้การใช้ git จากบรรทัดคำสั่งคืออะไร ขณะนี้ฉันกำลังใช้แอพ mac ของพวกเขาเพื่ออัปเดตที่เก็บของฉันและจนถึงตอนนี้มันครอบคลุมความต้องการของฉันแล้ว ฉันจะพลาดอะไรได้บ้าง
84 git  github 

12
ถือว่าเป็น 'การปฏิบัติที่ไม่เหมาะสม' เพื่อตรวจสอบเนื้อหาของไฟล์ / การเข้ารหัสในการทดสอบหน่วยหรือไม่?
บริบทนิดหน่อย: ก่อนหน้านี้วันนี้ฉันต้องอัปเดตรหัส SQL บางส่วนที่เพื่อนร่วมงานคนอื่นของฉันมอบให้และเนื่องจากเป็นสคริปต์ที่ค่อนข้างใหญ่จึงถูกจัดเก็บเป็นไฟล์แยกต่างหาก ในขณะที่ทำสิ่งนี้ฉันได้แนะนำข้อผิดพลาดสองข้อที่เราได้รับกลับไปเมื่อไม่กี่เดือน ได้แก่ : ไม่ว่าด้วยเหตุผลใดก็ตามไฟล์ ASCII นั้นถูกเข้ารหัสใน UTF-16 (เพื่อนร่วมงานได้ส่งไฟล์ให้ฉันทางอีเมลซึ่งอาจเป็นสาเหตุให้เกิดปัญหา) สคริปต์ขาดSETคำสั่งเริ่มต้น(จำเป็นเนื่องจากมีบางสิ่งที่ไดรเวอร์อยู่ในการผลิต แต่ไม่ใช่ในการติดตั้งใหม่ทั้งหมด) หลังจากแก้ไขจุดบกพร่องนี้ประมาณหนึ่งชั่วโมง (อีกครั้ง) ฉันตัดสินใจที่จะเขียนการทดสอบหน่วยเพื่อให้แน่ใจว่าสิ่งนี้จะไม่เกิดขึ้นอีก (และมีวิธีที่รวดเร็วในการแก้ไขในข้อความยืนยันเพื่อให้แก้ไขได้ง่ายสำหรับนักพัฒนาในอนาคต) อย่างไรก็ตามเมื่อฉันส่งรหัสนี้ให้เพื่อนร่วมงานคนอื่น (ซึ่งเป็นหัวหน้าทีมของเราด้วย) ก็เดินมาหาฉันและบอกฉันว่าฉันไม่ควรทำสิ่งเหล่านี้อีกเพราะ: "สิ่งเหล่านี้ไม่ได้อยู่ในการทดสอบหน่วย" "การทดสอบหน่วยควรใช้เพื่อตรวจสอบการไหลของรหัสของคุณ" ฉันค่อนข้างจะขัดแย้งกันในขณะนี้เนื่องจากฉันยังคงคิดว่าสิ่งที่ฉันทำไม่ถูกต้องเนื่องจากข้อผิดพลาดนี้จะไม่ได้รับการแนะนำในอนาคตอย่างไรก็ตามเพื่อนร่วมงานคนนี้ทำงานในฐานะผู้อาวุโส เราใช้เวลาของเราไป ฉันควรทำอย่างไร? ฉันทำผิดแบบนี้เหรอ? ถือว่าเป็นการปฏิบัติที่ไม่ดีหรือไม่?


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

11
คอมไพล์สำหรับโครงการส่วนบุคคล (คนเดียว) Overkill?
ฉันรู้และใช้สองระบบควบคุมเวอร์ชัน: การโค่นล้มและ git ตอนนี้การโค่นล้มได้ถูกนำมาใช้สำหรับโครงการส่วนบุคคลที่ฉันเป็นนักพัฒนาเพียงคนเดียวและคอมไพล์ได้รับการใช้สำหรับโครงการโอเพนซอร์สและโครงการที่ฉันเชื่อว่าคนอื่นจะทำงานในโครงการ ส่วนใหญ่เป็นเพราะความสามารถในการฟอร์กและการผสานที่น่าทึ่งของคอมไพล์ซึ่งทุกคนสามารถทำงานในสาขาของตัวเอง; มีประโยชน์มาก ตอนนี้ฉันใช้การโค่นล้มสำหรับโครงการส่วนบุคคลเพราะฉันคิดว่าคอมไพล์มีเหตุผลเล็กน้อยที่นั่น ดูเหมือนจะเกินความเป็นไปได้เล็กน้อย มันก็โอเคสำหรับฉันถ้ามันเป็นศูนย์กลาง (บนเซิร์ฟเวอร์ที่บ้านของฉันมักจะ) เมื่อฉันเป็นนักพัฒนาเพียงคนเดียว; ฉันจะสำรองข้อมูลปกติอยู่แล้ว ฉันไม่ต้องการความสามารถในการสร้างสาขาของตัวเองสาขาหลักคือสาขาของฉัน ใช่ SVN ได้รับการสนับสนุนอย่างง่ายสำหรับการแยกสาขา แต่การสนับสนุนที่ทรงพลังมากกว่านี้สำหรับฉันมันก็ไม่สมเหตุสมผล การผสานอาจเป็นความเจ็บปวดด้วยหรืออย่างน้อยก็จากประสบการณ์เล็กน้อยของฉัน มีเหตุผลที่ดีสำหรับฉันที่จะใช้คอมไพล์ในโครงการส่วนบุคคลหรือเพียงแค่ overkill?

18
ออกแบบข้อบกพร่องและจัดการกับความอัปยศอดสูจากมัน [ปิด]
คุณมีความถูกต้องพื้นฐานในการออกแบบซอฟต์แวร์ที่คุณเสนอมาหรือไม่? เมื่อคุณออกแบบบางอย่างที่ผิดขั้นพื้นฐานคุณมักจะเสียความเคารพต่อสมาชิกในทีมของคุณ ไม่ว่าคุณจะทำอะไรหลังจากนั้นคุณก็ถูก crosschecked สำหรับทุกสิ่งที่คุณเสนอหลังจากเหตุการณ์นั้น โดยเฉพาะอย่างยิ่งเรื่องนี้ยิ่งแย่กว่าเดิมเมื่อคุณยังใหม่ต่อทีมและพวกเขาไม่รู้จักอดีตที่คุณเคยประสบความสำเร็จมาก่อน บางทีเหตุผลที่คุณออกแบบไม่ดีอาจเกิดจากการขาดประสบการณ์หรือความรู้หรือทั้งสองอย่างในพื้นที่นั้น คุณมีวิธีเผชิญกับสถานการณ์เช่นนี้อย่างไร? นี่เป็นสิ่งที่ครั้งหนึ่งในอาชีพของคุณหรือไม่และมันเกิดขึ้นหรือไม่? มีใครนำสิ่งนี้มาใช้หรือไม่หรือในสถานการณ์เช่นนี้จำเป็นต้องมองหาสายงานใหม่หรือไม่? ข้อเสนอแนะที่ซื่อสัตย์บางอย่างได้โปรด ... ขอขอบคุณ.
84 design 

6
ทำไมความนิยมของไพ ธ อนจึงเกิดขึ้นอย่างรวดเร็ว? [ปิด]
ปรากฏงูใหญ่ครั้งแรกในปี 1991 แต่มันก็ค่อนข้างที่ไม่รู้จักจนถึงปี 2004 หากการจัดอันดับ TIOBEปริมาณที่มีความหมายอะไร เกิดอะไรขึ้น? อะไรทำให้ความสนใจในภาษาเก่า 13 ปีนี้ต้องผ่านหลังคา มีเหตุผลที่ Python ไม่ได้พิจารณาว่าเป็นคู่แข่งที่แท้จริงของ Perl ในทศวรรษแรกของการมีชีวิตอยู่หรือไม่? มีเหตุผลหรือไม่ที่ Python ไม่ได้อยู่ในความสับสนต่อเนื่องไปอีกสิบปี? โดยส่วนตัวฉันคิดว่า Python เป็นภาษาที่ดีมากและฉันดีใจที่ฉันไม่ใช่คนเดียว แต่มันไม่ได้มีการสำรองข้อมูลขององค์กรหรือคุณสมบัตินักฆ่าที่จะอธิบายการเพิ่มขึ้นอย่างฉับพลันของความเกี่ยวข้อง ไม่มีใครรู้เรื่องนี้บ้าง?

3
REST คืออะไร (เป็นภาษาอังกฤษแบบง่าย) [ปิด]
เมื่อเร็ว ๆ นี้ฉันสนใจที่จะทำความคุ้นเคยกับ REST ฉันลองอ่านรายการ wiki บน RESTแต่มันไม่ช่วยอะไรเลย ฉันจะซาบซึ้งจริงๆถ้ามีคนสามารถอธิบายเป็นภาษาอังกฤษง่าย ๆ (นั่นคือไม่มีศัพท์แสงทางเทคนิคที่ไม่จำเป็น ) REST คืออะไร ตำแหน่งใดที่อยู่ในระบบนิเวศสถาปัตยกรรมเว็บ วิธีการที่แน่น (หรือคับ) มันเป็นคู่กับโปรโตคอล ทางเลือกในการ REST คืออะไรและ REST เปรียบเทียบกับพวกเขาอย่างไร ฉันเข้าใจว่ามันเป็นไปไม่ได้ที่จะตอบคำถามนี้ในหนึ่งหรือสองย่อหน้าในกรณีนั้นลิงก์ที่เกี่ยวข้องจะได้รับการชื่นชมอย่างมาก
84 rest 

13
ไปที่สาขาหรือไม่ที่จะแตกสาขา?
เมื่อไม่นานมานี้เวิร์กโฟลว์การพัฒนาของฉันมีดังต่อไปนี้: รับคุณสมบัติจากเจ้าของผลิตภัณฑ์ ทำสาขา (หากคุณลักษณะมากกว่า 1 วัน) นำไปใช้ในสาขา ผสานการเปลี่ยนแปลงจากสาขาหลักไปยังสาขาของฉัน (เพื่อลดความขัดแย้งระหว่างการรวมย้อนหลัง) ผสานสาขาของฉันกลับไปที่สาขาหลัก บางครั้งมีปัญหาในการรวม แต่โดยทั่วไปฉันชอบมัน แต่เมื่อเร็ว ๆ นี้ฉันเห็นผู้ติดตามความคิดมากขึ้นเรื่อย ๆ ที่จะไม่สร้างสาขาเพราะมันยากที่จะฝึกการรวมกลุ่มอย่างต่อเนื่องการจัดส่งต่อเนื่อง ฯลฯ และฟังดูตลกโดยเฉพาะจากผู้ที่มีพื้นหลัง VCS กระจาย Git, Mercurial ฯลฯ ดังนั้นคำถามคือเราควรใช้สาขาทุกวันนี้ไหม?

14
อะไรคือข้อดีและข้อเสียของการใช้ชื่อจริงของคุณทางออนไลน์ [ปิด]
ในฐานะโปรแกรมเมอร์คุณเห็นความเป็นมืออาชีพหรือประโยชน์อื่นใดในการใช้ชื่อจริงของคุณในวาทกรรมออนไลน์เมื่อเทียบกับการจัดการที่คิดค้นขึ้นหรือไม่? ฉันเคยใช้ชื่อผู้ใช้เดียวเสมอและแสดงชื่อจริงของฉันทุกครั้งที่ทำได้ด้วยเหตุผลบางประการ: ความสนใจของฉันทางออนไลน์เกือบทั้งหมดเป็นมืออาชีพและเหนือกว่า มันสร้างบันทึกสาธารณะที่เป็นมิตรกับการค้นหาสำหรับงานทั้งหมดของฉันทุกที่ หากมีคนต้องการติดต่อฉันมีหลายวิธีที่จะทำ ผลงานของฉันเชื่อมโยงกับฉันเป็นการส่วนตัว ข้อเสียที่เป็นไปได้ที่จะเปิดเผยอย่างครบถ้วนรวมถึง: หากคุณรู้สึกอยากมีส่วนร่วมในบางสิ่งที่ไม่ดีมันอาจยากกว่านี้ นักจิตวิทยาที่สืบทอดโครงการของคุณสามารถค้นหาตำแหน่งที่คุณอาศัยอยู่ได้ง่ายขึ้น คุณอาจถูกสแปมโดยผู้ที่ไม่คุ้มค่ากับเวลาอันมีค่าที่อาจใช้เวลาในการเขียนซอฟต์แวร์ที่ยอดเยี่ยมที่คุณมีชื่อเสียง ผลงานของคุณนั้นเชื่อมโยงกับคุณเป็นการส่วนตัว ดูเหมือนว่าอย่างไรก็ตามผู้ใช้ StackOverflow ส่วนใหญ่ไปโดยการจัดการที่คิดค้นมากกว่าชื่อจริง ข้อยกเว้นที่น่าสังเกต ได้แก่ ผู้ใช้ที่รู้จักกันดีที่สุดซึ่งโดยปกติแล้วจะเป็นที่ยอมรับในอุตสาหกรรม แต่เราจะกลายเป็นนักเขียนโปรแกรม rockstar ในตำนานได้อย่างไรถ้าเราไม่ได้บอกชื่อของเราไว้ที่นั่น? สนทนา

22
แท็บกับช่องว่าง - ลักษณะการย่อหน้าที่เหมาะสมสำหรับทุกสิ่งในทุกสถานการณ์เป็นเท่าไหร่? [ปิด]
มาตรฐานการเข้ารหัสสำหรับรหัสที่โฮสต์ใน drupal.org แนะนำให้ใช้ช่องว่างสองช่องเพื่อเยื้องรหัส ไซต์อื่น ๆ แนะนำให้ใช้แท็บเพื่อเยื้องรหัส อักขระการเยื้องที่เหมาะสมสำหรับทุกสิ่งคืออะไรและในทุกสถานการณ์? โปรดอธิบายคำตอบที่คุณให้

11
การทดสอบหน่วยไม่ควรใช้วิธีการของฉันเอง?
วันนี้ฉันกำลังดูวิดีโอ "พื้นฐานJUnit " และผู้เขียนกล่าวว่าเมื่อทำการทดสอบวิธีการที่กำหนดในโปรแกรมของคุณคุณไม่ควรใช้วิธีการอื่นของคุณเองในกระบวนการ เพื่อที่จะเจาะจงมากขึ้นเขากำลังพูดถึงการทดสอบวิธีการสร้างเรกคอร์ดที่ใช้ชื่อและนามสกุลของอาร์กิวเมนต์และใช้เพื่อสร้างเรกคอร์ดในตารางที่กำหนด แต่เขาอ้างว่าในกระบวนการทดสอบวิธีนี้เขาไม่ควรใช้วิธีDAOอื่น ๆ ของเขาในการสืบค้นฐานข้อมูลเพื่อตรวจสอบผลลัพธ์สุดท้าย (เพื่อตรวจสอบว่าบันทึกถูกสร้างขึ้นจริงด้วยข้อมูลที่ถูกต้อง) เขาอ้างว่าสิ่งนั้นเขาควรเขียนรหัสJDBCเพิ่มเติมเพื่อสืบค้นฐานข้อมูลและตรวจสอบผลลัพธ์ ฉันคิดว่าฉันเข้าใจจิตวิญญาณของการอ้างสิทธิ์ของเขา: คุณไม่ต้องการให้กรณีทดสอบของวิธีใดวิธีหนึ่งขึ้นอยู่กับความถูกต้องของวิธีอื่น ๆ (ในกรณีนี้วิธี DAO) และสิ่งนี้สามารถทำได้โดยการเขียนการตรวจสอบของคุณเองอีกครั้ง / สนับสนุนรหัส (ซึ่งควรจะเฉพาะเจาะจงมากขึ้นและเพ่งความสนใจไปจึงรหัสที่ง่ายขึ้น) อย่างไรก็ตามเสียงในหัวของฉันเริ่มคัดค้านด้วยข้อโต้แย้งเช่นการทำสำเนารหัสความพยายามเพิ่มเติมที่ไม่จำเป็น ฯลฯ ฉันหมายถึงถ้าเราใช้แบตเตอรี่ทดสอบทั้งหมดและเราทดสอบวิธีสาธารณะทั้งหมดของเราอย่างละเอียด (รวมถึงวิธี DAO ในกรณีนี้) ไม่ควร ไม่เป็นไรที่จะใช้วิธีการเหล่านั้นบางอย่างขณะทดสอบวิธีอื่น ๆ หากหนึ่งในนั้นไม่ได้ทำในสิ่งที่มันควรจะเป็นกรณีทดสอบของตัวเองจะล้มเหลวและเราสามารถแก้ไขและเรียกใช้แบตเตอรี่ทดสอบอีกครั้ง ไม่จำเป็นต้องทำสำเนารหัส (แม้ว่ารหัสที่ซ้ำกันจะค่อนข้างง่ายกว่า) หรือสูญเสียความพยายาม ฉันมีความรู้สึกที่แข็งแกร่งเกี่ยวกับเรื่องนี้เนื่องจากแอปพลิเคชันExcel - VBA หลายตัวที่ฉันเขียน (ต้องผ่านการทดสอบหน่วยอย่างถูกต้องด้วยRubberduck สำหรับ VBA ) ซึ่งการใช้คำแนะนำนี้จะหมายถึงการทำงานพิเศษเพิ่มเติมจำนวนมากโดยไม่มีประโยชน์ คุณช่วยแบ่งปันความเข้าใจเกี่ยวกับเรื่องนี้ได้ไหม?

9
ทำความสะอาดรหัสความคิดเห็นเกี่ยวกับเอกสารประกอบคลาส
ฉันกำลังคุยกับเพื่อนร่วมงานคนใหม่เกี่ยวกับการแสดงความคิดเห็น เราทั้งคู่ชอบClean Codeและฉันพอใจกับความจริงที่ว่าควรหลีกเลี่ยงการแสดงความคิดเห็นแบบอินไลน์โค้ดและควรใช้ชื่อคลาสและเมธอดเพื่อแสดงสิ่งที่พวกเขาทำ อย่างไรก็ตามฉันเป็นแฟนตัวยงของการเพิ่มบทสรุปของชั้นเรียนขนาดเล็กที่พยายามอธิบายจุดประสงค์ของชั้นเรียนและสิ่งที่เป็นตัวแทนจริง ๆ แล้วเพื่อให้ง่ายต่อการรักษารูปแบบหลักการความรับผิดชอบเดียว ฉันยังเคยเพิ่มบทสรุปแบบบรรทัดเดียวให้กับวิธีการที่อธิบายถึงวิธีการที่ควรทำ ตัวอย่างทั่วไปคือวิธีการง่าย ๆ public Product GetById(int productId) {...} ฉันกำลังเพิ่มสรุปวิธีการดังต่อไปนี้ /// <summary> /// Retrieves a product by its id, returns null if no product was found. /// </summary ฉันเชื่อว่าความจริงที่ว่าวิธีการคืนค่า null ควรมีการบันทึกไว้ ผู้พัฒนาที่ต้องการเรียกใช้เมธอดไม่ควรเปิดโค้ดของฉันเพื่อดูว่าเมธอดส่งคืน null หรือมีข้อผิดพลาดเกิดขึ้นหรือไม่ บางครั้งมันเป็นส่วนหนึ่งของอินเทอร์เฟซดังนั้นนักพัฒนาซอฟต์แวร์จึงไม่ทราบว่ารหัสอ้างอิงใดทำงานอยู่หรือไม่ อย่างไรก็ตามเพื่อนร่วมงานของฉันคิดว่าข้อคิดเห็นเหล่านี้เป็น " กลิ่นรหัส " และ "ความคิดเห็นมักจะล้มเหลว" ( Robert C. Martin …

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