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

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

6
รหัสโอเพนซอร์สที่ไม่มีใบอนุญาต ... ฉันสามารถแยกได้หรือไม่
หลายปีก่อนมีคนสร้างบทที่ยอดเยี่ยมและเป็นที่นิยมมาก แต่พวกเขาไม่ได้รับการปรับปรุงเป็นเวลานานตอนนี้พวกเขาไม่ทำงานอีกต่อไป (แพลตฟอร์มเป้าหมายได้รับการปรับปรุงและจำเป็นต้องมีการเปลี่ยนแปลงบางอย่าง) เขาไม่ได้เผยแพร่ภายใต้ใบอนุญาตใด ๆ ฉันต้องการแก้ไขข้อผิดพลาด (ปัจจุบันผู้ใช้เป้าหมายจำนวนมากไม่สามารถใช้งานได้) และโพสต์ไว้บน GitHub โดยเฉพาะอย่างยิ่งภายใต้ใบอนุญาต OSS สไตล์โดเมนสาธารณะ ฉันสงสัยว่าการแตกสาขาทางกฎหมายจะเป็นอย่างไร ฉันได้ส่งอีเมลถึงผู้เขียน แต่ (สมมุติว่า) เขาไม่ได้ตอบกลับอีเมลของฉัน สิ่งที่เราควรทำในสิ่งต่อไปนี้เป็น 2 กรณี: หากสคริปต์ถูกโพสต์บนเว็บไซต์ส่วนตัว (ไม่มีการควบคุมแหล่งที่มา) หากสคริปต์ถูกโพสต์บน GitHub (ไม่มีคำแนะนำการอนุญาตใด ๆ ) อย่างไรก็ตามเราสามารถมองเห็นได้อย่างชัดเจนว่าดูเหมือนว่าโอเพนซอร์ซ - ตั้งใจจะใช้ / แก้ไข / อะไรก็ตาม

4
REST - แลกเปลี่ยนระหว่างการเจรจาต่อรองเนื้อหาผ่านส่วนหัวยอมรับกับส่วนขยาย
ฉันกำลังทำงานผ่านการออกแบบ RESTful API เรารู้ว่าเราต้องการส่งคืน JSON และ XML สำหรับทรัพยากรที่กำหนด ฉันคิดว่าเราจะทำสิ่งนี้: GET /api/something?param1=value1 Accept: application/xml (or application/json) อย่างไรก็ตามมีบางคนที่ใช้ส่วนขยายสำหรับสิ่งนี้เช่น: GET /api/something.xml?parm1=value1 (or /api/something.json?param1=value1) อะไรคือการแลกเปลี่ยนกับวิธีการเหล่านี้? เป็นการดีที่สุดที่จะพึ่งพาส่วนหัวการยอมรับเมื่อไม่ได้ระบุนามสกุล แต่ให้เกียรตินามสกุลเมื่อระบุ? มีข้อเสียเปรียบกับวิธีการนั้นหรือไม่?

