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

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

4
ในการโค่นล้มฉันจะตั้งค่าแอปพลิเคชันเวอร์ชันหลักใหม่ได้อย่างไร
ฉันกำลังจะเริ่มทำงานกับแอปพลิเคชันเชิงพาณิชย์รุ่นใหม่ (เวอร์ชัน 4) ของฉัน ฉันใช้การโค่นล้ม จากประสบการณ์ความผิดพลาดและความสำเร็จของคุณคุณจะแนะนำให้ตั้งค่าเวอร์ชั่นใหม่ในการโค่นล้มได้อย่างไร นี่คือข้อมูลบางส่วน: ฉันตั้งใจจะปล่อยการอัปเดตที่สำคัญในรุ่น 3 ต่อไปหลังจากที่มีการเปิดตัวเวอร์ชัน 4 อย่างไรก็ตามการพัฒนาคุณสมบัติใหม่ทั้งหมดจะเป็นรุ่น 4 เท่านั้น ในกรณีที่มีความเกี่ยวข้อง: ฉันเป็นผู้พัฒนาเดี่ยวสำหรับผลิตภัณฑ์นี้และมีแนวโน้มที่จะยังคงอยู่ในกรณีนี้ แก้ไข: ฉันรู้แท็กและสาขาของ SVN ฉันเดาว่าสิ่งที่ฉันต้องการคือกลยุทธ์ที่ดีที่สุดสำหรับการใช้แท็กและสาขาในสถานการณ์ของฉัน

