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

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

1
ถ้าฉันปล่อยโปรแกรมภายใต้ GPL ฉันต้องทำต่อหรือไม่?
พิจารณาสถานการณ์นี้: ฉันกำลังพัฒนาโปรแกรม FooSuite ที่ใช้ไลบรารี่ QuuxTools ที่ได้รับลิขสิทธิ์ GPL ฉันปล่อยโปรแกรม FooSuite 1.0 ภายใต้ GPL ต่อมาฉันพบว่าด้วยเหตุผลบางอย่างฉันต้องอนุญาตให้โปรแกรมใช้งานกับใครบางคนด้วยเงื่อนไขต่าง ๆ ดังนั้น: ฉันลบการพึ่งพา GPL ผ่าน QuuxTools โดยทั้ง ... เขียนโปรแกรมใหม่ไม่ให้ใช้ไลบรารีนี้อีกต่อไป รับใบอนุญาตที่แตกต่างกันสำหรับ QuuxTools (ถ้าเป็นใบอนุญาตคู่ดู PyQt) ฉันปล่อย FooSuite 1.1 ภายใต้ใบอนุญาตที่ไม่ใช่ GPL อย่างไรก็ตามFooSuite 1.1 ยังคงมาทำงานจาก FooSuite 1.0 ฉันเข้าใจว่าไม่ใช่คนแปลกหน้าที่จะทำสิ่งที่ฉันทำ แต่ฉันเอง - ในฐานะเจ้าของ FooSuite - ปลอดจากข้อ จำกัด นี้?
26 licensing  gpl 

