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

คำถามเกี่ยวกับภาษารหัสหรือแอปพลิเคชันดั้งเดิม

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

5
ประเด็นสำคัญของการทำงานอย่างมีประสิทธิภาพด้วยรหัสมรดกคืออะไร [ปิด]
ฉันเคยเห็นหนังสือทำงานอย่างมีประสิทธิภาพด้วยรหัสมรดกแนะนำสองสามครั้ง ประเด็นสำคัญของหนังสือเล่มนี้คืออะไร? มีการจัดการกับรหัสดั้งเดิมมากกว่าการเพิ่มการทดสอบหน่วย / การรวมและการเปลี่ยนโครงสร้างอีกครั้งหรือไม่

11
วิธีปฏิบัติที่ดีที่สุดสำหรับการมอบรหัสดั้งเดิม
ในอีกไม่กี่เดือนเพื่อนร่วมงานจะย้ายไปที่โครงการใหม่และฉันจะสืบทอดโครงการหนึ่งของเขา เพื่อเตรียมความพร้อมผมได้สั่งซื้อไมเคิล Feathers' แล้วการทำงานอย่างมีประสิทธิภาพกับรหัสมรดก แต่หนังสือเล่มนี้และคำถามส่วนใหญ่เกี่ยวกับรหัสดั้งเดิมที่ฉันพบจนถึงขณะนี้มีความกังวลเกี่ยวกับกรณีที่รับรหัสตามที่เป็นอยู่ แต่ในกรณีนี้ฉันสามารถเข้าถึงนักพัฒนาดั้งเดิมได้จริงและเรามีเวลาสำหรับการส่งมอบอย่างเป็นระเบียบ พื้นหลังบางส่วนของรหัสฉันจะสืบทอด: มันใช้งานได้:ไม่มีบั๊กที่รู้จัก แต่เมื่อความต้องการด้านประสิทธิภาพเพิ่มขึ้นเรื่อย ๆ การเพิ่มประสิทธิภาพบางอย่างจะกลายเป็นสิ่งจำเป็นในอนาคตอันใกล้ ไม่มีเอกสาร:มีเอกสารจำนวนมากที่วิธีและระดับชั้น สิ่งที่รหัสควรจะทำในระดับที่สูงขึ้น แต่เป็นที่เข้าใจกันดีเพราะฉันได้เขียนกับ API ของมัน (เป็นกล่องดำ) มานานหลายปี เฉพาะการทดสอบบูรณาการระดับสูงกว่า:มีเพียงการทดสอบการรวมระบบที่ทดสอบการมีปฏิสัมพันธ์ที่เหมาะสมกับส่วนประกอบอื่น ๆ ผ่านทาง API (อีกครั้งกล่องดำ) ระดับต่ำมากเหมาะสำหรับความเร็ว:เนื่องจากรหัสนี้เป็นศูนย์กลางของระบบแอพพลิเคชั่นทั้งหมดจึงมีการปรับให้เหมาะสมหลายครั้งในช่วงหลายปีที่ผ่านมาและต่ำมาก (ส่วนหนึ่งมีตัวจัดการหน่วยความจำของตัวเองสำหรับ struct บางตัว / บันทึก) พร้อมกันและล็อคฟรี:ในขณะที่ฉันคุ้นเคยกับการเขียนโปรแกรมพร้อมกันและล็อคฟรีและมีส่วนร่วมในรหัสนี้จริง ๆ แล้วก็เพิ่มความซับซ้อนอีกชั้นหนึ่ง โค้ดเบสขนาดใหญ่:โปรเจ็กต์นี้มีโค้ดมากกว่าหมื่นบรรทัดดังนั้นจึงไม่มีทางที่ฉันจะสามารถอธิบายทุกอย่างให้ฉันได้ เขียนใน Delphi:ฉันแค่จะเอามันออกไปถึงแม้ว่าฉันไม่เชื่อว่าภาษาจะเป็นคำถามที่ตรงไปตรงมาเนื่องจากฉันเชื่อว่าปัญหาประเภทนี้จะเป็นผู้ไม่เชื่อเรื่องภาษา ฉันสงสัยว่าจะใช้เวลานานเท่าไหร่จนกว่าเขาจะจากไป นี่คือแนวคิดสองสามข้อ: รับทุกสิ่งที่จะสร้างบนเครื่องของฉัน:แม้ว่าทุกอย่างจะต้องถูกตรวจสอบในการควบคุมซอร์สโค้ด แต่ก็ยังไม่ลืมที่จะเช็คอินไฟล์เป็นครั้งคราวดังนั้นนี่อาจเป็นลำดับแรกของธุรกิจ การทดสอบเพิ่มเติม:ในขณะที่ฉันต้องการการทดสอบระดับหน่วยเพิ่มเติมเพื่อที่ว่าเมื่อฉันจะทำการเปลี่ยนแปลงข้อบกพร่องใด ๆ ที่ฉันแนะนำสามารถถูกดักจับ แต่เนิ่นๆรหัสที่ตอนนี้ไม่สามารถทดสอบได้ (คลาสขนาดใหญ่วิธีการที่ยาวมากเกินไป การพึ่งพาซึ่งกันและกัน) เอกสารอะไร:ฉันคิดว่าสำหรับผู้เริ่มต้นจะเป็นการดีที่สุดที่จะมุ่งเน้นไปที่เอกสารในพื้นที่เหล่านั้นในรหัสที่จะเข้าใจได้ยากเช่นเนื่องจากลักษณะต่ำ / มีการปรับให้เหมาะสมสูง ฉันกลัวว่ามีบางสิ่งในนั้นที่อาจดูน่าเกลียดและต้องการ refactoring …

