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

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

2
แนวทางปฏิบัติที่ดีที่สุดสำหรับการปล่อยแอปพลิเคชัน PHP โอเพ่นซอร์ส
ฉันเป็นนักพัฒนา PHP สำหรับการดำรงชีวิต แต่ไม่เคยทำงานหรือมีส่วนร่วมในโครงการโอเพ่นซอร์สใด ๆ มาก่อน ฉันกำลังพัฒนา CMS สำหรับการใช้งานของฉันเอง ฉันมีต้นแบบการทำงานและฉันคิดว่าเมื่อมันพร้อม (อาจใช้เวลาสองสามเดือน) นี่อาจเป็นสิ่งที่ชุมชน PHP จะให้ความสนใจ ฉันเป็นนักพัฒนาที่ค่อนข้างมั่นใจ แต่มีหลายประเด็นที่ความรู้ของฉันขาดไปโดยเฉพาะอย่างยิ่งเมื่อพูดถึงประเด็นของโอเพ่นซอร์ส: เป็นวิธีที่ดีที่สุดในการเผยแพร่โครงการและ / หรือค้นหาคนอื่น ๆ ที่อาจสนใจในการทำงานร่วมกัน CMS ของฉันขับเคลื่อนโดย CakePHP และโดยทั่วไปแล้วจะเป็นชั้นบนสุดของมัน ฉันเคยทำโครงการ CakePHP บน GitHub: ฉันเคยใช้ระบบควบคุมเวอร์ชัน (SVN) มาก่อน แต่ฉันค่อนข้างใหม่กับ GIT ดังนั้นฉันจึงต้องการแน่ใจว่าฉันกำลังทำสิ่งต่าง ๆ ใน "วิธีที่ดีที่สุด" ฉันจะหาข้อมูลเกี่ยวกับปัญหาลิขสิทธิ์ได้อย่างไร ใบอนุญาตโอเพนซอร์ใดดีที่สุดสำหรับแอพของฉัน นอกจากนี้โครงการของฉันยืมมาจากโครงการโอเพนซอร์ซอื่น ๆ มากมายเช่นฉันมีส่วนของรหัส (ซึ่งฉันมีการปรับเปลี่ยนอย่างมาก) แต่มีประกาศลิขสิทธิ์ / ใบอนุญาตในสถานที่ - ฉันไม่รู้ว่าภาระหน้าที่ของฉันคืออะไร ทำให้เหล่านี้มา …

9
วิธีที่ดีที่สุดสำหรับฉันในการเริ่มต้นใช้การควบคุมเวอร์ชันในโครงการ opensource คืออะไร
มีข้อเสนอแนะว่าฉันนำโครงการโอเพ่นซอร์สของฉันเนื่องจากขนาดและทักษะที่ขาดไปของฉันดังนั้นฉันจึงตรวจสอบ Google Code และเริ่มทำโครงการและตอนนี้มันถามฉันว่าฉันต้องการให้โครงการมี Git, Mercurial หรือ Subversion รหัสโฮสติ้ง ฉันไม่รู้ด้วยซ้ำว่าโค้ดโฮสติ้งคืออะไรและการค้นหาทำให้ฉันสับสนมากขึ้นกับการอภิปรายระหว่างสิ่งเหล่านี้ทั้งหมดและสิ่งนี้ก็ยิ่งแย่ลงเพราะ Google Code กำลังถามฉันว่าต้องการใบอนุญาตประเภทใด ฉันคิดว่าฉันไม่เข้าใจความหมายของโอเพ่นซอร์สจริง ๆ แล้วใครบางคนสามารถทำแผ่นโกงคนธรรมดาได้อย่างรวดเร็วในทุกสิ่งนี้คืออะไร? ชื่นชมมาก แก้ไขมีการตอบรับที่ยอดเยี่ยมมากมายเกี่ยวกับการโฮสต์โค้ดทั้งสามเวอร์ชัน แต่ฉันคิดว่าฉันล้มเหลวในการสื่อสารกับคำถามจริง: โดยทั่วไปฉันไม่รู้ว่าการทำงานแบบโอเพ่นซอร์สนี้ทำงานอย่างไร ? และนั่นหมายความว่าฉันต้องถอดไซต์ออกจากโฮสต์ปัจจุบันของฉันหรือนี่เป็นโฮสติ้งประเภทอื่นหรือไม่ จะเกิดอะไรขึ้นเมื่อฉันทำให้ไซต์ของฉันเป็นโอเพ่นซอร์สฉันมีสิทธิ์ใดบ้างฉันจะมอบสิทธิ์ใดให้ฉัน มันใช้งานได้อย่างไรผู้คนเพิ่งมาและโยนรหัสมาให้ฉันฟรีหรือไม่? บางทีนี่อาจเป็นคำถามที่งี่เง่าและถ้าเป็นเช่นนั้นฉันคิดว่าฉันต้องการคำตอบที่โง่ฉันก็ไม่รู้ว่าโอเพ่นซอร์สคืออะไรอย่างจริงจังยกเว้นแนวคิดในการแบ่งปันรหัส ...