9
ความฝันของการเขียนโปรแกรมที่เปิดเผย [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ทำไมความฝันของการเขียนโปรแกรมเชิงประกาศไม่ได้ถูกรับรู้? อะไรคืออุปสรรคคอนกรีตที่ขวางทาง? ยกตัวอย่างง่ายๆทำไมฉันพูดไม่ได้ sort(A) is defined by sort(A) in perm(A) && asc(sort(A)) และรับอัลกอริธึมการเรียงลำดับโดยอัตโนมัติ permหมายถึงการเรียงสับเปลี่ยนและascหมายถึงการเพิ่มขึ้น

4
ทำไมจึงไม่แนะนำให้โพสต์ข้อบกพร่องหลายอย่างในปัญหา / ตั๋วเดียวกัน
ฉันไม่แน่ใจว่านี่เป็นสถานที่สำหรับถามคำถามเชิงแนวคิดต่อไปนี้ (Stackoverflow ไม่แน่นอน) ฉันเห็นคำถามนี้ในการสอบแบบปรนัย (คำตอบเดียว) คล้ายกับการสอบISTQB : เหตุใดจึงไม่แนะนำให้รายงานข้อบกพร่องต่าง ๆ ในปัญหา / ตั๋วเดียวกัน เพื่อให้รายงานมีความกระชับและชัดเจน ข เนื่องจากผู้พัฒนาอาจแก้ไขข้อบกพร่องเพียงข้อเดียว ค เนื่องจากผู้ทดสอบกลุ่มทดสอบได้รับการจัดอันดับตามจำนวนข้อบกพร่องที่พบ d ระบบการจัดการข้อบกพร่องไม่สนับสนุนคุณสมบัตินี้ของข้อบกพร่องหลายรายการ ความเห็นของฉันaคือคำตอบที่ถูกต้อง b- ไม่สามารถทำได้เนื่องจากการแก้ไขข้อเสนอแนะที่แก้ไขแล้วปิดควรหลีกเลี่ยงกรณีดังกล่าว c- ผิดอย่างชัดเจน d - ปลั๊กอิน Redmine / Trac รองรับหลายฟิลด์ bคำตอบตามแผ่นคำตอบคือ มีคนอธิบายได้ไหม ความคิดเห็นที่มีความคิดเห็นเกี่ยวกับคำตอบยินดีต้อนรับ

8
ทำไมเว็บไซต์ขนาดใหญ่จึงใช้ภาษาต่าง ๆ สำหรับส่วนหลังและส่วนหน้า
ความเข้าใจของฉันจากแอปพลิเคชัน MVC ขนาดเล็กคือคุณมีส่วนหน้าซึ่งเกี่ยวข้องกับ HTML, JS, jQuery และอื่น ๆ และคุณมีจุดสิ้นสุดด้านหลังซึ่งประกอบด้วยตัวควบคุมและรุ่นของคุณ อย่างไรก็ตามเมื่อฉันพูดคุยกับนักพัฒนาจาก บริษัท ขนาดใหญ่พวกเขามักจะพูดถึงว่ามีส่วนหน้าและส่วนหลัง ดังนั้นบางครั้งฉันอาจได้ยินว่าพวกเขามีส่วนหน้ากับ C # และส่วนหลังกับ Java ทำไม บริษัท ใดต้องการแบ็กเอนด์และส่วนหน้าในภาษาอื่น สิ่งนี้ช่วยให้เว็บไซต์ขนาดใหญ่ดีขึ้นหรือไม่ เมื่อมีคนบอกว่าส่วนหน้าของพวกเขาถูกสร้างขึ้นใน C # นี่หมายความว่าพวกเขากำลังใช้เฟรมเวิร์กสำหรับส่วนหน้า (เช่น. NET) และกรอบงานเพิ่มเติมของแบ็กเอนด์ (เช่นสปริง) หรือมันหมายถึงบางสิ่งที่แตกต่างอย่างสิ้นเชิง?

7
ถ่านขนส่งคืน - พิจารณาว่าล้าสมัยหรือไม่
ฉันเขียนไลบรารีโอเพนซอร์ซที่แยกวิเคราะห์ข้อมูลที่มีโครงสร้าง แต่ตั้งใจออกจากการตรวจจับการรับคืนของการขนส่งเนื่องจากฉันไม่เห็นจุดนั้น มันเพิ่มความซับซ้อนและค่าใช้จ่ายเพิ่มเติมเพื่อผลประโยชน์เพียงเล็กน้อย / ไม่มีเลย ด้วยความประหลาดใจของฉันผู้ใช้ส่งข้อผิดพลาดที่ parser ไม่ทำงานและฉันค้นพบสาเหตุของปัญหาคือข้อมูลที่ใช้ปลายสาย CR ตรงข้ามกับ LF หรือ CRLF OSX ไม่ได้ใช้การสิ้นสุดไลน์สไตล์ LF ตั้งแต่เปลี่ยนไปใช้แพลตฟอร์มที่ใช้ระบบปฏิบัติการยูนิกซ์หรือไม่? ฉันรู้ว่ามีแอปพลิเคชั่นเช่น Notepad ++ ซึ่งสามารถเปลี่ยนจุดสิ้นสุดของบรรทัดเพื่อใช้ CR ได้อย่างชัดเจน แต่ฉันไม่เห็นว่าทำไมใครต้องการ จะปลอดภัยไหมที่จะไม่รวมการสนับสนุนสำหรับผู้ใช้จำนวนเปอร์เซ็นต์ที่ไม่มีนัยสำคัญทางสถิติที่ตัดสินใจ (ไม่ว่าจะด้วยเหตุผลใดก็ตาม) กับการสิ้นสุดไลน์สไตล์ Mac OS เก่า? ปรับปรุง: ในการชี้แจงการสนับสนุนการสิ้นสุดบรรทัด Windows (เช่น CRLF) ไม่จำเป็นต้องมีการรับรู้โทเค็น CR สำหรับวัตถุประสงค์ด้านประสิทธิภาพ lexer จะทำการจับคู่แบบต่อหน่วย ด้วยการละเว้นตัวอักษร CR เงียบ ๆ โทเค็น CRLF จะทำให้ LF ง่ายขึ้น ด้วยเหตุนี้โทเค็น …

8
มีรสชาติของ OOP ที่หลักการ SOLID บางส่วนหรือทั้งหมดขัดแย้งกับการทำความสะอาดรหัสหรือไม่?
ฉันเพิ่งได้พูดคุยกับเพื่อนของฉันเกี่ยวกับ OOP ในการพัฒนาวิดีโอเกม ฉันอธิบายสถาปัตยกรรมของหนึ่งในเกมของฉันซึ่งทำให้เพื่อนของฉันประหลาดใจมีชั้นเรียนขนาดเล็กจำนวนมากและเลเยอร์สิ่งที่เป็นนามธรรมหลายชั้น ฉันเป็นที่ถกเถียงกันอยู่ว่านี่เป็นผลมาจากการที่ฉันมุ่งเน้นไปที่การให้ความรับผิดชอบทุกอย่างเดียวและยังช่วยลดการเชื่อมต่อระหว่างส่วนประกอบ ความกังวลของเขาคือจำนวนชั้นเรียนจำนวนมากจะแปลฝันร้ายบำรุงรักษา มุมมองของฉันคือว่ามันจะมีผลตรงกันข้ามที่แน่นอน เราดำเนินการหารือเกี่ยวกับเรื่องนี้สำหรับสิ่งที่ดูเหมือนว่าหลายศตวรรษในที่สุดก็ตกลงที่จะไม่เห็นด้วยบอกว่าอาจมีบางกรณีที่หลักการที่เป็นของแข็งและ OOP ที่เหมาะสมไม่จริงผสมกันได้ดี แม้แต่รายการ Wikipediaเกี่ยวกับหลักการ SOLID ก็ระบุว่าเป็นแนวทางที่ช่วยในการเขียนโค้ดที่สามารถบำรุงรักษาได้และเป็นส่วนหนึ่งของกลยุทธ์โดยรวมของการเขียนโปรแกรมแบบคล่องตัวและปรับตัว ดังนั้นคำถามของฉันคือ: มีกรณีใน OOP ที่หลักการ SOLID บางส่วนหรือทั้งหมดไม่ได้ยืมตัวเองเพื่อทำความสะอาดรหัสหรือไม่? ฉันสามารถจินตนาการได้ทันทีว่าหลักการทดแทน Liskov อาจขัดแย้งกับการรับมรดกที่ปลอดภัยอีกรสชาติหนึ่ง กล่าวคือหากมีใครคิดรูปแบบที่มีประโยชน์อื่น ๆ ที่นำมาใช้ผ่านการสืบทอดมันค่อนข้างเป็นไปได้ที่ LSP อาจขัดแย้งโดยตรงกับมัน มีคนอื่นไหม? บางทีโครงการบางประเภทหรือแพลตฟอร์มเป้าหมายบางอย่างอาจทำงานได้ดีขึ้นด้วยวิธี SOLID ที่น้อยลง? แก้ไข: ฉันแค่ต้องการระบุว่าฉันไม่ได้ถามวิธีการปรับปรุงรหัสของฉัน;) เหตุผลเดียวที่ฉันพูดถึงโครงการในคำถามนี้คือการให้บริบทเล็กน้อย คำถามของฉันเป็นเรื่องเกี่ยวกับหลักการ OOP และการออกแบบทั่วไป หากคุณอยากรู้เกี่ยวกับโครงการของฉันให้ดูนี้ แก้ไข 2: ฉันจินตนาการว่าคำถามนี้จะตอบในหนึ่งใน 3 วิธี: ใช่มีหลักการออกแบบของ OOP ที่ขัดแย้งกับ SOLID บางส่วน ใช่มีหลักการออกแบบของ …

