کتاب های برچسب software engineering
تاریخ: 1401/02/19 22:35
توسط: MotoMan
امتیاز: ۰
برچسب ها: software engineering |

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

کتاب Software Telemetry (دورسنجی نرم افزار)، به شما نشان می‌دهد که چگونه به طور موثر داده‌های لاگ سیستم و برنامه را جمع آوری، ذخیره و تجزیه و تحلیل کنید تا بتوانید سیستم‌های خود را نظارت و بهبود بخشید. با کمک این کتاب، ستون‌های مشاهده‌پذیری از جمله لاگ ها، معیارها و رد‌ها را در یک سیستم تله‌متری end-to-end که با زیرساخت‌های موجود شما یکپارچه می‌شود، مدیریت کنید. شما متوجه خواهید شد که چگونه دور سنجی نرم افزار برای استارتاپ‌های کوچک و سازمان‌های قدیمی سود آفرین است. همچنین در زمانی که حسابرسی داده‌ها به طور فزاینده ای در حال رایج شدن هستند، شما از پوشش کامل فرآیندهای الزامات قانونی قدردانی خواهید کرد، بنابراین دلیلی برای وحشت در هنگام رسیدن درخواست بازرسی وجود ندارد.

 
تعداد بازدید: ۲۷۸
دیدگاه ها: ۰
تاریخ: 1401/02/16 18:11
توسط: MotoMan
امتیاز: ۱
برچسب ها: software engineering |

کتاب Evolving Software Processes (فرآیندهای نرم افزاری در حال تکامل)، عناصر اصلی تکامل فرآیندهای نرم‌افزاری، مانند DevOps و مقیاس‌پذیری فرآیند چابک در GSD را فراهم می‌کند تا پایه‌ای محکم برای فرآیندهای موفق و پایدار آینده ایجاد کند.

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

صنعت در جستجوی قابلیت‌های مدیریت فرآیند نرم افزار است. ظهور همه‌گیری COVID-19 بر نیاز صنعت به قابلیت‌های مدیریت فرآیند ویژه نرم‌افزار تأکید می‌کند. اکثر محصولات و خدمات امروزی به میزان قابل توجهی مبتنی بر نرم افزار هستند و نتایج برنامه‌های توسعه در مقیاس بزرگ هستند. موفقیت چنین برنامه هایی به شدت به قابلیت‌های مدیریت فرآیند بستگی دارد، زیرا آنها معمولاً به هماهنگی صدها یا هزاران توسعه دهنده در رشته‌های مختلف نیاز دارند. علاوه بر این، توسعه نرم‌افزار و سیستم معمولاً در مرزهای جغرافیایی، فرهنگی و زمانی توزیع می‌شوند که فعالیت‌های مدیریت فرآیند را در وضعیت همه‌گیری کنونی چالش‌برانگیزتر می‌کند.

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

 
تعداد بازدید: ۲۵۳
دیدگاه ها: ۰
تاریخ: 1401/02/15 16:17
توسط: MotoMan
امتیاز: ۰

با کمک کتاب Software Architecture by Example (معماری نرم افزار با مثال)، راهکار‌های سیستمی را با استفاده از الگو‌ها و شیوه‌های معماری مدرن طراحی کنید. این کتاب، روش‌هایی برای پاسخگو نگه داشتن یک سیستم، حتی زمانی که دائماً به‌روزرسانی می‌شود، گسترش عملکرد سیستم بدون تغییر کد اصلی، روش‌های نگهداری تاریخچه داده‌ها و طراحی یک سیستم تراکنشی توزیع‌شده را مورد بحث قرار می‌دهد.

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

پس از مطالعه این کتاب، باید درک سطح بالایی از الگوهای معماری به کار رفته در کتاب داشته باشید و باید روشی برای نزدیک طراحی سیستم شدن داشته باشید.

 
تعداد بازدید: ۶۳۴
دیدگاه ها: ۰
تاریخ: 1401/02/10 21:45
توسط: MotoMan
امتیاز: ۰
برچسب ها: Coding |software engineering |