8
ภาษา OO สมัยใหม่สามารถแข่งขันกับประสิทธิภาพการจัดเก็บอาร์เรย์ของ C ++ ได้หรือไม่
ฉันเพิ่งสังเกตเห็นว่าภาษาการเขียนโปรแกรม OO สมัยใหม่ทุกอย่างที่ฉันคุ้นเคยอย่างน้อยก็มี (ซึ่งโดยพื้นฐานแล้วก็คือ Java, C # และ D) ช่วยให้อาร์เรย์ covariant นั่นคืออาร์เรย์สตริงเป็นอาร์เรย์วัตถุ: Object[] arr = new String[2]; // Java, C# and D allow this อาร์เรย์ของ Covariant เป็นรูในระบบแบบสแตติก พวกเขาทำให้เกิดข้อผิดพลาดประเภทที่เป็นไปได้ที่ไม่สามารถตรวจพบได้ในเวลารวบรวมดังนั้นทุกการเขียนไปยังอาเรย์ต้องถูกตรวจสอบที่รันไทม์: arr[0] = "hello"; // ok arr[1] = new Object(); // ArrayStoreException ดูเหมือนว่าจะมีประสิทธิภาพที่แย่มากถ้าฉันทำร้านค้ามากมาย C ++ ไม่มีอาร์เรย์ที่แปรปรวนร่วมดังนั้นจึงไม่จำเป็นต้องทำการตรวจสอบรันไทม์อีกต่อไปซึ่งหมายความว่าไม่มีการลงโทษประสิทธิภาพ มีการวิเคราะห์เพื่อลดจำนวนการตรวจสอบรันไทม์ที่จำเป็นหรือไม่? ตัวอย่างเช่นถ้าฉันพูดว่า: arr[1] = arr[0]; ใครจะยืนยันว่าร้านค้าไม่อาจล้มเหลว ฉันแน่ใจว่ามีการเพิ่มประสิทธิภาพที่เป็นไปได้อื่น …
40 c#  java  c++  d 

9
เราจะทำอะไรได้บ้างเมื่อ“ นำโดยตัวอย่าง” ไม่ทำงาน? [ปิด]
ฉันทำงานให้กับ บริษัท ใหญ่ (พนักงานมากกว่า 8,000 คน) เป็นเวลาเกือบ 2 ปีแล้วและได้รับการจ้างงานหลังจากเรียนจบหลักสูตร ทุกคนที่นี่ต้องจัดการรหัสประจำวันซึ่งมักจะออกแบบมาไม่ดีและเต็มไปด้วยแฮ็ก ในตอนแรกฉันเก็บข้อมูลไม่ดีพยายามอย่าวิพากษ์วิจารณ์สิ่งต่างๆ แต่สถานการณ์ตามที่ได้กลายเป็นเรื่องยากมากที่จะอยู่กับและดูเหมือนว่าไม่มีใครเต็มใจที่จะปรับปรุง / แทนที่เครื่องมือที่เราใช้ เพื่อให้ชัดเจนยิ่งขึ้นเรามี: เครื่องมือควบคุมแหล่งที่ล้าสมัย (Visual SourceSafe) makefiles เก่าธรรมดาที่รองรับเฉพาะการสร้างใหม่อย่างเต็มรูปแบบ .def ไฟล์ที่ต้องดูแลรักษาด้วยตนเองและแยกกันสำหรับสถาปัตยกรรมที่มีอยู่ทั้งหมด ส่วนหัวของเสาหินไฟล์และโครงการที่มีไฟล์ต่างกันน้อยมาก (แต่แต่ละไฟล์มีโค้ดประมาณ 3000 บรรทัดซึ่งบางครั้งก็ดูแลงานที่แตกต่างกันมาก) ไม่มีการใช้สิ่งอำนวยความสะดวกด้านภาษา "ใหม่" ( std::stringก็ไม่ใช่เรื่องใหม่ แต่ไม่มีใครยกเว้นฉันใช้) ฉันตัดสินใจไม่กี่เดือนที่ผ่านมาเพื่อทำอะไรกับมันโดยการออกแบบสภาพแวดล้อมการรวบรวมใหม่ ฉันสามารถสร้างบิวด์เพิ่มเติมเพื่อทำงานได้อย่างน่าเชื่อถือใช้เวลาในการคอมไพล์เร็วขึ้นสร้างโครงงานที่ดีกว่า.defสร้างไฟล์อัตโนมัติ ฉันยังสร้างบริดจ์จาก / ถึง Git ถึง / จาก Visual SourceSafe ฉันแสดงความสำเร็จของฉันต่อเพื่อนร่วมงานหลายคนและเจ้านายของเรา แต่ก็เหมือนไม่มีใครสนใจ พวกเขาทุกคนต่างก็พูดว่า "อืม ... ผู้คนเคยทำแบบนั้นแล้วทำไมเราจะเปลี่ยนสิ่งต่าง ๆ ? …

9
เหตุใดจึงมีการสนับสนุนที่ จำกัด สำหรับ Design by Contract ในภาษาการเขียนโปรแกรมที่ทันสมัยที่สุด?
ฉันเพิ่งค้นพบการออกแบบตามสัญญา (DbC) และฉันพบว่ามันเป็นวิธีที่น่าสนใจอย่างยิ่งในการเขียนโค้ด เหนือสิ่งอื่นใดดูเหมือนว่าจะนำเสนอ: เอกสารที่ดีกว่า เนื่องจากสัญญาเป็นเอกสารจึงเป็นไปไม่ได้ที่จะล้าสมัย นอกจากนี้เนื่องจากสัญญาระบุว่าสิ่งที่รูทีนทำจะช่วยสนับสนุนการใช้ซ้ำได้ การดีบักง่ายขึ้น เนื่องจากการทำงานของโปรแกรมหยุดทันทีที่สัญญาล้มเหลวข้อผิดพลาดจึงไม่สามารถเผยแพร่ได้และการละเมิดการยืนยันที่เฉพาะเจาะจงน่าจะถูกเน้น สิ่งนี้ให้การสนับสนุนในระหว่างการพัฒนาและในระหว่างการบำรุงรักษา การวิเคราะห์เชิงสถิตที่ดีขึ้น DbC นั้นเป็นเพียงการนำตรรกะของ Hoare มาใช้และควรใช้หลักการเดียวกันนี้ ค่าใช้จ่ายในการเปรียบเทียบดูเหมือนจะค่อนข้างเล็ก: พิมพ์ลายนิ้วมือพิเศษ เนื่องจากสัญญาต้องถูกสะกดออกมา ใช้เวลาฝึกอบรมจำนวนหนึ่งเพื่อให้คุ้นเคยกับสัญญาการเขียน ตอนนี้การทำความคุ้นเคยกับ Python เป็นหลักฉันตระหนักว่าในความเป็นจริงเป็นไปได้ที่จะเขียนเงื่อนไขเบื้องต้น (เพียงแค่โยนข้อยกเว้นสำหรับอินพุตที่ไม่เหมาะสม) และเป็นไปได้ที่จะใช้การยืนยันเพื่อทดสอบ postconditions อีกครั้ง แต่มันเป็นไปไม่ได้ที่จะจำลองคุณสมบัติบางอย่างเช่น 'เก่า' หรือ 'ผลลัพธ์' โดยไม่ต้องใช้เวทมนตร์พิเศษที่ในที่สุดจะได้รับการพิจารณาว่าไม่เป็น Pythonic (นอกจากนี้ยังมีห้องสมุดเพียงไม่กี่แห่งที่ให้การสนับสนุน แต่ท้ายที่สุดฉันได้รับความรู้สึกว่ามันผิดที่จะใช้พวกเขาเนื่องจากนักพัฒนาส่วนใหญ่ทำไม่ได้) ฉันคิดว่ามันเป็นปัญหาที่คล้ายกันสำหรับภาษาอื่น ๆ ทั้งหมด (ยกเว้นแน่นอน ไอเฟล) สัญชาตญาณของฉันบอกฉันว่าการขาดการสนับสนุนต้องเป็นผลมาจากการปฏิเสธการฝึกฝน แต่การค้นหาทางออนไลน์นั้นไม่ประสบผลสำเร็จ ฉันสงสัยว่าบางคนสามารถอธิบายได้ว่าทำไมภาษาสมัยใหม่ส่วนใหญ่จึงให้การสนับสนุนเพียงเล็กน้อย DbC มีข้อบกพร่องหรือมีราคาแพงเกินไป? หรือเป็นเพียงล้าสมัยเนื่องจาก Extreme Programming และวิธีการอื่น ๆ ?

14
การเขียนโปรแกรมหรือวิทยาการคอมพิวเตอร์โดยทั่วไปเกี่ยวกับอัลกอริทึมหรือไม่
ในฐานะนักเรียนระดับบัณฑิตศึกษาฉันพบว่าเป็นเรื่องปกติมากขึ้นสำหรับ บริษัท ที่มีชื่อเสียง (เช่น Google, Facebook, Microsoft, ... ) เพื่อวางคำถามอัลกอริทึมในการทดสอบและการสัมภาษณ์ สองสามสตาร์ทอัพที่ฉันสมัครเพื่อถามเกี่ยวกับอัลกอริทึม ฉันสงสัยว่าความคล่องแคล่วของอัลกอริทึมเป็นสิ่งสำคัญที่สุดสำหรับนักพัฒนาซอฟต์แวร์ใน บริษัท เหล่านั้นหรือไม่? หากคำตอบคือใช่วิธีที่ดีที่สุดในการเรียนรู้และฝึกฝนเกี่ยวกับอัลกอริธึมคืออะไร? ฉันดูเหมือนจะไม่สนใจที่จะแก้ไขปัญหาที่ซับซ้อนเกินไปที่พบในตำราเรียนหรือเว็บไซต์ส่วนใหญ่ แม้ว่าจะเข้าใจอัลกอริธึมพื้นฐาน (เช่น quicksort, bubbleort, ... ) ได้อย่างง่ายดาย แต่ฉันพบว่ามันยากที่จะจำและนำกลับมาใช้ใหม่ได้ในภายหลัง ขอบคุณ P / S: ถ้าคุณถามฉันในสิ่งที่ฉันชอบมันกำลังสร้างโปรแกรมที่ดีในการแก้ปัญหาของผู้ใช้อย่างสร้างสรรค์ ฉันคิดว่าไม่จำเป็นต้องหมายความว่าซอฟต์แวร์จะต้องมีความซับซ้อนมาก

16
ภาษาการเขียนโปรแกรมสมัยใหม่พร้อม abstractions การเขียนโปรแกรมพร้อมกันที่ใช้งานง่าย [ปิด]
ฉันสนใจที่จะเรียนรู้การเขียนโปรแกรมพร้อมกันโดยมุ่งเน้นที่ระดับแอปพลิเคชัน / ผู้ใช้ (ไม่ใช่การเขียนโปรแกรมระบบ) ฉันกำลังมองหาภาษาการเขียนโปรแกรมระดับสูงที่ทันสมัยซึ่งมี abstractions ที่ใช้งานง่ายสำหรับการเขียนแอปพลิเคชันพร้อมกัน ฉันต้องการมุ่งเน้นภาษาที่เพิ่มประสิทธิภาพและซ่อนความซับซ้อนของการเขียนโปรแกรมพร้อมกัน เพื่อยกตัวอย่างบางอย่างฉันไม่พิจารณาตัวเลือกที่ดีในการเขียนโค้ดแบบมัลติเธรดใน C, C ++ หรือ Java เพราะ IMHO ลดประสิทธิภาพของฉันลงและรูปแบบการเขียนโปรแกรมของพวกเขาไม่ง่าย ในทางกลับกันภาษาที่เพิ่มประสิทธิภาพและเสนอ abstractions ที่ใช้งานง่ายเช่น Python และโมดูลหลายตัวประมวลผล, Erlang, Clojure, Scala ฯลฯ จะเป็นตัวเลือกที่ดี คุณอยากแนะนำอะไรจากประสบการณ์ของคุณและเพราะอะไร แก้ไข: ขอบคุณทุกคนสำหรับคำตอบที่น่าสนใจของคุณ เป็นการยากที่จะสรุปโดยไม่ต้องพยายามจริง ๆ เนื่องจากมีผู้สมัครที่ดีมากมายเช่น Erlang, Clojure, Scala, Groovy และ Haskell ฉันโหวตคำตอบด้วยข้อโต้แย้งที่น่าเชื่อที่สุด แต่ฉันจะลองผู้สมัครที่ดีทั้งหมดก่อนที่จะตัดสินใจเลือกข้อใดข้อหนึ่ง :)

