<?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>بایگانی‌های C# - بازسازی</title>
	<atom:link href="http://recompile.ir/tag/c/feed/" rel="self" type="application/rss+xml" />
	<link>https://recompile.ir/tag/c/</link>
	<description>مشاوره و آموزش برای بازسازی و تغییر</description>
	<lastBuildDate>Mon, 30 Nov 2020 15:05:54 +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>بایگانی‌های C# - بازسازی</title>
	<link>https://recompile.ir/tag/c/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>با ویژگی های جدید C#9 آشنا شوید</title>
		<link>http://recompile.ir/blog-and-news/%d8%a8%d8%a7-%d9%88%db%8c%da%98%da%af%db%8c-%d9%87%d8%a7%db%8c-%d8%ac%d8%af%db%8c%d8%af-c9-%d8%a2%d8%b4%d9%86%d8%a7-%d8%b4%d9%88%db%8c%d8%af/</link>
					<comments>http://recompile.ir/blog-and-news/%d8%a8%d8%a7-%d9%88%db%8c%da%98%da%af%db%8c-%d9%87%d8%a7%db%8c-%d8%ac%d8%af%db%8c%d8%af-c9-%d8%a2%d8%b4%d9%86%d8%a7-%d8%b4%d9%88%db%8c%d8%af/#respond</comments>
		
		<dc:creator><![CDATA[محمد خوش کشت]]></dc:creator>
		<pubDate>Mon, 30 Nov 2020 15:04:34 +0000</pubDate>
				<category><![CDATA[وبلاگ و اخبار]]></category>
		<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">http://recompile.ir/?p=292</guid>

					<description><![CDATA[<p>ویژگی‌های جدید C# 9.0، به همراه NET 5. ارائه می‌شوند. بنابراین جهت راه اندازی پروژه‌ای که قرار است بر این مبنا تهیه شود، نیاز است مراحل زیر را طی کنید:&#8211; آخرین نگارش NET 5 SDK. را&#160;از اینجا&#160;دریافت و نصب کنید (حتما SDK باشد و نه runtime).&#8211; اگر می‌خواهید با ویژوال استودیو کار کنید، نیاز است [&#8230;]</p>
<p>نوشته <a href="http://recompile.ir/blog-and-news/%d8%a8%d8%a7-%d9%88%db%8c%da%98%da%af%db%8c-%d9%87%d8%a7%db%8c-%d8%ac%d8%af%db%8c%d8%af-c9-%d8%a2%d8%b4%d9%86%d8%a7-%d8%b4%d9%88%db%8c%d8%af/">با ویژگی های جدید C#9 آشنا شوید</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"> &lt; 1</span> <span class="rt-label rt-postfix">دقیقه</span></span>
<ul class="wp-block-list"><li></li></ul>



<p>ویژگی‌های جدید C# 9.0، به همراه NET 5. ارائه می‌شوند. بنابراین جهت راه اندازی پروژه‌ای که قرار است بر این مبنا تهیه شود، نیاز است مراحل زیر را طی کنید:<br>&#8211; آخرین نگارش NET 5 SDK. را&nbsp;<a href="https://dotnet.microsoft.com/download/dotnet/5.0" target="_blank" rel="noreferrer noopener nofollow">از اینجا</a>&nbsp;دریافت و نصب کنید (حتما SDK باشد و نه runtime).<br>&#8211; اگر می‌خواهید با ویژوال استودیو کار کنید، نیاز است حداقل نگارش 16.7 یا بالاتر را نصب کرده باشید. به همین جهت پیش از ادامه‌ی بحث، از منوی Help، گزینه‌ی Check For Updates را انتخاب کرده و حتما آخرین به روز رسانی‌های موجود را نصب کنید. بنابراین برای کار با C# 9.0 توسط VS، حتما باید آخرین نگارش 2019 آن، به همراه تمام به روز رسانی‌های ممکن بر روی سیستم شما نصب باشند؛ در غیراینصورت امکان کار با آن‌را حداقل توسط VS نخواهید داشت.<br>&#8211; در زمان نگارش این مطلب چون هنوز نگارش نهایی NET 5 SDK. ارائه نشده‌است، نیاز است به منوی Tools در ویژوال استودیو مراجعه کرده و با انتخاب «Preview Features» آن، گزینه‌ی «Use previews of the .NET Core SDK» را فعال کنید. پس از آن، یکبار هم نیاز است VS را بسته و راه اندازی مجدد نمائید.</p>



<ul class="wp-block-list"><li><a href="https://www.dotnettips.info/post/3253/%d8%aa%d9%86%d8%b8%db%8c%d9%85%d8%a7%d8%aa-%d9%85%d9%88%d8%b1%d8%af-%d9%86%db%8c%d8%a7%d8%b2-%d8%ac%d9%87%d8%aa-%d8%b4%d8%b1%d9%88%d8%b9-%d8%a8%d9%87-%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-c-9-0" target="_blank" rel="noreferrer noopener">تنظیمات مورد نیاز جهت شروع به کار</a></li><li><a href="https://www.dotnettips.info/post/3254/%d8%a7%d9%85%da%a9%d8%a7%d9%86-%d8%b3%d8%a7%d8%af%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%aa%d8%b9%d8%a7%d8%b1%db%8c%d9%81-%d8%a7%d8%b4%db%8c%d8%a7%d8%a1-%d8%af%d8%b1-c-9-0-%d8%a8%d8%a7-target-typing" target="_blank" rel="noreferrer noopener">امکان ساده سازی تعاریف اشیاء با Target Typing</a></li><li><a href="https://www.dotnettips.info/post/3255/%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d8%b4%d8%af%d9%86-%d8%b2%d8%a8%d8%a7%d9%86-c-9-0-%d8%a8%d9%87-%db%8c%da%a9-%d8%b2%d8%a8%d8%a7%d9%86-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa%db%8c-%d8%a8%d8%a7-%d9%85%d8%b9%d8%b1%d9%81%db%8c-%d9%88%db%8c%da%98%da%af%db%8c-top-level-programs" target="_blank" rel="noreferrer noopener">تبدیل شدن زبان به یک زبان اسکریپتی با معرفی ویژگی Top Level Programs</a></li><li><a href="https://www.dotnettips.info/post/3256/%d8%a7%d9%85%da%a9%d8%a7%d9%86-%d8%aa%d8%b9%d8%b1%db%8c%d9%81-%d8%b3%d8%a7%d8%af%d9%87%e2%80%8c%d8%aa%d8%b1-%d8%ae%d9%88%d8%a7%d8%b5-immutable-%d8%af%d8%b1-c-9-0-%d8%a8%d8%a7-%d9%85%d8%b9%d8%b1%d9%81%db%8c-%d9%88%db%8c%da%98%da%af%db%8c-%d8%ae%d9%88%d8%a7%d8%b5-init-only" target="_blank" rel="noreferrer noopener">امکان تعریف ساده‌تر خواص Immutable با معرفی ویژگی خواص Init-Only</a></li><li><a href="https://www.dotnettips.info/post/3257/%d8%a7%d9%85%da%a9%d8%a7%d9%86-%d8%aa%d8%b9%d8%b1%db%8c%d9%81-%d8%b3%d8%a7%d8%af%d9%87%e2%80%8c%d8%aa%d8%b1-%da%a9%d9%84%d8%a7%d8%b3%e2%80%8c%d9%87%d8%a7%db%8c-immutable-%d8%af%d8%b1-c-9-0-%d8%a8%d8%a7-%d9%85%d8%b9%d8%b1%d9%81%db%8c-%d9%86%d9%88%d8%b9-%d8%ac%d8%af%db%8c%d8%af-record" target="_blank" rel="noreferrer noopener">امکان تعریف ساده‌تر کلاس‌های Immutable با معرفی نوع جدید record</a></li><li><a href="https://www.dotnettips.info/post/3258/%d9%88%d8%a7%da%98%d9%87%e2%80%8c%d9%87%d8%a7%db%8c-%da%a9%d9%84%db%8c%d8%af%db%8c-%d8%ac%d8%af%db%8c%d8%af-and-or-%d9%88-not-%d8%af%d8%b1-c-9-0" target="_blank" rel="noreferrer noopener">واژه‌های کلیدی جدید and، or و not</a>&nbsp;</li><li><a href="https://www.dotnettips.info/post/3259/%d8%a7%d9%85%da%a9%d8%a7%d9%86-%d8%af%d8%a7%d8%b4%d8%aa%d9%86-%d8%ae%d8%b1%d9%88%d8%ac%db%8c%e2%80%8c%d9%87%d8%a7%db%8c-covariant-%d8%af%d8%b1-c-9-0" target="_blank" rel="noreferrer noopener">امکان داشتن خروجی‌های Covariant</a></li><li><a href="https://www.dotnettips.info/post/3260/%d8%a7%d9%85%da%a9%d8%a7%d9%86-%d8%a7%d8%ac%d8%b1%d8%a7%db%8c-%d8%ae%d9%88%d8%af%da%a9%d8%a7%d8%b1-%da%a9%d8%af%d9%87%d8%a7-%d8%af%d8%b1-%d8%b2%d9%85%d8%a7%d9%86-%d8%a8%d8%a7%d8%b1%da%af%d8%b0%d8%a7%d8%b1%db%8c-%d8%a7%d9%88%d9%84%db%8c%d9%87%e2%80%8c%db%8c-%db%8c%da%a9-%d8%a7%d8%b3%d9%85%d8%a8%d9%84%db%8c-%d8%af%d8%b1-c-9-0" target="_blank" rel="noreferrer noopener">امکان اجرای خودکار کدها در زمان بارگذاری اولیه‌ی یک اسمبلی</a></li><li><a href="https://www.dotnettips.info/post/3261/%d8%a8%d9%87%d8%a8%d9%88%d8%af%d9%87%d8%a7%db%8c-%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-lambdas-%d8%af%d8%b1-c-9-0" target="_blank" rel="noreferrer noopener">بهبودهای کار با Lambdas</a></li><li><a href="https://www.dotnettips.info/post/3262/%d8%a7%d9%85%da%a9%d8%a7%d9%86-%d8%aa%d8%b9%d8%b1%db%8c%d9%81-%d8%ad%d9%84%d9%82%d9%87%e2%80%8c%db%8c-foreach-%d8%a8%d8%b1-%d8%b1%d9%88%db%8c-%d9%87%d8%b1-%d9%86%d9%88%d8%b9-%d9%85%d8%ac%d9%85%d9%88%d8%b9%d9%87%e2%80%8c%d8%a7%db%8c-%d8%a7%d8%b2-%d8%af%d8%a7%d8%af%d9%87%e2%80%8c%d9%87%d8%a7-%d8%af%d8%b1-c-9-0" target="_blank" rel="noreferrer noopener">امکان تعریف حلقه‌ی foreach بر روی هر نوع مجموعه‌ای از داده‌ها</a></li><li><a href="https://www.dotnettips.info/post/3270/%da%a9%d8%a7%d9%85%d9%be%d8%a7%db%8c%d9%84%d8%b1-c-9-0-%d8%ae%d8%b7%d8%a7%d9%87%d8%a7-%d9%88-%d8%a7%d8%ae%d8%b7%d8%a7%d8%b1%d9%87%d8%a7%db%8c-%d8%a8%db%8c%d8%b4%d8%aa%d8%b1%db%8c-%d8%b1%d8%a7-%d9%86%d9%85%d8%a7%db%8c%d8%b4-%d9%85%db%8c%e2%80%8c%d8%af%d9%87%d8%af" target="_blank" rel="noreferrer noopener">آشنایی با تنظیمات جدید کامپایلر C# 9.0</a></li><li><a href="https://www.dotnettips.info/post/3272/%d8%a7%d9%85%da%a9%d8%a7%d9%86-%d8%aa%d8%b9%d8%b1%db%8c%d9%81-%d9%88%db%8c%da%98%da%af%db%8c%e2%80%8c%d9%87%d8%a7-%d8%a8%d8%b1-%d8%b1%d9%88%db%8c-%d8%aa%d9%88%d8%a7%d8%a8%d8%b9-%d9%85%d8%ad%d9%84%db%8c-%d8%af%d8%b1-c-9-0" target="_blank" rel="noreferrer noopener">امکان تعریف ویژگی‌ها بر روی توابع محلی</a></li></ul>
<p>بازدیدها: 6</p><p>نوشته <a href="http://recompile.ir/blog-and-news/%d8%a8%d8%a7-%d9%88%db%8c%da%98%da%af%db%8c-%d9%87%d8%a7%db%8c-%d8%ac%d8%af%db%8c%d8%af-c9-%d8%a2%d8%b4%d9%86%d8%a7-%d8%b4%d9%88%db%8c%d8%af/">با ویژگی های جدید C#9 آشنا شوید</a> اولین بار در <a href="http://recompile.ir">بازسازی</a>. پدیدار شد.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://recompile.ir/blog-and-news/%d8%a8%d8%a7-%d9%88%db%8c%da%98%da%af%db%8c-%d9%87%d8%a7%db%8c-%d8%ac%d8%af%db%8c%d8%af-c9-%d8%a2%d8%b4%d9%86%d8%a7-%d8%b4%d9%88%db%8c%d8%af/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>بدهی فنی &#8211; Technical debt</title>
		<link>http://recompile.ir/learning/refactoring/%d8%a8%d8%af%d9%87%db%8c-%d9%81%d9%86%db%8c-technical-debt/</link>
					<comments>http://recompile.ir/learning/refactoring/%d8%a8%d8%af%d9%87%db%8c-%d9%81%d9%86%db%8c-technical-debt/#respond</comments>
		
		<dc:creator><![CDATA[محمد خوش کشت]]></dc:creator>
		<pubDate>Wed, 12 Aug 2020 19:07:05 +0000</pubDate>
				<category><![CDATA[بازسازی کد(Refactoring)]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Technical Debt]]></category>
		<category><![CDATA[اصلاح کد]]></category>
		<category><![CDATA[بدهی فنی]]></category>
		<category><![CDATA[ریفکتور]]></category>
		<category><![CDATA[ریفکتورینگ]]></category>
		<guid isPermaLink="false">http://recompile.ir/?p=51</guid>

					<description><![CDATA[<p>شما می توانید به طور موقت بدون نوشتن تست برای ویژگی های جدید، به کار سرعت بخشید ، اما این کار به تدریج هر روز پیشرفت شما را کند می کند تا اینکه در نهایت با نوشتن تست ها بدهی خود را پرداخت کنید.</p>
<p>نوشته <a href="http://recompile.ir/learning/refactoring/%d8%a8%d8%af%d9%87%db%8c-%d9%81%d9%86%db%8c-technical-debt/">بدهی فنی &#8211; Technical debt</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"> 3</span> <span class="rt-label rt-postfix">دقیقه</span></span>
<p>هر کسی تمام تلاش خود را می کند تا بهترین کد را از ابتدا بنویسد. احتمالاً هیچ برنامه نویسی نیست که عمداً کد ناخوشایند و به ضرر پروژه بنویسد. اما در چه مرحله ای کد تمیز، کثیف می شود؟</p>



<p>استعاره &#8220;بدهی فنی&#8221; در مورد کد بد در ابتدا توسط <a href="https://en.wikipedia.org/wiki/Technical_debt" title="https://en.wikipedia.org/wiki/Technical_debt">Ward Cunningham</a> پیشنهاد شده.</p>



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



<p>همین اتفاق می تواند با کد رخ دهد. شما می توانید به طور موقت بدون نوشتن تست برای ویژگی های جدید، به کار سرعت بخشید ، اما این کار به تدریج هر روز پیشرفت شما را کند می کند تا اینکه در نهایت با نوشتن تست ها بدهی خود را پرداخت کنید.</p>



<h2 class="has-text-color wp-block-heading" style="color:#a14909"><strong>علل بروز بدهی فنی</strong></h2>



<p><strong>  فشار بیزنس</strong></p>



<p>بعضی اوقات شرایط تجاری ممکن است شما را وادار کند فیچر های خود را قبل از اتمام کار ارائه کنید. در این حالت تکه های ناجوری در کد ظاهر می شوند تا اتمام پروژه مخفی می شود.</p>



<p><strong>  عدم درک عواقب بدهی فنی</strong></p>



<p>صرف نظر از درک بدهی فنی، گاهی اوقات کارفرمای شما ممکن است درک نکند که بدهی فنی باعث کاهش بهره وری می شود. این &nbsp;موضوع می تواند اختصاص دادن زمان تیم را به refactoring بسیار دشوار کند زیرا مدیریت ارزش آن را نمی بیند.</p>



<p><strong>  عدم موفقیت در برابر انسجام دقیق اجزاء</strong></p>



<p>در شرایطی این پروژه به جای ماژولهای انفرادی شبیه به یک تکه سنگ یکپارچه باشد، هرگونه تغییر در یک قسمت از پروژه ، بخش های دیگر را تحت تأثیر قرار می دهد. در این حالت کار بسیار دشوار تر است زیرا جدا کردن این اجزاء از هم خیلی سخت است.</p>



<p><strong>نبود تست</strong></p>



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



<p><strong>نبود مستند سازی</strong></p>



<p>این امر باعث بروز مشکل در معرفی افراد جدید به پروژه می شود و در صورت ترک افراد اصلی پروژه توسعه متوقف خواهد شد.</p>



<p><strong> عدم تعامل بین اعضای تیم</strong></p>



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



<p><strong> توسعه همزمان و طولانی مدت در برنچ های(Branches) مختلف</strong></p>



<p>این امر می تواند به انباشت بدهی فنی منجر شود ، که در هنگام ادغام تغییرات(Merge) افزایش می یابد. هرچه تغییرات بیشتر توسط اعضای تیم بصورت منفرد (Isolated) انجام شود کل بدهی فنی بیشتر می شود.</p>



<p><strong> تأخیر در اصلاح کد(Refactoring ریفکتور)</strong></p>



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



<p>از طرف دیگر ، برنامه نویسان پروژه هر روز کدهای جدید می نویسند که با قسمتهای منسوخ کار می کند. بنابراین ، هرچه تأخیر بیشتر به تأخیر بیفتد ، در آینده کدهای وابسته تری داریم که نیاز به ریفکتور (اصلاح) دارند.</p>



<p><strong>نبود نظارت بر تطابق</strong></p>



<p>وقتی که هر کسی بر روی پروژه بر طبق روش خودش کد نویسی را ادامه دهد این اتفاق خواهد افتاد و کدها یکدست نخواهند شد.</p>



<p><strong> بی کفایتی</strong></p>



<p>در شرایطی که توسعه دهنده واقعا نمی داند چگونه کد مناسبی را بنویسد و در واقع توان فنی لازم را ندارد.</p>



<p></p>
<p>بازدیدها: 171</p><p>نوشته <a href="http://recompile.ir/learning/refactoring/%d8%a8%d8%af%d9%87%db%8c-%d9%81%d9%86%db%8c-technical-debt/">بدهی فنی &#8211; Technical debt</a> اولین بار در <a href="http://recompile.ir">بازسازی</a>. پدیدار شد.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://recompile.ir/learning/refactoring/%d8%a8%d8%af%d9%87%db%8c-%d9%81%d9%86%db%8c-technical-debt/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>کد نویسی تمیز را شروع کنیم</title>
		<link>http://recompile.ir/learning/refactoring/%da%a9%d8%af-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%aa%d9%85%db%8c%d8%b2-%d8%b1%d8%a7-%d8%b4%d8%b1%d9%88%d8%b9-%da%a9%d9%86%db%8c%d9%85/</link>
					<comments>http://recompile.ir/learning/refactoring/%da%a9%d8%af-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%aa%d9%85%db%8c%d8%b2-%d8%b1%d8%a7-%d8%b4%d8%b1%d9%88%d8%b9-%da%a9%d9%86%db%8c%d9%85/#respond</comments>
		
		<dc:creator><![CDATA[محمد خوش کشت]]></dc:creator>
		<pubDate>Wed, 12 Aug 2020 16:33:36 +0000</pubDate>
				<category><![CDATA[بازسازی کد(Refactoring)]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Clean Code]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[کد تمیز]]></category>
		<guid isPermaLink="false">http://recompile.ir/?p=40</guid>

					<description><![CDATA[<p>از سری مباحث Refactoring با Clean Code آشنا شوید</p>
<p>نوشته <a href="http://recompile.ir/learning/refactoring/%da%a9%d8%af-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%aa%d9%85%db%8c%d8%b2-%d8%b1%d8%a7-%d8%b4%d8%b1%d9%88%d8%b9-%da%a9%d9%86%db%8c%d9%85/">کد نویسی تمیز را شروع کنیم</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"> &lt; 1</span> <span class="rt-label rt-postfix">دقیقه</span></span>
<p>بیایید شروع کنیم .هدف اصلی اصلاح کد(Refactoring) مبارزه با بدهی های فنی است.پس باید از اصول اولیه شروع کنیم.</p>



<p>حالا کد تمیز چیست؟ در اینجا برخی از ویژگی های آن آورده شده است:</p>



<p>&nbsp;کد نویسی تمیز به معنی واضح کردن کد برای سایر برنامه نویسان است.</p>



<p>فعلا در مورد الگوریتم های فوق العاده پیشرفته صحبت نمی کنیم. نامگذاری ضعیف متغیر ها، کلاس ها و کلاسهای چاق ، اعداد و نامهای جادویی – که فقط شما از آن اطلاع دارید &#8211; همه این موارد باعث می شود که کد کثیف و درک آن دشوار شود.</p>



<p><strong> در کد تمیز ، کد تکراری وجود ندارد</strong></p>



<p>هر بار که بخواهید تغییری درچنین کدهایی بدهید باید به خاطر داشته باشید که یک نمونه دیگر از آن هم وجود دارد که باید اصلاح شود. این کار باعث بروز خطا و کندی پیشرفت کار می شود.</p>



<p><strong> کد تمیز شامل حداقلِ تعداد کلاس و متد و &#8230; است</strong></p>



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



<p><strong> کد تمیز تمام تستها را می گذراند.</strong></p>



<p>می دانید وقتی فقط 95٪ از تست های شما پاس می شود، کد شما کثیف است. می دانید وقتی تستهای شما 0 درصد پوشش دارند، یعنی فاجعه پیش آمده است؟ کد تمیز کدی است که تمام تستها را پاس کند.</p>



<p><strong>نگهداری کد تمیز ساده تر و ارزان تر است.</strong></p>



<p>کد تمیز کد ساده است، پیچیدگی کمتر و رعایت اوصل کد تمیز (Clean Code) باعث می شود در آینده نگداری و رفع باگ کد ساده تر و ارزان تر باشد.</p>



<p>معروف ترین کتاب در این زمینه کتاب <a href="https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882" target="_blank" rel="noreferrer noopener">Clean Code</a> – Robert C Martin است که البته ترجمه آن به فارسی هم وجود دارد.</p>
<p>بازدیدها: 280</p><p>نوشته <a href="http://recompile.ir/learning/refactoring/%da%a9%d8%af-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%aa%d9%85%db%8c%d8%b2-%d8%b1%d8%a7-%d8%b4%d8%b1%d9%88%d8%b9-%da%a9%d9%86%db%8c%d9%85/">کد نویسی تمیز را شروع کنیم</a> اولین بار در <a href="http://recompile.ir">بازسازی</a>. پدیدار شد.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://recompile.ir/learning/refactoring/%da%a9%d8%af-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%aa%d9%85%db%8c%d8%b2-%d8%b1%d8%a7-%d8%b4%d8%b1%d9%88%d8%b9-%da%a9%d9%86%db%8c%d9%85/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