در کتاب Software Development, Design and Coding (توسعه نرم افزار، طراحی و کدنویسی)، اصول طراحی نرم افزار خوب و نحوه تبدیل آن اصول به کدی عالی را خواهید آموخت. این کتاب، شما را با مهندسی نرم افزار، از کاربرد اصول مهندسی تا توسعه نرم افزار آشنا می‌کند. شما چگونگی اجرای یک پروژه‌ی نرم افزاری را خواهید دید، مراحل مختلف یک پروژه را بررسی می‌کنید و نحوه‌ی طراحی و پیاده سازی برنامه‌ها را به منظور حل مشکلات خاصی یاد خواهید گرفت. این کتاب همچنین درباره‌ی ساختن کد است؛ چگونه برنامه‌های عالی بنویسید و آن‌ها را به کار بیندازید.
چه در برنامه نویسی تازه کار باشید و چه صدها برنامه کاربردی نوشته باشید، در این کتاب کارهایی را که قبلا انجام داده اید را دوباره بررسی خواهید کرد و راه‌های بهبود را بررسی خواهید کرد. با استفاده از زبان جاوا، شما عمیقاً به استانداردهای کدنویسی، اشکال زدایی، تست واحد، ماژولار بودن و سایر ویژگی‌های برنامه‌های خوب نگاه خواهید کرد.

 

تعداد بازدید: ۴۸۱
دیدگاه ها: ۰
تاریخ: 1401/02/09 17:10
توسط: MotoMan
امتیاز: ۰
برچسب ها: Coding |software engineering |

به کمک این کتاب، نمای کلی فرآیند توسعه نرم افزار را درک خواهید کرد. ما هر روز از نرم افزار استفاده می‌کنیم؛ سیستم عامل ها، برنامه‌های کاربردی، برنامه‌های ویرایش اسناد، بانکداری خانگی، اما آیا تا به حال فکر کرده اید که چه کسی نرم افزار را ایجاد می‌کند و چگونه ایجاد می‌شود؟ این کتاب، با کمک تئوری و ابزار‌های طراحی کاربر محور، شما را در کل فرآیند، از تصور تا محصول نهایی راهنمایی می‌کند.
کتاب Software Development: From A to Z (توسعه نرم افزار: از A تا Z)، یک نمای کلی از توسعه Backend، از پایگاه داده گرفته تا پروتکل‌های ارتباطی از جمله مهارت‌های برنامه نویسی کاربردی در جاوا و توسعه frontend، از HTML و CSS گرفته تا رجیستری npm و چارچوب Vue.js ارائه می‌دهد. شما مهندسی تضمین کیفیت، از جمله تئوری در مورد انواع مختلف تست‌ها و تمرین تست end-to-end با استفاده از Selenium را بررسی خواهید کرد.
سپس وارد دنیای devops خواهید شد، جایی که نویسندگان کتاب در مورد یکپارچه سازی مداوم و فرآیندهای تحویل مداوم به همراه فناوری‌های مرتبط با هر موضوع بحث می‌کنند. سپس مطالب مربوط به مدیریت محصول و پروژه را بررسی خواهید کرد که در آن نویسندگان در مورد فرآیندهای چابک، اسکرام و سایر فرآیندها از تجربه خود صحبت می‌کنند.
موضوعاتی که تحت پوشش قرار می‌گیرند به طور کلی نیاز به دانش عمیقی از فناوری ندارند. هر کسی که دانش اولیه کامپیوتر و برنامه نویسی را داشته باشد، می‌تواند تمام کار‌ها را تکمیل کند و مفاهیمی را که هدف این کتاب ارائه دادن آن هاست را به طور کامل درک کند. شما کلاه مدیر پروژه، صاحب محصول، طراح، بک اند، فرانت اند، QA و مهندس devops را بر سر می‌گذارید و نقش مورد علاقه خود را پیدا می‌کنید.

 

تعداد بازدید: ۴۴۱
دیدگاه ها: ۰
تاریخ: 1401/02/03 12:10
توسط: MotoMan
امتیاز: ۰
برچسب ها: Coding |software engineering |

