มีเครื่องมือการรีแฟคเตอร์ C ++ ที่ใช้งานได้หรือไม่ [ปิด]


161

ไม่มีใครรู้ว่าเครื่องมือ refactoring ที่โดดเด่นอย่างสมบูรณ์สำหรับ C ++ ที่ทำงานได้อย่างน่าเชื่อถือกับฐานรหัสขนาดใหญ่ (ประมาณ 100,000 บรรทัด)

ฉันลองอะไรก็ได้ที่ฉันสามารถหาได้ซ้ำแล้วซ้ำอีกในช่วงหลายปีที่ผ่านมา: SlickEdit, Eclipse CDT พวกเขาทั้งหมดไม่สามารถใช้งานได้เลย

สรุป : ฉันใช้เวลาและประเมินผล "Visual Assist X" เช่นเดียวกับ "Refactor for C ++" ทั้งคู่มีคุณสมบัติที่น่าประทับใจ แต่ทั้งคู่ก็ยังห่างไกลจากความสมบูรณ์แบบ การแยกรหัสขนาดใหญ่มักไม่ได้รับการแก้ไขหากไม่มีการแก้ไขด้วยตนเอง - ดังนั้นจึงไม่ได้ผล

"Visual Assist X" มีคุณสมบัติที่ดีเช่นการเติมข้อความอัตโนมัติที่สมบูรณ์มากขึ้น ฯลฯ แต่มันนำไปสู่การกะพริบมากและช้าลงมากในบางจุด

โดยความเห็นของฉันดังนั้นคำตอบคือ: "ไม่ไม่มีเครื่องมือการเตรียมการผลิตใหม่สำหรับ C ++"

อัปเดตมีนาคม 2558 สำหรับคำตอบ hdoghmens วันนี้ฉันลอง Resharper สำหรับ C ++ ลิงค์ของเขา https://www.jetbrains.com/resharper/ไม่ได้พูดอะไรเกี่ยวกับ C ++ แต่ฉันพบ Resharper C ++ ที่ประกาศมากกว่าปีที่แล้วที่นี่:

https://www.jetbrains.com/resharper/features/cpp.html

ฉันลองใช้ VC2010 โดยใช้ฐานรหัส 20MB

ทดสอบ 1: แยกวิธี: ผลลัพธ์ในข้อยกเว้น Resharper ไม่มีการเปลี่ยนแปลงซอร์สโค้ด

ทดสอบ 2: แยกวิธีด้วยแหล่งข้อมูลอื่น: ทำงานได้ดี

ทดสอบ 3: เปลี่ยนลายเซ็นของฟังก์ชันที่ดึงข้อมูล: ผลลัพธ์ในโค้ด C ++ ที่เสียหาย:

bool myclass::do_work123(<unknown long Color>int& Filled*&, long, int&)

อาจเป็นเพราะเหตุใด C ++ จึงไม่ปรากฏในหน้าหลัก

ตามความคิดของฉันตอบคำถามนี้ยังคงเป็น"ไม่"


11
รายการโปรดนี้ ปัญหาของ C ++ คือไวยากรณ์ที่ซับซ้อนและไวต่อบริบทมาก หากไม่มีการวิเคราะห์แหล่งที่มาแบบเต็มจริงคุณไม่สามารถมั่นใจได้ว่าตัวระบุหมายถึงอะไร
DevSolar

ดูเพิ่มเติมที่: stackoverflow.com/questions/249827/ …แต่มันมีอะไรให้คุณมากมาย
dmckee --- อดีตผู้ดูแล kitten

4
Eclipse ใช้งานได้ดีจริง ๆ คุณเพียงแค่ต้องอนุญาตให้ใช้หน่วยความจำเพิ่มเติมโดยการแก้ไข eclipse.ini
n0rd

3
หากคุณยังคงตรวจสอบเครื่องมือการเปลี่ยนโครงสร้างใหม่สำหรับ C ++ โปรดพิจารณาว่าขณะนี้ที่ JetBrains กำลังทำงานบนการสนับสนุน C ++ ใน ReSharperและข้ามแพลตฟอร์ม C ++ IDE แยกต่างหาก
Jura Gorohovsky

