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

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

3
รูปแบบการออกแบบสำหรับการจัดการหน้าต่างในแอพ Java Swing
ฉันเพิ่งเริ่มสร้างแอป Java Swing เล็ก ๆ น้อย ๆ ของฉัน เมื่อโปรแกรมเปิดขึ้นมันจะเปิดหน้าต่างเดียวที่เรียบง่ายพร้อมป้ายชื่อและปุ่มคู่ การคลิกปุ่มใดปุ่มหนึ่งเหล่านั้นควรจะล้างหน้าจอต้อนรับและแทนที่ด้วยแผงที่แตกต่างกันโดยสิ้นเชิง ฉันไม่แน่ใจว่าวิธีที่ดีที่สุดในการสร้างฟังก์ชั่นนั้นคืออะไร วิธีหนึ่งก็คือการส่งผ่านJFrameข้อโต้แย้งของฉันไปสู่ ​​... เพียงเกี่ยวกับองค์ประกอบอื่น ๆ ทั้งหมด แต่นั่นทำให้ฉันรู้สึกแฮ็ค หรือมีการทำให้แต่ละพาเนลเป็นสองเท่าเป็นผู้ฟังการกระทำ แต่ก็ดูไม่ถูกต้องเช่นกัน มีรูปแบบการออกแบบที่ฉันควรใช้ที่นี่หรือไม่? "แทนที่เนื้อหาของหน้าต่างหลักและหน้าต่างเดียว" จะต้องเป็นการดำเนินการทั่วไปที่สมเหตุสมผล ชื่อรูปแบบจะเพียงพอ ฉันสามารถใช้ Google ด้วยตัวเองได้จากที่นั่น (ฉันจะไม่ปฏิเสธคำอธิบายใด ๆ อีกต่อไป)

26
รูปแบบการต่อต้านที่เลวร้ายที่สุดที่คุณเจอ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน6 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ อะไรคือรูปแบบการต่อต้านที่เลวร้ายที่สุดที่คุณเคยประสบมาในฐานะโปรแกรมเมอร์ ฉันส่วนใหญ่มีส่วนร่วมในจาวาแม้ว่ามันอาจจะเป็นอิสระจากภาษา ฉันคิดว่าสิ่งที่แย่ที่สุดคือสิ่งที่ฉันเรียกว่าการต่อต้านแบบหลัก หมายถึงโปรแกรมที่ประกอบไปด้วยคลาสเดี่ยวขนาดใหญ่มาก ๆ โดยทั่วไปแล้วจะมีวงวนใหญ่ที่ตรรกะทางธุรกิจทั้งหมดบรรจุอยู่บางครั้งอาจมีรหัสเป็นหมื่นบรรทัด

12
ตัวดำเนินการรวมคุณสมบัติสำหรับ C #
ตัวดำเนินการรวมค่า null ใน c # อนุญาตให้คุณย่อรหัสได้ if (_mywidget == null) return new Widget(); else return _mywidget; ลงไป: return _mywidget ?? new Widget(); ฉันพบว่าตัวดำเนินการที่มีประโยชน์ที่ฉันต้องการใน C # จะเป็นอันที่อนุญาตให้คุณส่งคืนคุณสมบัติของวัตถุหรือค่าอื่น ๆ ถ้าวัตถุนั้นเป็นโมฆะ ดังนั้นฉันต้องการแทนที่ if (_mywidget == null) return 5; else return _mywidget.Length; ด้วย: return _mywidget.Length ??! 5; ฉันอดไม่ได้ที่จะคิดว่าต้องมีเหตุผลบางอย่างที่ผู้ดำเนินการรายนี้จะไม่มีอยู่จริง มันเป็นกลิ่นรหัสหรือไม่? มีวิธีที่ดีกว่าในการเขียนนี้หรือไม่? (ฉันรู้ถึงรูปแบบวัตถุ null แต่ดูเหมือนว่าจะใช้เกินขีดเพื่อแทนที่รหัสสี่บรรทัดนี้)
9 c#  code-smell  null 

3
ใครสามารถแนะนำมาตรฐานการเข้ารหัสสำหรับ TSQL ได้บ้าง
เรามีมาตรฐานการเข้ารหัสสำหรับรหัส. Net ของเรามานานและดูเหมือนว่าจะมีแหล่งข้อมูลที่มีชื่อเสียงหลายแห่งสำหรับแนวคิดเกี่ยวกับวิธีการปรับใช้ซึ่งพัฒนาขึ้นตามกาลเวลา ฉันต้องการที่จะสามารถรวบรวมมาตรฐานบางอย่างสำหรับ SQL ที่เขียนขึ้นเพื่อใช้งานโดยผลิตภัณฑ์ของเรา แต่ดูเหมือนจะไม่มีทรัพยากรใด ๆ อยู่ที่ฉันทามติสำหรับสิ่งที่กำหนด SQL ที่เขียนได้ดี?

