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

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

5
สถาปัตยกรรม API ภายในและภายนอก
บริษัท ที่ฉันทำงานเพื่อรักษาผลิตภัณฑ์ SaaS ที่ประสบความสำเร็จซึ่งเติบโตขึ้นอย่าง "เป็น" ในช่วงหลายปีที่ผ่านมา เราวางแผนที่จะขยายสายผลิตภัณฑ์ใหม่ที่จะใช้ข้อมูลร่วมกันกับผลิตภัณฑ์ที่มีอยู่ เพื่อสนับสนุนสิ่งนี้เราต้องการรวมตรรกะทางธุรกิจไว้ในที่เดียวนั่นคือเลเยอร์บริการเว็บ เลเยอร์ WS จะถูกใช้โดย: เว็บแอพพลิเคชั่น เครื่องมือในการนำเข้าข้อมูล เครื่องมือที่จะรวมเข้ากับซอฟต์แวร์ไคลเอ็นต์อื่น ๆ (ไม่ใช่ API ต่อ se) เราต้องการสร้าง API ที่ลูกค้าของเราสามารถใช้เพื่อสร้างการรวมระบบของพวกเขาเอง เรากำลังดิ้นรนกับคำถามต่อไปนี้: ควรใช้ API ภายใน (รู้จักกันว่าเลเยอร์ WS) และ API ภายนอกเป็นหนึ่งเดียวกันพร้อมการตั้งค่าความปลอดภัยและการอนุญาตเพื่อควบคุมสิ่งที่สามารถทำได้โดยใครหรือควรเป็นสองแอปพลิเคชันแยกต่างหากที่ API ภายนอกเรียก API ภายใน ชอบแอปพลิเคชันอื่นหรือไม่ จนถึงตอนนี้การถกเถียงของเราดูเหมือนว่าการแยกพวกเขาอาจปลอดภัยมากขึ้น แต่จะเพิ่มค่าใช้จ่าย คนอื่น ๆ ทำอะไรในสถานการณ์คล้ายกัน
19 api  web  web-services 

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

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


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

3
“ สิ่งของของฉัน” กับ“ สิ่งของของคุณ” ในข้อความ UI
เมื่อพูดถึงสิ่งที่ผู้ใช้คุณควรใช้ของฉันหรือของคุณตัวอย่างเช่น: รถเข็นของฉัน บัญชีของฉัน | รายการโปรดของฉัน หรือ รถเข็นของคุณ | บัญชีของคุณ รายการโปรดของคุณ ฉันพบบทความที่ระบุว่าสำหรับการใช้งานของคุณ มันบอกว่า flikr ทำเช่นนี้ นอกจากนี้ยังบอกว่า MySpace และ MyYahoo ผิด ฉันยังพบในวันนี้ว่าอเมซอนใช้คำของคุณ อย่างไรก็ตามฉันได้ยินมาว่าพวกเขาเป็นผู้เชี่ยวชาญในการทดสอบรูปแบบต่างๆและค้นหาสิ่งที่ดีที่สุดดังนั้นสิ่งที่คุณเห็นในเว็บไซต์ของพวกเขาอาจจะเป็นรูปแบบที่ดีที่สุดหรือสิ่งที่พวกเขากำลังทดสอบอยู่ในปัจจุบัน ฉันชอบวิธีที่ตัวเองดูดีกว่า แต่นั่นเป็นเพียงความคิดเห็นของฉัน คุณคิดอย่างไร? อะไรจะเกิดผลกระทบที่ดีกว่ากับลูกค้า? มันเป็นเรื่องสำคัญจริงหรือ