12
ฉันจะโน้มน้าวให้นายจ้างของฉันจ้างผู้พัฒนาเพิ่มเติมโดยไม่ต้องขายตัวเองได้อย่างไร [ปิด]
ฉันเป็นผู้พัฒนาเพียงคนเดียวใน บริษัท ขนาดเล็ก ฉันย้ายเข้าสู่การพัฒนาที่นี่อย่างช้าๆ จนกระทั่ง ~ 4 เดือนที่ผ่านมา 50-75% ของเวลาที่ฉันใช้ไปกับการผ่าตัด ตอนนี้ 50-75% ของเวลาของฉันถูกใช้ไปกับการพัฒนาส่วนที่เหลือแบ่งระหว่างการดำเนินการกับสิ่งต่าง ๆ ด้านไอที ฉันทำงานเป็นประจำ 50+ ชั่วโมงต่อสัปดาห์ ฉันได้รับแอปพลิเคชั่นที่ค่อนข้างเป็นลายลักษณ์อักษรค่อนข้างด้อย (ก่อนหน้านี้มีคนสองคนดูแลไว้) ซึ่งธุรกิจส่วนใหญ่พึ่งพา การรักษาและใช้งานเหล่านี้ทำงานกับแอปพลิเคชันใหม่ขนาดเล็กและความรับผิดชอบอื่น ๆ ของฉันใช้เวลาทั้งหมดของฉันแล้ว เพื่อให้สามารถปรับขนาดได้ซอฟต์แวร์ที่มีอยู่ต้องการการปรับโครงสร้างที่สำคัญและฟังก์ชันการทำงานเพิ่มเติม ฉันไม่เคยมีความสุขที่ได้ทำงานกับซอฟต์แวร์ที่เขียนหรือออกแบบมาอย่างถูกต้องมาก่อน ความซับซ้อนของงานนี้ดีกว่าทุกอย่างที่ฉันเคยทำมาก่อน (นี่เป็นงานแรกของฉันที่วิทยาลัย) ฉันรู้ว่ามีความทุ่มเทอย่างมากในการเรียนรู้ด้วยตนเอง / การเรียนรู้ด้วยการทำสิ่งต่าง ๆ มากมายที่นี่ ว่าฉันจะไม่ทำสิ่งใดกับนายจ้างหรือตัวฉันเอง ฉันได้โดยตรงมากเกี่ยวกับความไม่มีประสบการณ์ของฉันและในอดีตได้กล่าวว่าการจ้างนักพัฒนาที่มีประสบการณ์มากขึ้นอาจจะจำเป็น ... ถ้ามีอะไรก็ตามเพียงแค่ระยะเวลาที่ทุกคนต้องทำงานเมื่อเราเติบโตและ มีซอฟต์แวร์มากขึ้นในการพัฒนาและบำรุงรักษา ฉันรู้ว่าฉันจะได้รับประโยชน์อย่างมากจากการจ้างนักพัฒนาซอฟต์แวร์รายอื่น การมีคนเรียนรู้และสะท้อนความคิดออกไปนั้นจะยอดเยี่ยม StackOverflow เป็นวิธีการที่ยอดเยี่ยมในการกำหนดแนวทางในการแก้ปัญหาหรือแนวคิดการเข้ารหัสแต่ละรายการ แต่ไม่สามารถทดแทนการอภิปรายในระดับที่กว้างขึ้นหรือมีนัยสำคัญมากขึ้นเฉพาะกับโดเมนธุรกิจที่แน่นอน เมื่อกล่าวถึงการจ้างนักพัฒนารายอื่นในการสนทนาทั่วไปพวกเขาไม่คิดว่ามันสำคัญหรือจำเป็น tl; dr : งานแพทช์ปัจจุบันและความรับผิดชอบอื่น ๆ ใช้เวลาทำงานอยู่ตลอดเวลาทำงานกับแอพพลิเคชั่นที่มีอยู่ซึ่งต้องทำอยู่นอกเหนือความสามารถของฉันโอกาสน้อยที่ฉันจะได้มีเวลาทำงานผลิตภัณฑ์ใหม่ …