6
ทำไมฉันถึงต้องใส่ใจ Haskell? Monad คืออะไรและทำไมฉันต้องใช้ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันไม่ได้รับสิ่งที่พวกเขาแก้ปัญหา

4
กระบวนทัศน์ใดที่จะใช้สำหรับการเขียนเอ็นจิ้นหมากรุก
หากคุณกำลังจะเขียนเอ็นจิ้นเกมหมากรุกคุณจะใช้กระบวนทัศน์การเขียนโปรแกรมแบบใด (OOP ขั้นตอน ฯลฯ ) และทำไมคุณถึงเลือกใช้ โดยโปรแกรมหมากรุกฉันหมายถึงส่วนของโปรแกรมที่ประเมินบอร์ดปัจจุบันและตัดสินใจการเคลื่อนที่ครั้งต่อไปของคอมพิวเตอร์ ฉันถามเพราะฉันคิดว่าการเขียนเอ็นจิ้นหมากรุกเป็นเรื่องสนุก จากนั้นก็เกิดขึ้นกับฉันที่ฉันสามารถใช้เป็นโครงการสำหรับการเรียนรู้การเขียนโปรแกรมการทำงาน จากนั้นมันเกิดขึ้นกับฉันว่าปัญหาบางอย่างไม่เหมาะกับกระบวนทัศน์การทำงาน จากนั้นก็เกิดขึ้นกับฉันว่านี่อาจเป็นการสนทนาที่ดี

2
เวิร์กโฟลว์ที่เป็นกันเองสำหรับการออกแบบเว็บแอพคืออะไร?
เป็นเวลานานแล้วที่ฉันได้ทำการพัฒนาเว็บไซต์มากมายและฉันต้องการใช้ประโยชน์จากแนวทางปฏิบัติล่าสุด แต่ฉันพยายามดิ้นรนเพื่อให้เห็นภาพเวิร์กโฟลว์เพื่อรวมทุกอย่างเข้าด้วยกัน นี่คือสิ่งที่ฉันต้องการใช้: กรอบ CakePHP jsmin (ลดขนาด JavaScript) SASS (สไตล์ที่น่ากลัวโดยรวม) Git CakePHP: อธิบายตนเองได้สวยทำการแก้ไขและอัพเดทแหล่งข้อมูล JSMin: เมื่อคุณแก้ไขสคริปต์ให้คุณรัน jsmin ด้วยตนเองเพื่อเอาท์พุทโค้ด minified ใหม่หรือจะเป็นการดีกว่าถ้าคุณใช้ฮุคที่มีการยอมรับล่วงหน้าที่สร้าง jsmin outputs ของไฟล์จาวาสคริปต์ที่มีการเปลี่ยนแปลงโดยอัตโนมัติ สมมติว่าฉันไม่มีความรู้ในการติดตั้ง commit hooks SASS: ฉันชอบสิ่งที่ SASS นำเสนอ แต่ฉันก็ทราบด้วยว่า SASS code ไม่ได้รับการสนับสนุนโดยเบราว์เซอร์โดยค่าเริ่มต้นดังนั้นในบางครั้งรหัส SASS จะต้องเปลี่ยนเป็น CSS ปกติ เสร็จสิ้นในจุดใดในเวิร์กโฟลว์ Git ฉันกลัวที่จะยอมรับ แต่ครั้งสุดท้ายที่ฉันได้ทำการพัฒนาเว็บไซต์ที่สำคัญฉันไม่ได้ใช้การควบคุมแหล่ง SCM (IE ฉันใช้การควบคุมแหล่งที่มา แต่ประกอบด้วยบันทึกการเปลี่ยนแปลงที่มีรายละเอียดมากพร้อมการสำรองข้อมูล) ฉันมีประสบการณ์มากมายในการใช้ Git (เช่นเดียวกับ Mercurial และ …

3
อะไรคือความแตกต่างระหว่างการกำหนดข้อกำหนดการวิเคราะห์และข้อกำหนดในโลกแห่งความจริง?
คำถามของฉันมุ่งมั่นที่จะวาดเส้นแบ่งระหว่างการวิเคราะห์ความต้องการและการวิเคราะห์ความต้องการ ความแตกต่างระหว่างสองสิ่งนี้คืออะไร?

2
API ควรอยู่ใน en_US หรือ en_GB หรือทั้งสองอย่าง? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันควรเขียน APIs ในการสะกดคำในสหรัฐอเมริกาหรือสะกดอังกฤษหรือไม่ หรือฉันควรจัดทำแผนที่ทั้งคู่ให้เป็นแบบเดี่ยวและภายในโดยใช้ใครก็ตามที่ฉันชอบเพื่อให้ทั้งคู่ทำงานได้ ในปัจจุบัน API ส่วนใหญ่ใช้การสะกดของสหรัฐอเมริกา ทางออกสำหรับมันคืออะไร? แก้ไข: มีวิธีมาตรฐานนี้ อาจได้รับการสนับสนุนทั้งสอง?

6
คุณจัดการกับนักออกแบบเว็บไซต์ที่กลัวเกินกว่าจะอ่านและสัมผัสโค้ด PHP ได้อย่างไร?
ฉันถูกจ้างให้สร้างเว็บไซต์และทำงานร่วมกับนักออกแบบ (ซึ่งเป็นคนที่ติดต่อกับลูกค้าและจ้างฉันดังนั้นไม่ฉันไม่สามารถเตะตูดของเขาออกได้ =)) ที่กลัวเกินไป เพื่อสัมผัสกับโค้ด php และเป็นมือใหม่ใน html และ css เพื่อให้แบบจำลองที่ดีพอสำหรับฉันดังนั้นงานในวันนี้จะผ่านรูปแบบ html ใหม่ของเขาในหน้าครึ่งโปรแกรมและลบ<div>s และเปลี่ยนคลาสและเช่น . มีเครื่องมือบางอย่างหรือเวิร์กโฟลว์ที่ดีขึ้นเพื่อทำให้ทั้งสองเราง่ายขึ้นหรือไม่ บางทีฉันอาจจะจัดการกับวิธีการที่ไม่ถูกต้องทั้งหมดนี้ฉันยังใหม่ต่อการพัฒนาเว็บและฉันก็ไม่รู้ HTML / CSS มากพอ (และเขาควรจะทำ) เพื่อให้เขามีกราฟิกให้ฉันและทำแบบนั้น ทั้งหมดดังนั้นสิ่งที่เรากำลังทำคือเขาให้เพจ HTML แบบสแตติกแก่ฉันซึ่งดูเหมือนว่าเขาต้องการและฉันก็ใส่<?php ?>มันลงไป =) ใครสามารถให้คำแนะนำกับฉันเกี่ยวกับเรื่องนี้ได้บ้าง
9 php  html  css  workflows 