1
@RED SOFT ADAIR คุณมีชื่อเสียง ตรวจสอบyoutu.be/RT46MpK39rQ?t=1611
George C.

คำตอบ:


38

ฉันพบว่าVisual Assist Xพร้อม Visual Studio มีประโยชน์มาก ทางเลือกหนึ่งคือRefactor สำหรับ C ++


8
น่าเสียดายที่ Refactor สำหรับ C ++ ทำงานได้ไม่ดี (ถ้าเลย) กับ codebases ขนาดใหญ่
แดเนียลโรส

1
จะเกิดอะไรขึ้นกับ Refactor สำหรับ C ++ และฐานรหัสขนาดใหญ่
Ira Baxter

2
@IraBaxter มันเสียง่าย ตัวเลือกการรีแฟคเตอร์ไม่แสดงขึ้นมาหรือไม่เสร็จสมบูรณ์ มีข้อความผิดพลาดแปลก ๆ หรือไม่มีเลย
Daniel Rose

4
Refactor สำหรับ C ++ นั้นทำงานได้ไม่ดีแม้สำหรับ codebases ขนาดเล็กมันก็ใช้งานไม่ได้เลย
kovarex

3
@Nils: คุณสามารถให้ตัวอย่างที่เฉพาะเจาะจงเกี่ยวกับสิ่งที่มันไม่เข้าใจหรือไม่?
Ira Baxter

41

Visual Assistและ Visual Studio ช่วยให้การจัดการกับโค้ดฐานขนาดใหญ่ง่ายขึ้นมาก ทัศนวิสัยดีในการติดตามการใช้คลาสหรือสมาชิกและมีประสิทธิภาพมากขึ้นในการเปลี่ยนชื่อโดยไม่มีผลบวกปลอมกว่าการค้นหาและแทนที่


23

ฉันคาดหวังว่าเสียงดังกราวจะเปลี่ยนภูมิทัศน์ของเครื่องมือการฟื้นฟู C ++ อย่างมีนัยสำคัญภายในสองสามปี มันเป็นคอมไพเลอร์แบบโอเพนซอร์สที่เปิดเผย API สำหรับการวิเคราะห์คำและวิเคราะห์รหัส C ++ IDEs และเครื่องมืออื่น ๆ จะสามารถใช้ API นี้แทนการทำงานที่ยากลำบากในการเขียนโปรแกรมวิเคราะห์คำและ semantic Analyzer

Google อยู่แล้วทำเครื่องมือ refactoring ขนาดใหญ่โดยใช้เสียงดังกราว


2
แต่มีผลบางอย่างหรือไม่ที่มนุษย์นอก Google สามารถใช้งานได้?
Jan Hudec

1
@JanHudec: ดูบทช่วยสอนที่เชื่อมโยงจากที่นี่: comments.gmane.org/gmane.comp.compilers.clang.devel/23203
HighCommander4

17

Mozilla มีเครื่องมือ refactoring ของตัวเองชื่อ Pork ( Wiki , Developer Wiki ) ที่นี่คือบล็อกของนักพัฒนาที่อยู่เบื้องหลังหมู จากสิ่งที่ฉันได้อ่านหมูก็ประสบความสำเร็จในการใช้ refactorings ที่ Mozilla

หมูควรช่วยถ้าคุณมาจาก * nix land สำหรับ Visual Studio ฉันก็แนะนำ Visual Assist เช่นกัน


9

ชุดเครื่องมือการปรับโครงสร้างซอฟต์แวร์ DMSของเราเป็นเครื่องมือการแปลงที่ออกแบบมาเพื่อดำเนินการแปลงที่ซับซ้อนเหนือรหัสขนาดใหญ่รวมถึง C ++ มันถูกใช้เพื่อทำการเปลี่ยนแปลงที่เชื่อถือได้ในระบบของบรรทัดของรหัสนับล้าน ดำเนินงานโดยใช้เครื่องวิเคราะห์และเปลี่ยนค่าความถูกต้องของคอมไพเลอร์

