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

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

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

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

9
กลายเป็นโปรแกรมเมอร์มืออาชีพโดยไม่ต้องไปเรียนที่วิทยาลัย? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ เมื่อไม่นานมานี้ฉันถูกปฏิเสธจากวิทยาลัยที่เคยยอมรับฉันเนื่องจากฉันใช้เวลาหนึ่งปีในโรงเรียนมัธยมในต่างประเทศและวิทยาลัยไม่สนใจที่จะรับรู้การศึกษาที่ได้รับในประเทศอื่น ด้วยเหตุนี้ทุนการศึกษาที่ใจกว้างมากได้ทำให้แห้งและการจัดหาเงินทุนการศึกษาเป็นที่น่าสงสัย ฉันยังลังเลที่จะกลายเป็นส่วนหนึ่งของระบบที่แสดงให้เห็นถึงสิ่งที่ฉันคิดว่าเป็นเกลียดกลัวชาวต่างประเทศที่เห็นได้ชัด สิ่งที่ฉันต้องการจะทำคือพูดว่า "วิทยาลัยเกลียว" ตีด้วยตัวเองและทำสิ่งที่น่าตื่นตาตื่นใจว้าวทุกคนและกลายเป็นเศรษฐีที่สร้างตัวเอง ความจริงของสถานการณ์คือฉันสองสัปดาห์จากโรงเรียนมัธยมฉันมีเกี่ยวกับหลักสูตร Intro to Programming ที่คุ้มค่ากับประสบการณ์การเรียนรู้ด้วยตนเอง (แม้ว่าฉันจะถูกผลักดันให้เรียนรู้และปรับปรุง) ฉันยังต้องจ่าย ค่าใช้จ่ายและฉันมีความสงสัยด้อมที่นายจ้างคนใดจะมีช่วงเวลาที่ยากลำบากในการพาฉันไปอย่างจริงจัง เมื่อฉันเข้าใจแล้วมันเป็นความเชื่อที่ได้รับความนิยมพอสมควรที่คุณสามารถทำได้โดยไม่ต้องจบปริญญา แต่มีคนอย่างฉันทำอย่างนั้นได้อย่างไร ใครจะทำให้ฉันจริงจังถ้าฉันเดินเข้าไปในสำนักงานของพวกเขาและพูดว่า "ฉันไม่มีการศึกษาอย่างเป็นทางการและทักษะขั้นต่ำ แต่ฉันต้องการที่จะทำงานและฉันต้องการที่จะเรียนรู้โปรดให้ฉันทำงาน"
16 skills 

5
Extreme Programming (XP) เข้ากันไม่ได้กับแนวคิดที่แสดงใน Peopleware หรือไม่
ฉันเพิ่งอ่าน Peopleware (DeMarco, Lister) เสร็จแล้วและได้ทำการค้นคว้าเกี่ยวกับ Extreme Programming (XP) มาก่อน อย่างที่ฉันเห็นตอนนี้ทั้งสองวิธีเกือบจะไม่เหมือนกัน Peopleware แนะนำให้แยกโปรแกรมเมอร์ออกจากการรบกวนใด ๆ และกำหนดลำดับความสำคัญในการทำงานอย่างต่อเนื่องเพื่อช่วยโปรแกรมเมอร์ให้ไหล ในทางกลับกัน XP เสนอเพื่อให้แน่ใจว่ามีการสื่อสารมากที่สุดเท่าที่จะเป็นไปได้แม้จะแนะนำให้โปรแกรมเมอร์ "นั่งด้วยกัน" โค้ดเป็นคู่และโดยทั่วไปจะทำงานในห้องเดียวกัน (สร้างเสียงรบกวนมาก) เป็นโรงเรียนแห่งความคิดที่แข่งขันกันอาจเป็นหนึ่งในโรงเรียนที่พิสูจน์ว่าถูกหรือผิดหรือมีการประนีประนอมอย่างมีประสิทธิภาพหรือไม่? ฉันเห็นจุดต่าง ๆ ที่เกิดขึ้น แต่ไม่เห็นการประนีประนอมที่สมเหตุสมผล ฉันใหม่มากในการศึกษาการจัดการการพัฒนาซอฟต์แวร์ดังนั้นจึงเป็นไปได้ว่าฉันเพิ่งเข้าใจผิดบางอย่าง ความคิดเห็นทั้งหมดยินดีต้อนรับ ป.ล. ในฐานะคำถามเล็ก ๆ ที่เพิ่มเข้ามาในฐานะโปรแกรมเมอร์ซึ่งคุณจะพบว่ามีประสิทธิผลมากขึ้นหรือไม่

