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

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

9
โดยสรุป: เราจะดูแลระบบเดิมอย่างไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา นิวยอร์ก - ด้วยการระเบิดที่ทำให้ตึกระฟ้าสั่นสะเทือนท่อไอน้ำอายุ 83 ปีส่งข้อความที่ทรงพลังว่าไมล์ของท่อสายไฟและเหล็กที่อยู่ใต้นิวยอร์กและเมืองอื่น ๆ ในสหรัฐอเมริกากำลังแก่ลงและอาจกลายเป็นอันตรายอย่างไม่มั่นคง เรื่องราวเกี่ยวกับท่อไอน้ำที่ระเบิดในแมนฮัตตัน เราเคยได้ยินเกี่ยวกับเน่าซอฟแวร์และหนี้ทางเทคนิค และเราได้ยินจากสิ่งที่ชอบ: "ลุงบ๊อบ" มาร์ติน - ใครเตือนเราเกี่ยวกับ " ผลที่ตามมาของการเลอะ " ไมเคิลซีขน - ใครทำให้เรามีคำแนะนำสำหรับ'การทำงานอย่างมีประสิทธิภาพด้วยรหัสมรดก' แน่นอนว่าชุมชนวิศวกรรมซอฟต์แวร์ตระหนักถึงปัญหาเหล่านี้ แต่ฉันรู้สึกว่าสังคมโดยรวมของเราไม่เห็นคุณค่าว่าปัญหาเหล่านี้สามารถทำให้เกิดปัญหากับระบบและแอปพลิเคชันได้อย่างไร ในฐานะที่เป็นสตีฟ McConnell บันทึก : ... ซึ่งแตกต่างจากหนี้ทางการเงินหนี้ทางเทคนิคนั้นมองเห็นได้น้อยกว่าดังนั้นผู้คนจึงมีเวลาได้ง่ายขึ้นโดยไม่สนใจ หากนี่เป็นเรื่องจริงและฉันเชื่อว่าเป็นเช่นนั้นฉันกลัวว่ารัฐบาลและภาคธุรกิจอาจเลื่อนการบำรุงรักษาและการป้องกันแฮกเกอร์เป็นประจำจนกว่าจะสายเกินไป [เหมือน NYC และท่อไอน้ำ] คำถามของฉัน: มีวิธีที่เราสามารถหลีกเลี่ยงซอฟต์แวร์เทียบเท่า NYC และท่อไอน้ำได้หรือไม่?

10
พารามิเตอร์ทางเลือกมีประโยชน์หรือเป็นอุปสรรคต่อการบำรุงรักษาแอปพลิเคชันหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ตามที่ระบุไว้ในชื่อเรื่องพารามิเตอร์ที่เป็นตัวเลือกเช่นที่ใช้ใน C #เป็นประโยชน์หรือเป็นอุปสรรคต่อการบำรุงรักษาแอปพลิเคชันและควรหลีกเลี่ยงเนื่องจากสามารถทำให้โค้ดเข้าใจยากขึ้น?

5
สลับคำสั่ง - จัดการกรณีเริ่มต้นเมื่อไม่สามารถเข้าถึงได้
ถ้าฉันใช้คำสั่ง switch เพื่อจัดการค่าจาก enum (ซึ่งเป็นของชั้นเรียนของฉัน) และฉันมีเคสสำหรับค่าที่เป็นไปได้แต่ละอัน - มันคุ้มค่าที่จะเพิ่มรหัสเพื่อจัดการกับเคส "default" หรือไม่? enum MyEnum { MyFoo, MyBar, MyBat } MyEnum myEnum = GetMyEnum(); switch (myEnum) { case MyFoo: DoFoo(); break; case MyBar: DoBar(); break; case MyBat: DoBat(); break; default: Log("Unexpected value"); throw new ArgumentException() } ฉันไม่คิดว่าเป็นเพราะรหัสนี้ไม่สามารถเข้าถึงได้ (แม้จะมีการทดสอบหน่วย) เพื่อนร่วมงานของฉันไม่เห็นด้วยและคิดว่าสิ่งนี้ปกป้องเราจากพฤติกรรมที่ไม่คาดคิดที่เกิดจากค่าใหม่ที่เพิ่มเข้ามาใน MyEnum ชุมชนพูดว่าอย่างไร

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