มันมีตัวแยกวิเคราะห์ C ++ เต็มรูปแบบที่มีความละเอียดชื่อและประเภทสร้างรหัส AST สามารถใช้การแปลงขั้นตอนหรือแหล่งที่มา (กับไวยากรณ์พื้นผิว C ++) เพื่อแก้ไขต้นไม้เหล่านั้นและสร้างผลลัพธ์ที่คอมไพล์ด้วยความคิดเห็นที่เก็บรักษาไว้ (แก้ไข: 7/1/2554: ตอนนี้ C ++ 1X เท่าที่เราเข้าใจมาตรฐาน :)

มันถูกใช้ในโครงการการรื้อปรับโครงสร้างขนาดใหญ่รวมถึงการปรับโครงสร้างส่วนประกอบ C ++ และการแปลอัตโนมัติทั้งหมดระหว่าง langauges 100% คุณสามารถอ่านเกี่ยวกับเรื่องนี้ได้ที่เว็บไซต์

DMS ยังใช้ในการสร้างเครื่องมือวิเคราะห์แหล่งโดยพลการ ตัวอย่างเช่นการตรวจจับโคลน, การครอบคลุมการทดสอบ, ความแตกต่างที่ชาญฉลาด (การเปรียบเทียบโครงสร้างซอร์สโค้ดและการดำเนินการแก้ไขแบบนามธรรมแทนที่จะเป็นบรรทัดที่มีการแทรกและลบอย่างง่าย)

สิ่งที่ไม่ได้ (ปัจจุบัน) เป็นเครื่องมือการปรับโครงสร้างแบบโต้ตอบ เราเชื่อว่าในการทำ refactorings ให้ดีที่สุดคุณต้องมีการควบคุมอย่างลึกซึ้งและการวิเคราะห์ข้อมูล DMS มีเครื่องจักรทั่วไปเพื่อรองรับสิ่งนี้และเครื่องจักรนั้นถูกนำไปใช้กับ C, COBOL และ Java ณ จุดนี้โดยที่ C ++ นั้นจะอยู่ในลำดับถัดไป นี่เป็นงานที่ยาก คุณจะไม่เห็นเครื่องมือการปรับโครงสร้าง C ++ ที่จริงจังจำนวนมากจากใครจนกว่าปัญหาประเภทนี้จะได้รับการแก้ไขอย่างดี ก่อนอื่นคุณต้องใช้ตัวแยกวิเคราะห์ C ++ แบบเต็ม: -}

แก้ไข 7/5/2554: ดูเหมือนว่าเรากำลังจะวิ่งไปที่รุ่นโต้ตอบ เราได้รับรางวัลกระทรวงพลังงาน Phase I SBIR เพื่อตรวจสอบวิธีการนี้ ดูhttp://science.energy.gov/sbir/awards-and-general-stats/fy-2011/phase-i-by-state/?p=1#tx (ค้นหาการออกแบบความหมายภายใต้ "เท็กซัส") อย่าคาดหวังผลลัพธ์ที่จะรีบ นี่เป็นเพียงการเริ่มต้นของโปรแกรม 3 ปีหลายเฟสเพื่อไปยังเครื่องมือ

แก้ไข 8/11/2011: ความคืบหน้าครั้งแรก ... ตอนนี้เราจัดการ C ++ 0x และคำสั่ง OpenMP ทั้งหมด

แก้ไข 1/4/2012: ทำการวิเคราะห์โฟลว์คอนโทรลแบบสมบูรณ์ของโค้ด C ++

แก้ไข 9/15/2014: ตอนนี้มีตัวแยกวิเคราะห์ C ++ 14 ส่วนหน้า / เครื่องมือการแปลงในมือ แม้การเปลี่ยนชื่อจะทำได้อย่างน่าเชื่อถือ ณ จุดนี้: -}