11
.NET Reflector ไม่มีอีกต่อไป - ทุกคนรู้สึกอย่างไรกับเรื่องนี้ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา รุ่นที่จะเกิดขึ้นของ.NET สะท้อนมาในเดือนมีนาคมจะไม่ได้มีรุ่นฟรี .NET Reflector เริ่มต้นจากยูทิลิตี้ฟรีที่เขียนโดยโปรแกรมเมอร์ Lutz Roeder และเป็นโปรแกรมเมอร์ที่ขาดไม่ได้อย่างรวดเร็ว หลังจากนั้นประมาณสี่ปีเขาก็ขายมันให้กับซอฟต์แวร์ RedGate ซึ่งดูแลรักษาเวอร์ชั่นฟรีตั้งแต่นั้นมารวมถึงรุ่น "Pro" เมื่อประมาณหนึ่งปีที่ผ่านมาซึ่งเพิ่มความสามารถและเริ่มต้นที่ $ 99 ต่อที่นั่ง รุ่นใหม่จะไม่มีรุ่นฟรีอีกต่อไปจะเป็น $ 35 สำหรับรุ่นที่ไม่ใช่รุ่น Pro และรุ่นฟรีที่มีอยู่จะยังคงใช้งานได้จนถึงสิ้นเดือนพฤษภาคม ในอีกด้านหนึ่งมันน่ารำคาญที่รุ่นฟรีที่มีอยู่จะตายและเห็นได้ชัดว่าฉันต้องการมีรุ่นฟรีไปข้างหน้า ในทางกลับกันฉันเคารพว่า RedGate มาจากไหนและค่าใช้จ่ายสำหรับใบอนุญาตนั้นไม่ได้แพงมากนัก รวมทั้งอาจกระตุ้นให้มีการอัพเดทบ่อยขึ้น แก้ไข:ฉันเดิมกล่าวว่าเป็น $ 35 สำหรับทุกคน แต่ตามคำถามที่พบบ่อยนี้จะยังคงเป็นรุ่น Pro
19 reflector 

1
เหตุใดส่วนคำปฏิเสธการรับประกันของใบอนุญาตมักจะเป็น (เสมอ?) ตะโกน?
ตัวอย่างเช่นเทมเพลตที่มีให้ในเว็บไซต์ Open Source Initiative สำหรับใบอนุญาต BSD 3 ข้อและใบอนุญาต MITทั้งสองรวมถึงการปฏิเสธการรับประกันแบบตัวพิมพ์ใหญ่ทั้งหมด มีเหตุผลแท้สำหรับเรื่องนี้หรือไม่? หรือเป็นเพียงประเพณีที่ทำให้การปฏิเสธการรับประกันอ่านยาก?
19 licensing 

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

5
การพูดในที่สาธารณะในการพัฒนาซอฟต์แวร์ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ทักทายผู้อาศัยในห้องเล็ก ๆ ของฉัน ฉันพบว่าบทบาทของฉันค่อยๆเปลี่ยนจาก "feature-maintainer" เป็น "feature-developer" ในขณะที่อดีตส่วนใหญ่จะประกอบด้วยการแก้ไขและ / หรือการปรับปรุงคุณสมบัติที่มีอยู่ (และบ่นอย่างเงียบ ๆ เกี่ยวกับการใช้งานด้วยความไร้เดียงสาที่สมบูรณ์) ในบทบาทใหม่นี้ฉันพบ: ต้องสื่อสารกับผู้บริหารทันทีเพื่อกำหนดความต้องการการพัฒนาเพื่อตอบสนองคุณสมบัติใหม่ ต้องสื่อสารกับการออกแบบเพื่อกำหนดความต้องการของผู้ใช้ของคุณสมบัติใหม่ ต้องสื่อสารกับ QA เพื่อกำหนดชุดทดสอบสำหรับคุณลักษณะใหม่รวมถึงสถานะปัจจุบันระหว่างการพัฒนา ต้องสื่อสารกับผู้ผลิต / ผู้จัดการโครงการเพื่อกำหนดเวลาตอบสนองที่เหลือรวมถึงการอัพเดทข้อกำหนดการพัฒนา และสุดท้ายต้องสื่อสารกับผู้บริหารระดับสูงเป็นครั้งคราวเพื่อปกป้องคุณสมบัติใหม่และแสดงให้เห็นว่ามันลดความเสี่ยงในการเปิดตัวที่กำลังจะเกิดขึ้น รายการสุดท้ายเป็นกุญแจสำคัญที่นี่และสิ่งนี้ทำให้ฉันสองสามครั้งตระหนักอย่างสมบูรณ์ โดยสรุปแล้วมันก็เห็นได้ชัดว่าทักษะการสื่อสารมีความสำคัญแม้กระทั่งหรือโดยเฉพาะอย่างยิ่งสำหรับนักพัฒนาที่รู้สึกว่าพวกเขาเป็นเจ้าของ 'คุณสมบัติ' ที่พวกเขากำลังทำงานอยู่ จากข้อมูลทั้งหมดที่กล่าวมาฉันตระหนักดีถึงความสำคัญและต้องการพัฒนาทักษะของฉันในด้านนี้ต่อไป ฉันสนุกกับการสื่อสารแบบตัวต่อตัว แต่พบว่าฉันมักจะพูดติดอ่างนิดหน่อยเมื่อพูดกับกลุ่มที่ใหญ่กว่าคนไม่กี่คนที่ฉันรู้จักดี ฉันจะหาแหล่งข้อมูลที่ดีเพื่อพัฒนาทักษะการสื่อสารของฉันได้ที่ไหน

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