4
มีแนวทางที่ยอมรับกันโดยทั่วไปเกี่ยวกับวิธีการเขียน C สมัยใหม่หรือไม่?
ฉันมีพื้นหลัง Java / Groovy ที่แข็งแกร่งและฉันได้รับมอบหมายให้ทำงานกับทีมที่ดูแลฐานรหัส C ที่ค่อนข้างใหญ่สำหรับซอฟต์แวร์การดูแลระบบ บางจุดปวดเช่นการจัดการกับหยดในฐานข้อมูลหรือการสร้างรายงานใน PDF และ Excel ได้รับการส่งไปยังบริการเว็บ java อย่างไรก็ตามในฐานะที่เป็น Java dev ฉันรู้สึกสับสนเล็กน้อยกับบางส่วนของรหัส: มันเป็น verbose (โดยเฉพาะอย่างยิ่งเมื่อจัดการกับ 'ข้อยกเว้น') มีวิธีการขนาดใหญ่มากมาย (วิธีการ 2000 + บรรทัดหลายวิธี) ไม่มีโครงสร้างข้อมูลขั้นสูง (ฉันพลาดรายการตั้งค่าและแผนที่เป็นจำนวนมาก) ไม่มีการแยกข้อกังวล (SQL ผสมปนเปกันอย่างสนุกสนาน) ด้วยเหตุนี้ฉันจึงรู้สึกว่าธุรกิจถูกซ่อนอยู่ในรหัสทางเทคนิคและสมองของฉันที่ถูกสร้างขึ้นด้วย Object Oriented และการเขียนโปรแกรมเชิงฟังก์ชั่น ข้อดีของโครงการคือรหัสตรงไปตรงมา: ไม่มีเฟรมเวิร์กไม่มีการจัดการโค้ดไบต์ที่รันไทม์ไม่มี AOP และเซิร์ฟเวอร์สามารถตอบผู้ใช้มากกว่า 10,000 คนพร้อมกันด้วยเครื่องเดียวโดยใช้หน่วยความจำน้อยกว่าจาวาต้องคาย "hello world" ฉันต้องการเรียนรู้วิธีการเขียนรหัส C ตามหลักการสมัยใหม่ที่เป็นที่ยอมรับกันทั่วไป มีหลักการใด ๆ ที่เป็นที่ยอมรับกันโดยทั่วไปเกี่ยวกับวิธีการเขียนและโครงสร้าง C …
13 c  maintenance 

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

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

5
วิวัฒนาการในมาตรฐานการเข้ารหัสคุณจะจัดการกับมันอย่างไร
คุณจะจัดการกับวิวัฒนาการในคู่มือการเข้ารหัส / สไตล์ในโครงการสำหรับฐานรหัสที่มีอยู่ได้อย่างไร สมมติว่ามีบางคนในทีมของคุณค้นพบวิธีที่ดีกว่าในการสร้างอินสแตนซ์ของวัตถุในภาษาโปรแกรม ไม่ใช่ว่าวิธีการแบบเก่าจะไม่ดีหรือบั๊กกี้ แต่เป็นวิธีการใหม่ที่ให้ความรู้สึกที่น้อยกว่าและให้ความรู้สึกหรูหรามากกว่า และสมาชิกในทีมทุกคนชอบมันมาก คุณจะเปลี่ยนรหัสที่มีอยู่ทั้งหมดหรือไม่ สมมติว่า codebase ของคุณมีโค้ดประมาณ 500,000 บรรทัด คุณยังต้องการเปลี่ยนรหัสที่มีอยู่ทั้งหมดหรือไม่? หรือคุณจะให้รหัสใหม่เป็นไปตามมาตรฐานใหม่เท่านั้น? โดยทั่วไปสูญเสียความมั่นคง? คุณจะจัดการกับวิวัฒนาการในมาตรฐานการเข้ารหัสในโครงการของคุณได้อย่างไร

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

