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

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

14
บริษัท จ้างนักพัฒนาซอฟต์แวร์ที่ต้องการผู้ประกอบการหรือไม่ [ปิด]
มีนักพัฒนาออกมีที่ไม่เพียง แต่เขียนรหัสและแก้ปัญหา แต่หวังว่าวันหนึ่งจะเป็นผู้ประกอบการและดำเนินธุรกิจของตัวเอง พวกเขาอาจมีส่วนร่วมในโครงการโอเพนซอร์ซไปที่กิจกรรมเครือข่าย / พบปะหลายครั้งหรือแม้แต่เขียนรหัสเพื่อช่วยกำหนด / เริ่มธุรกิจของตนเองนอกที่ทำงาน และตัวอย่างเช่นการสัมภาษณ์ที่เปิดเผยอย่างเปิดเผยกับการจ้างงานที่คาดหวังอาจมีลักษณะดังนี้: บริษัท : คุณเห็นตัวคุณเองในอีก 5 ปีข้างหน้า? คุณ: ฉันเห็นตัวเองบริหาร บริษัท ซอฟต์แวร์ของตัวเองใน City Z ทำโปรเจ็กต์ xx แก้ปัญหาแบบ yy นี่อาจเป็นธงสีแดงให้กับ บริษัท ซึ่งอาจพิจารณาความเสี่ยงสูงในการออกจาก บริษัท และพวกเขาจะนำประสบการณ์การพัฒนาซอฟต์แวร์เฉพาะหรือความรู้เฉพาะอุตสาหกรรมมาด้วย นักพัฒนาควรซ่อนความปรารถนา / ลักษณะเหล่านี้จากนายจ้างปัจจุบันของพวกเขาหรือที่พวกเขากำลังสัมภาษณ์? มันไม่เป็นมืออาชีพที่จะพูดถึงสิ่งเหล่านี้หรือไม่? มันช่วยหรือทำร้ายโอกาสในการจ้างงานหรือไม่?

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

4
ฉันควรรู้อะไรบ้างก่อนเริ่ม บริษัท ซอฟต์แวร์ [ปิด]
เมื่อเห็นว่าเพื่อนของฉันจำนวนมากตกงาน frinds ของฉันและฉันกำลังวางแผนที่จะสร้าง บริษัท ซอฟต์แวร์ขนาดเล็ก สิ่งพื้นฐานที่เราควรรู้และทำคืออะไร? มีบางสิ่งที่เฉพาะเจาะจงในการใช้งาน บริษัท ซอฟต์แวร์ที่เราจำเป็นต้องรู้หรือไม่?

4
คุณจะอัปเดตสคีมาฐานข้อมูล / ฐานข้อมูลการผลิตของคุณโดยไม่ทำให้หยุดทำงานได้อย่างไร
เทคนิคใดบ้างสำหรับการอัพเดตสกีมาโค้ดฐาน / ฐานข้อมูลของเซิร์ฟเวอร์ที่ใช้งานจริงโดยไม่ทำให้เครื่องหยุดทำงาน
42 deployment 