کارایی کد در برابر سادگی؛ سرعت تحویل در برابر تکرار؛ انعطاف پذیری در برابر قابلیت نگهداری. هر تصمیمی که در مهندسی نرم‌افزار می‌گیرید، مستلزم سبک و سنگین کردن است. در کتاب Software Mistakes and Tradeoffs (اشتباهات نرم افزاری و سبک و سنگین کردن ها)، از اشتباهات پرهزینه ای که توماس للک و جان اسکیت در طول مشاغل حرفه ایشان با آنها مواجه شده اند، یاد خواهید گرفت. هر گامی در یک پروژه نرم افزاری مستلزم سبک و سنگین کردن است. وقتی سرعت، امنیت، هزینه، زمان تحویل، قابلیت‌ها و موارد دیگر را سبک و سنگین می‌کنید، انتخاب‌های معقول طراحی ممکن است در هنگام عملیاتی شدن مشکل‌ساز باشند. شما سناریوهای دنیای واقعی را بررسی خواهید کرد که در آن درک ضعیفی از سبک و سنگین کردن‌ها منجر به مشکلات بزرگی می‌شود، بنابراین می‌توانید با رویکردی متفکرانه‌تر در تصمیم گیری، از اشتباهات خود جلوگیری کنید.
بیاموزید که چگونه تکرار کد بر جفت شدگی (coupling) و سرعت تکامل سیستم‌های شما تأثیر می‌گذارند و چگونه نیازمندی‌های ساده می‌توانند تفاوت‌های ظریف پنهانی با توجه به اطلاعات تاریخ و زمان داشته باشند. کشف کنید که چگونه به طور موثری دامنه بهینه سازی خود را طبق اصول پارتو 80/20 محدود کنید و از ثبات در سیستم‌های توزیع شده خود اطمینان حاصل کنید. شما خیلی زود دانشی کسب خواهید کرد که فقط از سالها تجربه ناشی می‌شود.

 

 
تعداد بازدید: ۵۲۴
دیدگاه ها: ۰
تاریخ: 1401/01/22 23:13
توسط: MotoMan
امتیاز: ۱

در چند سال اخیر، تعداد شیوه‌های فنی محبوب به طور تصاعدی افزایش یافته است. یادگیری شیوه‌های رایج توسعه نرم افزار می‌تواند به شما کمک کند تا برنامه نویس بهتری شوید. کتاب Agile Technical Practices Distilled (روشهای فنی چابک تقطیر شده) از اصطلاح Agile به عنوان یک چتر گسترده استفاده می‌کند و اصول و شیوه‌های Agile و همچنین اکثر روش‌های مرتبط با آن را پوشش می‌دهد.

شما با کشف اینکه چگونه راننده-ناوبر، ساعت شطرنج، و سایر تکنیک‌های مورد استفاده در رویکرد برنامه نویسی دو نفره، به کد نویسی نظم می‌دهند، شروع خواهید کرد. سپس یاد خواهید گرفت که با استفاده از refactoring، طراحی کد خود را با خیال راحت تغییر دهید. در حین یادگیری این تکنیک ها، بهترین شیوه‌های مختلف برای نوشتن تست‌های کارآمد را نیز بررسی خواهید کرد. فصول پایانی کتاب عمیقاً به اصول SOLID می‌پردازند؛ پنج اصل طراحی که می‌توانید از آنها استفاده کنید تا نرم افزار خود را قابل درک تر، انعطاف پذیرتر و قابل نگهداری‌تر کنید.

با به پایان رساندن این کتاب، ایده‌های جدیدی برای بهبود مهارت‌های طراحی نرم‌افزار، روابط درون تیم و نحوه کار کسب‌وکارتان کشف خواهید کرد.

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

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

کتاب Architecting for Scale, 2nd Edition (معماری برای مقیاس پذیری، ویرایش دوم)، که با تمرکز گسترده بر پارادایم‌های معماری مدرن مانند میکروسرویس‌ها و محاسبات ابری به‌روزرسانی شده است، تکنیک‌هایی را برای ساختن سیستم هایی ارائه می‌کند که می‌توانند حجم عظیمی از ترافیک، داده و تقاضا را مدیریت کنند، بدون اینکه بر کیفیت مورد انتظار مشتریان شما تأثیر بگذارند. با کمک این کتاب، معماران، مدیران و کارگردان‌ها در سازمان‌های مهندسی و عملیاتی یاد می‌گیرند که چگونه برنامه‌هایی را در مقیاسی بسازند که برای رفع نیازهای مشتریان روان‌تر و قابل اطمینان‌تر اجرا شوند.

تعداد بازدید: ۸۶۵
دیدگاه ها: ۰
تاریخ: 1400/09/12 11:04
توسط: MotoMan
امتیاز: ۱