ดูเหมือนจะไม่มีลิงค์สำหรับประเมินเครื่องมือนี้ในหน้าดาวน์โหลดของคุณsemanticdesigns.com/Products/RegisterEval.htmlรุ่นทดลองใช้และการกำหนดราคาพร้อมใช้งานในขณะนี้สำหรับ VS2010 หรือ VS2008 หรือไม่
SmacL

สำหรับเครื่องมือการปรับโครงสร้างใหม่ "อย่าคาดหวังผลลัพธ์ที่จะรีบ" งานวิจัยและพัฒนาระยะที่ 1 ของเราสิ้นสุดลงแล้วและเรากำลังสมัครขอทุนสำหรับระยะที่สอง หากต้องการหารือเกี่ยวกับ DMS และวิธีการประเมินโปรดติดต่อ บริษัท ไม่ใช่สิ่งที่คุณ "ดาวน์โหลดเพื่อประเมิน" ในลักษณะเดียวกับ Enterprise Oracle ไม่ใช่รายการดาวน์โหลด
Ira Baxter

... DMS สามารถแปลง VS2008 / VS2010 แต่ไม่ใช่เป็นเครื่องมือโต้ตอบและมีข้อ จำกัด เกี่ยวกับคำสั่งของตัวประมวลผลล่วงหน้า (ข่าวดีก็คือเราคิดว่าเราแก้ไขปัญหาสำคัญด้วยสิ่งเหล่านี้และจะนำไปใช้ในโครงการ R&D ระยะที่สอง)
Ira Baxter

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

3
... วัตถุประสงค์ของ DMS คือการเปิดใช้งานการเข้ารหัสและแอปพลิเคชันที่ปราศจากข้อผิดพลาดของการแปลงรหัสไม่ว่าจะเป็น "การเปลี่ยนโครงสร้าง" หรือ "ไม่" ใช่มันยากและเรายังไม่ได้มี เราใกล้ชิด IMNSHO มากกว่าเครื่องมืออื่น ๆ ที่ฉันเคยเห็นในภาษาซีพลัสพลัสและไม่มีอะไรผิดปกติกับรากฐานของเครื่องมือของเรา สิ่งที่เหลืออยู่คือปัญหาที่น่ารังเกียจกับตัวประมวลผลล่วงหน้าขนาดรหัสและความพยายามในการเขียนรหัสความหมายของ C ++ ที่จะช่วยให้สามารถทำการแปลงได้ และฉันจะเป็นคนแรกที่บอกว่านี่เป็นโครงการขนาดใหญ่
Ira Baxter

8

หากคุณกำลังใช้ emacs ลองXrefactory สนับสนุนวิธีการแยกเปลี่ยนชื่อคลาส / ฟังก์ชั่น / ตัวแปรและแทรก / ลบ / ย้ายพารามิเตอร์นอกจากนี้ยังมีเอ็นจิ้นการเติมโค้ดที่ดีมาก / รวดเร็ว


6

ขณะนี้ฉันไม่สามารถแนะนำใด ๆเครื่องมือ refactoring สำหรับ C ++ ไม่แน่นอนสำหรับรหัสฐานใหญ่ของ 100k เส้นและข้างต้น ฉันหวังว่าสิ่งนี้จะเปลี่ยนแปลงเช่นเดียวกับ OP และฉันหวังว่าสักวันหนึ่งจะมีบางอย่าง ฉันกลัวว่าภาษาเองอาจต้องเปลี่ยนอย่างมีนัยสำคัญก่อนที่เราจะเห็นเครื่องมือที่ดีจริงๆ

btw, SlickEdit ได้ลดคุณสมบัติการรีแฟคเตอร์หรือไม่?