7
ฟังก์ชั่นการเขียนโปรแกรมที่เพิ่มขึ้น?
ฉันได้สังเกตเห็นเมื่อเร็ว ๆ นี้ว่าภาษาเขียนโปรแกรมการทำงานได้รับความนิยม ฉันเพิ่งเห็นว่าดัชนี Tiobeแสดงให้เห็นถึงความนิยมที่เพิ่มขึ้นเมื่อเทียบกับปีที่แล้วถึงแม้ว่าส่วนใหญ่ของพวกเขาจะไม่ถึง 50 อันดับแรกของภาษายอดนิยมตามดัชนีนี้ และนี่เป็นกรณีที่ค่อนข้างนาน ฟังก์ชั่นการตั้งโปรแกรมไม่ได้กลายเป็นที่นิยมเท่ารุ่นอื่น ๆ (เช่นการเขียนโปรแกรมเชิงวัตถุ) ฉันได้เห็นความสนใจที่เกิดขึ้นใหม่ในพลังของการเขียนโปรแกรมฟังก์ชั่นอย่างไรก็ตามและตอนนี้มัลติคอร์ได้รับความนิยมเพิ่มขึ้นเรื่อย ๆ นักพัฒนาได้เริ่มแสดงความสนใจในรูปแบบอื่น ๆ ที่เกิดขึ้นพร้อมกัน ฉันเห็นด้วยความสนใจอย่างมากความจริงที่ว่าแม้ว่าพวกเขาจะไม่ได้รับการยอมรับจากชุมชนอย่างมีนัยสำคัญ แต่ภาษาประเภทนี้ก็ยังปรากฏขึ้นเรื่อย ๆ Clojure (2007), Scala (2003), F # (2002) เป็นเพียงตัวอย่างของทศวรรษที่ผ่านมา ฉันเคยลงทุนกับการเรียนรู้ Haskell และ Scala บ้างแล้ว และฉันพบศักยภาพที่ยอดเยี่ยมในกระบวนทัศน์ซึ่งสำหรับฉันใหม่แม้จะอยู่ที่นั่นนานมาก และแน่นอนคำถามที่ยิ่งใหญ่ที่สุดของฉันคือถ้าสิ่งเหล่านี้จะได้รับความนิยมมากพอที่จะพิจารณาใช้ความพยายามใด ๆ ในพวกเขา แต่นี่เป็นคำถามที่ไม่แม้แต่แมนเดรคก็สามารถตอบได้ สิ่งที่ฉันต้องการถามคือ: ในสถานการณ์ใดที่ฉันควรพิจารณาภาษาการเขียนโปรแกรมที่ใช้งานได้ดีกว่าที่เหมาะสมในการทำงานที่ได้รับ? นอกเหนือจากปัญหามัลติคอร์ที่ได้รับความนิยมเมื่อเร็ว ๆ นี้ของการเขียนโปรแกรมแบบขนาน หากฉันตัดสินใจเปลี่ยนเป็นภาษาโปรแกรมที่ใช้งานได้ซึ่งคุณจะพิจารณาว่าเป็นข้อผิดพลาดที่ใหญ่ที่สุดที่ฉันจะต้องเผชิญ (นอกจากการเปลี่ยนกระบวนทัศน์และความยากลำบากในการประเมินประสิทธิภาพเนื่องจากการประเมินที่ขี้เกียจ) ด้วยภาษาการเขียนโปรแกรมที่ใช้งานได้มากมายคุณจะเลือกภาษาที่เหมาะสมกับความต้องการของคุณได้อย่างไร คำแนะนำใด ๆ สำหรับการวิจัยเพิ่มเติมจะยินดีมากกว่า ฉันได้ค้นหาความคิดเห็นจากเว็บและดูเหมือนว่าความนิยมที่ได้รับการต่ออายุทั้งหมดนี้มาจากแนวคิดที่ว่าตอนนี้เรากำลังเข้ามาถึงกำแพงของกฎของมัวร์และภาษาการเขียนโปรแกรมที่ใช้งานได้จะมาช่วยเรา แต่ถ้าเป็นกรณีนี้ฉันจะบอกว่ามีความน่าจะเป็นของภาษายอดนิยมที่มีอยู่ในปัจจุบันปรับตัวเข้ากับกระบวนทัศน์ …

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

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

10
มีข้อมูลใด ๆ เกี่ยวกับข้อดีของการทำงานจากที่บ้านหรือไม่? [ปิด]
มีข้อมูลใด ๆ ที่ยาก (การศึกษาการเปรียบเทียบการวิเคราะห์ที่ไม่ใช่แค่แค่ความรู้สึก) เกี่ยวกับข้อดีและข้อเสียของการทำงานจากที่บ้านหรือไม่? devs ของฉันถามเกี่ยวกับเช่นทำงานจากที่บ้านหนึ่งวันต่อสัปดาห์เจ้านายไม่ชอบด้วยเหตุผลต่าง ๆ ซึ่งบางอย่างที่ฉันเห็นด้วยกับ แต่ฉันคิดว่าพวกเขาไม่จำเป็นต้องใช้ในกรณีนี้ เรามีสำนักงานจริง (2..3 คนต่อคน) การรบกวนยังคงเป็นเรื่องปกติ IMO มันจะเป็นประโยชน์สำหรับการมุ่งเน้นและด้วย 1 วัน / สัปดาห์จะไม่สูญเสียมากที่การมีปฏิสัมพันธ์และการสื่อสาร นอกจากนี้มันจะเป็นประโยชน์ที่ดีและประหยัดการเดินทาง ที่เกี่ยวข้อง: ข้อดีข้อเสียของการทำงานจากระยะไกล / จากที่บ้าน (จุดที่น่าสนใจ แต่ไม่มีข้อเท็จจริงที่ยาก) ในการชี้แจง: มันไม่ใช่การตัดสินใจของฉันที่จะทำฉันยอมรับว่ามีอาชีพและการต่อต้านขึ้นอยู่กับสถานการณ์และเรากำลังผลักดันให้ "ลองทำ" ฉันถามคำถามนี้โดยเฉพาะเพราะ (ก) ข้อเท็จจริงเป็นสิ่งที่ดีนอกเหนือจากความคิดในการโต้แย้งกับหัวหน้าวิศวกรและ (ข) เราในฐานะนักพัฒนาควรสร้างข้อเท็จจริงเช่นเดียวกับการค้าที่น่าเคารพนับถือทุกประการ