دوره Domain-Driven Design Fundamentals (مبانی طراحی دامنه محور) نسخه 2021 موسسه Pluralsight، اصول طراحی دامنه محور (DDD) را از طریق نمایش تعاملات مشتری و یک برنامه نمونه پیچیده، همراه با مشاوره از کارشناسان مشهور DDD به شما آموزش می‌دهد. ابتدا، نحوه مدل سازی یک مسئله نرم افزاری را بررسی می‌کنید و در ادامه، عناصر DDD را کاوش خواهید کرد. در نهایت، یاد خواهید گرفت که چگونه از DDD در یک برنامه‌ی نمونه نرم افزاری استفاده کنید.
پس از اتمام این دوره، مهارت‌ها و دانش طراحی دامنه محور مورد نیاز برای گشودن پیچیدگی دامنه خود، ساخت نرم افزار هوشمندتر و به دست آوردن درک عمیق‌تر از DDD را در اختیار خواهید داشت.

 

 
تعداد بازدید: ۱۹۸۵
دیدگاه ها: ۰
تاریخ: 1400/08/28 12:21
توسط: MotoMan
امتیاز: ۱
برچسب ها: software engineering |

همانطور که اقتصاد دیجیتالی قوانین بازی را برای سازمان‌های سنتی تغییر می‌دهد، نقش معماران نیز به طور اساسی تغییر می‌کند. به جای فقط تمرکز بر پیاده سازی‌های فنی، آنها باید پنت هاوس سازمان را، جایی که استراتژی کسب و کار تنظیم می‌شود، با موتورخانه فنی، جایی که فناوری‌های توانمند در آن پیاده سازی می‌شوند، متصل کنند. تنها در صورتی که هر دو بخش به هم متصل باشند، فناوری اطلاعات می‌تواند نقش خود را از یک مرکز هزینه به یک مزیت دیجیتال رقابتی تغییر دهد. ایجاد این ارتباط با پیاده روی از یک طبقه سازمان به طبقه بعدی کارساز نخواهد بود. در عوض، معماران مدرن با استفاده از مسیر سریع، ساختار‌های موجود را دور می‌زنند: آسانسور معمار.

کتاب The Software Architect Elevator (آسانسور معمار نرم افزار)، به معماران مشتاق کمک می‌کند تا دیدگاه جدیدی از معنای معمار بودن را بپذیرند و آنها را برای سوار شدن بر آسانسور معماری در طبقه‌های مختلف، هماهنگ‌سازی سازمان و فناوری و ایجاد تغییرات پایدار، مجهز می‌کند. در این راهنما، Gregor Hohpe نویسنده کتاب، توصیه‌های دنیای واقعی و درس‌های سخت یاد گرفته شده از تحولات واقعی فناوری اطلاعات را به اشتراک می‌گذارد. حکایات او به معماران، توسعه دهندگان ارشد و سایر متخصصان فناوری اطلاعات کمک می‌کند تا برای نقش پیچیده‌تر اما پربارتر در سازمان آماده شوند.

تعداد بازدید: ۱۰۲۴
دیدگاه ها: ۰
تاریخ: 1400/07/29 23:42
توسط: MotoMan
امتیاز: ۱
برچسب ها: Coding |software engineering |