ภาษาไม่เปลี่ยนแปลงอย่างมีนัยสำคัญกับการเปิดตัวของ C ++ 2011 มาตรฐาน ภาวะแทรกซ้อนเพิ่มเติมทำให้ปัญหายากขึ้นไม่ใช่เรื่องง่ายเพราะผู้ใช้ทุกคนจะต้องการฟีเจอร์ภาษาขั้นสูงและความสามารถในการรีแฟคเตอร์: - {
Ira Baxter

2
เมื่ออ่านความสามารถของ Slickedit เมื่อเร็ว ๆ นี้ปรากฏว่ามีการกำหนดนิยามที่สอดคล้องกับการใช้ชื่อโดยวิธีการแก้ปัญหา มันไม่ทำการค้นหาชื่อ C ++ "ถูกต้อง" ซึ่งหมายความว่าคุณไม่สามารถเชื่อถือการเปลี่ยนแปลงที่ถูกต้องได้ หากคุณไม่รังเกียจที่จะตรวจสอบการทำงานของมันอาจจะโอเคสำหรับคุณ สำหรับแพ็คเกจซอฟต์แวร์ที่มีขนาดใหญ่มากอาจไม่ดี ความคิดเห็นของฉัน.
Ira Baxter

4

ฉันแนะนำให้ลองrtagsหากคุณใช้ emacs และยังไม่ได้ลองเลย (นอกจากนี้ยังมีแพ็คเกจสำหรับกลุ่มที่มีให้เลือก) มันเป็นโปรแกรมไคลเอนต์ / เซิร์ฟเวอร์ที่ใช้เสียงดังกราวซึ่งทำดัชนีรหัส C / C ++ พร้อมคุณสมบัติเหล่านี้:

  • ไปที่คำนิยาม / ประกาศ
  • ค้นหาการอ้างอิงทั้งหมดไปที่ถัดไป / ก่อนหน้า
  • เปลี่ยนชื่อสัญลักษณ์
  • การรวมเข้ากับ "การแก้ไข" ของเสียงดังกราว

ฉันตัดสินใจลองหลังจากดูการสนทนานี้ซึ่งแนะนำ rtags (และ emacs) สำหรับฉัน

(ฉันต้องบอกว่าฉันไปได้ไกลแค่นี้หลังจาก QtCreator ของฉันไม่สามารถเปลี่ยนชื่อสัญลักษณ์บางอย่างได้อย่างถูกต้องซึ่งเป็นการแสดงแบบจุกสำหรับการใช้ IDE ที่ยอดเยี่ยมของฉันตอนนี้)

นอกจากสิ่งที่ rtags รองรับแล้วฉันยังต้องการคุณสมบัติที่เป็นระเบียบเพิ่มเติม ได้แก่ :

  • สร้างนิยามฟังก์ชัน / ต้นแบบ
  • สารสกัดจากฟังก์ชั่น
  • สร้างเมธอด getter / setter

สำหรับสิ่งเหล่านี้ฉันแนะนำให้ใช้แพ็คเกจsemantic-refactorสำหรับ emacs (ไม่แน่ใจว่ามีทางเลือกสำหรับ vim)

โดยทั่วไปเครื่องมือที่ใช้เสียงดังกราวมีแนวโน้มที่ดีมาก หากคุณมีความสนใจในข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือเสียงดังกราวสำหรับ C ++ refactoring รวมทั้งสำหรับโครงการที่มีขนาดใหญ่ codebase มีบางอย่าง ที่ดีการเจรจาโดยแชนด์เลอคาร์รู ธ


3

เครื่องมือซอฟต์แวร์ DMS rengineeringทำอย่างนี้ผมคิดว่า มันเป็นเอ็นจิ้นการแปลงรหัสออกแบบมาสำหรับขนาดใหญ่และจัดการกับ C ++ ไม่มีความคิดว่าผลลัพธ์ที่ออกมานั้นสวยงามเพียงใด


1
DMS ถูกนำมาใช้เพื่อทำให้การออกแบบใหม่ของรหัส C ++ เป็นไปโดยอัตโนมัติ ดู Akers, R. , Baxter, I. , Mehlich, M. , Ellis, B. , Luecke, K. , กรณีศึกษา: โมเดลวิศวกรรม C ++ ใหม่ผ่านการแปลงโปรแกรมอัตโนมัติ, เทคโนโลยีสารสนเทศและซอฟต์แวร์ 49 (3): 275 -291 2007 มีให้จากผู้จัดพิมพ์
Ira Baxter

Dunno คุณหมายถึงอะไรโดย "เอาท์พุทที่สง่างาม" ผลลัพธ์ที่คุณได้รับจาก DMS จะชัดเจนขึ้นกับสิ่งที่คุณให้และการเปลี่ยนแปลงที่คุณใช้ หากการแปลงไม่ได้สัมผัสส่วนหนึ่งของรหัสส่วนหนึ่งของรหัสนั้นจะสวยงามหรือไม่เหมือนเดิม ถ้ามันสัมผัสรหัสความงดงามจะถูกกำหนดโดยวิธีการแปลงที่ฉลาดเช่นเดียวกับการเปลี่ยนแปลงด้วยตนเองของ coder ฉันไม่คิดว่านี่คือความสง่างาม แต่การจัดรูปแบบของผลลัพธ์อาจเป็นการพิมพ์ "ความเที่ยงตรง" (รูปแบบดั้งเดิม) หรือรูปแบบการพิมพ์สวยที่กำหนดไว้
Ira Baxter

2

หนึ่งแน่นอนต้องพูดถึงKlocworkเป็นชุดการปรับโครงสร้างรหัสเชิงพาณิชย์ มันดูดีมากเมื่อคุณดูวิดีโอตัวอย่าง


2

ปัญหาคือแม่แบบ C ++ ตั้งแต่ 2019 ฉันไม่ได้ตระหนักถึงเครื่องมือ refactoring ใด ๆ ที่รองรับเทมเพลต C ++ ฉันได้ลอง VS2019, VisualAssist, Clion, QtCreator แล้ว

พิจารณาตัวอย่าง:

#include <iostream>

struct foo { void print() {} };
struct bar { void print() {} };

template <typename T>
void call_print(T&& v) { v.print(); }

void print() {}

int main()
{
    call_print(foo{});
    call_print(bar{});
    return 0;
}

ถ้าผมทำงาน refactoring เปลี่ยนชื่อบนfoo::print, bar::printควรจะเปลี่ยนชื่อโดยอัตโนมัติ เพราะมันถูกเชื่อมโยงผ่านcall_printอินสแตนซ์ของฟังก์ชันแม่แบบ


1

หากคุณใช้ Visual C ++ (รุ่น Express ฟรี) คุณสามารถใช้Visual Assist จาก www.wholetomato.com (ลิงก์ไปยังคุณลักษณะการเปลี่ยนโครงสร้างของ C ++)

มันมีระยะเวลาทดลองใช้ 30 วันและเราพบว่ามันเร็วกว่าและเต็มไปด้วยคุณสมบัติที่ Intellisense ในตัวในผลิตภัณฑ์ Visual C ++


2
ฉันไม่คิดว่าคุณจะสามารถใช้ปลั๊กอินกับรุ่นด่วนได้
Yacoby

3
ฉันพยายามติดตั้ง VA ด้วย VS C ++ ในอดีตอย่างแน่นอนและไม่ได้ผล
quamrana

คุณไม่สามารถติดตั้งปลั๊กอิน Visual Studio ในโหมดแยกได้ (รุ่น Express ทั้งหมดเรียกใช้ IDE ในโหมดแยก) หากคุณเป็นนักเรียนคุณสามารถดาวน์โหลด Visual Studio เวอร์ชันเต็มได้จากDreamSparkหรือ MSDNAA
Billy ONeal

1

หากคุณต้องการรื้อฐานโค้ดของคุณ: MOOSE แต่นั่นเป็นคอลเลกชันขนาดใหญ่ของการวิเคราะห์และเครื่องมือการปรับรื้อใหม่ไม่ใช่เครื่องมือแก้ไข


1

ขณะนี้มีนามสกุล C ++ refactoring สำหรับ Visual Studio 2013 จาก Microsoft: http://visualstudiogallery.msdn.microsoft.com/164904b2-3b47-417f-9b6b-fdd35757d194


ใช่ฉันเคยเห็นสิ่งนี้แล้ว แต่เป็นเพียงความพยายามครั้งแรกและครอบคลุมเฉพาะ "เปลี่ยนชื่อ" ไม่มีฟังก์ชั่นการแยก ฯลฯ แต่ฉันรอคอยที่จะมาอีก ...
RED SOFT ADAIR

1

definetely Resharper ที่ดีที่สุดคือวิธีที่จะไป รับประกันความสุข :)

