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

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

5
โครงสร้างระบบแม่แบบโดยใช้ PHP ธรรมดาได้อย่างไร
ฉันอ่านคำถามนี้ไปที่ stackoverflow: /programming/104516/calling-php-functions-within-heredoc-strings และคำตอบที่ได้รับการยอมรับบอกว่าจะทำแม่แบบ PHP ธรรมดาดังนี้: template.php: <html> <head> <title> <? = $ ชื่อ?> </ title> </ head> <body> <? = getContent ()?> </ body> </ html> index.php: <php? $ title = 'ชื่อการสาธิต'; ฟังก์ชัน getContent () { ส่งคืน '<p> Hello World! </p>'; } รวมถึง ( 'template.php'); ?> สำหรับฉันข้างต้นไม่ได้มีโครงสร้างที่ดีในแง่ที่ template.php ขึ้นอยู่กับตัวแปรที่กำหนดไว้ในสคริปต์อื่น …
15 php  templates 

4
ทำงานกับ Git ในหลาย ๆ เครื่อง
นี่อาจฟังดูแปลก ๆ แต่ฉันสงสัยเกี่ยวกับวิธีที่ดีในการทำงานกับ Git จากหลาย ๆ เครื่องที่เชื่อมต่อเครือข่ายเข้าด้วยกัน ดูเหมือนว่าฉันมีสองตัวเลือกและฉันเห็นประโยชน์ทั้งสองด้าน: ใช้คอมไพล์เองสำหรับการแชร์แต่ละเครื่องมี repo ของตัวเองและคุณต้องดึงมันออกมา คุณสามารถทำงานกับเครื่องใดก็ได้แม้ว่าเครื่องอื่นจะออฟไลน์ ฉันคิดว่าตัวเองใหญ่มาก ใช้หนึ่ง repo ที่แชร์ผ่านเครือข่ายระหว่างเครื่อง ไม่จำเป็นต้องทำ git pulls ทุกครั้งที่คุณสลับเครื่องเนื่องจากรหัสของคุณเป็นรุ่นล่าสุดเสมอ ไม่ต้องกังวลว่าคุณลืมส่งรหัสจากเครื่องที่ไม่โฮสต์อื่นซึ่งไม่สามารถเข้าถึงได้เนื่องจากคุณกำลังทำงานนอกสถานที่แชร์ไฟล์บนเครื่องนี้ ปรีชาญาณของฉันบอกว่าทุกคนมักจะไปกับตัวเลือกแรก แต่ข้อเสียที่ฉันเห็นคือคุณอาจไม่สามารถเข้าถึงรหัสจากเครื่องอื่น ๆ ของคุณได้เสมอไปและแน่นอนว่าฉันไม่ต้องการผลักสาขา WIP ทั้งหมดของฉันไปที่ GitHub ในตอนท้ายของทุกวัน ฉันไม่ต้องการออกจากคอมพิวเตอร์ของฉันตลอดเวลาเพื่อให้สามารถดึงข้อมูลจากพวกเขาโดยตรง ท้ายที่สุดจุดเล็ก ๆ ก็คือคำสั่ง git ทั้งหมดเพื่อให้หลายสาขาทันสมัยอยู่เสมออาจทำให้เบื่อ มีการจัดการที่สามในสถานการณ์นี้? อาจมีเครื่องมือของบุคคลที่สามบางอย่างที่ช่วยให้กระบวนการนี้ง่ายขึ้นหรือไม่ หากคุณจัดการกับสถานการณ์นี้เป็นประจำคุณแนะนำอะไร
15 git  workflows  dvcs 

4
คำจำกัดความของ "รัฐ"
เป็นวิธีที่ดีในการกำหนด "รัฐ" เช่นเดียวกับในรัฐตัวแปรหรือเครื่องรัฐเป็นโปรแกรมเมอร์ใหม่ (ไม่ใช่ก่อนหน้านี้) คืออะไร? อะไรคือวิธีที่ดีในการอธิบายว่าทำไมแนวคิดนี้มีประโยชน์สำหรับการเขียนซอฟต์แวร์? แนวคิดของรัฐสอนอย่างชัดเจนในการเริ่มต้นหลักสูตรการเขียนโปรแกรมหรือหนังสือทั่วไปหรือไม่?

