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

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

6
ค่าใช้จ่ายของความล่าช้าอีกต่อไประหว่างการพัฒนาและ QA
ที่ตำแหน่งปัจจุบันของฉัน QA ได้กลายเป็นคอขวด เรามีการเกิดขึ้นของคุณสมบัติที่โชคร้ายจากการสร้างปัจจุบันเพื่อให้ QA สามารถทำการทดสอบให้เสร็จสิ้นได้ ซึ่งหมายความว่าฟีเจอร์ที่ได้รับการพัฒนาแล้วอาจไม่ได้รับการทดสอบเป็นเวลา 2-3 สัปดาห์หลังจากที่นักพัฒนาซอฟต์แวร์ได้ทำการพัฒนาต่อไป เมื่อ dev เคลื่อนที่ได้เร็วขึ้นและมีคุณภาพ QA ช่องว่างในเวลานี้จะยิ่งใหญ่ขึ้นเท่านั้น ฉันเปิดอ่านสำเนาของ Code Complete อย่างต่อเนื่องโดยมองหาข้อมูล "Hard Data" ที่แสดงค่าใช้จ่ายในการแก้ไขข้อบกพร่องที่เพิ่มขึ้นแบบทวีคูณยิ่งมีอยู่นานขึ้น ใครสามารถชี้ให้ฉันดูการศึกษาบางอย่างที่สนับสนุนแนวคิดนี้ได้บ้าง ฉันพยายามโน้มน้าวใจพลังที่เป็นไปได้ว่าคอขวด QA แพงกว่าที่คิดไว้มาก

6
มันเป็นการดีที่จะแสดงความคิดเห็นด้วยหมายเลขปัญหา?
ผมเห็นตัวเลขปัญหามากมายจากความคิดเห็นของรหัส jQuery (ที่จริงแล้วมีปัญหา 69 รายการในรหัส jQuery) ฉันคิดว่ามันจะเป็นแนวปฏิบัติที่ดี แต่ฉันไม่เคยเห็นแนวทางใด ๆ หากเป็นการปฏิบัติที่ดีแนวทางในการฝึกนี้คืออะไร?

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

3
การรับรองสำหรับนักพัฒนา Javascript? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังมองหารายการที่มั่นคงและรวดเร็วในด้านการพัฒนาจาวาสคริปต์ หัวข้อต่อไปนี้อยู่ในใจของฉัน: แนวคิดขั้นสูงของ Javascript, OOP jQuery, jQuery-UI, jQuery-Mobile Backbone.js Node.js BDD และ / หรือ TDD หลักสูตรของhttp://www.codelesson.comดูมีแนวโน้ม ใบรับรองสำหรับนักพัฒนา Javascript นั้นมีอยู่ / สามารถแนะนำได้? คุณสามารถแนะนำผู้ขายรายใดได้บ้าง


8
มีภาษาระหว่าง C และ C ++ หรือไม่
ฉันชอบธรรมชาติที่เรียบง่ายและโปร่งใสของ C: เมื่อฉันเขียนรหัส C ฉันรู้สึกปราศจากข้อ จำกัด โดย "abstractions ที่รั่วไหล" และมักจะสามารถเดาได้อย่างชาญฉลาดเกี่ยวกับการชุมนุมที่ฉันผลิต ฉันชอบไวยากรณ์ที่เรียบง่ายและคุ้นเคยสำหรับ C. อย่างไรก็ตาม C ไม่มี doodads ที่เรียบง่ายและเป็นประโยชน์เหล่านี้ที่ C ++ นำเสนอเช่นคลาส, การจัดการที่ไม่ใช่ cstring แบบง่าย, ฯลฯ ฉันรู้ว่ามันเป็นไปได้ที่จะนำไปใช้ใน C โดยใช้ตารางกระโดดและสิ่งที่คล้ายกัน และไม่ปลอดภัยสำหรับประเภทด้วยเหตุผลต่างๆ ฉันไม่ใช่แฟนของการเน้นไปที่วัตถุใน C ++ และฉันก็อายที่จะใช้ตัวดำเนินการ 'ใหม่' และไม่ชอบ c ++ ดูเหมือนว่าจะมี hiccups มากเกินไปเพียงไม่กี่ตัวอย่างเช่นถูกใช้เป็นภาษาการเขียนโปรแกรมระบบ มีภาษาที่อยู่ระหว่าง C และ C ++ ในระดับของวิดเจ็ตและ doodads หรือไม่? ข้อจำกัดความรับผิดชอบ: ฉันหมายความว่านี่เป็นคำถามที่แท้จริง ฉันไม่ได้ตั้งใจที่จะโกรธคุณเพราะฉันไม่แบ่งปันมุมมองของคุณว่า …
18 c++  c 

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