9
รหัสทดสอบคัดลอกและวาง: วิธีนี้แย่แค่ไหน?
งานปัจจุบันของฉันส่วนใหญ่เขียนโค้ดทดสอบ GUI สำหรับแอปพลิเคชันต่างๆที่เราใช้งาน อย่างไรก็ตามฉันพบว่าฉันมักจะคัดลอกและวางรหัสจำนวนมากในการทดสอบ เหตุผลสำหรับเรื่องนี้คือพื้นที่ที่ฉันทดสอบมีแนวโน้มที่จะคล้ายกันมากพอที่จะต้องมีการทำซ้ำ แต่ก็ไม่ได้คล้ายกันมากพอที่จะใส่รหัสลงในเมธอดหรือวัตถุ ฉันพบว่าเมื่อฉันพยายามใช้คลาสหรือวิธีการเพิ่มเติมอย่างกว้างขวางการทดสอบจะยุ่งยากมากขึ้นในการบำรุงรักษาและบางครั้งก็ยากที่จะเขียนตั้งแต่แรก แต่ฉันมักจะคัดลอกโค้ดทดสอบขนาดใหญ่จำนวนหนึ่งจากส่วนหนึ่งแล้ววางลงในอีกส่วนหนึ่งและทำการเปลี่ยนแปลงเล็กน้อยตามที่ฉันต้องการ ฉันไม่ได้ใช้วิธีการเข้ารหัสที่มีโครงสร้างมากขึ้นเช่นการใช้หลักการหรือฟังก์ชั่น OO มากขึ้น ผู้เขียนโค้ดคนอื่นรู้สึกเช่นนี้เมื่อเขียนรหัสทดสอบหรือไม่? เห็นได้ชัดว่าฉันต้องการที่จะปฏิบัติตามหลักการ DRY และ YAGNI แต่ฉันพบว่ารหัสทดสอบ (รหัสทดสอบอัตโนมัติสำหรับการทดสอบ GUI ต่อไป) สามารถทำให้หลักการเหล่านี้ยากที่จะปฏิบัติตาม หรือฉันต้องการเพียงแค่ฝึกฝนการเข้ารหัสและระบบโดยรวมที่ดีขึ้นในการทำสิ่งต่าง ๆ ? แก้ไข: เครื่องมือที่ฉันใช้คือ SilkTest ซึ่งเป็นภาษาที่เป็นกรรมสิทธิ์ที่ชื่อว่า 4Test เช่นกันการทดสอบเหล่านี้ส่วนใหญ่ใช้สำหรับเดสก์ท็อปของ Windows แต่ฉันได้ทำการทดสอบเว็บแอปโดยใช้การตั้งค่านี้เช่นกัน

