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

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

6
เมื่อใดที่คุณควรใช้ bools ใน C ++
เรามีงานที่มอบหมายสำหรับชั้นเรียนของเราซึ่งเราต้องสร้างเกมโอเอกซ์ ผู้คนชอบที่จะทำให้ตัวเองสับสนดังนั้นพวกเขาจึงเขียนเกมที่ซับซ้อนซึ่งรวมถึงเมนู ในตอนท้ายของเกมคุณต้องมีตัวเลือกให้เล่นอีกครั้งหรือออกจากโปรแกรม ฉันใช้intตัวแปรสำหรับเรื่องนั้น แต่ฉันสังเกตเห็นเพื่อนร่วมชั้นบางคนใช้บูล มันมีประสิทธิภาพมากกว่านี้ไหม? ความแตกต่างระหว่างการจัดเก็บคำตอบที่ควรเก็บค่าสองค่าในintแทนที่จะเก็บไว้ในบูลคืออะไร วัตถุประสงค์ที่แน่นอนของตัวแปรเหล่านี้คืออะไร?
34 c++  boolean 

12
DVCSes ไม่สนับสนุนการรวมอย่างต่อเนื่องหรือไม่?
บอกว่ามีทีมนักพัฒนาสิบคนที่คล่องแคล่ว ทุกวันพวกเขาแต่ละคนเลือกงานจากคณะกรรมการดำเนินการเปลี่ยนแปลงหลายอย่างจนกระทั่งพวกเขาเสร็จสิ้นภารกิจ (ภายในสิ้นวัน) นักพัฒนาทั้งหมดเช็คอินกับ trunk โดยตรง (สไตล์ Google ทุกการคอมมิทเป็นตัวเลือกรีลีสโดยใช้ฟีเจอร์สลับ ฯลฯ ) หากพวกเขาใช้ CVS ส่วนกลางเช่น SVN ทุกครั้งที่พวกเขาคอมไพล์เซิร์ฟเวอร์บิลด์จะรวมและทดสอบการเปลี่ยนแปลงกับงานของนักพัฒนาอีกเก้าคน บิลด์เซิร์ฟเวอร์จะทำงานค่อนข้างต่อเนื่องตลอดทั้งวัน แต่ถ้าพวกเขาใช้ DCVS เหมือนคอมไพล์ผู้พัฒนาอาจรอจนกว่าพวกเขาจะทำงานให้เสร็จก่อนที่จะผลักดันคอมมิชชันท้องถิ่นของพวกเขาทั้งหมดไปยังที่เก็บส่วนกลาง การเปลี่ยนแปลงของพวกเขาจะไม่ถูกรวมเข้าด้วยกันจนกระทั่งสิ้นสุดวัน ในสถานการณ์สมมตินี้ทีม SVN จะรวมกันอย่างต่อเนื่องบ่อยขึ้นและค้นพบปัญหาการรวมเร็วกว่าทีม git นี่หมายความว่า DVCS นั้นไม่เหมาะสำหรับทีมต่อเนื่องมากกว่าเครื่องมือรวมศูนย์แบบเก่าหรือไม่ พวกคุณรู้ปัญหานี้ได้อย่างไร

3
Model-View-Presenter (MVP) มีประโยชน์กับ Android หรือไม่?
วิธีแยกมุมมองและผู้นำเสนอใน Android ในขณะที่การตอบสนองต่อการกระทำของผู้ใช้ (ส่วนผู้นำเสนอของ MVP) ถูกตั้งค่าเป็นกิจกรรมเดียวกันที่แสดงองค์ประกอบ GUI (ดูส่วนของ MVP) "ในการนำเสนอมุมมองแบบจำลองเช่นเดียวกับ Martin Fowler หรือ Michael Feathers [2] กล่าวว่าตรรกะของ UI ถูกแยกออกเป็นคลาสที่เรียกว่าผู้นำเสนอที่จัดการอินพุตทั้งหมดจากผู้ใช้และบอกว่า" ใบ้ "เป็นอย่างไร แสดง "(อ้างจากที่นี่ ) จนถึงตอนนี้ฉันคิดว่าหนึ่งในคุณสมบัติหลักของ Android คือกิจกรรมอัจฉริยะที่ดำเนินการตอบสนองต่อพวกเขาและแสดงผลลัพธ์ โครงการ MVP ขัดแย้งกับปรัชญาของ Android หรือไม่ รู้สึกถึงความพยายามที่จะตระหนักถึงมันบน Android? ถ้าใช่จะทำอย่างไร?
34 android  mvp 