3
ทำไมตัวชี้โมฆะแทนการส่งคลาส
ใน Java: int count = (Integer) null; พ่น java.lang.NullPointerException เหตุใดจึงไม่โยนข้อยกเว้น Class Cast เพื่อความสะดวกในการทำความเข้าใจโปรแกรมเมอร์ เหตุใดจึงเลือกข้อยกเว้นนี้นอกเหนือจากข้อยกเว้นอื่น ๆ

6
เป็นงานของนักพัฒนาที่จะแนะนำความต้องการด้านไอทีหรือไม่?
ฉันเป็นนักพัฒนาซอฟต์แวร์เพียงคนเดียวที่ทำงานกับเว็บแอปพลิเคชันที่ใกล้จะถึงจุดสิ้นสุด ตอนนี้เรากำลังหาที่จะทำให้มันมีชีวิตอยู่ในอีกไม่กี่เดือนข้างหน้า นี่คือเว็บแอปพลิเคชันสำหรับ บริษัท ที่ไม่ใช่ด้านไอที แม้ว่าพวกเขาจะมีทีมไอทีภายใน แต่พวกเขาก็ถามฉันเกี่ยวกับข้อกำหนดของฮาร์ดแวร์สำหรับเซิร์ฟเวอร์ที่ใช้งานจริงเช่น RAM, 32 บิตหรือ 64 บิต ทีมไอทีภายในไม่ควรทำสิ่งนี้หรือตั้งแต่ฉันเป็นคนเดียวที่ทำงานในโครงการนี้เป็นหน้าที่ของฉันที่จะต้องแจ้งให้พวกเขาทราบถึงข้อกำหนดฮาร์ดแวร์เฉพาะที่อาจส่งผลกระทบต่อประสิทธิภาพของโครงการ เหตุผลที่ฉันถามคำถามนี้คือฉันไม่ได้ทำมาก่อน ทุกครั้งที่ฉันเคยได้รับเซิร์ฟเวอร์และขอให้ปรับใช้แอพในนั้น ฉันไม่เคยกังวลเกี่ยวกับการกำหนดค่าเซิร์ฟเวอร์ ฯลฯ