6
การเปลี่ยนแปลงใดที่ใหญ่เกินกว่าจะออกแบบได้โดยง่าย
นี่เป็นคำถามที่ค่อนข้างคลุมเครือ แต่เป็นสิ่งที่ฉันไม่เคยรู้สึกว่าได้รับคำตอบอย่างน่าพอใจเมื่ออ่านเกี่ยวกับการออกแบบที่เหมาะสม โดยทั่วไปเมื่อเรียนรู้เกี่ยวกับการเขียนโปรแกรมเชิงวัตถุ, นามธรรม, แยกตัวประกอบ ฯลฯ จอกศักดิ์สิทธิ์ของการออกแบบ - และเหตุผลที่พวกเขาอ้างเสมอว่าคุณใช้เทคนิคการพัฒนาที่เป็นปัญหา - คือมันจะทำให้โปรแกรมของคุณ "ง่ายต่อการเปลี่ยนแปลง" , "maintainable", "ยืดหยุ่น" หรือคำพ้องความหมายใด ๆ ที่ใช้เพื่อแสดงแนวคิดเกี่ยวกับการผลิตที่ทำให้เกิดเสียงดังกล่าว ด้วยการทำเครื่องหมายส่วนตัวของ ivars ให้แยกรหัสออกเป็นวิธีเล็ก ๆ ที่มีอยู่ในตัวเองทำให้อินเตอร์เฟสทั่วไปทำให้คุณสามารถปรับเปลี่ยนโปรแกรมของคุณได้อย่างง่ายดาย สำหรับการเปลี่ยนแปลงที่ค่อนข้างเล็กสิ่งนี้ใช้ได้ดีสำหรับฉัน การเปลี่ยนแปลงโครงสร้างข้อมูลภายในที่ใช้โดยคลาสเพื่อเพิ่มประสิทธิภาพไม่เคยมีความยุ่งยากที่สำคัญและไม่มีการเปลี่ยนแปลงส่วนท้ายของส่วนต่อประสานผู้ใช้ที่เป็นอิสระจาก API เช่นการออกแบบระบบป้อนข้อความใหม่หรือปรับปรุงกราฟิกสำหรับองค์ประกอบการเล่นเกม . การเปลี่ยนแปลงทั้งหมดเหล่านี้ดูเหมือนมีอยู่ในตัวเองโดยเนื้อแท้ ไม่มีสิ่งใดที่เกี่ยวข้องกับการเปลี่ยนแปลงพฤติกรรมหรือการออกแบบองค์ประกอบของโปรแกรมของคุณที่ได้รับการแก้ไขตราบใดที่รหัสภายนอกเกี่ยวข้อง ไม่ว่าคุณจะเขียนขั้นตอนหรือในสไตล์ OO ที่มีฟังก์ชั่นขนาดใหญ่หรือขนาดเล็กการเปลี่ยนแปลงเหล่านี้ง่ายต่อการเปลี่ยนแปลงแม้ว่าคุณจะมีการออกแบบที่ดีพอสมควรก็ตาม อย่างไรก็ตามเมื่อใดก็ตามที่การเปลี่ยนแปลงมีขนาดใหญ่และมีขนฟูนั่นคือการเปลี่ยนแปลง API - ไม่มีรูปแบบ "อันมีค่า" ของฉันเลยที่จะช่วยเหลือ การเปลี่ยนแปลงครั้งใหญ่ยังคงใหญ่รหัสที่ได้รับผลกระทบยังคงได้รับผลกระทบและงานการวางไข่หลายชั่วโมงอยู่ข้างหน้าฉัน ดังนั้นคำถามของฉันคือสิ่งนี้ การออกแบบที่เหมาะสมนั้นมีการเปลี่ยนแปลงขนาดใหญ่เพียงใดเพื่อให้สามารถอำนวยความสะดวกได้? มีเทคนิคการออกแบบเพิ่มเติมบางอย่างไม่เป็นที่รู้จักสำหรับฉันหรือฉันล้มเหลวในการใช้งานที่ทำให้การปรับเปลี่ยนที่ทำให้เกิดเสียงง่าย ๆ หรือเป็นสัญญานั้น (ซึ่งฉันได้ยินจากกระบวนทัศน์ที่แตกต่างกันมากมาย) เป็นแนวคิดที่ดี ตัดการเชื่อมต่ออย่างสมบูรณ์จากความจริงที่ไม่เปลี่ยนรูปแบบของการพัฒนาซอฟต์แวร์? มี "เครื่องมือเปลี่ยน" …

4
วิธีการโน้มน้าวใจเพื่อนร่วมงานของฉันว่าการทำสิ่งที่ถูกต้องจะช่วยให้พวกเขาประหยัดเวลา
ฉันเพิ่งเริ่มต้นที่ บริษัท ใหม่พร้อมโปรแกรมเมอร์จำนวนหนึ่ง เป็น บริษัท ขนาดกลางที่มีพนักงานประมาณ 70 คน แต่ไอทีมีเพียง 9-10 คนเท่านั้นและมี "โปรแกรมเมอร์" 3 คนอยู่เคียงข้างฉัน อย่างไรก็ตามพวกเหล่านี้มีประสบการณ์ จำกัด มากและกำลังทำสิ่งต่าง ๆ มากมายอย่างน่ากลัวจริงๆ ตัวอย่างเช่นหนึ่งในโครงการของเราคือเว็บไซต์ PHP รหัสส่วนใหญ่จะถูกเก็บไว้ในคอนโทรลเลอร์ PHP 20,000 บรรทัดโดยมี ~ 6,000 บรรทัดของ JavaScript ฝังอยู่ใน PHP ฉันทำข้อเสนอแนะเล็ก ๆ ที่นี่และที่นั่น แต่ไม่มีใครฟังทุกคนบอกว่าพวกเขายุ่งเกินไปที่จะใช้คำแนะนำ สิ่งคือพวกเขาไม่ควรยุ่งขนาดนั้นและจะไม่ทำสิ่งที่ถูกต้อง พวกเขาใช้เวลาส่วนใหญ่แก้ไขสิ่งต่าง ๆ ที่ทำให้แตกหัก หากแต่ละโครงการสร้างขึ้นอย่างถูกต้องฉันสามารถทำเองทั้งหมดได้ ฉันควรใช้วิธีใดในการโน้มน้าวใจคนเหล่านี้หรือผู้จัดการว่าสิ่งต่าง ๆ จำเป็นต้องเปลี่ยนแปลงและสิ่งที่เปลี่ยนแปลงไปจะช่วยประหยัดเวลาได้มาก ฉันควรข้ามไปพยายามโน้มน้าวให้เพื่อนร่วมงานของฉันและตรงไปที่ผู้จัดการพร้อมข้อเสนอทางธุรกิจว่า บริษัท จะประหยัดเงินได้มากแค่ไหนหากพวกเขาเริ่มทำสิ่งที่ถูกต้อง?

