کتاب های برچسب Refactoring
تاریخ: 1402/06/27 21:06
توسط: MotoMan
امتیاز: ۰
برچسب ها: Refactoring |

ایجاد تغییرات قابل توجه در پایگاه‌های کد بزرگ و پیچیده یک کار دلهره آور است؛ کاری که انجام موفقیت آمیز آن تقریبا غیرممکن است مگر اینکه تیم، ابزار و طرز فکر مناسبی داشته باشید. اگر برنامه شما نیاز به بازنگری اساسی دارد و مطمئن نیستید که چگونه این تغییرات را به روشی پایدار اجرا کنید، پس این کتاب برای شما مناسب است.
در کتاب Refactoring at Scale (ریفکتور کردن در مقیاس)، مهندس نرم افزار Maude Lemaire شما را در کل فرآیند ریفکتور کردن از ابتدا تا انتها راهنمایی می‌کند. شما از تجربیات و تلاش‌های او در بهبود عملکرد و ریفکتور کردن در Slack در دوره‌ای از رشد بحرانی بهره خواهید برد، از جمله دو مورد مطالعاتی که نمایانگر تأثیر این تکنیک‌ها در دنیای واقعی است. این کتاب به شما کمک می‌کند تا به توانایی جدیدی دست پیدا کنید تا تغییرات مهم را در پایگاه کدتان به‌طور مؤثر ایجاد کنید.

 

تعداد بازدید: ۲۸۴۸
دیدگاه ها: ۰
تاریخ: 1400/10/17 19:56
توسط: MotoMan
امتیاز: ۱
برچسب ها: PHP |Refactoring |

ابزار Rector، ابزاری بسیار قدرتمند است که می‌تواند فورا کیفیت کد پروژه‌های PHP شما را بهبود بخشد. از Rector می‌توان برای انتقال ایمن پروژه‌ها از PHP 5.6 به PHP 8 استفاده کرد. این ابزار می‌تواند به شما کمک کند تا یک استاندارد از شیوه‌های برنامه نویسی قوی در پروژه خودتان ایجاد کنید؛ و می‌تواند زمان هایی را که قرار است صرف بررسی pull request‌ها می‌کنید را برای شما صرفه جویی کند.

در کتاب Rector - The Power of Automated Refactoring (رکتور - قدرت ریفکتور کردن خودکار)، توسعه دهندگان باتجربه Matthias Noback و Tomas Votruba تمام اطلاعاتی را که برای تبدیل شدن به یک کاربر قدرتمند Rector نیاز دارید را در اختیار شما قرار می‌دهند.

 
تعداد بازدید: ۱۹۱۵
دیدگاه ها: ۱
تاریخ: 1399/03/16 14:40
توسط: MotoMan
امتیاز: ۱

برنامه‌های عالی، عملیات مورد نیاز را مطابق آنچه انتظار می‌رود انجام می‌دهند، به کاربران کمک می‌کنند تا داده‌های صحیح را وارد کنند، استثنائات سیستم و برنامه را کنترل می‌کنند و اصلاح و نگهداری کد را برای توسعه دهندگان آینده آسان می‌کنند. کد نویسی دفاعی بر بهبود درک کد از طریق کد تمیز، ارتقای کیفیت کد با تست‌های واحد و بهبود پیش بینی پذیری کد با ساختن متد‌های واضح و آماده سازی برای موارد غیر منتظره تمرکز دارد. در دوره ویدیویی Defensive Coding in C# موسسه Pluralsight که توسط Deborah Kurata تدریس شده است، شما می‌توانید توانایی دفاعی برنامه خود در برابر خطرات موجود در دنیای واقعی را تقویت کنید.

ابتدا، با دنبال کردن تکنیک هایی مانند اصل Single Responsibility، چگونگی بهبود درک کد خودتان را یاد خواهید گرفت. سپس، چگونگی بهبود کیفیت کد را از طریق آزمون‌های واحد بررسی خواهید کرد. در آخر، چگونگی بهبود پیش بینی پذیری کد را با اعتبارسنجی آرگومان‌های متد، مدیریت صحیح null ها، بازگشت نتایج قابل پیش بینی و مدیریت استثنائات بررسی خواهید کرد. پس از اتمام این دوره، مهارت و دانش لازم برای تقویت دفاع کد خودتان را در اختیار خواهید داشت.