در بین تمامی مصاحبه‌های فنی، سوالات مصاحبه‌های طراحی سیستم، سخت‌ترین هستند. این سوالات، از مصاحبه شونده‌ها می‌خواهند تا یک معماری را برای یک سیستم نرم افزاری که می‌تواند یک فید خبری، جستجوی گوگل، سیستم چت و غیره باشد، طراحی کنند. این سوالات ترسناک هستند و هیچ الگوی خاصی برای پیروی از آن وجود ندارد. این سوالات، معمولاً دارای گستره بزرگ و مبهم هستند؛ و فرآیند‌ها بی انتها، نامفهوم و بدون یک پاسخ استاندارد یا صحیح هستند.
شرکت‌ها به طور گسترده ای از مصاحبه‌های طراحی سیستم استفاده می‌کنند؛ زیرا مهارت‌های ارتباطی و حل مسئله ای که در این مصاحبه‌ها آزمایش می‌شوند مشابه مهارت‌های مورد نیاز کار روزمره یک مهندس نرم افزار است. مصاحبه شونده بر اساس چگونگی تجزیه و تحلیل یک مسئله مبهم و نحوه حل گام به گام مسئله ارزیابی می‌شود. توانایی‌های مورد آزمایش همچنین شامل نحوه‌ی توضیح ایده، بحث با دیگران و ارزیابی و بهینه سازی سیستم است.
سوالات طراحی سیستم بی انتها هستند. درست مانند دنیای واقعی، تفاوت‌ها و تغییرات زیادی در سیستم وجود دارد. نتیجه مطلوب، ارائه معماری برای دستیابی به اهداف طراحی سیستم است. بسته به مصاحبه کننده، بحث‌ها می‌توانند به روش‌های مختلفی پیش بروند. برخی مصاحبه کنندگان ممکن است معماری سطح بالا را برای پوشش همه جنبه‌ها انتخاب کنند؛ در حالی که برخی ممکن است یک یا چند حوزه را برای تمرکز انتخاب کنند. به طور معمول، نیازمندی‌های سیستم، محدودیت‌ها و گلوگاه‌ها باید به خوبی درک شوند تا جهت مصاحبه کننده و مصاحبه شونده را شکل دهند.
هدف کتاب System Design Interview – An insider's guide, Second Edition (مصاحبه طراحی سیستم – راهنمای خودی، ویرایش دوم)، ارائه یک استراتژی قابل اعتماد برای رویارویی با سوالات مصاحبه طراحی سیستم است. استراتژی و دانش مناسب، برای موفقیت در یک مصاحبه حیاتی است. این کتاب، دانش کاملی در زمینه ایجاد یک سیستم مقیاس پذیر ارائه می‌دهد. هرچه دانش بیشتری از خواندن این کتاب کسب شود، در حل سوالات طراحی سیستم مجهزتر خواهید بود. این کتاب همچنین چارچوبی گام به گام در مورد نحوه برخورد با سوالات طراحی سیستم ارائه می‌دهد. همچنین مثال‌های زیادی را برای نشان دادن رویکرد سیستماتیک با مراحل دقیق که می‌توانید دنبال کنید ارائه می‌دهد. با تمرین مداوم، برای از عهده بر آمدن پرسش‌های مصاحبه طراحی سیستم، به خوبی مجهز خواهید بود.

 

تعداد بازدید: ۱۵۵۰
دیدگاه ها: ۰
تاریخ: 1400/07/29 19:34
توسط: MotoMan
امتیاز: ۱

معماری‌های سازمانی، دیگر نمی‌توانند بر روی برنامه ریزی‌های ایستا حساب کنند. اکوسیستم توسعه نرم افزار به طور مداوم در حال تغییر است و جریان دائمی از ابزار ها، چارچوب ها، تکنیک‌ها و الگو‌های جدیدی را ارائه می‌دهد. این قضیه، برای افرادی با سیستم‌های شکننده دردسر ایجاد می‌کند، اما همچنین راه حل نهایی را نیز ارائه می‌دهد. در سال‌های اخیر، توسعه‌های تدریجی در شیوه‌های اصلی مهندسی نرم افزار، برای تجدید نظر در مورد چگونگی تغییر معماری در طول زمان، همراه با راه هایی برای محافظت از ویژگی‌های مهم معماری در حین تکامل، پایه هایی را ایجاد کرده است. این کتاب، آن شیوه‌ها را به یکدیگر گره می‌زند و راهی جدید برای فکر کردن درباره تقاطع معماری و زمان پیشنهاد می‌دهد.
در کتاب Building Evolutionary Architectures (ساخت معماری‌های تکاملی)، یاد می‌گیرید که ساخت یک معماری تکاملی از سه دغدغه تشکیل شده است: عملکرد‌های سازگاری، تغییر تدریجی و جفت شدگی مناسب. سه متخصص در ThoughtWorks، هر جنبه را به صورت جداگانه بررسی می‌کنند و سپس آن‌ها را ترکیب می‌کنند تا به شما نشان دهند که چگونه می‌توان معماری هایی ساخت که از تغییر دائمی پشتیبانی کنند.

 

 
تعداد بازدید: ۸۰۴
دیدگاه ها: ۰
تاریخ: 1400/04/18 12:59
توسط: MotoMan
امتیاز: ۱