11
มีกรณีที่เกิดขึ้นจริงสำหรับ C ++ โดยไม่มีข้อยกเว้นหรือไม่? [ปิด]
ในเมื่อใดจึงจะใช้ C เหนือ C ++ และ C ++ เหนือ C? มีคำสั่ง wrt ถึงข้อยกเว้นขนาดโค้ด / C ++: คำตอบของเจอรี่ (ท่ามกลางประเด็นอื่น ๆ ): (... ) มันมีแนวโน้มที่จะยากที่จะผลิตไฟล์เอ็กซีคิวต์เล็ก ๆ อย่างแท้จริงด้วย C ++ สำหรับระบบขนาดเล็กจริงๆคุณไม่ค่อยเขียนโค้ดจำนวนมากและส่วนเพิ่มเติม (... ) ที่ฉันถามว่าทำไมที่จะเป็นไปได้ซึ่ง Jerry ตอบ: สิ่งสำคัญคือ C ++ รวมถึงการจัดการข้อยกเว้นซึ่ง (อย่างน้อยโดยปกติ) จะเพิ่มขนาดขั้นต่ำให้กับขนาดที่สามารถเรียกใช้งานได้ คอมไพเลอร์ส่วนใหญ่จะให้คุณปิดการใช้งานการจัดการข้อยกเว้น แต่เมื่อคุณทำผลลัพธ์จะไม่มาก C ++ ( ... ) ซึ่งฉันไม่สงสัยจริงๆในระดับโลกทางเทคนิคจริง ดังนั้นฉันสนใจ (หมดจดจากความอยากรู้อยากเห็น) ที่จะได้ยินจากตัวอย่างในโลกแห่งความจริงที่โครงการเลือก …
40 c++  exceptions 