تعداد بازدید: ۲۹۸۹
دیدگاه ها: ۰
تاریخ: 1399/03/16 12:28
توسط: MotoMan
امتیاز: ۳

«کد نویسی تمیز» هنر نوشتن کدی است که انسان‌ها بتوانند آن را درک کنند. با دوره #Clean Coding Principles in C موسسه Pluralsight که توسط Cory House تدریس شده است،‌ شما مهارت‌های حرفه ای خود را ارتقا می‌دهید و کیفیت کد سی شارپ خودتان را با در نظر گرفتن کسی که قرار است این کد را بخواند افزایش می‌دهید و همچنین یاد می‌گیرید که کد‌های سی شارپ را به گونه ای بنویسید که به سادگی قابل نوشتن، خواندن و نگهداری باشند.

این دوره بر اساس سه روش اصلی کد نویسی تمیز ساخته شده است: انتخاب ابزار مناسب برای کار، بهینه سازی نسبت سیگنال به نویز و ایجاد منطق خود مستندسازی. در طول این دوره، شما مقایسه‌های واضحی بین کد‌های سی شارپ «کثیف» که باید از آن‌ها دوری کنید و معادل «تمیز» آن‌ها را خواهید دید. شما الگو هایی مانند کد پیکان، شکست سریع، بازگشت زود هنگام، کلاس‌های آهنربا، متغیرهای mayfly، تکنیک‌های کاهش پیچیدگی متد و موارد دیگر را بررسی خواهید کرد. این شیوه ها، پایه و اساس شغل توسعه حرفه ای است و به توسعه دهندگان واژگان واضحی را برای ارزیابی کیفیت کد ارائه می‌دهد.

تعداد بازدید: ۵۸۷۱
دیدگاه ها: ۰
تاریخ: 1399/03/16 09:42
توسط: MotoMan
امتیاز: ۱

با گذشت زمان، طراحی نرم افزار تمایل به ضعیف شدن دارد و نگهداری سیستم‌ها به طور فزاینده ای دشوار می‌شوند. Refactoring یک مهارت مهم برای هر توسعه دهنده ای است که به جلوگیری از از بین رفتن کد در زیر وزن خود کمک می‌کند. در دوره ویدیویی Refactoring for C# Developers موسسه Pluralsight که توسط Steve Smith تدریس شده است، شما یاد می‌گیرید که چگونه نقص‌های احتمالی در طراحی سیستم خود را که با نام «بو‌های کد» شناخته می‌شوند را تشخیص دهید و ارزیابی کنید.

در این دوره، شما با بو‌های کد در برنامه‌های سی شارپ در سطوح عبارت، متد و کلاس آشنا می‌شوید. همچنین شما درباره روند ریفکتور کردن کدتان برای از بین بردن نقص‌های طراحی و بهبود قابلیت نگهداری آن خواهید آموخت. سرانجام، یاد می‌گیرید که چگونه می‌توانید ده‌ها refactoring خاص را برای مشکلات رایج و شناخته شده در برنامه‌های #C اعمال کنید. وقتی که این دوره را به پایان برسانید، مهارت‌ها و دانش لازم را برای شناسایی مشکلات کیفیت کد و تصحیح آنها با تکنیک‌های ریفکتور کردن سریع و قابل اعتماد در اختیار خواهید داشت.

تعداد بازدید: ۴۱۱۶
دیدگاه ها: ۰
تاریخ: 1398/01/24 21:50
توسط: MotoMan
امتیاز: ۲

در صنعت، اغلب از Legacy Code به عنوان اصطلاحی برای کدی که تغییرش سخت است و ما آن را نمی‌فهمیم استفاده می‌شود. اما من پس از سال‌ها کار با تیم‌های مختلف و کمک کردن به آن‌ها در رفع کردن مشکلات جدی کد هایشان، به تعریف متفاوتی دست یافتم.

از نظر من Legacy Code، کدی است که فاقد تست است. چند دلیل نیز برای این تعریف خودم دارم. تست‌ها چه ربطی به بد بودن کد دارند؟ از نظر من پاسخ بدیهی است و این نکته ای است که در این کتاب می‌خواهم آن را بیان کنم:

کد بدون تست، کد بدی است. اهمیتی ندارد که چقدر خوب نوشته شده باشد یا چقدر زیبا و شی گرا یا به خوبی کپسوله سازی شده باشد. با داشتن تست‌ها است که ما می‌توانیم رفتار کد را به سرعت و به طرز صحیحی تغییر دهیم. بدون آن‌ها ما واقعا نمی‌دانیم که آیا کد بهتر شده یا بدتر شده است.