هیچ چیزی به اندازه‌ی کدهای بد، ناخوانا، شلخته و سریع نوشته شده که با دقت طراحی نشده اند، روی کار یک تیم تأثیر نمی‌گذارد. پویایی تیم می‌تواند بهبود یابد، نیازمندی‌ها دوباره تعریف شوند و زمان بندی می‌تواند اصلاح شود؛ اما، اگر کد بد کنترل کار را در دست بگیرد، سنگینی آن برای تیم بیشتر و بیشتر می‌شود. برنامه نویسان باید همیشه توسعه دهند. حتی اگر آن‌ها فکر می‌کنند که مهارت و دانش کافی برای حرکت در پروژه‌های فعلی را دارند، نباید در آنجا متوقف شوند و شایسته است که آنها هر از گاهی مفاهیم، رویکردها، زبان‌ها و چارچوب‌های جدیدی را بیاموزند. یادگیری باید یک سفر باشد و نه یک مقصد.
برای تبدیل شدن به یک توسعه دهنده‌ی بهتر نرم افزار، به دانش و مهارت‌های عملی عمیقی در زمینه‌ی توسعه و کیفیت نرم افزار نیاز دارید. این کتاب، برای تحلیل و بهبود کد‌های نرم افزار شما، بحث‌های مفصلی و بررسی‌های اجمالی زیادی را ارائه می‌دهد. شما قادر خواهید بود تا از اصول، الگوها، تکنیک‌ها و ابزارهای مورد نیاز برای نوشتن کد تمیز استفاده کنید.
کتاب Clean Code Fundamentals (مبانی کد تمیز)، مبانی کیفیت نرم افزار، اصول، الگوها و بهترین شیوه‌های نوشتن کد بهتر را بیان می‌کند. این کتاب همچنین شامل مثال‌های بسیاری با کد جاوا و با پیچیدگی از کم به زیاد است. همچنین موارد دیگری مانند معیارهای نرم افزار، تست نرم افزار استاتیک و ابزارهایی که می‌توانند به اندازه گیری کیفیت نرم افزار کمک کنند، پوشش داده خواهند شد.

 

تعداد بازدید: ۱۵۹۲
دیدگاه ها: ۰
تاریخ: 1400/04/01 22:29
توسط: MotoMan
امتیاز: ۲

به ندرت پیش می‌آید که یک کتاب نرم افزاری پانزده سال دوام بیاورد. زمانی که کتاب جدیدی از نسخه آزمایشی خارج می‌شود، این خطر وجود دارد که در همان زمان منسوخ شده باشد. کتاب «طراحی دامنه محور - مقابله با پیچیدگی در قلب نرم افزار» (ادیسون-وسلی) اریک ایوانز، حتی بیش از 15 سال پس از انتشار، دوباره علاقه به طراحی نرم افزار را برانگیخته است. کتاب‌ها و وبلاگ‌های زیادی بر اساس ایده‌های ارائه شده توسط اریک گسترش یافته اند؛ افراد روش‌های جدید برای بکارگیری این اصول ایجاد شده اند؛ کارگاه ها، دوره‌های آنلاین و کنفرانس هایی در اروپا، آسیا و آمریکای شمالی و ده‌ها گردهمایی در سراسر جهان برای آن برگزار شده اند.
به طور سنتی، جامعه DDD قبلا منحصرا توسط برنامه نویسان و معماران پر شده بود، اکنون ما شاهد توجه روز افزون از رشته‌های مختلف در زمینه طراحی نرم افزار هستیم. به نظر می‌رسد تحلیلگران پیشگام هستند - زیرا مدل سازی همیشه بخشی اساسی از تجزیه و تحلیل بوده است. اما اکنون آزمایشگران و طراحان محصول در حال کشف ارزش Domain Driven Design هستند. آن‌ها بیش از حد با مدل‌ها سر و کار دارند و به اصول و شیوه‌های ساخت و همکاری در مدل ها، اشتراک یک Ubiquitous Language و یافتن مرز‌های context بهتری برای مدیریت پیچیدگی روز افزون نرم افزار‌ها جلب شدند.
چیزی که موفقیت DDD را بیش از پیش تعجب آور می‌کند این است که کتاب اریک، به خاطر تئوری بودن، دانشگاهی بودن و فلسفی بودن شهرت دارد و این‌ها لغاتی هستند که برنامه نویسان وقتی استفاده می‌کنند که منظورشان «دشوار» است. و باید هم باشد: نوشتن کتابی که با پیچیدگی از کوچکترین شی دامنه تا ساختارهای مقیاس بزرگ سر و کار دارد، بسیار جاه طلبانه بود. DDD سخت است چرا که طراحی نرم افزار سخت است. هنگامی که به تراکم دانش در کتاب اریک عادت کنید، خواهید فهمید که در واقع بسیار عملی است. این ایده‌ها از دنیای واقعی و محیط‌های کاملاً پیچیده نشات گرفته اند و با سال‌ها تفکر عمیق، بحث و آزمایش، آبدیده شده اند.
DDD «تمام شده» نیست. تابستان گذشته، هنگام شام در پاریس، اریک در مورد اینکه چقدر دوست دارد تا کتاب‌های بیشتری را درباره طراحی دامنه محور ببیند صحبت کرد. ایده‌های جالب جدید در این جامعه کم نیست، اما آنها در گفتگوها، وبلاگ ها، توییتر و لیست‌های پستی پراکنده هستند. بنابراین برای جشن گرفتن پانزدهمین سالگرد DDD، ایده ای بهتر از نوشتن این کتاب به ذهنمان نرسید. ما امیدواریم که این کتاب الهام بخش دیگران برای توسعه ایده‌های جدید و نوشتن شود.
مطالب کتاب Domain-Driven Design: The First 15 Years (طراحی دامنه محور: 15 سال نخست)، از پیچ و خم‌های فلسفی تا بحث‌های فنی عمیق، از روش‌های امتحان شده و واقعی تا ایده‌های تجربی و از تحلیل انتقادی گرفته تا نامه‌های عاشقانه DDD را شامل می‌شود. اریک، ما این کتاب را به عنوان قدردانی از سخاوت شما در به اشتراک گذاشتن ایده‌های خود در طی کنفرانس Domain-Driven Design Europe 2019 به شما ارائه می‌دهیم.

 