6
เหตุใดจึงแนะนำให้ปิดโปรแกรมทั้งหมดก่อนติดตั้งโปรแกรมใหม่
ปัญหาประเภทใดที่เกิดขึ้นจากการติดตั้งโปรแกรมใหม่ขณะที่โปรแกรมอื่นกำลังทำงานอยู่ ฉันคิดว่า GAC แก้ไขปัญหาเก่า ๆ จำนวนมากของ dll ที่ใช้ร่วมกันที่ถูกล็อคอยู่ ดังนั้นปัญหาประเภทใดยังคงเกิดขึ้น ฉันสามารถดูปัญหาเกี่ยวกับการอัปเกรดโปรแกรมเดียวได้อย่างแน่นอน แต่นอกเหนือจากนี้มันยากที่จะเห็นว่าทำไมแอปจะเหยียบนิ้วเท้าของแต่ละคน
9 .net  installer 

5
การเรียกเก็บเงินตามชั่วโมง / โครงการ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน7 ปีที่ผ่านมา นี้เกี่ยวข้องกับคำถามที่ฉันถามก่อนหน้านี้ - /software/34023/how-to-end-a-relationship-with-a-client-without-pissing-them-off ภาระหน้าที่ของคุณเมื่อชาร์จเป็นชั่วโมงเทียบกับการเรียกเก็บเงินตามโครงการคืออะไร หากคุณตกลงที่จะทำโครงการให้ประมาณคร่าว ๆ ว่าอาจใช้เวลา 10 วันในการทำงานและคิดค่าใช้จ่าย£ X ต่อชั่วโมง - คุณมีภาระผูกพันที่จะต้องทำงานฟรีหลังจาก 10 วันนั้นหมดไปและคุณยังไม่ได้จัดการ เพื่อให้โครงการของคุณเสร็จสมบูรณ์เนื่องจากปัญหาที่ไม่คาดคิด จะเกิดอะไรขึ้นถ้าคุณส่งมอบโครงการ แต่พบข้อบกพร่อง - คุณควรแก้ไขข้อบกพร่องเหล่านี้ได้ฟรีหรือไม่หากครบ 10 วันหรือคิดค่าบริการลูกค้าของคุณ นอกจากนี้สำหรับโครงการด้านบนสิ่งที่ควรเป็นผลลัพธ์เมื่อคุณเริ่มต้นโครงการ แต่หลังจาก 10 วันด้วยเหตุผลใดก็ตามที่คุณต้องยอมแพ้และบอกลูกค้าว่าคุณไม่สามารถทำได้อีกต่อไป ฉันรู้ว่าสิ่งนี้ไม่ได้เป็นการสร้างชื่อเสียงและความสัมพันธ์ของคุณกับลูกค้า แต่คุณมีภาระผูกพันที่จะต้องจ่ายเงินคืนให้กับคุณหรือคุณแค่ส่งโค้ดครึ่งหนึ่ง / เกือบเสร็จแล้วและช่วยให้พวกเขาหาคนอื่นให้สำเร็จ เหตุผลที่ฉันถามคำถามข้างต้นเป็นเพราะฉันใหม่เพื่อ freelancing และต้องการทราบวิธีการจัดการกับสถานการณ์ข้างต้นหากพวกเขาเคยปลูก ขอบคุณ!

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