10
รหัสคือ "มรดก" เมื่อใด [ปิด]
เราทำเสร็จแล้วเราติดป้ายกำกับโค้ด (บ่อยครั้งที่เราสืบทอดมา) เป็น "มรดก"? แต่มันยังคงใช้ในระบบการผลิต - ดังนั้นมันจึงเป็นมรดกจริงๆ และอะไรทำให้เป็นมรดก หากเราควรหลีกเลี่ยงการติดฉลากที่ไม่มีเหตุผลรับรองของรหัสการทำงานที่สมบูรณ์แบบ การติดฉลากเป็นสิ่งที่มั่นใจได้อย่างแท้จริงซึ่งทำให้เราสามารถผลักดันสิ่งใหม่ ๆ และทำให้ผู้บริหารระดับสูงมีความสุขและมีความสุข? สรุปคำตอบ เมื่อมองผ่านคำตอบที่ฉันเห็นสี่รูปแบบทั่วไป นี่คือที่ฉันเห็นรายละเอียด: รหัสใด ๆ ที่ถูกส่ง: 6 ระบบที่ตายแล้ว: 2.5 ไม่มีการทดสอบหน่วย: 2 นักพัฒนาไม่ได้อยู่ที่: 1.5

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

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

8
อะไรคือข้อดีของการพัฒนาด้วยเทคโนโลยีที่ล้าสมัย? [ปิด]
พื้นหลังเล็กน้อย : ฉันทำงานที่ บริษัท ใหญ่โดยใช้ Windows XP และการเข้ารหัส Winforms ใน VB6 / VB.Net และ WebForms บางส่วนใน VB.Net (รหัสบำรุงรักษา 95%) ฉันมีหน้าจอขนาด 4: 3 19 "หนึ่ง Windows รุ่นใหม่ที่ทันสมัยกว่านี้ไม่ได้เกิดขึ้นเร็ว ๆ นี้ไม่มีเสียงกรีนฟิลด์ใด ๆ ทำงานตามเสียงของมัน! ฉันไม่ได้บอกอะไรเกี่ยวกับสิ่งนี้เมื่อฉันเข้าร่วม บริษัท ฉันเข้าใจผิดว่าฉันจะทำงานกับเทคโนโลยีและกรอบการทำงานที่ทันสมัยมากขึ้น ฉันมีประสบการณ์ที่ทันสมัยมากขึ้นจากงานก่อนหน้านี้ทั้งกับกรอบการทำงานที่ทันสมัยและภาษาการเขียนโปรแกรมอื่น ๆ และเมื่อฉันติดต่อกับเพื่อนนักพัฒนาจาก บริษัท อื่น ๆ ทั้งหมดที่ฉันได้ยินคือพวกเขาใช้เฟรมเวิร์ก ASP MVC ล่าสุดหรือ Vagrant / Ruby on Rails / etc …
28 skills  legacy 