تعداد بازدید: ۱۹۱۳
دیدگاه ها: ۱
تاریخ: 1399/12/12 23:21
توسط: MotoMan
امتیاز: ۰

توسعه چابک، توانایی توسعه سریع نرم افزار در مواجهه با نیازمندی‌های به سرعت در حال تغییر است. برای دستیابی به این چابکی، ما باید شیوه هایی را به خدمت بگیریم که نظم و بازخورد لازم را فراهم کنند. ما نیاز به استفاده از اصول طراحی داریم تا نرم افزارمان را انعطاف پذیر و قابل نگهداری نگه دارند؛ و نیاز داریم تا الگو‌های طراحی که به منظور متوازن نگه داشتن این اصول برای مسائل خاص پدید آمده اند را بدانیم. این کتاب، تلاشی برای گره زدن هر سه این مفاهیم به یکدیگر به منظور تشکیل یک اتحاد کارآمد است. این کتاب، اصول، الگوها و شیوه‌ها را توصیف می‌کند و سپس نحوه‌ی بکارگیری آن‌ها را توسط شرح دقیق ده‌ها مورد مطالعاتی مختلف نشان می‌دهد. از همه مهمتر، موارد مطالعاتی به عنوان کار‌های کاملی ارائه نشده اند؛ بلکه الگو هایی در حال پیشرفت هستند. خواهید دید که طراحان اشتباه می‌کنند و مشاهده خواهید کرد که چگونه اشتباهات را شناسایی کرده و در نهایت تصحیح می‌کنند. خواهید دید که آن‌ها بر سر معما‌ها گیج می‌شوند و نسبت به ابهامات و سبک سنگین کردن‌ها نگران هستند. در حقیقت شما عمل طراحی را مشاهده خواهید کرد.
این کتاب که توسط یک توسعه دهنده نرم افزار برای توسعه دهندگان نرم افزار نوشته شده است، مجموعه ای منحصر به فرد از جدیدترین متدهای توسعه نرم افزار است. کتاب Agile Software Development, Principles, Patterns, and Practices ( توسعه نرم افزار چابک، اصول، الگو‌ها و شیوه ها) که توسط Robert C. Martin تالیف شده است، شامل روش‌های OOD، UML، الگو‌های طراحی، چابک و XP، همراه با شرح مفصلی از طراحی کامل نرم افزار  برای برنامه‌های قابل استفاده مجدد در سی پلاس پلاس و جاوا است. با استفاده از یک رویکرد عملی و حل مسئله، چگونگی توسعه یک برنامه شی گرا از مراحل اولیه تجزیه و تحلیل و از طریق طراحی سطح پایین تا پیاده سازی آن، نشان داده می‌شود. این کتاب، افکار طراح را به خوانندگان نشان می‌دهد – نشان دادن خطاها، کوچه‌های بن بست و بینش‌های خلاقانه ای که در طول مراحل طراحی نرم افزار رخ می‌دهند. این کتاب شامل موارد زیر است: استاتیک‌ها و پویا ها؛ اصول طراحی کلاس؛ مدیریت پیچیدگی؛ اصول طراحی پکیج؛ تحلیل و طراحی الگوها؛ گذرگاههای پارادایمی. این کتاب اصول OOD را یک به یک توضیح می‌دهد و سپس آنها را با مثال‌های متعدد، الگو‌های کاملاً کار شده و موارد مطالعاتی به نمایش می‌گذارد. همچنین در استفاده از ++C و OOD تله ها، دام‌ها و راهکار‌ها را پوشش می‌دهد و سپس نشان می‌دهد که چگونه می‌توان از روش‌های Agile استفاده کرد. در ادامه در مورد روش‌های طراحی و توسعه نرم افزار بزرگ به طور مفصل بحث می‌کند. یک مورد مطالعاتی از ساخت سیستم امنیتی نیز به صورت مفصل و در سه فصل در این کتاب ارائه شده است. برای مهندسین نرم افزار، برنامه نویسان و تحلیلگرانی که می‌خواهند نحوه طراحی نرم افزار شی گرا را با روش‌های پیشرفته درک کنند، این کتاب مناسب است.

 