5
คำแนะนำสำหรับการตั้งค่าการพัฒนาเว็บเซิร์ฟเวอร์ที่ดี [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ประมาณหนึ่งเดือนที่ผ่านมาฉันสร้าง LAMP stack อันแรกของฉันและติดตั้งเว็บไซต์อย่างง่าย ๆ ที่ใช้ตัวอักษรแต่ละตัวในตัวย่อนั้น อย่างไรก็ตามการตั้งค่าการพัฒนาของฉันก็น้อยกว่าอุดมคติ ฉันไม่ได้จริงๆมีเซิร์ฟเวอร์ทดสอบท้องถิ่น แต่ผมเขียนทั้งหมดของสคริปต์ CGI ของฉันในขณะที่กลุ่ม ssh'ed ลงในเครื่องระยะไกลเป็นราก ตอนนี้ฉันตั้งใจจะเริ่มการพัฒนาที่จริงจังยิ่งขึ้น คำถาม:อะไรคือการตั้งค่าที่ดีเพื่อให้การพัฒนาดำเนินไปอย่างง่ายดายที่สุด ฉันต้องการที่จะเข้าใจสิ่งที่มีให้ฉันตามสายของ IDE, การโค่นล้ม (หรือทางเลือก) การอัปโหลดและดาวน์โหลดเนื้อหาและแนวทางปฏิบัติที่ดีที่สุด ฉันใหม่ทั้งหมดนี้ นอกจากนี้อย่าลังเลที่จะชี้ให้ฉันที่เว็บไซต์ที่ดี มีเว็บไซต์มากมาย แต่มีเพียงคนที่พัฒนาเนื้อหาเว็บอย่างหนักอยู่แล้วเท่านั้นที่สามารถระบุได้อย่างรวดเร็วว่าเป็นเว็บไซต์ที่ดีหรือไม่

4
การตั้งชื่อคลาสนามธรรมของ Java
ตัวอย่าง: คุณสร้างคลาสนามธรรมสำหรับการกระทำ Ajax การกระทำของอาแจ็กซ์ที่แตกต่างกันจะขยายชั้นนี้ทั้งหมด ปัญหา: คุณชื่อคลาส AjaxAction หรือ AbstractAjaxAction หรือไม่ เมื่อคุณสร้างคลาสย่อยคุณตั้งชื่อพวกเขา: หนังบู๊ AjaxAction เพียงแค่ตั้งชื่อพวกเขาว่าพวกเขาคืออะไร ฉันไม่สามารถค้นหาสิ่งที่ประชุม "ทางการ" คืออะไร ฉันไม่เห็นความต้องการคำนำหน้า "นามธรรม" หรือข้อกำหนดการตั้งชื่อใด ๆ ที่จำเป็นในคลาสย่อย (อาจพอดีอย่างไรก็ตามขึ้นอยู่กับ) มีการประชุมอย่างเป็นทางการหรือไม่? คุณช่วยเชื่อมโยงฉันกับมันได้ไหม และคุณมีความคิดเห็นอย่างไรในเรื่องนี้?
9 java  naming 

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