6
มีรูปแบบการออกแบบที่จะนำไปใช้กับแบบจำลองส่วนลดหรือไม่?
มีรูปแบบการออกแบบใดบ้างที่รู้จักกันในการใช้โมเดลจำลองส่วนลดหรือไม่? ตามแบบจำลองส่วนลดฉันหมายถึงสิ่งต่อไปนี้: หากลูกค้าซื้อผลิตภัณฑ์ X, ผลิตภัณฑ์ Y และผลิตภัณฑ์ Z เขาจะได้รับส่วนลด 10% หรือ $ 100 หากลูกค้าซื้อผลิตภัณฑ์ X 100 หน่วยเขาจะได้รับส่วนลด 15% หรือ $ 500 หากลูกค้านำมาในปีที่แล้วมากกว่า $ 100K เขาจะได้รับส่วนลด 20% หากลูกค้าซื้อผลิตภัณฑ์ X 2 หน่วยเขาจะได้รับผลิตภัณฑ์ X (หรือ Y) 1 หน่วยฟรี ... มีรูปแบบทั่วไปที่สามารถใช้เพื่อจัดการสถานการณ์ข้างต้นทั้งหมดได้หรือไม่ ฉันกำลังคิดของรุ่นไม่กี่ แต่ไม่สามารถเจอแบบทั่วไป

3
วิธีสร้างเว็บแอปพลิเคชั่นแบบแยกส่วนอย่างสมบูรณ์ [ปิด]
ในอีกไม่กี่เดือนข้างหน้าเราจะเริ่มโครงการที่เราใช้ระบบที่เราสร้างขึ้นเพื่อลูกค้า (v1) และสร้างใหม่โดยเริ่มจากศูนย์ เป้าหมายของเรากับ v2 คือการทำให้เป็นแบบแยกส่วนเพื่อให้ลูกค้าเฉพาะรายนี้จะมีชุดโมดูลของตนเองที่ใช้จากนั้นลูกค้ารายอื่นอาจใช้ชุดโมดูลที่แตกต่างกันโดยสิ้นเชิง เคล็ดลับที่นี่คือ บริษัท A อาจมีชุดการชำระเงินและโมดูลผู้ใช้ที่เปลี่ยนวิธีการทำงานของระบบ บริษัท B อาจยึดตามขั้นตอนการชำระเงินมาตรฐาน แต่กำหนดวิธีการเรียกดูผลิตภัณฑ์ อะไรคือวิธีที่ดีในสถาปัตยกรรมแอปพลิเคชันเมื่อคุณสร้างแอปพลิเคชันตั้งแต่เริ่มต้นที่คุณต้องการให้มีการCoreใช้ร่วมกันในหมู่ลูกค้าทั้งหมดในขณะที่ยังคงความยืดหยุ่นสำหรับสิ่งที่จะแก้ไขโดยเฉพาะสำหรับลูกค้า? ฉันเคยเห็น hooks ของ CodeIgniter และไม่คิดว่ามันเป็นทางออกที่ดีเพราะเราสามารถจบได้ด้วย 250 hooks และมันยังไม่ยืดหยุ่นพอ โซลูชั่นอื่น ๆ มีอะไรบ้าง เป็นการดีที่เราไม่จำเป็นต้องลากเส้นในทราย

13
แสดงความคิดเห็นก่อนหรือหลังรหัสที่เกี่ยวข้อง [ปิด]
สมมติว่าความคิดเห็นจะไม่พอดี (หรือไม่สามารถไป) ในบรรทัดที่ใช้กับหนึ่งควรเขียนความคิดเห็นก่อนรหัสหรือหลัง? ทุกที่ที่ผู้อ่านในอนาคตจะเข้าใจขอบเขตความคิดเห็นได้ดีที่สุด กล่าวอีกนัยหนึ่งที่ใดก็ตามที่โปรแกรมเมอร์ / สคริปเตอร์ส่วนใหญ่แสดงความคิดเห็นเช่นนั้น ดังนั้นโปรแกรมเมอร์ / สคริปเตอร์ส่วนใหญ่จะใส่ความคิดเห็นไว้ที่ใด: ก่อนหรือหลังรหัส? หากคำตอบของคุณใช้ได้เฉพาะกับภาษาที่ระบุโปรดระบุว่า และถ้าคุณสามารถอ้างอิงสเป็คที่ยอมรับหรือคำแนะนำที่สนับสนุนคำตอบของคุณได้ดียิ่งขึ้น
34 comments 