4
Visual Studio Lightswitch คืออะไรและแตกต่างจาก Visual Studio รุ่นปกติอย่างไร
วิธีการคือVisual Studio Lightswitchแตกต่างจากปกติ Visual Studio? คุณจะใช้ IDE นี้ในสถานการณ์แบบใดใน Visual Studio ปกติ ฉันพยายามตัดสินใจว่านี่เป็นสิ่งที่คุ้มค่าสำหรับฉันหรือไม่ที่จะใช้เวลาในการเรียนรู้เนื่องจากฉันกำลังพัฒนา WPF / Silverlight อยู่

7
ความแตกต่างระหว่างต้นแบบและโซลูชันระดับการผลิตคืออะไร
คำถามนี้มีไว้สำหรับการเรียนรู้และเพื่อเพิ่มความเข้าใจด้านเทคนิคของฉัน ฉันรู้ว่าไม่มีวิธีแก้ปัญหาที่สมบูรณ์แบบและคำถามนี้มีความเป็นไปได้ที่ไม่สิ้นสุดรายการโซลูชัน แต่ฉันคิดว่ามันสำคัญมากสำหรับสถาปนิกทุกคนที่จะเข้าใจความแตกต่างระหว่างการสาธิตและโครงการถ่ายทอดสด ฉันสร้างโซลูชันสาธิตจำนวนมากใน. Net ในอดีต ตอนนี้ฉันได้รับมอบหมายให้สถาปนิกและใช้โซลูชันเว็บระดับการผลิตดังนั้นฉันต้องการถาม - ในระดับสูงมากสิ่งที่ต้องใช้ในการแปลงตัวอย่างเป็นโซลูชันระดับการผลิต จากความเข้าใจของฉันสิ่งนี้จะต้องใช้ (นอกเหนือจากการใช้งานตามความต้องการของลูกค้า): หน่วยทดสอบทุกวิธี มั่นใจได้ว่าครอบคลุมรหัสได้ 100% การบันทึกข้อยกเว้นและปุ่มลัดที่เป็นไปได้ทั้งหมด - ทำได้ด้วย AOP ใช้รูปแบบการออกแบบส่วนต่อประสานการพึ่งพาซึ่งอาจเป็นไปได้โดยใช้เฟรมเวิร์กเช่น spring.net การใช้เคาน์เตอร์วัดประสิทธิภาพและโปรไฟล์สำหรับเครื่องมือวัด ใช้การรักษาความปลอดภัยที่เหมาะสม - เช่นการตรวจสอบ windows (ถ้านั่นคือสิ่งที่ลูกค้าต้องการ) การจัดการธุรกรรมในทุก ๆ วิธี สำรองข้อมูลไฟล์เว็บแอ็พพลิเคชันก่อนการปรับใช้โซลูชันใหม่ มีอะไรอีกบ้าง? คำถามของฉันเกี่ยวข้องกับด้านเทคนิคมากกว่าการใช้งาน / เอกสารเพราะมิฉะนั้นเราจะเข้าไปอีกเส้นทาง :-) ขอบคุณ.

