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

การปรับโครงสร้างใหม่เป็นเทคนิคที่มีระเบียบวินัยในการปรับโครงสร้างโค้ดที่มีอยู่โดยปรับเปลี่ยนโครงสร้างภายในโดยไม่เปลี่ยนพฤติกรรมภายนอก คำถามปลายเปิดเกี่ยวกับการปรับโครงสร้างโค้ดของคุณนั้นไม่ตรงประเด็นสำหรับ Stack Overflow อย่างไรก็ตามคำถามเหล่านี้อาจเหมาะสมสำหรับการตรวจสอบโค้ด

23
วิธีใดที่ดีที่สุดในการปรับโครงสร้างเมธอดที่มีพารามิเตอร์ (6+) มากเกินไป
บางครั้งฉันเจอวิธีการที่มีพารามิเตอร์จำนวนไม่เพียงพอ บ่อยกว่านั้นพวกเขาดูเหมือนจะเป็นผู้สร้าง ดูเหมือนว่าน่าจะมีวิธีที่ดีกว่านี้ แต่ฉันมองไม่เห็นว่ามันคืออะไร return new Shniz(foo, bar, baz, quux, fred, wilma, barney, dino, donkey) ฉันเคยคิดที่จะใช้โครงสร้างเพื่อแสดงรายการพารามิเตอร์ แต่ดูเหมือนว่าจะเปลี่ยนปัญหาจากที่หนึ่งไปยังอีกที่หนึ่งและสร้างประเภทอื่นในกระบวนการ ShnizArgs args = new ShnizArgs(foo, bar, baz, quux, fred, wilma, barney, dino, donkey) return new Shniz(args); ดูเหมือนว่าจะไม่ดีขึ้น แล้วแนวทางที่ดีที่สุดคืออะไร?
102 refactoring 

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

1
แยกวิธีไปยังอินเทอร์เฟซที่มีอยู่แล้วด้วย ReSharper
ฉันกำลังเพิ่มเมธอดใหม่ในคลาสที่ใช้อินเทอร์เฟซและฉันต้องการใช้การรีแฟคเตอร์ "Extract Interface" และเพิ่มเมธอดลงในอินเทอร์เฟซ แต่ดูเหมือนว่า ReSharper ไม่รองรับการเพิ่มลายเซ็นวิธีการในอินเทอร์เฟซที่มีอยู่แล้ว รู้สึกเหมือนขาดอะไรไปฉันแน่ใจว่าทำได้ บางทีฉันควรเพิ่มลายเซ็นวิธีการลงในอินเทอร์เฟซก่อน แต่นี่เป็นวิธีที่ฉันใช้ในบางครั้ง ฉันพลาดช็อตคัทฟีเจอร์หรือใช้ ReSharper ผิดหรือเปล่า

14
Refactoring ใน Vim
แน่นอนความจริงที่ว่าคุณสามารถ refactor บน IDE ได้นั้นไม่มีค่าสำหรับหลาย ๆ คนฉันแทบจะไม่เคยทำเลยเมื่อฉันเขียนโค้ด แต่ฉันอาจลองทำเมื่อแก้ไขแหล่งที่มาของคนอื่น คุณจะทำงานที่ไม่สำคัญเช่นนี้ในหลายไฟล์ใน Vim ได้อย่างไร? ฉันพบปลั๊กอินนี้สำหรับการปรับโครงสร้าง Ruby แต่ภาษา "ใดก็ได้" ล่ะ
100 vim  refactoring 

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

