<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>بایگانی‌های Refactoring Techniques - بازسازی</title>
	<atom:link href="http://recompile.ir/tag/refactoring-techniques/feed/" rel="self" type="application/rss+xml" />
	<link>http://recompile.ir/tag/refactoring-techniques/</link>
	<description>مشاوره و آموزش برای بازسازی و تغییر</description>
	<lastBuildDate>Mon, 31 Aug 2020 18:41:19 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>http://recompile.ir/wp-content/uploads/2020/08/cropped-android-chrome-512x512-1-32x32.png</url>
	<title>بایگانی‌های Refactoring Techniques - بازسازی</title>
	<link>http://recompile.ir/tag/refactoring-techniques/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>تکنیکهای ریفکتور</title>
		<link>http://recompile.ir/learning/refactoring/%d8%aa%da%a9%d9%86%db%8c%da%a9%d9%87%d8%a7%db%8c-%d8%b1%db%8c%d9%81%da%a9%d8%aa%d9%88%d8%b1/</link>
					<comments>http://recompile.ir/learning/refactoring/%d8%aa%da%a9%d9%86%db%8c%da%a9%d9%87%d8%a7%db%8c-%d8%b1%db%8c%d9%81%da%a9%d8%aa%d9%88%d8%b1/#respond</comments>
		
		<dc:creator><![CDATA[محمد خوش کشت]]></dc:creator>
		<pubDate>Mon, 31 Aug 2020 18:39:14 +0000</pubDate>
				<category><![CDATA[آموزش]]></category>
		<category><![CDATA[بازسازی کد(Refactoring)]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Refactoring Techniques]]></category>
		<category><![CDATA[تکنیک]]></category>
		<category><![CDATA[ریفکتور]]></category>
		<category><![CDATA[ریفکتورینگ]]></category>
		<guid isPermaLink="false">http://recompile.ir/?p=163</guid>

					<description><![CDATA[<p>بازآرایی متد ها (Composing Methods) بخش اعظمی از refactoring شامل اصلاح و بازآرایی متد ها است. در بیشتر موارد ، متدهای بیش از حد طولانی ریشه همه مشکلات هستند. مبهم بودن کد موجود در این متد ها منطق اجرا را پنهان می کند و درک متد را بسیار دشوار کرده و تغییر آن را سخت [&#8230;]</p>
<p>نوشته <a href="http://recompile.ir/learning/refactoring/%d8%aa%da%a9%d9%86%db%8c%da%a9%d9%87%d8%a7%db%8c-%d8%b1%db%8c%d9%81%da%a9%d8%aa%d9%88%d8%b1/">تکنیکهای ریفکتور</a> اولین بار در <a href="http://recompile.ir">بازسازی</a>. پدیدار شد.</p>
]]></description>
										<content:encoded><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">زمان مطالعه: </span> <span class="rt-time"> 2</span> <span class="rt-label rt-postfix">دقیقه</span></span>
<p></p>



<p><strong>بازآرایی متد ها (Composing Methods)</strong></p>



<p>بخش اعظمی از refactoring شامل اصلاح و بازآرایی متد ها است. در بیشتر موارد ، متدهای بیش از حد طولانی ریشه همه مشکلات هستند. مبهم بودن کد موجود در این متد ها منطق اجرا را پنهان می کند و درک متد را بسیار دشوار کرده و تغییر آن را سخت تر می کند.</p>



<p>تکنیک های refactoring در این گروه ساده سازی متد ها ، حذف کدهای تکراری و زمینه سازی برای پیشرفت های آینده است.</p>



<ul class="wp-block-list"><li>Extract Method</li><li>Inline Method</li><li>Extract Variable</li><li>Inline Temp</li><li>Replace Temp with Query</li><li>Split Temporary Variable</li><li>Remove Assignments to Parameters</li><li>Replace Method with Method Object</li><li>Substitute Algorithm</li></ul>



<p><strong>انتقال متد ها و&#8230; بین کلاسها</strong></p>



<p>این تکنیک های refactoring نشان می دهد که چگونه می توان با خیال راحت فانکشنالیتی ها را بین کلاس ها را جابجا کرد ، کلاس های جدید ایجاد کرد و جزئیات پیاده سازی را از دسترسی عمومی پنهان کرد</p>



<ul class="wp-block-list"><li>Move Method</li><li>Move Field</li><li>Extract Class</li><li>Inline Class</li><li>Hide Delegate</li><li>Remove Middle Man</li><li>Introduce Foreign Method</li><li>Introduce Local Extension</li></ul>



<p><strong>سازماندهی داده ها</strong></p>



<p>این تکنیک های refactoring به پردازش داده ها کمک می کنند و داده های اولیه را با فانکشنالایتی کلاس غنی جایگزین می کنند. نتیجه مهم دیگر ، جدا کردن ارتباط بین کلاسها برای اینکه بتوان از آن ها بصورت مستقل استفاده کرد.</p>



<ul class="wp-block-list"><li>Change Value to Reference</li><li>Change Reference to Value</li><li>Duplicate Observed Data</li><li>Self Encapsulate Field</li><li>Replace Data Value with Object</li><li>Replace Array with Object</li><li>Change Unidirectional Association to Bidirectional</li><li>Change Bidirectional Association to Unidirectional</li><li>Encapsulate Field</li><li>Encapsulate Collection</li><li>Replace Magic Number with Symbolic Constant</li><li>Replace Type Code with Class</li><li>Replace Type Code with Subclasses</li><li>Replace Type Code with State/Strategy</li><li>Replace Subclass with Fields</li></ul>



<p><strong>ساده سازی عبارات شرطی</strong></p>



<p>شرط ها با گذشت زمان در منطق خود پیچیده تر می شوند و تکنیک های بیشتری برای مبارزه با این مسئله نیز وجود دارد.</p>



<ul class="wp-block-list"><li>Consolidate Conditional Expression</li><li>Consolidate Duplicate Conditional Fragments</li><li>Decompose Conditional</li><li>Replace Conditional with Polymorphism</li><li>Remove Control Flag</li><li>Replace Nested Conditional with Guard Clauses</li><li>Introduce Null Object</li><li>Introduce Assertion</li></ul>



<p><strong>ساده کردن فراخوانی های متد</strong></p>



<p>این تکنیک ها فراخوانی های متد را ساده و قابل فهم تر می کنند. این به نوبه خود ، interface &nbsp;های بین کلاس ها را ساده می کند</p>



<ul class="wp-block-list"><li>Add Parameter</li><li>Remove Parameter</li><li>Rename Method</li><li>Separate Query from Modifier</li><li>Parameterize Method</li><li>Introduce Parameter Object</li><li>Preserve Whole Object</li><li>Remove Setting Method</li><li>Replace Parameter with Explicit Methods</li><li>Replace Parameter with Method Call</li><li>Hide Method</li><li>Replace Constructor with Factory Method</li><li>Replace Error Code with Exception</li><li>Replace Exception with Test</li></ul>



<p><strong>پرداختن به تعمیم</strong></p>



<p>انتزاع (Abstraction)گروهی از تکنیک های خود را دارد ، که در درجه اول با قابلیت حرکت در طول سلسله مراتب وراثت کلاس ، ایجاد کلاس ها و رابط های جدید و جایگزینی وراثت با تفویض و برعکس همراه است.</p>



<ul class="wp-block-list"><li>Pull Up Field</li><li>Pull Up Method</li><li>Pull Up Constructor Body</li><li>Push Down Field</li><li>Push Down Method</li><li>Extract Subclass</li><li>Extract Superclass</li><li>Extract Interface</li><li>Collapse Hierarchy</li><li>Form Template Method</li><li>Replace Inheritance with Delegation</li><li>Replace Delegation with Inheritance</li></ul>
<p>بازدیدها: 91</p><p>نوشته <a href="http://recompile.ir/learning/refactoring/%d8%aa%da%a9%d9%86%db%8c%da%a9%d9%87%d8%a7%db%8c-%d8%b1%db%8c%d9%81%da%a9%d8%aa%d9%88%d8%b1/">تکنیکهای ریفکتور</a> اولین بار در <a href="http://recompile.ir">بازسازی</a>. پدیدار شد.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://recompile.ir/learning/refactoring/%d8%aa%da%a9%d9%86%db%8c%da%a9%d9%87%d8%a7%db%8c-%d8%b1%db%8c%d9%81%da%a9%d8%aa%d9%88%d8%b1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