تعداد بازدید: ۵۳۳۳
دیدگاه ها: ۰
تاریخ: 1397/10/28 13:19
توسط: MotoMan
امتیاز: ۵
برچسب ها: Refactoring |

«هر نادانی می‌تواند کدی را که کامپیوتر می‌تواند درک کند، بنویسند. برنامه نویسان خوب کدی می‌نویسند که انسان‌ها نیز بتوانند آن را بفهمند.» (M-Fowler (1999

ریفکتور کردن، تکنیکی کنترل شده برای بهبود طراحی اساس کد موجود است. ماهیت این کار اعمال یک سری تغییرات حفظ کننده‌ی رفتار کد است که هر یک از آن‌ها «خیلی کوچک اند تا ارزشش را داشته باشد». با این حال اثر تجمعی هر یک از این تغییرات، بسیار قابل توجه است. با انجام آن‌ها در مراحل کوچک، شما خطر ایجاد خطا را کاهش می‌دهید. شما همچنین از ترکیدن سیستم به هنگام انجام بازسازی اجتناب خواهید کرد که به شما اجازه خواهد داد تا به تدریج یک سیستم را در مدت زمانی طولانی ریفکتور کنید.

در ویرایش دوم کتاب Refactoring: Improving the Design of Existing Code، فرآیند ریفکتور کردن شرح داده شده است و بیشتر زمانش را بر روی توضیح دادن انجام ریفکتور‌های مختلف که حفظ کننده‌ی رفتار کد هستند، صرف کرده است. این کتاب با یک مثال ساده که کل روند را توصیف می‌کند، شروع می‌شود. سپس تعدادی فصل مقدماتی وجود دارد که بحث‌های گسترده‌تری در مورد refactoring را در می‌گیرد مثل code smells که ریفکتور کردن را پیشنهاد می‌دهد، و نقش تست کردن.

بیشتر این کتاب حول هفتاد مورد ریفکتور کردن است که با جزئیاتی از قبیل انگیزه‌ی انجام آن‌ها و نحوه‌ی انجام آن‌ها به همراه یک مثال ساده آمده اند.

تعداد بازدید: ۱۰۴۱۷
دیدگاه ها: ۴
تاریخ: 1397/01/05 17:19
توسط: MotoMan
امتیاز: ۱۲

حتی کد بد هم می‌تواند کار کند، اما اگر تمیز ننوشته شده باشد می‌تواند سازمان دهی پروژه را به زانو در آورد. هر ساله ساعت‌های بی شماری و منابع قابل توجهی به خاطر کیفیت پایین کد‌ها از بین رفته اند؛ اما نباید این گونه باشد.

متخصص مشهور نرم افزار Robert C. Martin، الگویی انقلابی در کتاب Clean Code: A Handbook of Agile Software Craftsmanship ارائه داده است. مارتین با همکاری همکارانش در شرکت Object Mentor، بهترین شیوه‌های چابک تمیز سازی کد را استخراج کرد و آن‌ها را  تبدیل به کتابی کرد که در آن ارزش‌های یک متخصص را به شما یاد می‌دهد و شما را تبدیل به برنامه نویسی بهتر می‌کند؛ البته فقط وقتی که بر روی آن‌ها کار کنید.

چه نوع کاری شما انجام خواهید داد؟ شما کد خواهید خواند، خیلی خیلی زیاد. شما به چالش کشیده خواهید شد تا در مورد موارد صحیح آن کد و اشکالاتش فکر کنید. از همه مهمتر شما به چالش کشیده خواهید شد تا ارزش‌های حرفه ای و تعهد خودتان را به حرفه خود را مورد ارزیابی مجدد قرار دهید.

کتاب Clean Code به سه بخش تقسیم شده است. بخش اول اصول، الگو‌ها و شیوه‌های نوشتن کد تمیز را شرح می‌دهد. بخش دوم متشکل از چندین مورد مطالعاتی در مورد افزایش پیچیدگی است. هر مورد یک تمرین تمیز سازی کد است که تبدیل اساس یک کد که دارای تعدادی مشکل است به کدی کارامد و بدون ایراد است. قسمت سوم نتیجه گیری نهایی است. یک فصل مجزا که فهرستی از اکتشافات و بوهایی (smells) است که در ضمن ایجاد موارد مطالعاتی جمع آوری شده اند.

مواردی که در این کتاب خواهید فهمید عبارتند از:

  • چگونه می‌توان تفاوت بین کد خوب و بد را بیان کرد
  • چگونه می‌توان کد خوب نوشت و کد بد را به کد خوب تبدیل کرد
  • چگونه خوب نام گذاری کنیم، توابع خوب، اشیا خوب و کلاس‌های خوب ایجاد کنیم
  • چگونه به کد فرمت بدهیم تا به حداکثر خوانایی ممکن برسیم
  • چگونه مدیریت خطای کاملی بدون مبهم کردن منطق کد را پیاده سازی کرد
  • چگونه آزمون واحد انجام داد و توسعه آزمون محور را تمرین کرد
تعداد بازدید: ۴۴۲۴۰
دیدگاه ها: ۴
تاریخ: 1397/01/04 14:18
توسط: MotoMan
امتیاز: ۵
برچسب ها: Coding |Refactoring |

کتاب 101 شیوه‌ی بد برنامه نویسی با بر عکس کردن رویکرد معمول، لحنی طنز آمیز در آموزش شیوه‌های برنامه نویسی در پیش گرفته است. این کتاب با تظاهر کردن به آموزش این که شما چگونه به بدترین برنامه نویس جهان که معمولا باعث آشوب می‌شود تبدیل شوید به شما یاد خواهد داد که چگونه از این گونه عادت‌های بد برنامه نویسی که سبب ایجاد باگ‌ها یا رد شدن کد‌های به اشتراک گذاشت شده می‌شوند دوری کنید.

چرا وقتی می‌توانید میمونی آشوب گر (chaos monkey) باشید بخواهید یک code monkey باشید؟ خیلی خوب؛ شما می‌خواهید که برنامه نویسی افتضاح باشید. شما می‌خواهید کدی بنویسید که به شدت در بازبینی‌ها رد شود. شما دنبال خواندن بازخورد هایی هستید که پر شده از کامنتهایی مثل "چه افتضاحی؟" (?WTF). بهتر از این حتی شما درباره‌ی تغییرات پر از باگتان که دزدکی وارد کد‌ها کرده اید خیال بافی می‌کنید و باعث ایجاد فاجعه‌های بی حد و حساب می‌شوید. شما می‌خواهید که برای خود به عنوان کسی که کد‌های آشغال خنده دار، کثیف و مستعد خطا می‌نویسد و باعث وحشت همکارانتان می‌شود اعتباری دست و پا کنید. کتاب 101 شیوه‌ی بد برنامه نویسی به شما کمک می‌کند تا با یاد گرفتن آرایه ای از عادت‌های بد برنامه نویسی که به شما امکان ایجاد آشوب را می‌دهند، شما زودتر به هدفتان برسید.

به جای این کار شما می‌توانید از این کتاب استفاده کنید تا آن عادت‌های بد را شناسایی کرده و یاد بگیرید که از آن‌ها دوری کنید. این شیوه‌های بد برنامه نویسی بر اساس اصول برنامه نویسی ( layout، متغیر ها، حلقه ها، ماژول‌ها و ...) به سرفصل‌ها دسته بندی شده اند. این را باید اظهار کرد که برای برنامه نویس خوبی شدن، شما ابتدا باید 10000 خط، کد بد بنویسید تا همه‌ی آن‌ها را از ذهنتان بیرون کنید. با یادگیری در مورد عادت‌های بد برنامه نویسی، شما شیوه‌های خوب برنامه نویسی را یاد خواهید گرفت. علاوه بر این شما انگیزه ای که در پشت هر شیوه ای که بیان شده است را درک خواهید کرد؛ بنابر این شما یاد خواهید گرفت که چرا این شیوه خوب است و فقط یک لیست ساده از قوانین را نخواهید دید.

تعداد بازدید: ۴۹۵۶
دیدگاه ها: ۱
تاریخ: 1395/10/22 23:27
توسط: MotoMan
امتیاز: ۶
برچسب ها: Design Patterns |Refactoring |

Refactoring، فرآیند تغییر یک سیستم نرم افزاری است به گونه ای که رفتار خارجی کد عوض نشود در حالی که ساختار داخلی آن بهبود پیدا کند. این یک راه اصولی برای تمیز سازی کد است که شانس پدید آمدن باگ را به حداقل می‌رساند. در اصل زمانی که شما refactor می‌کنید دارید طراحی کد را بهبود می‌بخشید پس از آن که کد را نوشتید.
"بهبود طراحی کد پس از نوشتن آن". این عبارت به نوبه‌ی خود، عجیب و غریب است. در درکی که از توسعه‌ی نرم افزار داریم، ما معتقدیم که ابتدا طراحی می‌کنیم و پس از آن شروع به کد نویسی می‌کنیم. ابتدا یک طراحی خوب انجام می‌شود، و به دنبال آن کد نویسی صورت می‌گیرد. در طول مدت زمانی که کد و یکپارچگی سیستم تغییر خواهد کرد، ساختار آن با توجه به طراحی اش، به تدریج محو می‌شود.
با Refactoring می‌توانید یک طراحی بد و حتی شلخته را بردارید و آن را به یک کد به خوبی طراحی شده تغییر دهید و هر گامی ار آن ساده است. یک فیلد را از کلاسی به کلاسی دیگر انتقال می‌دهید، قسمتی از کد را از یک متد برداشته و برای آن متدی مجزا می‌نویسید و کدی را به پایین یا بالا انتقال می‌دهید. مجموع تاثیرات این تغییرات کوچک می‌تواند طراحی را به طور اساسی بهبود بخشد. این دقیقا برعکس مفهوم معمول پوسیدگی نرم افزار است.
با فاکتور گیری مجدد، پی می‌برید که تعادل کارها تغییر می‌کند. شما در می‌یابید که طراحی بیش از اینکه یک بار رخ دهد، به طور مداوم در طول توسعه طراحی  مجددا انجام می‌شود. شما از ساخت یک سیستم یاد میگیرید که چگونه طراحی را بهبود بخشید. نتیجه‌ی این تعامل منجر به برنامه ای می‌شود که طراحی آن در طول توسعه نیز خوب باقی می‌ماند.
این کتاب راهنمایی برای انجام refactoring است که برای برنامه نویس‌های حرفه ای نوشته شده است. هدف من نشان دادن این است که چگونه فاکتور گیری مجدد را به شیوه ای کنترل شده و کارآمد انجام دهید. شما یاد خواهید گرفت که به گونه ای refactor انجام دهید که باگی در کد باقی نگذارید.

 

تعداد بازدید: ۸۹۱۸
دیدگاه ها: ۳
تاریخ: 1393/06/16 01:32
توسط: MotoMan
امتیاز: ۳
برچسب ها: Design Patterns |Refactoring |

الگوها سنگ بنای طراحی شی گرا هستند، حال آنکه برنامه نویسی test-first و refactoring‌های بی رحمانه، اساس طراحی تکامل یافته را تشکیل می‌دهند. برای مانع شدن از over-engineering، لازم است که یاد بگیریم که چگونه  الگوها خودشان را با روش‌های توسعه نرم افزار امروزی تطبیق می‌دهند.
در این کتاب به صورت تئوری و هم عملی، refactoring مبتنی بر الگو‌ها آموزش داده می‌شود. سلسه مراتبی از refactoring‌های سطح پایین به طراحان اجازه می‌دهد تا به راحتی طراحی را به سمت طراحی هدایت و یا از پیاده سازی آن دور کنند.

 

تعداد بازدید: ۵۸۳۴
دیدگاه ها: ۰
تاریخ: 1392/10/08 07:22
توسط: MotoMan
امتیاز: ۱۱

Test-driven, test-first, and test-early development practices are helping thousands of software development organizations improve their software. Now, in Quality Code: Software Testing Principles, Practices, and Patterns, Stephen Vance builds on all that’s been learned about test-driven development, helping you achieve unprecedented levels of first-time quality. Using real-world code examples, this guide introduces patterns, principles, and more than two dozen detailed techniques for testing any software system more fully, effectively, and painlessly. Vance presents a conceptual framework to help you focus your efforts and design recommendations for improving testability across the software lifecycle, and also provides hands-on guidance to simplify testing of the full spectrum of code constructs. You’ll learn how to choose the best testing techniques for every situation, from the most common scenarios to threading. Two complete case studies put it all together, walking you through testing a brand-new Java application and an untested “legacy” JavaScript jQuery plugin. Whether you’re developing cutting-edge code for a new start-up, or maintaining an unruly old system, this guide will help you deliver exactly what you need: quality code.

تعداد بازدید: ۷۷۶۹
دیدگاه ها: ۰
loading...

لطفا منتظر بمانید...