2009-06-11 2 views
1

У меня есть длинные функции в VB.NET (VS2008), и я бы хотел сжать их. Я знаю о директивах #region, но они не работают внутри функций.«Складывающиеся» длинные разделы кода в Visual Studio 2008

Мне было интересно, если бы кто-нибудь знал о каких-либо плагинах для визуальной студии 2008, которые позволили бы мне складывать операторы, циклы и try catch. Я нашел несколько плагинов для Visual Studio 2005, но ни для Visual Studio 2008.

ответ

1

Хорошо, поэтому я наконец нашел инструмент для сгибания кода внутри подсистем и функций. это не идеально, так как вам нужно указать регионы, которые нужно сложить, но он выполняет эту работу. часть программного обеспечения называется smartoutline. как только вы закончите сломанный установщик.

http://submain.com/products/smartoutline.aspx

инсталлятор имеет некоторые проблемы с правами администратора, поэтому для его установки необходимо создать ярлык для установщика Windows с указанием MSI в качестве параметра, а затем запустить его в качестве администратора

11

Вы можете прочитать книгу Мартина Фаулера называется Refactoring: Improving the Design of Existing Code, а также Code Complete: 2nd Edition.

refactoring book http://ecx.images-amazon.com/images/I/21ZceZ5jBTL._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA115_.jpgcode complete book http://ecx.images-amazon.com/images/I/51seLiYuURL._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA115_.jpg

Если у вас возникли функции и подпрограммы, которые долго, это означает, что существуют большие силы, сложности на работе, которые необходимо рефакторинга.

Update:

Я только что закончил книгу Clean Code от «Дяди» Боб Мартин, и я должен сказать, что он принадлежит рядом с двумя другими в «должен прочитать» категории.

Clean Code http://ecx.images-amazon.com/images/I/41wGTnmRTFL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg

+5

согласился. там определенно запах кода здесь. – jinsungy

+2

Я считаю, что неписаное правило пытается сохранить функции примерно на одном экране текста, что-то кроме этого, и части могут быть учтены для улучшения работоспособности. – benPearce

3

"я пишу некоторые длительные функции в VB.NET 2008" == Code Smell

Не лечить симптом, устранить причину и компонентизацию ваши методы.

+1

«Не обращайтесь с симптомом, причина "- вот что мне нравится слышать! –

+0

так же, как мне бы хотелось, чтобы у меня была проблема исправить, и мне нужно сделать это быстро, поэтому переписывание кода на самом деле не вариант – zeocrash

+1

AKA «Теперь у вас есть две проблемы». http://regex.info/blog/2006-09-15/247 –

2

Для многих регионы являются субъективными.

Я активно не люблю ничего, что скрывает смысл. Если вы обнаружите, что вы «записываете длинные функции», попробуйте реорганизовать функциональность на отдельные объекты и методы. В конечном счете, код упрощает понимание и поддержку кода.

Скрытие кода в регионах - плохая идея, ИМО.

+2

Я больше не мог согласиться.У меня есть макрос (ctrl + m + m), который расширяет все регионы в файле. –

+2

Я должен не согласиться, усиленно. У меня есть много кода, который можно легко разбить на куски тем, что он делает, поэтому я # region/# endregion их, а затем сбрасываю их, когда я не работаю с этими кусками. Для примера основной графический интерфейс можно разбить на кусок, который имеет дело с меню и панелью инструментов, куском, который занимается управлением объектами, связанными с графическим интерфейсом, куском, который связан с запуском формы и т. Д. Когда я работаю над панелями инструментов, я обычно не хочу видеть или работать с кодом запуска, поэтому я разрушаю его. – jasonh

+0

Разве это не то, что «подпрограммы» были изобретены? –

Смежные вопросы