5
Javascript เป็นภาษาโปรแกรมใช้งานหรือไม่
Javascript เป็นภาษาที่ใช้งานได้หรือไม่? ฉันรู้ว่ามันมีวัตถุ & คุณสามารถทำ OOP ได้ด้วย แต่มันก็เป็นภาษาที่ใช้งานได้ด้วยวิธีนั้นหรือไม่? คุณรู้ว่า OOP กลายเป็น / ดูเหมือนวิวัฒนาการต่อไปในการเขียนโปรแกรมหมายความว่า 'Functional Programming' เป็นวิวัฒนาการต่อไปอย่างไร (หมายเหตุ: นี่ไม่ใช่พรอมต์สำหรับความเห็น แต่พร้อมรับคำสำหรับหลักฐานตามข้อเท็จจริงและบันทึกนี้คือ มากกว่าสำหรับผู้กลั่นกรองมากกว่าผู้สนับสนุน;) ฉันเรียนรู้ผ่านตัวอย่างที่ดีที่สุดบางทีบางคนอาจแสดงการทำงานเดียวกันในแบบ OOP และในรูปแบบการเขียนโปรแกรมเชิงฟังก์ชั่นเพื่อให้ฉันเข้าใจและเปรียบเทียบการเขียนโปรแกรมการทำงาน ฉันไม่เข้าใจจริงๆว่า 'ฟังก์ชั่นการเขียนโปรแกรม' จริง ๆ แล้ว: P ดังนั้นการเปรียบเทียบ Javascript กับการเขียนโปรแกรมฟังก์ชั่นอาจไม่ถูกต้องทั้งหมด เพื่อนำการเขียนโปรแกรมฟังก์ชั่นในแง่ laymans: มันเป็นเพียงประโยชน์ของ abstration ผ่านการใช้ฟังก์ชั่นที่ไม่ระบุชื่อ? หรือว่าเป็นวิธีที่ง่ายเกินไป? ในวิธีที่เรียบง่าย OOP คือประโยชน์ของนามธรรมผ่านวัตถุ แต่ฉันเชื่อว่ามันง่ายเกินไปที่จะอธิบาย OOP นี่เป็นตัวอย่างที่ดีของการตั้งโปรแกรมการทำงานหรือไม่ ... ตัวอย่าง Javascript OOP: // sum …

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

8
ความต้องการในการใช้งานหรือไม่ใช้งาน?
ฉันสงสัยเกี่ยวกับข้อกำหนดด้านการใช้งานหรือไม่ใช้งาน ฉันพบคำจำกัดความที่แตกต่างกันมากมายสำหรับคำเหล่านั้นและฉันไม่สามารถกำหนดความต้องการบางอย่างของฉันให้อยู่ในหมวดหมู่ที่เหมาะสม ฉันสงสัยเกี่ยวกับข้อกำหนดที่ไม่ได้เชื่อมโยงกับการกระทำบางอย่างหรือมีเงื่อนไขเพิ่มเติมตัวอย่างเช่น: ในรายการอุปกรณ์ที่เลือกสามารถทำซ้ำอุปกรณ์ได้ ฐานข้อมูลต้องมีอย่างน้อย 100 รายการ สกุลเงินของค่าบางอย่างจะต้องเป็นดอลลาร์สหรัฐ อุปกรณ์จะต้องมีชื่อและค่าการใช้พลังงานในวัตต์ ข้อกำหนดเหล่านั้นเป็นหน้าที่หรือไม่ใช้งานหรือไม่