7
จะปรับปรุงการฝึกอบรมนักเรียนเกี่ยวกับการบำรุงรักษาได้อย่างไร? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว การบำรุงรักษาเป็นส่วนสำคัญของการพัฒนาซอฟต์แวร์มืออาชีพ อันที่จริงการบำรุงรักษาเกือบตลอดเวลาเป็นส่วนที่ยาวที่สุดของวัฏจักรชีวิตของซอฟต์แวร์เนื่องจากมันกินเวลาตั้งแต่การเปิดตัวโครงการจนถึงเวลาสิ้นสุด นอกจากนี้โครงการที่อยู่ระหว่างการบำรุงรักษาถือเป็นโครงการใหญ่โดยรวม ตามhttp://www.vlegaci.com/298/interesting-statistics-%E2%80%93-numbers-of-programmers-in-maintenance-vs-development/สัดส่วนของโครงการที่อยู่ในการบำรุงรักษาประมาณ 2 / 3 ฉันเพิ่งเจอคำถามนี้ที่ผู้ชายดูประหลาดใจสวยค้นพบว่างานของเขาส่วนใหญ่เกี่ยวกับการบำรุงรักษา ฉันจึงตัดสินใจเปิดการสนทนา (ภาษาฝรั่งเศส)บนเว็บไซต์หลักของชุมชนผู้เชี่ยวชาญด้านการพัฒนาซอฟต์แวร์ของฝรั่งเศส ( http://www.developpez.com/ ) การอภิปรายนี้มีชื่อว่า "นักเรียนได้รับการฝึกฝนอย่างดีพอกับความเป็นจริงของการพัฒนาซอฟต์แวร์มืออาชีพหรือไม่" และส่วนใหญ่เกี่ยวกับการบำรุงรักษา ชี้ให้เห็นว่าอย่างน้อยในฝรั่งเศสผู้คนไม่พร้อมที่จะเผชิญกับการบำรุงรักษาทั้งสองด้าน: รักษารหัสที่มีอยู่ ทำให้รหัสบำรุงรักษา คำถามของฉันที่นี่สะท้อนถึงการสนทนานี้และมุ่งหวังที่จะหาวิธีที่ดีในการสอนการบำรุงรักษา เราจะสอนการบำรุงรักษาได้อย่างไร คุณจะแนะนำการออกกำลังกายแบบไหน? หากคุณได้รับการฝึกอบรมอย่างดีเกี่ยวกับการบำรุงรักษาหลักสูตรใดที่คุณเรียนโดยเฉพาะ [แก้ไข] หลังจากความเข้าใจผิดฉันคิดว่าฉันต้องชี้แจงคำถามของฉัน ในฐานะผู้นำโครงการและนักพัฒนาซอฟต์แวร์ฉันมักทำงานกับผู้ฝึกอบรมหรือนักเรียนที่เพิ่งจบใหม่ ฉันจบการศึกษาครั้งใหม่ด้วยตัวเอง สิ่งที่นักเรียนมักจะไม่คุ้นเคยกับหลักการเช่น SOLID ที่เพิ่มการบำรุงรักษาของโครงการ บ่อยครั้งที่เราประสบปัญหาที่สำคัญในการพัฒนาโครงการ (การบำรุงรักษาต่ำ) สิ่งที่ฉันกำลังมองหาที่นี่คือตัวอย่างที่เป็นรูปธรรมของการสอนที่ประสบความสำเร็จเกี่ยวกับความสำคัญของการบำรุงรักษาและวิธีการสร้างรหัสที่ดีขึ้นเกี่ยวกับประเด็นนี้โดยเฉพาะ หรือข้อเสนอแนะที่เป็นไปได้เพื่อปรับปรุงวิธีการฝึกอบรมของนักเรียน