5
ทำไมต้องใช้ Scala มากกว่า Java
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันเป็นภาษาสกาล่าโดยสิ้นเชิง ... ฉันยังคงดิ้นรนกับเหตุผลที่ว่า บริษัท ใดควรเปลี่ยนจากชวาเป็นสคาลา Scala เป็นเพียงน้ำตาล syntatic ที่ด้านบนของ JVM หรือมีการปรับปรุงพื้นฐานใน Scala มากกว่า Java ที่จะปรับปรุงการใช้งานจริงหรือไม่?
16 java  scala 

20
การเขียนโค้ดที่ตายแล้วมีประโยชน์หรือไม่?
คุณคิดว่าการเขียนโค้ดตายมีประโยชน์หรือไม่? บางคนบอกว่า "ถ้าคุณมี 2 ตรรกะในการดำเนินการบางอย่างแล้วแทนที่จะทำให้ความเห็นรหัสตรรกะอื่น ๆ หรือลบรหัสทำให้มันเป็นรหัสตายเพราะมันจะไม่ส่งผลกระทบต่อการดำเนินงาน" ตัวอย่าง:- if(true){ // logic - 1 } else { // logic - 2 // dead code } จริงป้ะ? ฉันมักจะไม่เขียนโค้ดที่ตายแล้วแทนที่จะลบตรรกะที่สอง
16 java 

4
เพิ่มระดับของรหัส C / C ++ ของฉัน
ฉันเขียนโปรแกรมมา 3-4 ปีแล้วและรู้สึกว่าฉันไม่สามารถเรียกได้ว่าเป็นผู้เริ่มต้นอีกต่อไป แต่ฉันอ่านคำถามในเว็บไซต์นี้และคิดว่าพวกเขากำลังพูดถึง WTF หรือไม่ ฉันรู้สึกแบบเดียวกันเมื่อฉันหยิบหนังสือเขียนโปรแกรมขึ้นทุกวัน ฉันได้อ่านหนังสือเขียนโปรแกรมเริ่มต้นหลายเล่มบางเล่มใน C / C ++ และอื่น ๆ เกี่ยวกับเกม ฉันได้เขียนสิ่งที่ซับซ้อนมากขึ้นเช่นพื้นฐาน AI, อนุกรมและอินเตอร์เฟส TCP / IP ฉันวางแผนที่จะเป็นโปรแกรมเมอร์เกม แต่เมื่อไม่นานมานี้ฉันมีความสนใจในระบบสมองกลฝังตัวหลังจากมีโอกาสได้ทำงานกับพวกเขา (อินเตอร์เฟสแบบอนุกรม) ฉันพบว่ามันยากมากที่จะหาสื่อเพื่อการเรียนรู้ของฉันต่อหลังจากเสร็จสิ้นการแนะนำและหนังสือเริ่มต้นเนื่องจากไม่มีหนังสือ C ++ ระดับกลางที่ฉันสามารถหาได้ คุณจะให้คำแนะนำอะไรเพื่อพัฒนาและยกระดับความรู้และทักษะของฉัน ทรัพยากรที่เฉพาะเจาะจงจะได้รับการชื่นชมอย่างมาก
16 c++  c 

2
อะไรคือหลักปฏิบัติและรูปแบบการออกแบบที่ผู้ชาย. NET ทุกคนควรรู้ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ในช่วงเวลาสั้น ๆ ของฉันในฐานะโปรแกรมเมอร์มืออาชีพฉันได้เห็นแอปพลิเคชั่นมากมายที่เขียนขึ้นโดยโปรแกรมเมอร์ผู้ซึ่งการศึกษาทั้งหมดดูเหมือนจะได้อ่านบทแรก ๆ สองเล่มในหนังสือ. NET 2.0 เฮ็คเมื่อฉันเริ่มฉันเขียนแอพพลิเคชั่นเหล่านั้นส่วนใหญ่! รูปแบบการออกแบบที่ใหญ่ที่สุดคืออะไรสำคัญสำหรับการเขียนแอปพลิเคชัน AWESOME .NET โดยที่ยอดเยี่ยมฉันหมายถึงภายในด้วย!

8
Chromebook - เป็นที่น่าสนใจสำหรับโปรแกรมเมอร์หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา Google ประกาศchromebookเมื่อวานนี้ (11 พฤษภาคม 2011) ในขณะที่นี่เป็นสิ่งที่ดีฉันไม่มีเงื่อนงำว่ามันน่าสนใจที่จะซื้อหนึ่งสำหรับ (ไม่ใช่จาวาสคริปต์) - โปรแกรม คุณคิดอย่างไร? จะมีตัวอย่างเช่น Java IDE ในคลาวด์หรือไม่ บรรทัดคำสั่งแม้

5
ทำไมภาษาการเขียนโปรแกรมทุกตัวจึง“ มีประสิทธิภาพ”?
ทุกครั้งที่ฉันตรวจสอบหน้าเว็บที่อุทิศให้กับภาษาการเขียนโปรแกรมบางอย่างฉันมักจะเห็นคำว่า"มีประสิทธิภาพ"ในรายการนิสัย / แอตทริบิวต์ หากภาษาการเขียนโปรแกรมทุกภาษามีประสิทธิภาพทำไมพวกเขาใส่คำนั้นลงในบทเรียน / เอกสารประกอบ?

6
การแมปคีย์ / ปลั๊กอิน XCim เป็นกลุ่ม?
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันเป็นผู้พัฒนาที่ทำเว็บในทับทิมและ C # เป็นส่วนใหญ่ ฉันต้องการเริ่มแก้ไขด้วยการพัฒนา iOS และ Mac ในช่วงสองสามเดือนที่ผ่านมาฉันพยายามอย่างคล่องแคล่วในการผูกคีย์ชุดเดียว (vi / vim เพราะมันรู้สึกถูกต้อง) ฉันมี ViEmu ที่ยอดเยี่ยมติดตั้งไว้สำหรับ visual studio บน windows ซึ่งทำให้ฉันมีความน่ากลัวเป็นกลุ่มอยู่เคียงข้างกับของเล่นเสริมพลังสำหรับสตูดิโอภาพ มีอะไรเช่นนี้สำหรับ xcode หรือไม่ ฉันรู้ว่าฉันสามารถตั้งค่า MacVim เป็นเครื่องมือแก้ไขเริ่มต้นได้ แต่ฉันไม่สนใจเรื่องนี้มากเกินไปเพราะมันหมายถึงการสูญเสียการรับรู้ของโกโก้ทั้งหมดของ xcode ตัวเลือกอื่น ๆ ของหลักสูตรคือการไปหาตัวส่วนร่วมที่ต่ำที่สุดและเปลี่ยนเป็น emacs (เนื่องจาก mac keybindings มีพื้นฐานมาจาก emacs อย่างหนาแน่น) แต่อย่าคิดนานเกินไป : P
16 xcode  mac  vim 

8
ให้ผู้ใช้ได้รับความต้องการร่วมกันด้วยตนเองหรือแนะนำพวกเขาไปพร้อมกัน?
ฉันแน่ใจว่าทุกคนมีประสบการณ์เช่นนี้ คุณเข้าสู่การประชุมกับลูกค้าที่มีโครงการ พวกเขามีความต้องการไม่ จำกัด / น้อยในใจและความเข้าใจที่คลุมเครือในสิ่งที่พวกเขาต้องการ / ต้องการ ณ จุดนี้ดูเหมือนจะมีสองตัวเลือก: 1) บอกผู้ใช้ว่า "ตกลงดังนั้นฉันไม่สามารถสร้างอะไรให้คุณได้ถ้าคุณยังไม่สามารถอธิบายได้ทำไมเราไม่กลับมารวมกันในอีกไม่กี่สัปดาห์เมื่อคุณรู้ว่าคุณต้องการอะไร" 2) พบกับผู้ใช้สองสามครั้งและช่วยให้พวกเขาค้นหาสิ่งที่พวกเขาต้องการโดยชี้แนะพวกเขาผ่านวิธีการโสคราตีสที่ดี "คุณต้องการติดตาม X หรือไม่", "แล้ว Y ล่ะ", "คุณต้องการฟังก์ชัน Z หรือไม่" ด้วยตัวเลือกแรกคุณจะไม่ติดขัดในการทำงานของคนอื่นหรือได้รับพลังจิต แต่ผู้ใช้อาจไม่เคยนำเสนอคุณด้วยสเปคที่สอดคล้องกันหรือพวกเขาอาจใช้เวลาตลอดไปตามกำหนดเวลายังคงดำเนินต่อไป ด้วยตัวเลือกที่สองคุณเสียเวลาเป็นนักวิเคราะห์ธุรกิจและต้องยัดความรู้ทางธุรกิจเข้ามาในหัวของคุณซึ่งคุณอาจไม่เคยใช้อีกเลย แต่คุณจะมีความเป็นไปได้มากกว่าที่จะมีสเป็คที่ ทำให้รู้สึกใด ๆ สำหรับฉันนี่เป็นหนึ่งในแง่มุมที่ท้าทายที่สุดของการพัฒนาและฉันรู้สึกว่าฉันไม่ได้โดดเดี่ยวในความรู้สึกนี้ จากประสบการณ์ของคุณตัวเลือกใดมีแนวโน้มที่จะทำงานได้ดีขึ้น