ในรุ่นเบต้า ณ มีนาคม 2015


ในที่สุดฉันก็ลองและอัปเดตคำถามของฉัน ขอบคุณอยู่ดี
RED SOFT ADAIR

นี่สำหรับ NET .... ไม่ใช่ C ++
wcochran


1

CLionดูมีแนวโน้มมาก

ข้อจำกัดความรับผิดชอบ: ฉันยังไม่ได้ลองเลยเพราะฉันต้องแปลงโครงการเป็นรูปแบบ CMake เพื่อใช้งาน


1

ผมขอแนะนำให้คุณพยายามLattix ช่วยให้คุณสามารถวิเคราะห์โคเด็น C / C ++ ขนาดใหญ่เพื่อค้นหาภาพจำลองระบุการอ้างอิงที่มีปัญหาและกำหนดรหัสใหม่เพื่อปรับปรุงแบบแยกส่วนและลดหนี้ทางเทคนิค Lattix ยังมีอัลกอริทึมจำนวนมากเพื่อช่วยในกระบวนการ refactoring อัลกอริทึมเหล่านี้ช่วยให้คุณทราบวิธีย้ายองค์ประกอบจากส่วนหนึ่งของลำดับชั้นไปยังอีกองค์ประกอบหนึ่งเพื่อแบ่งวงจรและย้ายระบบย่อยเพื่อให้การเชื่อมต่อและการทำงานร่วมกันของระบบย่อยสามารถปรับปรุงได้ นี่คือผลลัพธ์ของ Lattix ที่วิเคราะห์เคอร์เนล Android (1.6 ล้าน LOC ของ C / C ++) การเปิดเผยแบบเต็ม: ฉันทำงานให้กับ Lattix