تعداد بازدید: ۱۷۰۵
دیدگاه ها: ۰
تاریخ: 1399/10/09 22:44
توسط: MotoMan
امتیاز: ۳

معماری نرم افزار، شیوه‌ی پیاده سازی ساختارها و سیستم هایی است که روند توسعه نرم افزار را ساده می‌کند و کیفیت برنامه را بهبود می‌بخشد. ویرایش دوم کاملا بازنگری شده و بسط یافته کتاب Software Architecture with C# 9 and .NET 5، جدید‌ترین قابلیت‌های سی شارپ 9 و دات نت 5 را ارائه داده است و شما را قادر می‌سازد تا مهارت‌های کلیدی، دانش و بهترین شیوه‌های لازم برای تبدیل شدن به یک معمار نرم افزار کارآمد را به دست آورید.
کتاب Software Architecture with C# 9 and .NET 5, 2nd Edition (معماری نرم افزار با سی شارپ 9 و دات نت 5، ویرایش دوم)، توضیحات بیشتری در مورد اصول معماری نرم افزار از جمله فصل‌های جدیدی در مورد Azure Service Fabric، Kubernetes و Blazor ارائه می‌دهد. این کتاب همچنین شامل بحث‌های بیشتری در مورد امنیت، میکرو سرویس‌ها و DevOps از جمله استقرار‌های GitHub برای چرخه توسعه نرم افزار است.
شما با درک چگونگی تبدیل نیازمندی‌های کاربری به نیازهای معماری و بررسی تفاوت‌های بین نیازمندی‌های عملیاتی و غیر عملیاتی شروع خواهید کرد. در ادامه، شما نحوه انتخاب دقیق یک راهکار ابری برای زیرساخت خود و همچنین عواملی را که به شما کمک می‌کنند تا برنامه خود را در یک محیط مبتنی بر ابر مدیریت کنید، بررسی خواهید کرد. سرانجام، شما الگوهای طراحی نرم افزار و رویکردهای مختلف نرم افزاری را بررسی خواهید کرد که به شما امکان می‌دهند تا مشکلات رایجی که در طول توسعه با آن‌ها روبرو می‌شوید را حل کنید.
در پایان این کتاب، شما قادر به ساخت و تحویل برنامه‌های بسیار مقیاس پذیر enterprise-ready هستید که نیازمندی‌های تجاری سازمان شما را برآورده می‌کنند. این کتاب برای مهندسان و توسعه دهندگان ارشد نرم افزار است که مشتاق هستند تا معمار شوند و یا به دنبال ساخت برنامه‌های سازمانی با NET Stack. هستند. آشنایی اولیه با زبان سی شارپ و چارچوب دات نت برای استفاده هر چه بیشتر از این کتاب لازم است.

 

تعداد بازدید: ۴۸۰۹
دیدگاه ها: ۴
loading...

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