6
จะประเมินคุณภาพของรหัสได้อย่างไรเมื่อคุณไม่คุ้นเคยกับภาษา [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ตามสมมติฐานแล้วถ้าฉันต้องสัมภาษณ์ตำแหน่งนักพัฒนา PHP ใหม่เมื่อประสบการณ์ของฉันอยู่ใน. NET ฉันจะทราบได้อย่างไรว่าตัวอย่างโค้ดที่พวกเขาให้มานั้นมีประสิทธิภาพและคุณภาพดีหรือไม่? วิธีที่ดีที่สุดในการประเมินโค้ดของโปรแกรมเมอร์คือถ้าคุณไม่คุ้นเคยกับภาษา

1
แบบจำลองทางคณิตศาสตร์ของคลาส Python คืออะไร?
ฉันเข้าใจว่ารูปแบบคลาสสิคจากเอกสารแลมบ์ดานั้นไม่ถูกต้องสำหรับ Python และการปิดไม่ใช่รูปแบบทางคณิตศาสตร์ของการใช้งานระบบ Python แล้วมันเป็นรุ่นอะไร?
10 python 

3
มีแนวคิดแบบ“ หลอกใช้” ในการพัฒนาซอฟต์แวร์หรือไม่?
ฉันกำลังมองหาฉลากเพื่ออธิบายวิธีปฏิบัติในการใช้วิธีการคำนวณโดยมนุษย์หรือวิธีอื่นในการ "แกล้ง" อัลกอริทึมเพื่อประโยชน์ในการรับผลิตภัณฑ์หรือการสาธิตอย่างรวดเร็วโดยไม่ต้องเสียเวลาพัฒนาเทคนิค / ปรับขนาดได้ / โซลูชันการวิเคราะห์? เช่นการใช้ Amazon Turk เพื่อนับจำนวนโต๊ะว่างในร้านอาหาร ฉันยังต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ แต่ไม่แน่ใจว่าจะค้นหาอะไร การคำนวณโดยใช้มนุษย์เป็นเพียงวิธีเดียวฉันสนใจในแนวคิดทั่วไปเกี่ยวกับการใช้งานหลอก ความคิดใด ๆ ที่แนะนำให้อ่าน?

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

5
วิธีการลดการเชื่อมต่อแน่นระหว่างแหล่งข้อมูลสองแห่ง
ฉันมีปัญหาในการหาวิธีแก้ไขปัญหาสถาปัตยกรรมที่เหมาะสมต่อไปนี้ ในการตั้งค่าของเรา (ร่างด้านล่าง)เรามี 2 แหล่งข้อมูลโดยที่แหล่งข้อมูล A เป็นแหล่งข้อมูลหลักสำหรับรายการประเภท Foo แหล่งข้อมูลรองมีอยู่ซึ่งสามารถใช้เพื่อดึงข้อมูลเพิ่มเติมใน Foo; อย่างไรก็ตามข้อมูลนี้ไม่ได้มีอยู่เสมอ นอกจากนี้แหล่งข้อมูล A สามารถใช้เพื่อดึงรายการประเภทบาร์ อย่างไรก็ตามแต่ละบาร์อ้างถึง Foo ความยากของที่นี่คือแต่ละแถบควรอ้างถึง Foo ซึ่งถ้ามีจะมีข้อมูลที่เพิ่มขึ้นโดยแหล่งข้อมูล B คำถามของฉันคือวิธีลบข้อต่อแน่นระหว่าง SubsystemA.1 และ DataSourceB

5
ฉันควรรวมต้นทุนทางออกไว้ในการเลือกโซลูชันหรือไม่
ฉันกำลังเลือกระหว่างการออกแบบ / การแก้ปัญหาซอฟต์แวร์ที่ทำงานได้สองแบบ โซลูชันที่ 1 ใช้งานง่าย แต่จะล็อคข้อมูลบางอย่างในรูปแบบที่เป็นกรรมสิทธิ์และจะยากที่จะเปลี่ยนแปลงในภายหลัง โซลูชันที่ 2 นั้นยากที่จะนำไปใช้ แต่จะเปลี่ยนได้ง่ายขึ้นในภายหลัง ฉันควรจะไป YAGNI ในเรื่องนี้หรือฉันควรรวมต้นทุนการออกในการตัดสินใจ? หรือถามต่างกันค่าใช้จ่ายในการออกเป็นส่วนหนึ่งของ TCO หรือไม่ ฉันกำลังคิดว่าจะกลับไปหาลูกค้าด้วยสิ่งนี้เพื่อถามว่าเขาคิดว่าต้นทุนการออกมีความเกี่ยวข้องหรือไม่ แต่ฉันอยากจะรู้ว่าชุมชนคิดอย่างไรก่อน PS ต้นทุนการออกเป็นคำที่ถูกต้องหรือไม่

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

4
ใช้การเรียนรู้ของเครื่องเพื่อเล็งกระจกในแผงโซล่าร์?
ฉันเคยคิดเกี่ยวกับตัวสะสมพลังงานแสงอาทิตย์ที่มีกระจกอิสระหลายตัวที่ให้ความสำคัญกับแสงบนตัวเก็บพลังงานแสงอาทิตย์คล้ายกับการออกแบบต่อไปนี้จาก Energy Innovations เนื่องจากจะมีข้อบกพร่องในการประกอบแผงโซลาร์เซลล์นี้ฉันจึงดำเนินการตามสมมติฐานดังต่อไปนี้ (หรือไม่มีเลย): ซอฟต์แวร์รู้ถึง "ตำแหน่ง" ของแต่ละมิเรอร์ แต่ไม่ทราบว่าตำแหน่งนี้เกี่ยวข้องกับโลกแห่งความเป็นจริงหรือกับมิเรอร์อื่น ๆ อย่างไร สิ่งนี้จะอธิบายถึงการสอบเทียบกระจกที่ไม่ดีหรือปัจจัยด้านสิ่งแวดล้อมอื่น ๆ ซึ่งอาจส่งผลกระทบต่อกระจกเงาหนึ่ง แต่ไม่ใช่กระจกอื่น หากกระจกเงาเคลื่อนที่ 10 หน่วยในทิศทางเดียวจากนั้น 10 ยูนิตในทิศทางตรงกันข้ามกระจกเงาจะสิ้นสุดที่จุดเริ่มต้นเดิม ฉันต้องการใช้การเรียนรู้ของเครื่องเพื่อจัดวางกระจกอย่างถูกต้องและโฟกัสแสงบนตัวสะสม ฉันคาดหวังว่าฉันจะใช้วิธีนี้เป็นปัญหาการปรับให้เหมาะสมการปรับตำแหน่งกระจกให้เหมาะสมเพื่อเพิ่มความร้อนภายในตัวสะสมและกำลังงานออกสูงสุด ปัญหาคือการค้นหาเป้าหมายขนาดเล็กในพื้นที่มิติสูงที่มีเสียงดัง (เนื่องจากกระจกแต่ละบานมีการหมุน 2 แกน) ปัญหาที่ฉันคาดไว้คือ: วันที่มีเมฆมากแม้ว่าคุณจะสะดุดกับแนวร่วมกระจกที่สมบูรณ์แบบมันอาจจะมีเมฆมากในเวลานั้น ข้อมูลเซ็นเซอร์ที่มีเสียงดัง ดวงอาทิตย์เป็นเป้าหมายที่เคลื่อนที่มันเคลื่อนที่ไปตามเส้นทางและติดตามเส้นทางที่แตกต่างกันทุกวัน - แม้ว่าคุณจะสามารถคำนวณตำแหน่งที่แน่นอนของดวงอาทิตย์ได้ตลอดเวลา แต่คุณไม่รู้ว่าตำแหน่งนั้นเกี่ยวข้องกับกระจกของคุณอย่างไร คำถามของฉันไม่ได้เกี่ยวกับโซลาร์อาเรย์ แต่เป็นไปได้ที่เทคนิคการเรียนรู้ของเครื่องที่จะช่วยในปัญหา "เป้าหมายเล็ก ๆ ในพื้นที่มิติสูงที่มีเสียงดัง" ฉันพูดถึงแผงเซลล์แสงอาทิตย์เนื่องจากเป็นตัวเร่งปฏิกิริยาสำหรับคำถามนี้และเป็นตัวอย่างที่ดี เทคนิคการเรียนรู้ของเครื่องใดที่สามารถค้นหาเป้าหมายขนาดเล็กในพื้นที่มิติสูงที่มีเสียงดัง แก้ไข: ความคิดเพิ่มเติมบางประการ: ใช่คุณสามารถคำนวณตำแหน่งของดวงอาทิตย์ในโลกแห่งความเป็นจริง แต่คุณไม่ทราบว่าตำแหน่งของกระจกนั้นเกี่ยวข้องกับโลกแห่งความเป็นจริงอย่างไร คุณอาจรู้ว่าดวงอาทิตย์ราบคือ 220 องศาและระดับความสูงของดวงอาทิตย์คือ 60 องศาและคุณอาจรู้ว่ากระจกอยู่ที่ตำแหน่ง (-20, …

1
ฉันจะปรับปรุงการใช้หน่วยความจำของแอปพลิเคชันของฉันได้อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันกำลังเขียนแอปพลิเคชัน C # และสามารถเห็นการใช้หน่วยความจำเพิ่มขึ้นเมื่อเวลาทำงานของแอปพลิเคชันเพิ่มขึ้น มีเครื่องมือหรือเทคนิคใดบ้างที่ฉันสามารถตรวจสอบการใช้หน่วยความจำของแอปพลิเคชันของฉันระบุการรั่วไหลของหน่วยความจำและปรับปรุงการใช้หน่วยความจำของแอปพลิเคชันของฉันโดยทั่วไปหรือไม่
10 c#  memory-usage 

7
ที่เก็บข้อมูลเซสชันที่เชื่อถือได้มากที่สุดใน PHP: Memcache, ฐานข้อมูลหรือไฟล์คืออะไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว เป็นวิธีที่ดีที่สุดและปลอดภัยที่สุดในการจัดการเซสชัน PHP คืออะไร เป็นวิธีที่ดีที่สุดในการจัดเก็บเซสชันใน: ฐานข้อมูล (น่าเชื่อถือมากขึ้น แต่มีคอขวดสูงความเร็วช้าไม่ดีสำหรับเว็บไซต์ที่มีการใช้ฐานข้อมูลสูง)? Memcache (เร็วสุด ๆ แต่กระจายปัญหาความปลอดภัยมากขึ้นโอกาสที่จะสูญเสียข้อมูลเมื่อรีสตาร์ทเซิร์ฟเวอร์และมีโอกาสสูญเสียข้อมูลเมื่อแคชเต็ม)? ไฟล์ (ตัวเลือกเริ่มต้นฉันเดาว่าช้าเพราะอ่านและเขียนจากไฟล์ I / O ความปลอดภัยน้อยลง ฯลฯ ) วิธีใดดีที่สุด อะไรคือปัญหาและสิ่งที่ดีในแต่ละแนวทาง
10 php  session 

7
เป็นสไตล์ที่ไม่ดีที่จะตรวจสอบสภาพซ้ำซ้อนหรือไม่?
ฉันมักจะไปที่ตำแหน่งในรหัสของฉันที่ฉันพบว่าตัวเองกำลังตรวจสอบเงื่อนไขที่เฉพาะเจาะจงซ้ำแล้วซ้ำอีก ฉันต้องการให้คุณตัวอย่างเล็ก ๆ : สมมติว่ามีไฟล์ข้อความที่มีบรรทัดที่ขึ้นต้นด้วย "a", บรรทัดที่ขึ้นต้นด้วย "b" และบรรทัดอื่น ๆ และจริง ๆ แล้วฉันต้องการทำงานกับสองบรรทัดแรกเท่านั้น รหัสของฉันจะมีลักษณะเช่นนี้ (ใช้ python แต่อ่านมันเป็นรหัสเทียม): # ... clear_lines() # removes every other line than those starting with "a" or "b" for line in lines: if (line.startsWith("a")): # do stuff elif (line.startsWith("b")): # magic else: # this else is …

1
ขนาดบัฟเฟอร์ที่เหมาะสมที่สุดสำหรับ fread / fwrite [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน7 ปีที่ผ่านมา ขนาดบัฟเฟอร์ใดที่ฉันควรเลือกสำหรับอ่าน / เขียนไฟล์ผ่านฟังก์ชั่น POSIX fread / fwrite
10 c 

2
มันเหมาะสมสำหรับทรัพยากร REST ที่จะเป็นเอกพจน์และพหูพจน์หรือไม่?
ฉันสงสัยว่า, มากกว่าเลย์เอาต์แบบเดิม ๆ มากกว่านี้: api/Products GET // gets product(s) by id PUT // updates product(s) by id DELETE // deletes (product(s) by id POST // creates product(s) มันจะมีประโยชน์มากกว่าไหมถ้ามีเอกพจน์และพหูพจน์เช่น: api/Product GET // gets a product by id PUT // updates a product by id DELETE // deletes a product by id …
10 rest 

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

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