5
ปัญหาใดที่ทำให้คนใช้การเข้ารหัสเฉพาะภาษาญี่ปุ่นมากกว่า Unicode
ที่ทำงานฉันเจอไฟล์ข้อความภาษาญี่ปุ่นจำนวนมากใน Shift-JIS และการเข้ารหัสอื่น ๆ มันทำให้เกิดปัญหาmojibake (อักขระที่อ่านไม่ได้) จำนวนมากสำหรับผู้ใช้คอมพิวเตอร์ทุกคน Unicode มีวัตถุประสงค์เพื่อแก้ไขปัญหานี้โดยการกำหนดชุดอักขระเดียวสำหรับทุกภาษาและแนะนำให้ใช้ serialization UTF-8 สำหรับการใช้งานบนอินเทอร์เน็ต เหตุใดทุกคนจึงไม่เปลี่ยนจากการเข้ารหัสเฉพาะภาษาญี่ปุ่นเป็น UTF-8 ปัญหาอะไรหรือข้อเสียของ UTF-8 กำลังชักจูงผู้คนให้กลับมา? แก้ไข: W3C แสดงปัญหาที่ทราบเกี่ยวกับ Unicodeนี่อาจเป็นเหตุผลด้วยหรือไม่

4
แนวทางปฏิบัติที่ดีที่สุดสำหรับการดัดแปลงรหัสดั้งเดิมด้วยการทดสอบอัตโนมัติ
ฉันกำลังจะใช้งานอินเทอร์เฟซที่กำหนดไว้แล้วอีกครั้ง (ชุดของไฟล์ส่วนหัว C ++) ในฐานรหัสที่ค่อนข้างใหญ่และเก่า ก่อนที่จะทำสิ่งนี้ฉันต้องการให้มีการครอบคลุมการทดสอบที่สมบูรณ์ที่สุดเท่าที่จะเป็นไปได้ดังนั้นฉันจึงสามารถตรวจสอบข้อผิดพลาดในการนำมาใช้ใหม่ได้อย่างรวดเร็วและง่ายดายที่สุด ปัญหาคือฐานรหัสที่มีอยู่แล้วไม่ได้ถูกออกแบบมาให้ทดสอบได้ง่ายโดยมีคลาสและฟังก์ชั่นขนาดใหญ่มากการมีเพศสัมพันธ์ในระดับสูงฟังก์ชั่นที่มีผลข้างเคียงอื่น ๆ อีกมากมาย มันจะเป็นการดีหากได้ยินประสบการณ์ก่อนหน้านี้เกี่ยวกับงานที่คล้ายกันและเคล็ดลับที่ดีและเป็นรูปธรรมเกี่ยวกับวิธีที่คุณดำเนินการเกี่ยวกับการปรับเปลี่ยนการทดสอบอัตโนมัติ (หน่วยการผสานรวมการถดถอย ฯลฯ ) ให้เป็นรหัสดั้งเดิมของคุณ
22 testing  legacy 