8
ฉันจะเริ่มต้นกับ HTML5 ได้อย่างไร [ปิด]
เวิร์กโฟลว์ที่แนะนำคืออะไรในการเรียนรู้ HTML5 ฉันควรติดตั้งเครื่องมืออะไร SDK อะไร จะเริ่มที่ไหนดี วิธีทดสอบ วิธีแก้ปัญหา? ฉันจะอ่านอะไร ฉันเข้าใจว่าสิ่งที่มักถูกระบุว่าเป็น "การพัฒนา HTML5" นั้นอันที่จริงแล้วเป็นการผสมผสานระหว่าง HTML, CSS, JS และอื่น ๆ แต่ฉันไม่เชื่อว่าโครงการขนาดใหญ่จะได้รับการพัฒนาใน Notepad นั่นคือเหตุผลที่ฉันขอให้คุณเปิดเผยเคล็ดลับและกลเม็ดของคุณเกี่ยวกับขั้นตอนการทำงานของคุณ
42 javascript  html  css  ajax  html5 

15
การเขียนโค้ดโฆษณามีอะไรเลวร้าย [ปิด]
ฉันกำลังดูBob Rossวาดคืน "ต้นไม้แห่งความสุข" คืนนี้และฉันก็พบว่ามีอะไรที่ทำให้ฉันเครียดเกี่ยวกับรหัสของฉันเมื่อเร็ว ๆ นี้ ชุมชนของคนที่นี่และใน Stack Overflow ดูเหมือนจะปฏิเสธความไม่สมบูรณ์ใด ๆ เป้าหมายของฉันคือการเขียนโค้ดที่น่านับถือ (และสามารถบำรุงรักษาและใช้งานได้) โดยการพัฒนาทักษะของฉัน ยังฉันรหัสอย่างสร้างสรรค์ ให้ฉันอธิบายสิ่งที่ฉันหมายถึงโดย "การเข้ารหัสอย่างสร้างสรรค์": ขั้นตอนแรกของฉันในโครงการมักจะนั่งลงและทุบตีโค้ดบางส่วน สำหรับสิ่งที่ใหญ่กว่าฉันวางแผนที่นี่เล็กน้อยและที่นั่น แต่ส่วนใหญ่ฉันเพิ่งดำน้ำ ฉันไม่ทำแผนภาพคลาสใด ๆ ของฉันเว้นแต่ว่าฉันกำลังทำงานกับคนอื่น ๆ ที่กำลังสร้างงานอื่นในโครงการ ถึงอย่างนั้นมันก็ไม่ใช่สิ่งแรกที่ฉันทำ โดยทั่วไปฉันไม่ได้ทำงานในโครงการขนาดใหญ่และฉันไม่พบภาพที่มีประโยชน์มาก รหัสรอบแรกที่ฉันเขียนจะได้รับการเขียนใหม่หลายครั้งหลาย ๆ ครั้งที่ฉันทดสอบลดความซับซ้อนทำซ้ำและแปลงแฮ็กดั้งเดิมให้เป็นสิ่งที่สามารถนำกลับมาใช้ใหม่ได้ตรรกะและมีประสิทธิภาพ ในระหว่างกระบวนการนี้ฉันทำความสะอาดอยู่เสมอ ฉันลบรหัสที่ไม่ได้ใช้และแสดงความคิดเห็นทุกอย่างที่ไม่ชัดเจน ฉันทดสอบอย่างต่อเนื่อง กระบวนการของฉันดูเหมือนจะขัดกับสิ่งที่ยอมรับได้ในชุมชนนักพัฒนามืออาชีพและฉันต้องการจะเข้าใจว่าทำไม ฉันรู้ว่าส่วนใหญ่เกี่ยวกับการจับรหัสที่ไม่ดีคือคนที่ติดอยู่กับความยุ่งเหยิงของอดีตพนักงานและค่าใช้จ่ายเวลาและเงินในการแก้ไข ที่ฉันเข้าใจ สิ่งที่ฉันไม่เข้าใจคือกระบวนการของฉันผิดเพราะผลลัพธ์สุดท้ายนั้นคล้ายกับสิ่งที่คุณจะได้รับเมื่อวางแผนทุกอย่างตั้งแต่เริ่มต้น (หรืออย่างน้อยนั่นคือสิ่งที่ฉันได้พบ) ความวิตกกังวลของฉันเกี่ยวกับปัญหานั้นแย่มากเมื่อเร็ว ๆ นี้จนฉันหยุดเขียนโค้ดจนกว่าฉันจะรู้ทุกอย่างเกี่ยวกับวิธีการทุกวิธีในการแก้ปัญหาเฉพาะที่ฉันกำลังทำอยู่ กล่าวอีกนัยหนึ่งฉันได้หยุดเข้ารหัสส่วนใหญ่ทั้งหมด ฉันขอขอบคุณที่คุณป้อนข้อมูลอย่างจริงใจไม่ว่าคุณจะแสดงความคิดเห็นในประเด็นใดก็ตาม แก้ไข: ขอบคุณสำหรับคำตอบของคุณ ฉันได้เรียนรู้บางอย่างจากพวกเขาแต่ละคน คุณได้รับประโยชน์มากที่สุด

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