1
เกิดอะไรขึ้นกับ Google AJAX Search API
ฉันกำลังมองหาเพื่อสอบถามหลักค้นหาของ Google แต่อ้างอิงทั้งหมดรวมทั้งstackoveflowชี้เมาส์ไปที่Google AJAX API สิ่งที่แปลกคือมันดูเหมือนว่าจะไม่มีอยู่อีกต่อไปแม้จะมีบันทึกที่จะบอกว่ามันเป็นค่าเสื่อมราคา? ลิงก์เก่า ๆ ชี้ไปที่ไซต์รหัสหลักของ Google หากฉันดูรายการของ API บนไซต์นั้น API ที่ถูกแทนที่จะมี API การค้นหาเว็บ (เลิกใช้แล้ว) ซึ่งลิงก์กลับไปที่หน้าเดียวกัน แต่ไม่ใช่ Google AJAX Search API การค้นหาของ Google ต่อไปไม่เป็นประโยชน์เช่นกันบล็อกโพสต์จำนวนมากชี้ไปที่ไซต์ Google เดียวกัน ( http://code.google.com/apis/ajaxsearch/ ) ซึ่งไม่มีเนื้อหาและเปลี่ยนเส้นทางไปยังที่เดียวกันหรือไม่ เพียงเพื่อพิสูจน์ว่ามันมีอยู่ฉันได้พบมันระหว่างทางกลับเครื่องแต่ภาพรวมสุดท้ายไม่ได้แสดงข้อความพิเศษใด ๆ ที่ผิดปกติ
10 api  google 

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

5
ถ้า TDD เกี่ยวกับการออกแบบทำไมฉันถึงต้องใช้มัน? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว กูรู TDD มากขึ้นและบอกเราว่าTDD ไม่ได้เกี่ยวกับการทดสอบมันเป็นเรื่องเกี่ยวกับการออกแบบ ดังนั้นฉันรู้ว่านักพัฒนาบางคนที่สร้างการออกแบบที่ยอดเยี่ยมจริงๆโดยไม่มี TDD พวกเขาควรฝึกซ้อม TDD ไหม?
10 tdd 

2
ฉันจะเพิ่มการกำหนดเนมสเปซ PHP ในไลบรารีบางส่วนโดยไม่ทำให้รหัสที่มีอยู่เสียหายได้อย่างไร
บริษัท ของฉันสร้างกรอบ PHP แบบแยกส่วนในช่วงหลายปีที่ผ่านมาเริ่มต้นนานก่อนที่ PHP จะเพิ่มเนมสเปซ 5.3 เมื่อเร็ว ๆ นี้เราตัดสินใจที่จะเริ่มใช้เนมสเปซในรหัสใหม่ของห้องสมุด อย่างไรก็ตามเรามีปัญหาเล็ก ๆ น้อย ๆ ที่เราพยายามหาว่าการเพิ่มเนมสเปซลงในโค้ดเบส pre-v5.3 นั้นไม่ใช่ความคิดที่ดีหรือไม่: ฉันสามารถเนมสเปซคลาส แต่ยังอิมพอร์ต (ใช้) โกลบอลเนมสเปซเพื่อให้คลาสโกลบอลทั้งหมดไม่ต้องการ\คำนำหน้าได้หรือไม่? หากเรากำหนดคลาสที่มีอยู่ในห้องสมุดของเราเราจะป้องกันไม่ให้โครงการที่มีอยู่ทั้งหมดแตกหักทันทีที่การอัพเกรดเฟรมเวิร์ก ตัวอย่างเช่นไลบรารีสามารถเปลี่ยนชื่อของคลาสThemeEngineเป็น\module\theme\ThemeEngineแต่เว็บไซต์ที่มีอยู่โทรออกThemeEngineโดยไม่มีการแก้ไขรหัสใด ๆ ถ้าเป็นเช่นนั้นรหัสนั้นจะเป็นอย่างไร
10 php  namespace 

3
XML กับ SQL สำหรับโครงการขนาดเล็ก?
ฉันกำลังทำงานในโครงการขนาดเล็กซึ่งจะมีผู้ใช้ครั้งละหนึ่งคนเท่านั้นเนื่องจากเป็นแอปพลิเคชันในพื้นที่ (พัฒนาใน WPF และ C #) ในการจัดเก็บข้อมูลฉันคิดว่าจะใช้ไฟล์ XML แต่ฉันสงสัยว่านี่จะเป็นวิธีที่ดีที่สุดหรือไม่ ข้อมูลมีไว้สำหรับ: Shedules คลังไฟล์ในโฟลเดอร์ (ที่มีชื่อศิลปิน, ชื่อ, ตำแหน่งบน HDD) อาจเป็นไปได้ว่าสถิติขึ้นอยู่กับข้อมูล shedule ... ข้อมูลเกี่ยวกับห้องสมุดจะดีใน XML ฉันนึก แต่เกี่ยวกับส่วนที่เหลือทั้งหมดฉันไม่แน่ใจ นอกจากนี้ LINQ ไปยัง SQL ดูเหมือนจะสร้างผลกำไรได้มากขึ้นในแง่ของความเร็วในการพัฒนามากกว่า LINQ ถึง XML สิ่งนี้ถูกต้องหรือฉันผิด ฉันไม่แน่ใจว่าควรโพสต์สิ่งนี้บน SO หรือที่นี่ แต่มันดูเหมาะสมกว่าที่นี่! ขอบคุณล่วงหน้า
10 sql  wpf  xml 

6
คุณลักษณะใดของ IDE ที่จะทำให้มีประโยชน์มากกว่าตัวแก้ไขวัตถุประสงค์ทั่วไป
ฉันกำลังเขียน IDE สำหรับภาษา Lua ฉันพบว่าโปรแกรมเมอร์หลายคนไม่ชอบใช้ IDE และชอบ VIM (ซึ่งอยู่ใน vogue ในขณะนี้), SCiTE หรือ ในการพยายามที่จะเอาชนะความคิดบางอย่างฉันสนใจในสิ่งที่คุณสมบัติของ IDE สามารถให้ซึ่งจะทำให้เป็นทางเลือกที่น่าสนใจสำหรับตัวแก้ไขวัตถุประสงค์ทั่วไป มี "killer-app" หรือเปล่าที่จะพูดถึง IDE ที่จะทำให้มันเป็น "ต้องมี"? นี่อาจเป็นสิ่งที่ตรงกันข้าม ฟีเจอร์ที่มีประโยชน์ที่สุดของ VIM ที่ไม่ได้เป็นมาตรฐานใน IDE ฉันจะไม่เชื่อมโยงไปยัง IDE ของฉันถ้าไม่มีใครถาม - แต่คุณสามารถ Google ชื่อของฉันและค้นหาได้ แก้ไข: IDE ของฉันเป็นปลั๊กอินภาษาสำหรับ IDE ที่มีอยู่แล้วดังนั้นฉันจึงสืบทอดคุณสมบัติมากมายจากโฮสต์ IDE - ในบางระดับแม้ว่าการสนับสนุนภาษาของฉันคือ IDE ในตัวมันเอง - อย่างน้อยที่สุดเท่าที่ลักษณะเฉพาะของภาษาคือ ที่เกี่ยวข้อง
10 ide  text-editor 

2
ข้อตกลงการตั้งชื่อแบบเฉพาะคลาส Java คลาส
ฉันต้องสร้างอะแดปเตอร์ระหว่างซอฟต์แวร์สองตัว (การจำลองด้วย mech, ไม่ใช่ cs) ThatThingสมมติว่าเรามีระดับที่ชื่อว่า ฉันต้องจัดการกับการใช้งานเฉพาะของผู้ขายต่าง ๆ เวอร์ชันเหล่านี้ไม่มีชื่อที่มีความหมาย (ต่างจาก eclipse helios, indigo เป็นต้น) 1. ฉันจะตั้งชื่อคลาสที่ควรแสดงหมายเลขเวอร์ชั่นได้อย่างไร ผมพบว่าชั้นชอบThatThing_3_6_Impl, ThatThing_3_7_Implค่อนข้างอึดอัด
10 java  naming 

5
การเปลี่ยนแปลงข้ามชาติของฉันจากแพลตฟอร์มการพัฒนาหนึ่งไปยังแพลตฟอร์มอื่นได้อย่างไร
ฉันทำงานในแผนกไอทีของ บริษัท ระหว่างประเทศขนาดใหญ่ เรากำลังพัฒนาแอปพลิเคชันอินทราเน็ตที่แตกต่างกันสำหรับธุรกิจ (การร้องเรียนการคืนเงินส่วนให้บริการ ฯลฯ ) ตอนนี้เราตัดสินใจโยกย้ายจากแพลตฟอร์ม PHP เป็น. NET (รวมกับ MS CRM Dynamics, Exchange และ MS Office ด้วยเหตุผลหลายประการ) เนื่องจากมีแอพพลิเคชั่นที่แตกต่างกันประมาณ 20 แอปพลิเคชันที่ธุรกิจใช้บนแพลตฟอร์ม PHP ปัจจุบันเราจะต้องหาวิธีที่ดีที่สุดในการย้ายแอปพลิเคชั่นทั้งหมดไปยังแพลตฟอร์มใหม่ ฉันไม่ต้องการดูรายละเอียดวิธีแปลงรหัส ฯลฯ ขณะที่เราทำการย้ายข้อมูลเราต้องการปรับปรุงแอปพลิเคชันเหล่านี้ทั้งหมด ดังนั้นเราจึงสร้างวิธีหลักสองวิธีในการย้ายแอพเหล่านี้: รองรับเพียงแพลตฟอร์มเดียว มันหมายความว่าอะไร? สร้างโฮมเพจและโอนย้ายแอปทั้งหมดตามที่เป็นจริงไปยัง. NET (โดยไม่ต้องปรับปรุงในขณะที่เราทำเช่นนั้น) หลังจากอินทราเน็ตใหม่กำลังทำงานเราจะเริ่มสร้างแอปพลิเคชันที่ย้ายข้อมูลขึ้นใหม่และปรับปรุง นั่นจะช่วยให้เราพัฒนาอินทราเน็ตใน. NET ในขณะที่ต้องสนับสนุนแพลตฟอร์ม PHP สนับสนุนทั้งสองแพลตฟอร์มในบางครั้ง นั่นหมายถึงการสร้างโฮมเพจและแอพพลิเคชั่นใหม่ 1 หรือ 2 อัน (ซึ่งไม่มีอยู่ในแพลตฟอร์ม PHP ของเรา) ทำให้ผู้ใช้เหล่านี้พร้อมใช้งาน แต่ไม่ต้องถอดแพลตฟอร์ม …
10 migration 

3
วิธีที่ดีในการเรียนรู้วิธีการแก้ปัญหาใน InterviewStreet [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ สำเนาซ้ำที่เป็นไปได้: ฉันจะปรับให้เข้ากับคำถามท้าทายก่อนสัมภาษณ์ได้อย่างไร InterviewStreet เป็น บริษัท ใหม่ที่ทำหน้าที่เป็นตัวกรองสำหรับ บริษัท ต่างๆในการค้นหาโปรแกรมเมอร์ที่สามารถเขียนโค้ดได้ ปัญหาของฉันคือคณิตศาสตร์ของฉันค่อนข้างอ่อนแอและฉันต้องการที่จะศึกษาแม้ว่าจะมาจากพื้นดินขึ้นเพื่อให้สามารถแก้ไขคำถามเช่นนี้ที่พบในเว็บไซต์ของพวกเขา: Find the no of positive integral solutions for the equations (1/x) + (1/y) = 1/N! (read 1 by n factorial) Print a single integer which is …

15
นักพัฒนาซอฟต์แวร์ที่เพิกเฉยต่อคุณภาพ / มาตรฐานที่ดีกว่าสำหรับ บริษัท หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว นักพัฒนาซอฟต์แวร์ที่เลือกที่จะไม่ใส่การเพิ่มประสิทธิภาพรหัสมาตรฐานและแนวทางปฏิบัติที่ดีที่สุดเป็นลำดับความสำคัญสูงสุดสร้างรหัสที่มีประโยชน์มากกว่านักพัฒนาที่ต้องการกังวลเกี่ยวกับการปรับให้เหมาะสมการใช้มาตรฐานการเข้ารหัสและแนวทางปฏิบัติด้านบน วิธีการที่แตกต่างกันเหล่านี้จะเปรียบเทียบกันอย่างไรเมื่อพูดถึงการทบทวนประสิทธิภาพของแต่ละคน สไตล์เหล่านี้เปรียบเทียบในการแสดงความคิดเห็นกับเพื่อนอย่างไร อะไรคือวิธีที่ดีที่สุดในการโน้มน้าวให้ทีมของคุณใช้แนวปฏิบัติที่ดีที่สุดระหว่าง SDLC

5
ข้อผิดพลาดในการออกแบบ API ใน C [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว มีข้อบกพร่องอะไรบ้างที่ผลักดันคุณให้คลั่งไคล้ใน C APIs (รวมถึงห้องสมุดมาตรฐานห้องสมุดบุคคลที่สามและส่วนหัวภายในโครงการ) เป้าหมายคือการระบุข้อผิดพลาดในการออกแบบ API ใน C ดังนั้นผู้ที่เขียนไลบรารี C ใหม่สามารถเรียนรู้จากความผิดพลาดในอดีต อธิบายว่าเหตุใดข้อบกพร่องจึงไม่ดี (ควรเป็นตัวอย่าง) และพยายามเสนอการปรับปรุง แม้ว่าวิธีการแก้ปัญหาของคุณอาจไม่สามารถใช้งานได้จริงในชีวิตจริง (มันสายเกินไปที่จะแก้ไขstrncpy) แต่ก็ควรให้ความสำคัญกับนักเขียนห้องสมุดในอนาคต แม้ว่าจุดเน้นของคำถามนี้คือ C APIs แต่ปัญหาที่ส่งผลต่อความสามารถในการใช้ภาษาเหล่านี้ในภาษาอื่นก็สามารถทำได้ โปรดให้หนึ่งข้อบกพร่องต่อคำตอบเพื่อประชาธิปไตยสามารถเรียงลำดับคำตอบ
10 c  api-design  pitfalls 

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