30
คุณใช้เทมเพลตสด ReSharper 4+ อะไรสำหรับ C # [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา คุณใช้เทมเพลต ReSharper 4.0 อะไรสำหรับC # มาแบ่งปันกันในรูปแบบต่อไปนี้: [หัวข้อ] คำอธิบายเพิ่มเติม ทางลัด:ทางลัด มีให้ใน: [AvailabilitySetting] // Resharper template code snippet // comes here คุณสมบัติมาโคร (ถ้ามี): Macro1 - ค่า - EditableOccurence Macro2 - ค่า - EditableOccurence โปรดหนึ่งมาโครต่อคำตอบ! ต่อไปนี้เป็นตัวอย่างบางส่วนสำหรับอุปกรณ์ทดสอบ NUnitและกรณีทดสอบ NUnit แบบสแตนด์อโลนที่อธิบายเทมเพลตสดในรูปแบบที่แนะนำ

8
แทนที่องค์ประกอบสตริงหลายรายการใน C #
มีวิธีที่ดีกว่านี้ไหม ... MyString.Trim().Replace("&", "and").Replace(",", "").Replace(" ", " ") .Replace(" ", "-").Replace("'", "").Replace("/", "").ToLower(); ฉันได้ขยายคลาสสตริงเพื่อให้มันเหลือเพียงงานเดียว แต่มีวิธีที่เร็วกว่านี้ไหม public static class StringExtension { public static string clean(this string s) { return s.Replace("&", "and").Replace(",", "").Replace(" ", " ") .Replace(" ", "-").Replace("'", "").Replace(".", "") .Replace("eacute;", "é").ToLower(); } } เพียงเพื่อความสนุกสนาน (และเพื่อหยุดการโต้แย้งในความคิดเห็น) ฉันได้เพิ่มส่วนสำคัญในการเปรียบเทียบตัวอย่างต่างๆด้านล่าง https://gist.github.com/ChrisMcKee/5937656 ตัวเลือก regex ทำคะแนนได้แย่มาก …

5
เมนู Refactor หายไปจาก Visual Studio 2015
ฉันมีปัญหาในการค้นหาเมนูบริบทคลิกขวาใน Visual Studio 2015 ฉันรู้ว่าไม่มีอะไรผิดปกติกับโครงการของฉันหรือไฟล์ที่ฉันใช้งานอยู่ ฉันสามารถค้นหาเมนูตัวอ้างอิงบริบทคลิกขวาใน Visual Studio 2013 อย่างไรก็ตามใน Visual Studio 2015 จะไม่มีเมนูบริบทของตัวอ้างอิงในเมนูบริบทคลิกขวา มันหายไปไหน? ฉันจะเอาคืนได้อย่างไร? ข้อเสนอแนะของคุณไม่สามารถรวมเมนูแก้ไข → Refactor ฉันได้พยายามรีเซ็ตการตั้งค่า Visual Studio ของฉันกลับเป็นค่าเริ่มต้นโดยใช้เมนูเครื่องมือ → นำเข้าและส่งออกการตั้งค่าและนั่นก็ไม่ได้นำเมนูกลับมาเช่นกัน

16
Ctrl + R, Ctrl + R คำสั่งไม่ทำงาน
ฉันพยายามที่จะใช้Ctrl+ R, Ctrl+ Rคำสั่งภายใน Visual Studio 2008 เปลี่ยนชื่อตัวแปร ฉันได้รับข้อความแสดงข้อผิดพลาดที่ด้านล่างแจ้งว่า "คีย์ผสม ( Ctrl+ R, Ctrl+ R) ถูกผูกไว้กับคำสั่ง (& เปลี่ยนชื่อ ... ) ซึ่งไม่สามารถใช้ได้ในขณะนี้" ฉันไม่ได้เรียกใช้มันหรืออะไรก็ตามที่ฉันคิดได้ซึ่งอาจห้ามไม่ให้มีการแก้ไขไฟล์และคำสั่ง F2 อนุญาตให้เปลี่ยนชื่อได้ ใครทราบวิธีแก้ไขปัญหานี้ แก้ไข: ฉันติดตั้ง Resharper แล้ว แต่ก่อนหน้านี้สามารถทำได้ด้วยการตั้งค่าเดียวกันฉันเพิ่งย้ายข้อมูลคอมพิวเตอร์

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