10
"กรณีการใช้งาน", "เรื่องราวของผู้ใช้" กับ "สถานการณ์การใช้งาน" แตกต่างกันอย่างไร
มีการจำแนกที่ชัดเจน แต่ง่ายและเข้าใจได้ของความแตกต่างระหว่าง "use case", "User Story" และ "ฉากการใช้งาน" หรือไม่? มีคำอธิบายมากมาย แต่ตอนนี้ฉันไม่เห็นใครอธิบายความแตกต่างในประโยคเดียวหรือสอง ... (เช่นhttp://c2.com/cgi-bin/wiki?UserStoryAndUseCaseComparisonนานและยากที่จะได้รับเต็มไปด้วยการอภิปราย)

4
ทำไมเราต้องมีกรอบสำหรับการฉีดพึ่งพา? [ปิด]
ฉันได้อ่านเพิ่มเติมเกี่ยวกับหลักการผกผันของการควบคุมและการพึ่งพาการฉีดเพื่อนำไปใช้และฉันค่อนข้างมั่นใจว่าฉันเข้าใจมัน ดูเหมือนว่าโดยทั่วไปแล้วจะพูดว่า 'อย่าประกาศให้อินสแตนซ์ของสมาชิกชั้นเรียนของคุณ' ในชั้นเรียน ' ค่อนข้างว่าอินสแตนซ์ควรจะถูกส่งผ่านและได้รับมอบหมายผ่านตัวสร้าง; 'ฉีด' เข้าสู่ชั้นเรียนจากแหล่งภายนอก ถ้ามันง่ายนี่มันน่าจะเป็นเหตุผลทำไมเราต้องใช้เฟรมเวิร์กเช่นสปริงหรือ guice ที่ใช้มันกับหมายเหตุประกอบ? ฉันขาดพื้นฐานบางอย่างที่นี่หรือไม่? ฉันกำลังดิ้นรนจริงๆที่จะเข้าใจว่าการใช้กรอบการฉีดพึ่งพาคืออะไร แก้ไข: เกี่ยวกับความซ้ำซ้อนที่เป็นไปได้ฉันเชื่อว่าคำถามของฉันไม่เหมือนใครเพราะถามเกี่ยวกับกรอบ DI โดยทั่วไปไม่ใช่เฉพาะฤดูใบไม้ผลิ Spring ไม่ได้เป็นเพียงกรอบ DI ดังนั้นจึงมีหลายเหตุผลที่บางคนต้องการใช้ Spring ที่ไม่เกี่ยวข้องกับ DI

1
การกำหนดเวอร์ชันเชิงความหมายใช้กับโปรแกรมที่ไม่มี API อย่างไร
ในhttp://semver.org/ - ซึ่งในการรับรู้ของฉันดูเหมือนจะเป็นแบบแผนที่ใช้กันอย่างแพร่หลายในการกำหนดเวอร์ชัน - ขอแนะนำให้เพิ่มหมายเลขเวอร์ชันหลักเมื่อมีการแนะนำการเปลี่ยนแปลงที่แบ่ง / แก้ไข API มีสถานการณ์ที่เกี่ยวข้องสองสถานการณ์ที่ฉันไม่เห็นวิธีใช้แนวทางนี้แม้ว่า: จะเกิดอะไรขึ้นถ้ารหัสของฉันไม่มี API ใด ๆ ฉันควรรุ่นรหัสของฉันได้อย่างไร จะเกิดอะไรขึ้นถ้ารหัสของฉันเริ่มเสนอ API ในช่วงท้ายของการพัฒนา


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