11
ในฐานะนักพัฒนามันเป็นหน้าที่ของเราในการรายงานปัญหาหรือไม่หากไม่มีใครในองค์กรที่สนใจ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา แก้ไข: ฉันควรชี้ให้เห็น; มุมมองส่วนตัวของฉันคือฉันควรจะเชิงรุก ฉันรู้ว่าบางครั้งฉันต้องกัดลิ้นของฉันและฉันต้องการที่จะได้รับข้อมูลจากชุมชน (เป็นหนึ่งในเวลาเหล่านี้) ฉันไม่สามารถหาสถานที่ที่เหมาะสมกว่าที่จะถามในครอบครัวของเว็บไซต์ นี่คือสถานการณ์ - องค์กรขนาดเล็ก <70 คน ไม่มีแผนก qa เว็บไซต์ดูหลายพันทุกวัน ฉันเป็นผู้พัฒนาเว็บไซต์ แต่เพียงผู้เดียว ฉันไม่เคยมีข้อร้องเรียนใด ๆ เลยว่าไซต์นั้นเสียใน IE6 ฉันได้ค้นพบเว็บไซต์ของเราไม่ได้ทำงานใน IE6 เป็นเวลาหลายปี บุคคลที่ฉันแทนที่ที่สร้างขึ้นนั้นต้องได้รับ "การทดสอบ" เฉพาะใน IE7 เท่านั้น ฉันใช้พีซีแบบเสมือนและกับ IE6 และเว็บไซต์ของเราเป็นระเบียบสมบูรณ์ คุณไม่สามารถเลือกรายการเมนูบางรายการที่อ่านไม่ออก มันดูแย่มาก ดังนั้นอีกครั้งมันเป็นงานของเราที่จะหาข้อบกพร่องเชิงรุกหรือไม่หรือเราเพียงแค่แก้ไขสิ่งที่ลูกค้าร้องขอ .... โดยส่วนตัวฉันต้องการใช้โอกาสนี้กับองค์กรของฉันเพื่อลดความคาดหวังของการสนับสนุนหรือความเข้ากันได้ของ IE6

6
ฟังก์ชันแบบอินไลน์ใน C ++ ประเด็นคืออะไร?
ตามสิ่งที่ฉันอ่านคอมไพเลอร์ไม่จำเป็นต้องแทนที่การเรียกใช้ฟังก์ชันของฟังก์ชันอินไลน์ด้วยร่างกาย แต่จะทำเช่นนั้นหากทำได้ นี่ทำให้ฉันคิด - ทำไมเราถึงมีคำอินไลน์ถ้าเป็นเช่นนั้น? ทำไมไม่ทำฟังก์ชั่นอินไลน์ฟังก์ชั่นทั้งหมดโดยค่าเริ่มต้นและให้คอมไพเลอร์คิดว่ามันสามารถทดแทนการโทรด้วยร่างกายฟังก์ชั่นหรือไม่?

13
กฎระเบียบของมารยาทใดที่ควรปฏิบัติตามในการประชุมซอฟต์แวร์? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน7 ปีที่ผ่านมา ไม่ว่าจะเป็นผู้เข้าร่วมประชุมผู้พูดหรือผู้ขายฉันต้องการทราบว่ากฎของมารยาทที่ไม่ได้พูดในการประชุมซอฟต์แวร์คืออะไร นอกเหนือจากที่เห็นได้ชัด (เช่นอย่าทำร้ายผู้ชนะของการจับฉลาก iPad เพราะคุณไม่ได้ชนะ) มีกฎอะไรบ้างที่ควรปฏิบัติตามแม้ว่าคุณรู้สึกว่าไม่จำเป็นต้องพูดอะไร โปรดหนึ่งกฎต่อหนึ่งคำตอบโดยมีข้อสรุปที่ชัดเจนในการนำคำตอบ โพสต์คำตอบหลายคำตอบหากคุณมีกฎหลายข้อ
19 etiquette 

2
RAII คืออะไร ตัวอย่าง?
ทุกครั้งที่มีการใช้คำว่า RAII ผู้คนกำลังพูดถึง deconstruction แทนการกำหนดค่าเริ่มต้น ฉันคิดว่าฉันมีความเข้าใจพื้นฐานสิ่งที่อาจหมายถึง แต่ฉันไม่แน่ใจ นอกจากนี้: C ++ เป็นภาษา RAII เดียวหรือไม่ Java หรือ C # /. NET เป็นอย่างไร
19 c++ 

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