6
ความแตกต่างระหว่าง“ String” และ“ string” ใน. NET และไหนดีที่สุด?
ใน. NET Framework อย่างน้อยในภาษา C # เรามีชนิดสตริง "รุ่น" สองอัน: "สตริง" "สตริง" ดูเหมือนว่าพวกเขาจะใช้แทนกันได้ แต่พวกเขาจริงเหรอ? หากพวกเขาไม่สามารถใช้แทนกันได้จะดีกว่าหรือไม่หากใช้แทนกันและดีกว่า
15 c#  .net 

10
วิธีการโน้มน้าวให้เพื่อนร่วมทีมใช้ TDD [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันเป็นคนเดียวในทีมที่ใช้ TDD ฉันจะทำให้พวกเขาใช้มันได้อย่างไร ฉันรำคาญที่เมื่อฉันดึงรหัสของใครบางคนจะทำลายการทดสอบของฉันและฉันเป็นคนที่ต้องแก้ไขพวกเขา การใช้ github, fork และ pull ร้องขอจะแก้ปัญหานี้หรือไม่เพื่อให้พวกเขาจำเป็นต้องผ่านการทดสอบก่อนที่จะยอมรับ pull หรือไม่ ฉันไม่ใช่ผู้จัดการโครงการและฉันไม่สามารถโน้มน้าวให้เธอใช้งานได้

5
การเรียกกลับรอตัดบัญชีคืออะไร
ฉันเข้าใจความคิดของการติดต่อกลับที่ฉันส่งฟังก์ชั่นไปยังฟังก์ชั่นอื่นและฟังก์ชั่นนั้นใช้ฟังก์ชั่นที่ให้มาตามความประสงค์ ฉันพยายามที่จะเข้าใจการโทรกลับรอการตัดบัญชีแม้หลังจาก googling ใครช่วยอธิบายง่ายๆได้ไหม ฉันเขียนโปรแกรมใน Ruby แต่รู้ C / C ++ นิดหน่อย แต่ที่สำคัญที่สุดฉันเป็นโปรแกรมเมอร์ภาษาแอสเซมบลีที่มีประสบการณ์ ดังนั้นฉันสงสัยว่ามันเป็นบิตของที่อยู่ติดต่อกลับที่ได้รับป๊อปหรือไม่ ฉันหวังว่าจะได้เรียนรู้ jquery หรือ node.js และการเรียกกลับที่เลื่อนออกไปเหล่านี้ดูเหมือนจะเป็นสิ่งสำคัญสำหรับทั้งสองคน ฉันเข้าใจหลักการทำเกลียวขั้นพื้นฐาน (แม้ว่าวัตถุ mutex ทำให้ฉันเจ็บหัว)
15 jquery  node.js 

9
เป็นวิธีที่ดีในการแสดงความคิดเห็น if-else-clauses คืออะไร? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา เมื่อใดก็ตามที่ฉันเขียนภาษาอื่นถ้าสร้างในภาษาใดฉันสงสัยว่าอะไรจะเป็นวิธีที่ดีที่สุด (ในแง่ของการอ่านและภาพรวม) เพื่อเพิ่มความคิดเห็น โดยเฉพาะอย่างยิ่งเมื่อแสดงความคิดเห็นข้ออื่นความคิดเห็นมักจะออกจากสถานที่สำหรับฉัน สมมติว่าเรามีโครงสร้างเช่นนี้ (ตัวอย่างถูกเขียนลงใน PHP): if ($big == true) { bigMagic(); } else { smallMagic() } ฉันสามารถแสดงความคิดเห็นได้เช่นนี้ // check, what kind of magic should happen if ($big == true) { // do some big magic stuff bigMagic(); } else { …
15 comments 

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

2
ฟังก์ชั่นการเขียนโปรแกรมสำหรับซอฟต์แวร์ฝังตัว [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ฉันได้พูดคุยเกี่ยวกับ F # และการเขียนโปรแกรมเชิงฟังก์ชั่นกับเพื่อนเมื่อคืนที่แล้วและเขาก็ถามคำถามที่น่าสนใจกับฉัน คุณจะทำอย่างไรซอฟต์แวร์ฝังตัวในการทำงาน? ฉันหมายความว่านี่ดูเหมือนจะเป็นเรื่องที่ค่อนข้างเป็นธรรมชาติในแง่ของรหัสไร้สัญชาติ แต่ฝังตัวยังทำให้เกิดความจำเจด้วยความทรงจำและฉันก็ไม่แน่ใจในเรื่องราวของการทำงานในเรื่องนั้น มีข้อเสนอแนะเกี่ยวกับภาษาหรือแพ็คเกจสำหรับฝังตัวด้วยฟังก์ชั่น?

2
ฉันควรใส่ตรรกะการคำนวณใน Entity หรือในเลเยอร์ธุรกิจหรือไม่
เมื่อเร็ว ๆ นี้ฉันได้พบกับคำถามเกี่ยวกับการคำนวณอย่างง่าย ๆ ที่ควรจะใส่ใน Entity layer หรือ Entity นั้นบริสุทธิ์สำหรับการเก็บข้อมูลดิบและทิ้ง logics การคำนวณไว้ในชั้นธุรกิจ ดังนั้นคำถามของฉันคือว่ามันมีเหตุผลที่จะสรุปแค็ปซูลการคำนวณอย่างง่ายในคุณสมบัติในคลาสเอนทิตีหรือไม่?

5
ทบทวนอัลกอริทึม เหตุใด heapsort ถึงอัลกอริทึม insort
ฉันไม่เห็นสาเหตุที่ heapsort ถูกพิจารณาเป็นอัลกอริธึม เรียงลำดับแบบ inplace ฉันหมายถึงโครงสร้างข้อมูลพิเศษที่มีองค์ประกอบของอาร์เรย์ที่เรียงลำดับเช่น heap ใช้เพื่อช่วยในการแยกค่า min และกระบวนการเรียงลำดับ ดังนั้นฉันอาจเข้าใจผิดนิยามของสถานที่ที่นี่หรือไม่ แต่การเรียงลำดับการแทรกนั้นชัดเจนว่ามันเป็นอัลกอริธึมแบบ inplace นั่นคือไม่จำเป็นต้องมีหน่วยความจำเพิ่มเติมสำหรับองค์ประกอบ แล้วทำไมมันถึงเข้ามาแทนที่

4
oData ต่างจากบริการ REST อย่างไร
ฉันกำลังมองหาการเขียน API บริการเว็บและฉันกำลังคิดที่จะสร้างบริการ REST OData หมายถึงอะไรในบริบทนี้ คุณช่วยอธิบายความแตกต่างระหว่าง OData กับ REST ได้ไหม?
15 rest 

4
การพัฒนาที่ขับเคลื่อนด้วยการทดสอบบังคับให้ฉันต้องติดตาม SOLID หรือไม่
ฉันได้ยินมามากมายจากผู้ฝึกอบรมTDDว่าข้อดีอย่างหนึ่งของ TDD คือบังคับให้นักพัฒนาปฏิบัติตามหลักการของSOLID (ความรับผิดชอบเดี่ยว, เปิด - ปิด, การทดแทน Liskov, การแยกอินเตอร์เฟสและการผกผันการพึ่งพา) แต่สำหรับฉันแล้วมันก็เพียงพอแล้วที่จะเขียนการทดสอบ (การทดสอบหน่วยเบื้องต้น) เพื่อให้เข้าใจว่าการติดตาม SOLID เป็นสิ่งสำคัญ TDD บังคับให้ผู้พัฒนาติดตาม SOLID มากกว่าการเขียนบททดสอบหรือไม่?

7
กรณีการใช้หลายมรดก
Java ละเว้นมรดกหลายในบริเวณที่มัน obviates เป้าหมายการออกแบบของการรักษาภาษาที่เรียบง่าย ฉันสงสัยว่า Java (พร้อมระบบนิเวศน์) นั้น "ง่าย" หรือไม่ Python ไม่ซับซ้อนและมีหลายมรดก ดังนั้นโดยไม่เป็นส่วนตัวเกินไปคำถามของฉันคือ ... รูปแบบของปัญหาทั่วไปที่ได้รับประโยชน์จากรหัสที่ออกแบบมาเพื่อใช้ประโยชน์จากการสืบทอดหลายอย่างมากคืออะไร

4
Bootstrapper ในการเขียนโปรแกรมคืออะไร?
บางครั้งฉันเห็นคำว่า "Bootstrapper" ฉันเห็นมันครั้งสุดท้ายเมื่อสร้างแบบฝึกหัดการเรียนรู้สำหรับปริซึม ฉันสะดุดกับUnityBootstrapperชั้นเรียน คำถามของฉันคือ: เมื่อใดที่คุณจะเรียกชั้นเรียนว่า "Bootstrapper" ทำไม? พูดเกี่ยวกับชั้นเรียนว่าอย่างไร?

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