13
โปรแกรมเมอร์ที่มีความรอบรู้ดีแค่ไหนที่จะต้องมีการดำเนินการที่ชาญฉลาด? [ปิด]
ฉันได้รับการเรียกดูรหัส OpenJDK บางเมื่อเร็ว ๆ นี้และได้พบบางอย่างที่น่าสนใจชิ้นส่วนของรหัสมีที่จะทำอย่างไรกับการดำเนินงานบิตที่ชาญฉลาด ฉันยังถามคำถามเกี่ยวกับ StackOverflow อีกตัวอย่างที่แสดงให้เห็นถึงจุด: 1141 public static int bitCount(int i) { 1142 // HD, Figure 5-2 1143 i = i - ((i >>> 1) & 0x55555555); 1144 i = (i & 0x33333333) + ((i >>> 2) & 0x33333333); 1145 i = (i + (i >>> 4)) …

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

8
วิธีที่ดีที่สุดในการออกแบบเว็บไซต์ให้มีความยืดหยุ่นสูงคืออะไร?
สำหรับเว็บไซต์ที่ต้องปรับขนาดได้สูงเช่นเครือข่ายสังคมออนไลน์อย่าง facebook วิธีที่ดีที่สุดในการออกแบบเว็บไซต์คืออะไร ฉันควรมีบริการเว็บที่เว็บไซต์สอบถามเพื่อรับข้อมูลที่ต้องการหรือไม่ หรือ ควรสอบถามฐานข้อมูลเว็บไซต์โดยตรงหรือไม่ (สามารถทำได้โดยใช้ built-in สร้างภาษาเพื่อเติมตารางอัตโนมัติ ฯลฯ ) ฉันคิดว่าบริการเว็บเป็นการออกแบบที่ดีกว่าเนื่องจากให้การเข้าถึงข้อมูลจากส่วนกลางและสิ่งต่าง ๆ เช่นแคชและสิ่งที่คล้ายกันนั้นควบคุมได้ง่ายกว่า แต่คนอื่น ๆ คิดอย่างไร

4
Microsoft มี Visual Studio รุ่นฟรีหรือไม่ [ปิด]
ไม่ใช่รุ่นทดลอง แต่เป็นรุ่นฟรีที่ให้ผู้ใช้ดาวน์โหลด ... ฉันสงสัยในกรณีที่ฉันพลาดตัวเลือกในเว็บไซต์ของพวกเขา Visual Studio รุ่นใด ๆ จะทำ ถ้าไม่มีมีทางเลือกโอเพนซอร์ซ (มีฟังก์ชั่นที่คล้ายกันหรืออาจเทียบเท่ากับการเสื่อมสภาพ) ของ Visual Studio หรือไม่ ฉันกำลังใช้งาน Windows 7 หากนั่นสร้างความแตกต่าง

14
ทำไมนักพัฒนาหลายคนเชื่อว่าประสิทธิภาพการอ่านและการบำรุงรักษาไม่สามารถอยู่ร่วมกันได้?
ในขณะที่ตอบคำถามนี้ฉันเริ่มสงสัยว่าทำไมนักพัฒนาจำนวนมากเชื่อว่าการออกแบบที่ดีไม่ควรคำนึงถึงประสิทธิภาพเนื่องจากการทำเช่นนั้นจะส่งผลต่อความสามารถในการอ่านและ / หรือการบำรุงรักษา ฉันเชื่อว่าการออกแบบที่ดีต้องคำนึงถึงประสิทธิภาพในขณะที่เขียนและผู้พัฒนาที่ดีที่มีการออกแบบที่ดีสามารถเขียนโปรแกรมที่มีประสิทธิภาพโดยไม่ส่งผลกระทบต่อความสามารถในการอ่านหรือการบำรุงรักษา ในขณะที่ฉันรับทราบว่ามีหลายกรณีทำไมนักพัฒนาหลายคนยืนยันว่าโปรแกรม / การออกแบบที่มีประสิทธิภาพจะส่งผลให้ความสามารถในการอ่านต่ำและ / หรือการบำรุงรักษาไม่ดีและดังนั้นประสิทธิภาพจึงไม่ควรคำนึงถึงการออกแบบ

4
ตัวอย่างที่เป็นรูปธรรมของ Python“ วิธีเดียวที่จะทำได้” maxim [ปิด]
ฉันกำลังเรียนรู้ Python และรู้สึกทึ่งกับประเด็นต่อไปนี้ใน PEP 20 The Zen of Python : ควรมีอย่างน้อยหนึ่งวิธีที่ชัดเจนกว่าที่จะทำ แม้ว่าวิธีนี้อาจไม่ชัดเจนในตอนแรกเว้นแต่ว่าคุณเป็นชาวดัตช์ ใครสามารถเสนอตัวอย่างที่เป็นรูปธรรมของคติพจน์นี้ได้บ้าง ฉันสนใจเป็นพิเศษในการเปรียบเทียบกับภาษาอื่นเช่นทับทิม ส่วนหนึ่งของปรัชญาการออกแบบทับทิม (ที่มาจากภาษา Perl ฉันคิดว่า?) ก็คือการทำสิ่งต่าง ๆ เป็นสิ่งที่ดี ทุกคนสามารถเสนอตัวอย่างที่แสดงข้อดีข้อเสียของแต่ละวิธีได้หรือไม่ หมายเหตุฉันไม่ได้หลังจากคำตอบที่ดีกว่า (ซึ่งอาจเป็นอัตนัยเกินกว่าที่จะตอบ) แต่เป็นการเปรียบเทียบที่ไม่ลำเอียงของทั้งสองสไตล์

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