4
อะไรคือวิธีที่ดีในการทำความสะอาดโครงการเก่า
ฉันมีซอฟต์แวร์ที่ฉันเขียนเมื่อประมาณ 2 ปีที่แล้วและต้องการคุณสมบัติบางอย่างที่เพิ่มเข้ามา ฉันรู้ว่ามันยุ่งเหยิงมากและฉันอยากจะย้ายทุกอย่างไปรอบ ๆ เป็นระเบียบเรียบร้อย ฯลฯ ฉันได้อ่านบทความเกี่ยวกับการเริ่มต้นใหม่ของโจเอลเกี่ยวกับการเริ่มต้นใหม่ดังนั้นอะไรคือวิธีที่ดีที่สุดในการส่งต่อ?

12
ความสามารถในการบำรุงรักษาของบูลีนลอจิก - ทำรังหากต้องการข้อความ?
ข้อไหนดีกว่าในการบำรุงรักษา if (byteArrayVariable != null) if (byteArrayVariable .Length != 0) //Do something with byteArrayVariable หรือ if ((byteArrayVariable != null) && (byteArrayVariable.Length != 0)) //Do something with byteArrayVariable ฉันชอบการอ่านและการเขียนที่สอง แต่ฉันจำได้ว่าการอ่านในโค้ดเสร็จสมบูรณ์ซึ่งทำสิ่งต่าง ๆ เช่นนั้นไม่ดีสำหรับการบำรุงรักษา นี่เป็นเพราะคุณพึ่งพาภาษาที่จะไม่ประเมินส่วนที่สองของifถ้าส่วนแรกเป็นเท็จและไม่ใช่ทุกภาษาที่ทำเช่นนั้น (ส่วนที่สองจะโยนข้อยกเว้นถ้าประเมินด้วย null byteArrayVariable) ฉันไม่ทราบว่าเป็นสิ่งที่ต้องกังวลหรือไม่และฉันต้องการความคิดเห็นทั่วไปเกี่ยวกับคำถาม ขอบคุณ

8
มีวิธีใดบ้างในการบำรุงรักษาโค้ดเบสที่เขียนในสองภาษาที่ใช้ตรรกะเดียวกัน
ฉันมีอัลกอริธึมเข้มข้นแบบลอจิคัลที่ฉันต้องการรหัสในสองภาษา (จริง ๆ แล้วฉันเสร็จในภาษาหนึ่งที่น่าพอใจและกำลังจะเริ่มเขียนโค้ดในภาษาอื่น) โดยความเข้มข้นของลอจิกผมหมายถึงอัลกอริทึมนั้นไม่สำคัญต้องมีความเข้าใจอย่างรอบคอบและที่สำคัญอาจมีข้อบกพร่อง (เนื่องจากความซับซ้อนและความประมาทคุณรู้) ซึ่งจะต้องได้รับการแก้ไขในอนาคต นอกจากนี้ฉันต้องการตรวจสอบให้แน่ใจว่าเมื่อรหัสนี้เปลี่ยนมือในที่สุดจะต้องไม่ครอบงำโปรแกรมเมอร์ใหม่ ในสถานการณ์นี้วิธีใดบ้างที่จะช่วยรักษาฐานรหัสและทำให้ข้อมูลตรงกัน ฉันหมายถึงเครื่องมือซอฟต์แวร์แนวปฏิบัติที่ดีที่สุด ฯลฯ FYI ทั้งสองภาษาคือ C ++ และ Java C ++ สำหรับ Windows / Linux และ Java สำหรับ "ทุกอย่างอื่น" รวมถึง Android

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