5
จะอธิบายได้อย่างไรว่าทำไมตัวเลือกการออกแบบถึงดี? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว เมื่อฉันเป็นนักพัฒนาที่ดีขึ้นฉันพบว่าทักษะการออกแบบส่วนใหญ่มาจากสัญชาตญาณมากกว่าการวิเคราะห์เชิงกล มันเยี่ยมมาก มันช่วยให้ฉันอ่านโค้ดและรู้สึกถึงมันเร็วขึ้น มันช่วยให้ฉันแปลการออกแบบระหว่างภาษาและ abstractions ง่ายขึ้นมาก และมันทำให้ฉันทำสิ่งต่าง ๆ ได้เร็วขึ้น ข้อเสียคือฉันพบว่ามันยากที่จะอธิบายให้เพื่อนร่วมทีม (และที่แย่กว่านั้นคือการจัดการ) ทำไมการออกแบบโดยเฉพาะนั้นมีประโยชน์ โดยเฉพาะอย่างยิ่งเพื่อนร่วมทีมที่ล้าหลังในการปฏิบัติที่ดีที่สุด "การออกแบบนี้สามารถทดสอบได้มากขึ้น!" หรือ "คุณควรสนับสนุนการแต่งเพลงมากกว่ามรดก" ไปที่หัวของพวกเขาและนำไปสู่หลุมกระต่ายของฉันพยายามที่จะเบาะแสทุกคนในทศวรรษที่ผ่านมาของความก้าวหน้าด้านวิศวกรรมซอฟต์แวร์ ฉันจะดีขึ้นด้วยการฝึกฝนแน่นอน แต่ในเวลานั้นมันเกี่ยวข้องกับเวลาที่สูญเปล่าและ / หรือการออกแบบที่ไม่ดี (ซึ่งจะนำไปสู่การเสียเวลาแก้ไขในภายหลัง) ฉันจะอธิบายได้อย่างไรว่าเหตุใดการออกแบบบางอย่างจึงเหนือกว่าเมื่อผู้ชมไม่เห็นประโยชน์อย่างชัดเจน

17
บทเรียนที่ดีที่สุดที่คุณได้เรียนรู้ในอาชีพของคุณคืออะไร? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันคิดว่าของฉันคือ "ไม่มีสิ่งใดเป็นงานห้านาที" - โปรแกรมเมอร์มักจะมองโลกในแง่ดีเกี่ยวกับการพัฒนาและเราควรคิดผ่านผลกระทบจริง ๆ ก่อนที่จะสัญญาว่าจะแก้ปัญหาได้อย่างรวดเร็ว

6
ประวัติรุ่นเป็นสิ่งที่ศักดิ์สิทธิ์จริง ๆ หรือดีกว่าที่จะรีบูต?
ฉันเห็นด้วยเสมอกับมนต์ของ Mercurial 1อย่างไรก็ตามตอนนี้ Mercurial มาพร้อมกับส่วนขยายการปฏิเสธและเป็นวิธีปฏิบัติที่นิยมในคอมไพล์ฉันสงสัยว่ามันอาจจะถือว่าเป็น "การปฏิบัติที่ไม่ดี" หรืออย่างน้อยก็ ไม่ดีพอที่จะหลีกเลี่ยงการใช้ ไม่ว่าในกรณีใดฉันรู้ว่าการรีบูตเป็นอันตรายหลังจากการผลัก OTOH ฉันเห็นจุดของการพยายามทำแพ็คเกจ 5 ที่กระทำในอันเดียวเพื่อทำให้มันดู niftier (โดยเฉพาะในสาขาการผลิต) อย่างไรก็ตามโดยส่วนตัวฉันคิดว่าจะดีกว่าถ้าได้เห็นบางส่วนที่ทำหน้าที่บางอย่าง การทดลองเสร็จสิ้นแม้ว่าจะไม่ได้ดี แต่การเห็นบางสิ่งเช่น "พยายามทำวิธีที่ X แต่ไม่เหมาะสมเท่ากับ Y หลังจากทั้งหมดการทำ Z ที่ใช้ Y เป็นฐาน" IMHO มีคุณค่าต่อผู้เรียน codebase และติดตามการพัฒนาความคิด ทัศนะของฉัน (ในแง่โง่, เกี่ยวกับอวัยวะภายใน, เอนเอียง) คือโปรแกรมเมอร์ที่ชอบลดการซ่อนข้อผิดพลาด ... และฉันไม่คิดว่ามันดีสำหรับโครงการเลย ดังนั้นคำถามของฉันคือ: คุณพบว่ามีค่าจริงๆที่จะมี "การกระทำอินทรีย์" (เช่นประวัติที่ไม่ได้รับการแก้ไข) ในทางปฏิบัติหรือไม่หรือตรงกันข้ามคุณชอบที่จะพบกับความมุ่งมั่นที่ดีและไม่สนใจกระบวนการทดลอง แล้วแต่อย่างใดอย่างหนึ่งที่คุณเลือกเหตุผลที่ไม่ทำงานสำหรับคุณ? (ให้สมาชิกในทีมคนอื่น ๆ เก็บประวัติหรืออีกทางหนึ่งคือรีบูทมัน) 1ต่อการวิเคราะห์ของ Google DVCSใน …
26 git  mercurial  dvcs 