4
วิธีกำหนดจำนวนโปรแกรมเมอร์ที่จำเป็นสำหรับโครงการ
คุณจะรู้ได้อย่างไรว่าโปรแกรมเมอร์แต่ละคนต้องการโครงการที่ประสบความสำเร็จมากแค่ไหน? บริษัท ที่ฉันทำงานเพื่อตอบสนองคำสั่งซื้อสำหรับ บริษัท ลูกค้า เราได้เขียนระบบการจัดการคลังสินค้าภายในที่จัดการการจัดการสินค้าคงคลังตามสถานที่ตั้งการประมวลผลคำสั่งการสร้างใบแจ้งหนี้การออกใบแจ้งหนี้การตรวจสอบการขนส่งสินค้าและการรายงาน (อาจมีรายงาน 50 ฉบับ) นอกจากนี้ยังมีฟังก์ชั่นการสแกนบาร์โค้ดและพอร์ทัลไคลเอ็นต์พร้อมกับคุณสมบัติอื่น ๆ อีกมากมาย นอกจากนี้ยังมีไทม์ล็อคของพนักงานเต็ม มันทำงานร่วมกับ Quickbooks, UPS และ FedEx มันทำงานกับลูกค้าอย่างน้อย 50 รายซึ่งแตกต่างกันเล็กน้อยในการทำงานของพวกเขา ตัวอย่างเช่นเรานำเข้าคำสั่งซื้อจากไฟล์ที่ลูกค้าส่ง แต่ลูกค้าแต่ละรายส่งรูปแบบไฟล์ที่แตกต่างกัน (csv, excel, ไฟล์แฟลตและบริการเว็บ) ดังนั้นเราจึงมีวิธีการแปลงชุดคำสั่งซื้อเป็นโหล การส่งออกเป็นเรื่องเดียวกัน โครงการมีความซับซ้อนและเพิ่มความซับซ้อนทุกวันด้วยรหัสมากกว่าหนึ่งล้านบรรทัด มันคือรหัส VB.NET ประมาณ 250,000 บรรทัด, รหัส Ruby 6,200 สายและบางที 5,000 บรรทัดของ PHP นอกจากนี้ยังมีฐานข้อมูล MySQL ที่มีประมาณ 200 ตาราง เนื่องจากความต้องการที่เปลี่ยนแปลงตลอดเวลาและความต้องการที่แตกต่างกันของลูกค้าหลายสิบคนรหัสจึงแตกต่างกันอย่างมากในด้านคุณภาพจากรหัสที่แย่มากไปจนถึงค่อนข้างดี ปัจจุบันโครงการนี้มีโปรแกรมเมอร์เพียงคนเดียวเท่านั้นเอง ขณะนี้ฉันยังให้การสนับสนุนผลิตภัณฑ์ทั้งหมดสำหรับ บริษัท …

5
การแยกวิเคราะห์และการแยก lexing ผ่านการฝึกฝนที่ดีกับตัวแยกวิเคราะห์ parser หรือไม่?
เมื่อฉันเริ่มใช้ตัวแยกวิเคราะห์ parser ปฏิกิริยาแรกของฉันคือความรู้สึกของการปลดปล่อยจากสิ่งที่รู้สึกเหมือนความแตกต่างเทียมระหว่างการแยกและ lexing ทันใดนั้นทุกอย่างก็แค่การแยกวิเคราะห์! อย่างไรก็ตามฉันเพิ่งเจอโพสต์นี้ใน codereview.stackexchange แสดงให้เห็นว่ามีคนเรียกคืนความแตกต่างนี้ ตอนแรกฉันคิดว่านี่เป็นสิ่งที่โง่มาก ๆ แต่แล้วความจริงที่ว่ามีฟังก์ชั่นใน Parsec เพื่อสนับสนุนพฤติกรรมนี้ทำให้ฉันตั้งคำถามกับตัวเอง อะไรคือข้อดี / ข้อเสียของการแยกวิเคราะห์กระแสข้อมูลที่มีอยู่แล้วในตัวแยกวิเคราะห์

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

6
การทดสอบรายการหรือที่เก็บข้อมูลการเรียนรู้ด้วยตนเองมีค่ากับประวัติของฉันหรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันมีที่เก็บGitHubพร้อมโปรแกรมของเล่นที่ฉันเขียนเมื่อฉันเรียนรู้บางสิ่ง ตัวอย่างเช่นเมื่อฉันอ่านเกี่ยวกับอัลกอริทึมหรือโครงสร้างข้อมูลฉันเขียนการใช้งานอย่างรวดเร็วของมันเพื่อให้แน่ใจว่ามันทำงานได้และฉันเข้าใจ บางครั้งฉันแก้อัลกอริทึมและไขปริศนาโครงสร้างข้อมูลและผลักเข้าไปในพื้นที่เก็บข้อมูล ที่เก็บนี้จะคุ้มค่าในการเชื่อมโยงประวัติส่วนตัวของฉันหรือมันจะเป็นอันตรายต่อโอกาสในการได้รับการว่าจ้างของฉันหรือไม่?

