คำถามติดแท็ก maintenance

กิจกรรมที่เกิดขึ้นหลังจากการปรับใช้ระบบซอฟต์แวร์ ซึ่งรวมถึงการปรับเปลี่ยนระบบที่วางจำหน่ายการฝึกอบรมการปฏิบัติงานและการเปลี่ยนไปสู่การสนับสนุนองค์กร

9
เป็นเรื่องปกติ / ยอมรับได้ที่จะจดบันทึกความคิดอัลกอริธึมการตัดสินใจระหว่างการเข้ารหัสและการบำรุงรักษาหรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา บางคนมีปัญหานี้ที่พวกเขาไม่สามารถคิดได้หากไม่มีคำพูด และการจดบันทึกความคิดและการตัดสินใจเป็นวิธีที่มีประสิทธิภาพที่สุดในการดำเนินการ ดังนั้น - เป็นเรื่องปกติและเป็นที่ยอมรับหรือไม่ที่ฉันจะเขียนความคิดและการตัดสินใจลงในไฟล์ Notepad ++ บางไฟล์ระหว่างการเข้ารหัส? บางครั้งควรเป็นที่ยอมรับได้เช่นเมื่อสร้างเอกสารทางเทคนิคขึ้นใหม่หรือให้เหตุผลเกี่ยวกับอัลกอริธึมที่ซับซ้อนมากขึ้น แต่บางครั้งมันอาจแปลกเช่นเมื่อฉันกำลังพิจารณาตัวเลือกการออกแบบและพยายามตัดสิน ผลกระทบของการฝึกนี้ต่อผลผลิตไม่ชัดเจน จากด้านหนึ่ง - การใช้เหตุผลกับคำภายในอาจเร็วกว่าคำที่เขียน จากอีกด้านหนึ่ง - ปัญหาที่ซับซ้อนมากขึ้นจำเป็นต้องมีการเขียน นอกจากนี้หากใครมีตัวเลือกการออกแบบมากขึ้นความรู้สึกนั้นดีกว่าเมื่อมีการตัดสินใจเขียนดังนั้นมันจึงเพิ่มขวัญกำลังใจ

5
จะจัดการกับสถานการณ์ที่ไม่น่าเป็นไปได้ในสถานการณ์สมมตินี้กับผู้ใช้ปลายทางอย่างไร?
ฉันทำงานใน บริษัท ขนาดกลาง แต่ใช้งานไอทีเพียงเล็กน้อย ปีที่แล้ว (2011) ฉันเขียนแอปพลิเคชันที่ได้รับความนิยมอย่างมากกับกลุ่มผู้ใช้ปลายทางจำนวนมาก เรามีกำหนดส่งถึงสิ้นปีที่แล้วและฟังก์ชั่นบางอย่าง (ฉันจะเรียก funcA นับจากนี้เป็นต้นไป) ไม่ได้ถูกเพิ่มเข้าไปในแอปพลิเคชันที่ต้องการในตอนท้าย ดังนั้นแอปพลิเคชันนี้ทำงานในการแสดงสด / ผลิตตั้งแต่ปลายปี 2011 ฉันอาจเพิ่มโดยไม่มีปัญหา เมื่อวานนี้ผู้ใช้กลุ่มทั้งหมดเริ่มบ่นว่า funcA ที่ไม่เคยอยู่ในแอปพลิเคชันไม่ทำงานอีกต่อไป ลำดับความสำคัญของเราที่ บริษัท นี้คือหากใบสมัครถูกทำลายจะต้องได้รับการแก้ไขก่อนที่จะจัดลำดับความสำคัญของโครงการ ฉันเปรียบเทียบโค้ดและข้อความค้นหาและไม่มีความแตกต่างตั้งแต่ปี 2011 ซึ่งเป็น ProofA จากนั้นฉันก็สามารถรับหนึ่งในผู้ใช้ปลายทางที่จะยอมรับว่ามันไม่ทำงานพิสูจน์ข แต่หลังจากนั้นผู้ใช้ปลายทางก็กลับไปและบอกว่ามันใช้งานได้ก่อนหน้านี้ ... ฉันเชื่อว่าฝูงชนของผู้ใช้ปลายทางได้หลอมรวม เธอ ฉันยังได้ตรวจสอบบันทึกย่อของฉันสำหรับโครงการนี้ซึ่งมีข้อกำหนดและอัพเดทรายวันเกี่ยวกับโครงการที่ระบุว่า "funcA ไม่ประสบความสำเร็จเนื่องจากข้อ จำกัด ด้านเวลา", proofC ฉันได้พูดกับพวกเขาหลายคนและฉันสามารถดูว่าพวกเขาอาจจะสับสนเพราะพวกเขาอยู่ไกลจากพื้นหลังการเขียนโปรแกรม แต่ฉันก็รู้ว่าพวกเขามีความฉลาดพอที่จะทำในกลุ่มเพื่อหลีกเลี่ยงคำสั่งจัดลำดับความสำคัญของโครงการ ฟังก์ชั่นที่พวกเขาต้องการทำให้งานของพวกเขาง่ายขึ้น ส่วนที่แย่ที่สุดคือตอนนี้กลุ่มคิดว่ามีการตั้งค่าและหัวหน้าของฉันและหัวหน้าฝ่ายไอทีก็เริ่มเชื่อพวกเขาแม้ว่าจะไม่มีการเปลี่ยนแปลงรหัสหรือการสืบค้น เท่าที่ตรวจสอบสถานะของตรรกะมันถูกตัดและแห้งไปจนถึงจุดที่ 1 = 1 funcA จะไม่ทำงาน ดังนั้นนี่คือจุดสิ้นสุดของคำอธิบายของสถานการณ์ของฉัน แต่ฉันพยายามที่จะไม่ทำ …