12
มี antipattern เพื่ออธิบายวิธีการเข้ารหัสนี้หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันมี codebase ที่โปรแกรมเมอร์มักจะห่อสิ่งต่าง ๆ ในพื้นที่ที่ไม่สมเหตุสมผล ตัวอย่างเช่นให้บันทึกข้อผิดพลาดเรามีคุณสามารถเข้าสู่ระบบผ่าน ErrorLog.Log(ex, "friendly message"); เขาเพิ่มวิธีการอื่น ๆ อีกมากมายเพื่อให้งานเดียวกันนั้นสำเร็จ เช่น SomeClass.Log(ex, "friendly message"); ซึ่งจะหมุนไปรอบ ๆ และเรียกวิธีแรก สิ่งนี้จะเพิ่มระดับความซับซ้อนโดยไม่มีประโยชน์เพิ่มเติม มีรูปแบบการต่อต้านเพื่ออธิบายสิ่งนี้หรือไม่?

3
ใบอนุญาตโอเพนซอร์ซที่อนุญาตมากที่สุดคืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ซึ่งเป็นใบอนุญาตเปิดแหล่งที่มาส่วนใหญ่อนุญาตใช้ได้? "การอนุญาต" จะถูกกำหนดเป็น "ข้อกำหนดขั้นต่ำสุดเกี่ยวกับวิธีการแจกจ่ายซอฟต์แวร์"
26 licensing 

4
วิธีการพัฒนาส่วนหน้า (UI) สำหรับเว็บไซต์ Django ของฉัน
ฉันกำลังเรียนรู้ Django และใหม่ต่อการพัฒนาเว็บ โปรดขอโทษด้วยถ้าคุณพบว่าคำถามนี้โง่เกินไป ดังนั้นฉันกำลังสร้างแอปพลิเคชัน Facebook โดยใช้ Django ซึ่งฉันต้องการโฮสต์ใน Google App Engine โครงการจะเน้นที่การอ่านฟีด RSS / Atom ของเว็บไซต์ใด ๆ (นั่นคือทั้งหมดที่ฉันสามารถพูดได้ตอนนี้) ฉันมั่นใจในการประมวลผลไฟล์ RSS / Atom แต่ฉันกังวลเกี่ยวกับส่วนหน้า (ส่วนต่อประสานผู้ใช้) - "ส่วนการออกแบบ" ฉันไม่ทราบว่า HTML / CSS / JavaScript (ฉันสามารถจัดการกับสิ่ง HTML ง่ายๆ แต่ไม่นำไปสู่สิ่งที่ออกแบบ) ก่อนอื่นฉันคิดว่าการใช้เครื่องมืออย่าง Dreamweaver หรือซอฟต์แวร์ที่เทียบเท่ากันสำหรับการออกแบบ UI แต่เมื่อฉันเริ่มเรียนรู้ django และเริ่มเข้าสู่มันดูเหมือนว่าจะเป็นสิ่งที่ "เป็นไปไม่ได้" ดังนั้น, ฉันจะออกแบบส่วน UI ของเว็บไซต์ได้อย่างไร ฉันไม่สามารถใช้เครื่องมืออย่าง …

11
การบำรุงรักษาอย่างชาญฉลาดมีอีกอย่างหนึ่งที่ไม่ต้องใช้เครื่องมือจัดฟันที่ปลอดภัยหรือไม่?
คือelse whileโดยไม่แทรกแซงการพิจารณาการจัดฟัน "ปลอดภัย" การบำรุงรักษาที่ชาญฉลาด? กำลังเขียนif-elseโค้ดโดยไม่มีเครื่องหมายวงเล็บด้านล่าง ... if (blah) foo(); else bar(); ... มีความเสี่ยงเนื่องจากการขาดเครื่องหมายปีกกาทำให้ง่ายต่อการเปลี่ยนความหมายของรหัสโดยไม่ตั้งใจ อย่างไรก็ตามด้านล่างมีความเสี่ยงหรือไม่ if (blah) { ... } else while (!bloop()) { bar(); } หรือelse whileโดยไม่ต้องจัดฟันจัดฟันถือว่า "ปลอดภัย"?

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