8
การมีเพศสัมพันธ์กับสตริง“ คลาย” มากกว่าด้วยวิธีการเรียน?
ฉันเริ่มโครงการกลุ่มโรงเรียนใน Java โดยใช้ Swing มันเป็น GUI ที่เรียบง่ายบนแอปเดสก์ท็อปฐานข้อมูล อาจารย์ให้รหัสจากโครงการปีที่แล้วเพื่อให้เราเห็นว่าเขาทำสิ่งต่าง ๆ อย่างไร ความประทับใจครั้งแรกของฉันคือรหัสมีความซับซ้อนมากกว่าที่ควรจะเป็น แต่ฉันคิดว่าโปรแกรมเมอร์มักจะคิดอย่างนี้เมื่อดูรหัสพวกเขาไม่ได้แค่เขียน ฉันหวังว่าจะหาเหตุผลว่าทำไมระบบของเขาถึงดีหรือไม่ดี (ฉันถามอาจารย์และเขาบอกว่าฉันจะเห็นทีหลังว่าทำไมมันถึงดีกว่าซึ่งไม่พอใจฉัน) โดยทั่วไปเพื่อหลีกเลี่ยงการมีเพศสัมพันธ์ระหว่างวัตถุแบบจำลองที่มีอยู่ของเขา (ตรรกะทางธุรกิจ) และมุมมองทุกอย่างจะทำกับสตริง วัตถุที่ยังคงอยู่ที่เก็บไว้ในฐานข้อมูลนั้นคือแฮชของสตริงและโมเดลและมุมมอง "สมัครสมาชิก" ซึ่งกันและกันจัดเตรียมคีย์สตริงสำหรับ "เหตุการณ์" ที่พวกเขาสมัครสมาชิก เมื่อมีการทริกเกอร์เหตุการณ์มุมมองหรือรูปแบบจะส่งสตริงไปยังสมาชิกทั้งหมดของผู้ตัดสินใจว่าจะทำอย่างไรกับเหตุการณ์นั้น ตัวอย่างเช่นในหนึ่งในวิธีการฟังการกระทำมุมมอง (ฉันเชื่อว่านี่เป็นเพียงการตั้งค่า bicycleMakeField บนวัตถุที่คงอยู่): else if(evt.getSource() == bicycleMakeField) { myRegistry.updateSubscribers("BicycleMake", bicycleMakeField.getText()); } ในที่สุดการโทรนั้นถึงวิธีนี้ในโมเดลรถ: public void stateChangeRequest(String key, Object value) { ... bunch of else ifs ... else …
18 java  coupling 

13
การใช้ Windows Services ในทางปฏิบัติมีอะไรบ้าง [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน4 ปีที่แล้ว ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันยังใหม่กับการทำงานกับ Windows Services แม้ว่าฉันจะเรียนรู้การสร้างWindows Services ใน VS2010ฉันต้องการทราบวิธีการปฏิบัติที่สามารถใช้บริการ windows ได้บ้าง? ฉันลองใช้ Googling โดยคำนึงถึงบริบทปัจจุบันเท่านั้นเพื่อหาบทช่วยสอนเพิ่มเติมเกี่ยวกับวิธีสร้างบริการ Windows แก้ไขเมื่อได้รับเงินรางวัล: คำตอบทั้งหมดนั้นยอดเยี่ยม แต่ฉันกำลังมองหาตัวอย่างที่เป็นประโยชน์มากขึ้นเกี่ยวกับบริการ windows และความหมายของมัน สิ่งนี้จะช่วยให้นักพัฒนาทราบเมื่อเหมาะสมที่จะใช้กับกรณีศึกษา

7
ฉันควรเปลี่ยนชื่อผู้แต่งในไฟล์คลาสหรือไม่ถ้าฉันทำการเปลี่ยนแปลงมากกว่า 80%?
ฉันกำลัง refactoring ชุดทดสอบคลาส Java ที่มีอยู่สำหรับการทดสอบ UI อัตโนมัติ บางครั้งฉันก็ทำการเปลี่ยนแปลงครั้งใหญ่ในไฟล์คลาสหรือปรับปรุงใหม่ทั้งหมด นี่ทำให้ฉันคิดว่าเมื่อฉันเขียนทั้งชั้นฉันควรเปลี่ยนชื่อผู้แต่งในส่วนความคิดเห็นเป็นของฉันหรือไม่ ฉันเป็นคนโลภใช่ไหม หรือมันจะมีประโยชน์สำหรับคนที่จะเห็นชื่อของฉันและถามฉันในกรณีที่มีข้อสงสัย?

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