6
การเพิ่มการทดสอบหน่วยมีเหตุผลสำหรับรหัสดั้งเดิมที่รู้จักกันดีหรือไม่
ฉันกำลังพูดถึงการทดสอบหน่วยในความหมาย TDD (ไม่ใช่ "การรวม" โดยอัตโนมัติหรือสิ่งที่คุณต้องการเรียกว่าการทดสอบ) รหัสดั้งเดิมในรหัส (C ++) โดยไม่มีการทดสอบ (ดู: Michael Feathers ' ทำงานอย่างมีประสิทธิภาพด้วยรหัสดั้งเดิม ) แต่ยังเป็นรหัสดั้งเดิมใน: รหัสที่ทีมของเราทำงานด้วยกันมา 10-5 ปีที่ผ่านมาดังนั้นเราจึงมักจะมีความคิดที่ดีเกี่ยวกับสถานที่ที่จะนำสิ่งต่าง ๆ มาเปลี่ยนอะไรบางอย่าง เรามีการทดสอบหน่วยในสถานที่ (ผ่าน Boost.Test) สำหรับบางโมดูลที่มาในภายหลังหรือเป็นแบบ "ธรรมชาติ" สำหรับการทดสอบหน่วย (เช่นคอนเทนเนอร์เฉพาะแอปทั่วไปสตริงสิ่งผู้ช่วยเครือข่าย ฯลฯ ) เรายังไม่มีการทดสอบการยอมรับอัตโนมัติที่เหมาะสม ตอนนี้เมื่อเร็ว ๆ นี้ฉันมี "ความสุข" ที่จะใช้คุณสมบัติใหม่ 3 อย่างที่ผู้ใช้งานต้องเผชิญ แต่ละคนใช้เวลาประมาณ 1-2 ชั่วโมงในการเร่งความเร็วด้วยส่วนรหัสที่ฉันต้องการเปลี่ยน 1-2 ชั่วโมงชั่วโมงในการใช้รหัส (เล็กน้อย) ที่ฉันต้องเปลี่ยนและอีก 1-2 ชั่วโมงเพื่อให้แน่ใจว่าแอป วิ่งอย่างถูกต้องในภายหลังและมันก็ควรจะทำ ตอนนี้ฉันเพิ่มรหัสเล็กน้อย (ฉันคิดว่าวิธีหนึ่งและสองสามบรรทัดสำหรับแต่ละคุณสมบัติ) …
21 c++  tdd  legacy  unit-testing 

7
รหัสฐานขนาดใหญ่ที่ Fortran สามารถบีบอัดให้ทันสมัยได้อย่างไร?
เพื่อนในสถาบันการศึกษาขอคำแนะนำจากฉัน (ฉันเป็นนักพัฒนาแอปพลิเคชันทางธุรกิจ C #) เขามี codebase ดั้งเดิมซึ่งเขาเขียนที่ Fortran ในวงการถ่ายภาพทางการแพทย์ การบีบอัดตัวเลขเป็นจำนวนมากโดยใช้เวกเตอร์ เขาใช้คลัสเตอร์ (30ish cores) และตอนนี้ได้เข้าสู่เวิร์กสเตชันเดียวที่มี 500ish GPUS ในนั้น อย่างไรก็ตามจะไปที่ไหนต่อไปกับ codebase ดังนั้น: คนอื่นสามารถรักษามันไว้ได้ในรอบ 10 ปีถัดไป เร็วขึ้นเมื่อปรับแต่งซอฟต์แวร์ สามารถทำงานบนโครงสร้างพื้นฐานที่แตกต่างกันโดยไม่ต้องคอมไพล์ใหม่ หลังจากการวิจัยจากฉัน (นี่คือพื้นที่ที่น่าสนใจสุด ๆ ) บางตัวเลือกคือ: ใช้ Python และCUDAจากNvidia เขียนซ้ำในภาษาที่ใช้งานได้ ตัวอย่างเช่นF #หรือHaskell ใช้ระบบคลาวด์และใช้บางอย่างเช่นHadoopและ Java เรียนรู้ค ประสบการณ์ของคุณเกี่ยวกับสิ่งนี้คืออะไร? สิ่งที่เพื่อนของฉันควรจะดูเพื่อปรับปรุง codebase ของเขาให้ทันสมัย อัปเดต: ขอบคุณ @ Mark และทุกคนที่ได้ตอบ เหตุผลที่เพื่อนของฉันถามคำถามนี้ก็คือเวลาที่เหมาะสมในระยะเวลาโครงการเพื่อทำการตรวจสอบ การนำผู้ช่วยวิจัยมาให้เร็วขึ้นใน …
21 math  legacy  fortran 

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

5
เอด้าหายไปจริงๆหรือ
ผู้คนยังใช้ Ada - (ส่วนใหญ่ใช้ในกระทรวงกลาโหม) แอปพลิเคชันทั้งหมดเขียนด้วย Ada "Legacy" หรือไม่ ความรู้ของ Ada ยังคงขายอยู่หรือไม่
17 legacy  ada 

4
Classic ASP เป็น ASP.net หรือ ASP.net MVC
เรามีเว็บแอพพลิเคชั่นที่พัฒนาใน ASP คลาสสิกและมันพัฒนามานานกว่า 5 ปีในรูปแบบปัจจุบันซึ่งมี 100 หน้า, ฐานข้อมูลขนาดใหญ่และผู้ใช้งานมากกว่า 10,000 คนที่ต้องผ่านอย่างน้อย 10 หน้าต่อวัน ตอนนี้เราต้องการอัพเกรดเป็น. net รุ่นล่าสุด เริ่มแรกเราคิดว่าการเขียนแอพใหม่ทั้งหมด แต่หลังจากวิเคราะห์สถานการณ์แล้วเราพบว่าไม่ใช่ตัวเลือกที่ใช้การได้และผู้เชี่ยวชาญหลายคนยังไม่แนะนำ เรายังไม่ได้ตัดสินใจว่าจะทำในสิ่งอื่นอย่างไร แต่มีความคิดบางอย่างเกี่ยวกับวิธีการเขียนใหม่บนใบหน้า ตัวเลือกที่ 1: เราคิดว่าจะระบุโมดูลหลักในแอปพลิเคชันนี้และเขียนใหม่ทีละรายการโดยแยกแอปพลิเคชันออกเป็นเลเยอร์ต่าง ๆ เช่นฐานข้อมูล (ปัจจุบัน) จากนั้นตรรกะทางธุรกิจและมุมมอง วิธีนี้โมดูลที่พัฒนาขึ้นใหม่จะถูกเพิ่มไปยังระบบที่มีอยู่และหน้าใหม่จะแทนที่หน้าเก่าในโมดูลนั้น ในเวลาเดียวกันเราสามารถทดสอบเลเยอร์ใหม่พร้อมกับระบบเก่าและปล่อยพวกเขาเมื่อเรารู้สึกมั่นใจ นอกจากนี้เรายังคิดถึงการพัฒนาโครงสร้าง API สำหรับตรรกะทางธุรกิจซึ่งจะสามารถเข้าถึงได้โดยดูเป็นแอปพลิเคชันภายนอก ตัวเลือกที่ 2: ในขณะนี้เราได้ทำโมดูลอย่างง่ายและใช้มันในหน้า ASP คลาสสิกผ่าน IFrame แม้ว่ามันจะค่อนข้างลำบากในการส่งข้อมูลระหว่าง ASP คลาสสิกและหน้าใหม่ใน IFrame นี่เป็นเพียงในขั้นตอนการวางแผนว่าเราควรบรรลุการเขียนใหม่ของแอปพลิเคชันทั้งหมดโดยไม่รบกวนฐานผู้ใช้อย่างไร ฉันต้องการรับมุมมองโปรแกรมเมอร์ความคิดเห็นและข้อเสนอแนะอื่น ๆ ที่เราควรเข้าใกล้ในสถานการณ์ดังกล่าว? หากใครประสบสถานการณ์เช่นนี้กรุณาแบ่งปันความคิดเห็นของคุณด้วย อยากทราบว่าการใช้ ASP.net MVC จะช่วยฉันได้อย่างไร …

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

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