16
วิธีการโน้มน้าวใจเพื่อนร่วมทีมที่มองตัวเองว่าเป็นรุ่นพี่เพื่อเรียนรู้พื้นฐานแนวคิด SVN ได้อย่างไร [ปิด]
ในการเริ่มต้นด้วยภูมิหลังบางอย่างฉันได้รับตำแหน่งนักพัฒนาใหม่ในช่วงฤดูร้อนนี้และจบลงด้วยการเป็นสมาชิกใหม่ล่าสุดในทีม แต่ด้วยประสบการณ์ส่วนใหญ่ภายใต้เข็มขัด จนถึงตอนนี้ฉันสามารถผลักดันความคิดริเริ่มได้อย่างง่ายดายพอเพราะค่าใช้จ่ายในการยอมรับที่ต่ำ (ในแง่ของเวลาและความพยายาม) อย่างไรก็ตามสิ่งต่าง ๆ ได้ปรับระดับขึ้นเล็กน้อย หนึ่งในเพื่อนร่วมทีมของฉันแม้ว่าจะมีประสบการณ์ แต่ก็ไม่เข้าใจ SVN โดยธรรมชาติพื้นที่ว่างบนแผนที่จิตของเขาแสดงถึงมหาสมุทรของ SVN ทำให้เขาใช้รูปแบบการใช้งานที่ค่อนข้างแปลก ตัวอย่างเช่นเขาได้ประกาศนโยบาย "1 SVN กระทำต่อวันต่อนักพัฒนา" เพราะมิฉะนั้น "เซิร์ฟเวอร์จะหมดพื้นที่ดิสก์ในไม่ช้า" เมื่อฉันอธิบายเขาว่า SVN กระทำการเป็นเดลต้าไม่ใช่ฉบับเต็มเขาตอบด้วยความสงสัยและแม้กระทั่งทุกวันนี้ฉันก็ไม่แน่ใจเลยว่าเขาเข้าใจความหมายของมันหรือไม่ นอกจากนี้เรายังมีข้อโต้แย้งที่ร้อนแรงว่าจะรวม.projectการกำหนดค่าEclipse ใน SVN หรือไม่ เพื่อนร่วมทีมของฉันยืนยันว่าเราควรแม้ว่ามันจะทำให้เกิดความขัดแย้งที่ไม่มีจุดหมายมากมาย ฉันไม่เห็นด้วยที่จะเก็บไฟล์กำหนดค่าผู้พัฒนาแต่ละคนไว้ใน SVN ในที่สุดมันกลับกลายเป็นว่าเพื่อนร่วมทีมของฉันมีวิธีการชำระเงินต้นทรีใหม่อีกครั้งหลังจากที่ทุกคอมมิชชันทำเพื่อให้แน่ใจว่า "โค้ดที่ส่งไปยังที่เก็บทำงาน" นั่นเป็นเหตุผลที่ทำให้เขายืนกรานที่จะรักษาโครงแบบของโครงการใน SVN - ดังนั้นจึงง่ายต่อการนำเข้าโครงการอีกครั้ง เมื่อฉันอธิบายว่าคอมมิชชันทำสำเนาทำงานกับรีโมตไบต์ต่อไบต์ซึ่งทำให้ไม่จำเป็นต้องเช็กเอาต์ซ้ำเพื่อนร่วมทีมของฉันตอบด้วยความสงสัยอีกครั้งและในที่สุดก็โบกปัญหาทั้งหมดออกไปอย่างไม่มีนัยสำคัญ ในความเห็นของฉันทีมงานของเราเสียเวลาโดยการแก้ไขข้อขัดแย้ง SVN ในไฟล์การกำหนดค่าโครงการซึ่งมีเฉพาะการตั้งค่าเฉพาะสำหรับนักพัฒนาที่ไม่จำเป็นต้องแชร์กับ SCM เลย ความยุ่งเหยิงทั้งหมดนี้เพราะมีคนปรับกระบวนการรอบ ๆ สมมติฐานที่ไม่ถูกต้อง ฉันจะโน้มน้าวให้เพื่อนร่วมทีมที่เห็นตัวเองเป็นผู้อาวุโสเพื่อให้เข้าใจพื้นฐานของ SVN ได้ดีขึ้นได้อย่างไร
40 learning 