1

ขออภัยที่พบเพียงคำถามนี้ช้า นักเรียนและผู้ช่วยของฉันทำงานในการรีแฟคเตอร์ C ++ ตั้งแต่ปี 2549 ส่วนใหญ่ของโครงสร้างพื้นฐานการสร้าง CDTs ส่วนใหญ่ถูกสร้างขึ้นโดยทีมงานของฉันที่สถาบันซอฟต์แวร์ของ IFS ตั้งแต่สองสามปีที่เราให้ Cevelop เวอร์ชัน CDT ของเราด้วยการสนับสนุนการปรับโครงสร้างโค้ด C ++ ให้ทันสมัย ​​Cevelop สามารถทำงานกับฐานรหัสขนาดใหญ่ได้หากตั้งค่าพื้นที่ทำงานอย่างถูกต้อง ฟรีที่https://cevelop.com


น่าสนใจมาก. ฉันดาวน์โหลดมันและจะไม่เริ่มต้น โปรดดูgithub.com/Cevelop/Issues/issues/84
RED SOFT ADAIR

0

ฉันพบปลั๊กอินต่อไปนี้สำหรับ Visual Studio 2013: Visual C ++ Refactoringโดย Microsoft

มันเป็นเครื่องมือเปลี่ยนชื่อง่ายๆ แต่ใช้งานได้อย่างไร้ที่ติ มันเพิ่มเมนูบริบทต่อไปนี้หลังจากคลิกขวาที่สัญลักษณ์:

ป้อนคำอธิบายรูปภาพที่นี่

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