2
การใช้ข้อมูลประเภทพีชคณิตคืออะไร
ฉันกำลังอ่านเกี่ยวกับประเภทข้อมูลพีชคณิต (ขอบคุณ Richard Minerich ฉันพบคำอธิบายที่ยอดเยี่ยมเกี่ยวกับแนวคิดนี้) ในขณะที่ฉันคิดว่าฉันเข้าใจความคิดประเภทผลรวมและประเภทผลิตภัณฑ์ ฯลฯ สิ่งที่ฉันไม่เข้าใจค่อนข้างมากคือวิธีที่ Algebraic Data Types นั้นมีประโยชน์นอกเหนือจากการระบุการจับคู่รูปแบบ สิ่งอื่น ๆ ที่เราสามารถทำได้ด้วยการจับคู่รูปแบบที่นอกเหนือจาก ADT แก้ไข: ฉันไม่ได้ถามว่านักพัฒนาสามารถทำอะไรกับ ADT ที่ไม่สามารถทำได้กับวัตถุ ฉันกำลังถามว่ามีการดำเนินงานอื่น ๆ ที่ ADT อนุญาตหรือไม่ ตัวอย่างเช่นเราสามารถให้เหตุผลเพิ่มเติมเกี่ยวกับประเภทที่เกี่ยวข้องหากใช้ ADT หรือไม่ ADT อำนวยความสะดวกในการวิเคราะห์ประเภทบางประเภทที่ไม่สามารถทำได้หรือไม่

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