13
ทำไมและด้วยเหตุผลอะไรนักพัฒนาอาจไม่ชอบ“ การต่อสู้รายวัน”? [ปิด]
มีข้อดีในการทะเลาะกันทุกวันเช่น: ทีมได้ประสานงานกัน ทุกคนรู้ว่างานที่ได้ทำไปมีจำนวนเท่าใด แผนภูมิเบิร์นดาวน์เสร็จสมบูรณ์มากขึ้นเรื่อย ๆ อัปเดตบอร์ดงานแล้ว ไม่นานเท่าไหร่ 15 นาทีจะไม่ฆ่าใคร อย่างไรก็ตามเมื่อเร็ว ๆ นี้ (หลังจาก 6 เดือนของการติดตั้งและใช้งาน scrum) ฉันรู้สึกว่านักพัฒนาของเราไม่ชอบการต่อสู้ทุกวันอีกต่อไป ผู้คนเพิ่งอัปเดตกระดานงานโดยไม่อธิบายเพียงพอและดูเหมือนว่าพวกเขาเบื่อ ฉันเห็นว่าเมื่อด้วยเหตุผลใดก็ตามเราไม่ถือมันพวกเขาใจดีและมีความสุขมากขึ้น ฉันไม่รู้ว่าอะไรผิดปกติกับเรื่องนี้ มีเหตุผลใดบ้างที่กล่าวถึงที่ใดที่หนึ่งสำหรับข้อเสียที่ "การทะเลาะกันประจำวัน" สำหรับทีม อะไรคือสาเหตุของนักพัฒนาที่เบื่อการทะเลาะกันทุกวัน?