13
เมื่อไรที่จะไม่แก้ไข windows ที่เสียหาย
ในการอ้างอิงถึงหน้าต่างที่ใช้งานไม่ได้มีบางครั้งที่การปรับโครงสร้างสิ่งที่ดีที่สุดสำหรับกิจกรรมในอนาคตใช่หรือไม่ ตัวอย่างเช่นหากโครงการเพื่อเพิ่มคุณสมบัติใหม่ให้กับระบบภายในที่มีอยู่ให้กับทีมที่ไม่ได้ทำงานกับระบบจนถึงตอนนี้และได้รับกำหนดเวลาสั้น ๆ ในการทำงานด้วย - จะเป็นสิ่งที่สมเหตุสมผลหรือไม่ เลื่อนการ refactorings ที่สำคัญไปยังรหัสที่มีอยู่เพื่อประโยชน์ในการกำหนดเวลาในสถานการณ์นี้?

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

4
การช่วยคนที่ไม่ได้เป็นและไม่เคยเป็นนักเขียนโปรแกรมมืออาชีพที่สามารถอ่านและใช้งานและตีความได้ง่ายกว่า [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันคือ Elvis พยายามอย่างหนักที่จะเรียนรู้ที่จะเป็น Einstein ฉันทำงานให้มอร์ท คนบ้านี้มันบ้าอะไรกันเนี่ย!?!? (คุณจะต้องอ่านสองสามย่อหน้าแรก) หากคุณไม่รู้สึกว่ากำลังอ่านลิงค์นั้นโดยพื้นฐานแล้วฉันเป็นโปรแกรมเมอร์มืออาชีพและเจ้านายของฉันคือ โปรแกรมเมอร์สายธุรกิจมืออาชีพที่ขาดวุฒิด้านวิทยาศาสตร์คอมพิวเตอร์ แต่มีความคุ้นเคยกับ Office และ VBA เป็นอย่างมากและโดยทั่วไปแล้วผู้เขียนแอปพลิเคชั่นการผลิตร่วมกันระหว่างเพื่อนร่วมงานของเขา ทั้งหมดที่กล่าวมาส่วนใหญ่ของงานของฉันคือการปูด้วยก้อนกรวดของเขารหัสและทำให้การผลิตพร้อม อย่างไรก็ตามรูปแบบที่ไม่ดีและลัทธิขนส่งสินค้าทำให้ยาก สิ่งนี้ประกอบไปด้วยข้อเท็จจริงที่ว่าเขาไม่เต็มใจที่จะอ่านหนังสือเขียนโปรแกรมหรืออนุญาตให้ฉันช่วยเขาสร้างรหัสใหม่อีกครั้ง มีกลวิธีอื่น ๆ ที่จะช่วยคนที่ไม่ใช่โปรแกรมเมอร์มืออาชีพหรือไม่จะเป็นโปรแกรมเมอร์มืออาชีพที่เขียนโค้ดไปข้างหน้าซึ่งมีความชัดเจนและใช้งานได้ง่ายกว่าสำหรับฉันที่จะใช้และตีความ?

7
ตรงกันข้ามกับคำว่า "Backporting" หรือไม่?
ดังที่ฉันเข้าใจแล้วคำว่า "Backporting" ใช้เพื่ออธิบายการแก้ไขที่ใช้ในเวอร์ชันในอนาคตซึ่งมีการย้ายไปยังเวอร์ชันก่อนหน้าด้วย นิยามของ Wikipediaมีดังต่อไปนี้: Backportingคือการดำเนินการแก้ไขซอฟต์แวร์บางอย่าง (แพตช์) และนำไปใช้กับซอฟต์แวร์รุ่นเก่ากว่าที่สร้างไว้ในตอนแรก เป็นส่วนหนึ่งของขั้นตอนการบำรุงรักษาในกระบวนการพัฒนาซอฟต์แวร์ ... ตัวอย่างเช่น: ปัญหาถูกค้นพบและแก้ไขใน V2.0 การแก้ไขเดียวกันถูกพอร์ตและนำไปใช้กับ V1.5 คำนี้เมื่อทำสิ่งนี้ในทิศทางตรงกันข้ามคืออะไร? ปัญหาถูกค้นพบและแก้ไขใน V1.5 การแก้ไขเดียวกันถูกพอร์ตและนำไปใช้กับ V2.0 คำว่า "Backporting" จะยังใช้อยู่หรือไม่ หรือมีคำเช่น "การส่งต่อ" (ซึ่งฟังดูคล้ายกับ "การส่งต่อพอร์ต")?

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

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 ที่เพิ่มการบำรุงรักษาของโครงการ บ่อยครั้งที่เราประสบปัญหาที่สำคัญในการพัฒนาโครงการ (การบำรุงรักษาต่ำ) สิ่งที่ฉันกำลังมองหาที่นี่คือตัวอย่างที่เป็นรูปธรรมของการสอนที่ประสบความสำเร็จเกี่ยวกับความสำคัญของการบำรุงรักษาและวิธีการสร้างรหัสที่ดีขึ้นเกี่ยวกับประเด็นนี้โดยเฉพาะ หรือข้อเสนอแนะที่เป็นไปได้เพื่อปรับปรุงวิธีการฝึกอบรมของนักเรียน

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

7
วิธีการลดความยุ่งยากในการบำรุงรักษาของรหัสเหตุการณ์ขับเคลื่อน?
เมื่อใช้องค์ประกอบตามเหตุการณ์ฉันมักจะรู้สึกเจ็บปวดในช่วงการบำรุงรักษา เนื่องจากโค้ดที่ถูกประมวลผลจะถูกแยกออกไปรอบ ๆ มันอาจเป็นเรื่องยากที่จะคิดว่าส่วนใดของโค้ดที่จะเกี่ยวข้องกับรันไทม์ สิ่งนี้สามารถนำไปสู่ปัญหาการดีบักที่ละเอียดและยากเมื่อมีคนเพิ่มตัวจัดการเหตุการณ์ใหม่บางอย่าง แก้ไขจากความคิดเห็น: แม้ว่าจะมีแนวปฏิบัติที่ดีเช่นการมีแอพพลิเคชั่น Event Bus และตัวจัดการที่มอบหมายธุรกิจไปยังส่วนอื่น ๆ ของแอพมีช่วงเวลาที่รหัสเริ่มอ่านยากเพราะมีจำนวนมาก ตัวจัดการการลงทะเบียนจากสถานที่ต่าง ๆ (โดยเฉพาะอย่างยิ่งจริงเมื่อมีรถบัส) จากนั้นไดอะแกรมลำดับเริ่มมองดูซับซ้อนเวลาที่ใช้ในการคิดว่าเกิดอะไรขึ้นเพิ่มขึ้นและเซสชันการดีบักยุ่งเหยิง (เบรกพอยต์บนตัวจัดการตัวจัดการในขณะที่วนรอบตัวจัดการโดยเฉพาะอย่างยิ่งสนุกสนานกับตัวจัดการ async และตัวกรองบางส่วนด้านบน) ////////////// ตัวอย่าง ฉันมีบริการที่ดึงข้อมูลบางอย่างบนเซิร์ฟเวอร์ ในไคลเอนต์เรามีองค์ประกอบพื้นฐานที่เรียกใช้บริการนี้โดยใช้การโทรกลับ เพื่อให้จุดส่วนขยายแก่ผู้ใช้ของส่วนประกอบและเพื่อหลีกเลี่ยงการเชื่อมต่อระหว่างส่วนประกอบที่แตกต่างกันเรากำลังยิงเหตุการณ์บางอย่าง: หนึ่งก่อนที่จะส่งแบบสอบถามแบบสอบถามหนึ่งเมื่อคำตอบกลับมาและอีกคนหนึ่งในกรณีของความล้มเหลว เรามีชุดพื้นฐานของตัวจัดการที่ลงทะเบียนล่วงหน้าซึ่งให้พฤติกรรมเริ่มต้นขององค์ประกอบ ตอนนี้ผู้ใช้ของส่วนประกอบ (และเราเป็นผู้ใช้ของคอมโพเนนต์ด้วย) สามารถเพิ่มตัวจัดการบางอย่างเพื่อทำการเปลี่ยนแปลงบางอย่างเกี่ยวกับพฤติกรรม (ปรับเปลี่ยนแบบสอบถามบันทึกการวิเคราะห์ข้อมูลการกรองข้อมูลการกรองข้อมูลนวดภาพเคลื่อนไหว UI แฟนซีเชนสอบถามหลายลำดับ อะไรก็ตาม) ดังนั้นตัวจัดการบางตัวจะต้องถูกเรียกใช้ก่อน / หลังตัวจัดการบางตัวและพวกมันถูกลงทะเบียนจากจุดเข้าใช้ที่แตกต่างกันมากมายในแอปพลิเคชัน หลังจากผ่านไปครู่หนึ่งอาจเกิดขึ้นได้ที่ตัวจัดการโหลขึ้นไปมีการลงทะเบียนและการทำงานกับสิ่งนั้นอาจน่าเบื่อและอันตราย การออกแบบนี้เกิดขึ้นเนื่องจากการใช้การสืบทอดเริ่มเป็นระเบียบสมบูรณ์ ระบบเหตุการณ์ถูกนำมาใช้ในการประพันธ์ชนิดหนึ่งซึ่งคุณยังไม่รู้ว่าจะเป็นอย่างไร ในตอนท้ายของ ////////////// ดังนั้นฉันจึงสงสัยว่าคนอื่นกำลังจัดการกับรหัสประเภทนี้อย่างไร ทั้งเมื่อเขียนและอ่านแล้ว คุณมีวิธีการหรือเครื่องมือที่ช่วยให้คุณเขียนและรักษารหัสดังกล่าวโดยไม่เจ็บปวดมากหรือไม่?

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

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

3
กลยุทธ์การแยก Git สำหรับโค้ดที่ยังไม่เผยแพร่ซึ่งใช้งานมานาน
ที่ทีมของเรานอกเหนือจากงานแต่ละหน่วย (เรื่อง) เรามีธีมการทำงานที่ยาวนานขึ้น (Epics) เรื่องราวหลากหลายทำให้มหากาพย์ ตามเนื้อผ้าเรามีฟีเจอร์กิ่งไม้สำหรับแต่ละเรื่องและรวมเหล่านั้นเข้ากับมาสเตอร์เมื่อพวกเขาผ่าน QA อย่างไรก็ตามเราต้องการเริ่มระงับการเผยแพร่เรื่องราวที่เสร็จสมบูรณ์ใน Epic จนกว่า Epic จะถือเป็น "คุณลักษณะเสร็จสมบูรณ์" เราจะปล่อยฟีเจอร์เหล่านี้เป็นการผลิตเมื่อปิด Epic ทั้งหมดแล้วเท่านั้น นอกจากนี้เรามีเซิร์ฟเวอร์ที่สร้างขึ้นทุกคืน - เราต้องการให้เรื่องราวทั้งหมดที่ปิด (รวมถึงส่วนที่เป็นส่วนหนึ่งของ Epics ที่ไม่สมบูรณ์) ถูกนำไปใช้กับเซิร์ฟเวอร์รายคืนนี้โดยอัตโนมัติ มีคำแนะนำใด ๆ เกี่ยวกับวิธีจัดการ repo ของเราเพื่อให้บรรลุเป้าหมายนี้หรือไม่? ฉันคิดว่าจะแนะนำ "สาขาที่ยิ่งใหญ่" ซึ่งเราจะรวมเรื่องที่ปิดไปยังสาขาที่เกี่ยวข้องแทนการเป็นอาจารย์โดยตรง แต่ข้อกังวลของฉันคือ: ฉันกังวลเกี่ยวกับความขัดแย้งที่อาจเกิดขึ้นหากสาขามหากาพย์เปิดให้บริการเป็นเวลานาน งานสร้างยามค่ำคืนจะต้องรวมสาขาของมหากาพย์ทั้งหมดไว้ในสาขา "สร้างยามค่ำคืน" อีกครั้งอาจเกิดความขัดแย้งผสานและสิ่งนี้จะต้องทำโดยอัตโนมัติ

6
ศูนย์เป็นค่าคงที่หรือไม่?
ฉันได้เจอสำนวนการเขียนโปรแกรมนี้เมื่อเร็ว ๆ นี้: const float Zero = 0.0; ซึ่งจะใช้ในการเปรียบเทียบ: if (x > Zero) {..} ใครสามารถอธิบายได้ว่าสิ่งนี้มีประสิทธิภาพมากขึ้นหรือสามารถอ่านหรือบำรุงรักษาได้ดีกว่า: if (x > 0.0) {..} หมายเหตุ: ฉันสามารถคิดอื่น ๆเหตุผลที่จะกำหนดนี้คงอิ่มเพียงแค่สงสัยเกี่ยวกับการใช้งานในนี้บริบท

11
คุณควรแก้ไขข้อบกพร่องที่มีอยู่ก่อนขณะที่กำลังทำงานอย่างอื่นอยู่หรือไม่?
ปริศนา: ในระหว่างการทำงานกับคุณสมบัติใหม่หรือแก้ไขข้อบกพร่องคุณพบปัญหาดั้งเดิมในรหัส คุณควรทำอะไร? แก้ไขและเสี่ยงต่อการเปลี่ยนแปลงพฤติกรรมของรหัส มันมีการทำงานมาจนถึงตอนนี้โดยบางความบังเอิญหรืออื่น ๆ ข้อบกพร่องที่ไม่ได้รับการตรวจพบหรือคุ้มค่าเวลาของทุกคนที่จะรายงาน คุณควรปล่อยไว้ตามลำพังและปล่อยให้ปัญหาทำให้รหัสทำงานหนักขึ้นในภายหลังหรือไม่ การแก้ไขปัญหาจะเพิ่มเวลาของงานดั้งเดิมของคุณเท่านั้นและบังคับให้คุณทดสอบการถดถอย ไม่กี่คนที่จะชื่นชมการทำงาน อย่างไรก็ตามการแก้ไขมันดูเหมือนถูกต้องอย่างใด รหัสที่มีปัญหาน้อยลงจะง่ายต่อการสร้างและสร้างใหม่ ฉันพบตัวเองในสถานการณ์เช่นนี้ครั้งแล้วครั้งเล่าขณะที่เราทำงานเพื่อทำให้เว็บแอปพลิเคชันทันสมัยขึ้น ฉันไม่สามารถบอกได้ว่าฉันกำลังหมกมุ่นหรือมีเกียรติเมื่อฉันออกไปทำงานแทนเจนต์บนข้อบกพร่องเก่าเหล่านี้ คุณจัดการกับสถานการณ์เหล่านี้ได้อย่างไร ขอบคุณ Corey

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