6
เป็นเพียงนักพัฒนาและผลที่ตามมา [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันเป็นผู้พัฒนาเพียงคนเดียวใน บริษัท ของฉัน ฉันจะเขียนโปรแกรม (ใน ASP.NET 4.0, jQuery และ SQL Server 2008) และบำรุงรักษาฐานข้อมูลและเว็บเซิร์ฟเวอร์ (win 2008 r2) ฉันเพลิดเพลินกับอิสระในการใช้งานสิ่งที่ฉันชอบในเวลาเดียวกันฉันรู้สึกว่าฉันสามารถทำทุกอย่างได้ในทางที่ไม่ดี ฉันไม่ได้ใช้ SDLC ใด ๆ ไม่ใช่วิธีการใด ๆ เช่น Agile เป็นต้นฉันจัดการโครงการขนาดเล็กหลายโครงการ ฉันใช้เวลาว่างในการติดตามเทคโนโลยีล่าสุดและเรียนรู้และทดสอบสิ่งใหม่ ๆ ฉันทำสิ่งนี้มา 7 ปีแล้ว ความกังวลของฉันเป็นเรื่องยากสำหรับฉันที่จะปรับตัวเมื่อฉันเปลี่ยนงานเป็น บริษัท ที่มีนักพัฒนาเข้ามาเกี่ยวข้องในโครงการมากขึ้น เนื่องจากฉันไม่ทำตามรูปแบบการออกแบบมันจะเล่นกับฉันเมื่อฉันหางานหรือปรับตัวกับงานใหม่? ข้อดี / ข้อเสียอื่นใดที่คุณนึกออก

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