20
การสอนการเขียนโปรแกรมทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้นหรือไม่ [ปิด]
ฉันคิดว่าตัวเองเป็นโปรแกรมเมอร์ Python ระดับกลางและได้รับโอกาสในการเป็นผู้ฝึกสอนสำหรับการเขียนโปรแกรม Python ระดับเริ่มต้น ฉันสงสัยว่าสิ่งนี้จะขยายรายการละครของฉันจริงๆ มีใครบางคนได้รับประสบการณ์ที่แจ่มใสหลังจากที่พวกเขาประสบความสำเร็จในการฝึกฝนกลุ่มคนหรือไม่? มันยังขึ้นอยู่กับคนเหล่านั้นด้วยไม่ว่าจะเป็นโปรแกรมเมอร์หรือนักเรียน noob (ในกรณีของฉันคือโปรแกรมเมอร์ระดับกลาง. NET และ Java) ฉันควรคาดหวังอะไรจากพวกเขา หนึ่งในความกลัวของฉันคือ - ถ้าฉันสำลักเมื่อหนึ่งในพวกเขาถามคำถามยุ่งเหยิง เป็นเรื่องปกติหรือไม่

18
การแก้ไขให้ถูกต้องระหว่างการสัมภาษณ์มีความสำคัญอย่างไร [ปิด]
เมื่อขอให้ผู้สมัครสัมภาษณ์เขียนโปรแกรมบนไวท์บอร์ดคุณคาดหวังให้ผู้สมัครเขียนรหัสที่ถูกต้องทางไวยากรณ์หรือไม่ ฉันมีผู้สมัครสองคนหนึ่งในนั้นเขียนโปรแกรมที่ถูกต้องทางไวยากรณ์ แต่ตรรกะไม่ถึงเครื่องหมายและอีกคนมีตรรกะที่เขียนได้ดีกว่า แต่ไวยากรณ์เป็นอึ ฉันชอบผู้สมัครคนแรก
40 interview 

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

9
ทำไมฉันควรประกาศคลาสเป็นคลาสนามธรรม?
ฉันรู้ไวยากรณ์กฎที่ใช้กับคลาสนามธรรมและฉันต้องการทราบการใช้คลาสนามธรรม คลาสนามธรรมไม่สามารถสร้างอินสแตนซ์ได้โดยตรง แต่สามารถขยายได้ด้วยคลาสอื่น ข้อดีของการทำเช่นนั้นคืออะไร? มันแตกต่างจากส่วนต่อประสานอย่างไร ฉันรู้ว่าคลาสหนึ่งสามารถใช้หลายอินเตอร์เฟส แต่สามารถขยายคลาสนามธรรมได้เพียงคลาสเดียวเท่านั้น นั่นเป็นข้อแตกต่างระหว่างอินเตอร์เฟสและคลาสนามธรรมหรือไม่? ฉันรู้เกี่ยวกับการใช้งานส่วนต่อประสาน ฉันได้เรียนรู้ว่าจากรูปแบบการมอบหมายกิจกรรมของ AWT ใน Java ในสถานการณ์ใดที่ฉันควรประกาศคลาสเป็นคลาสนามธรรม? ประโยชน์ของสิ่งนั้นคืออะไร?

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