تذکر:
مطالب ذکر شده در این پست، صرفا نظر شخصی اینجانب پس از مطالعه ی این کتاب می باشد.
مشخصات کتاب:
Paperback: 304 pages
Author: Dino Esposito; Andrea Saltarello
Publisher: Microsoft Press; 1 edition (October 15, 2008)
Language: English
ISBN-10: 073562609X
ISBN-13: 978-0735626096
از زمان ظهور پلتفرم دات نت حدود 10 سال سپری شده است و تاکنون کتاب های متعددی در تشریح قسمت های مختلف این تکنولوژی و با توجه به نسخه های مختلف آن، منتشر شده اند. از میان این کتاب ها، تعداد انگشت شماری از آن ها به بررسی مقوله ی معماری نرم افزار پرداخته اند.
تقریبا تمامی کتاب های منتشر شده در زمینه معماری نرم افزار در بستر دات نت، به معرفی چند الگوی طراحی (Design Pattern) مهم و پر استفاده پرداخته و در نهایت این الگوها را در یک برنامه ی چند لایه پیاده سازی می نمایند.
کتاب های بسیار با ارزش دیگری نیز در حوزه ی کامپیوتر و معماری نرم افزار منتشر شده اند که زمان انتشار اغلب آن قبل از سال 2003 بوده و اغلب به شکل کاملا تئوری و با رویکردی مستقل از تکنولوژی ساخت نرم افزار، به معرفی مفاهیم و چالش های مربوطه پرداخته اند.
اما در این میان کتاب Architecting Microsoft .NET Applications for the Enterprise براستی بی همتا بوده و به عقیده اینجانب تا سال های آینده نیز همتایی نخواهد داشت.
مؤلفین این کتاب، دو تن از مشهورترین معماران و طراحان دنیای نرم افزار و بخصوص پلتفرم دات نت می باشند که سال های زیادی از عمر خود را صرف تولید نرم افزار نموده و درگیر با چالش های متفاوت بوده اند و در این کتاب تجربیات ارزشمند و گران بهای خود را بی دریغ با خوانند گان به اشتراک گذاشته اند.
همانطور که مؤلفین نیز در ابتدای کتاب ذکر می کنند، این کتاب را شاید نیاز باشد چندین مرتبه و به دقت مطالعه نمود. مطالب کتاب با این سوال آغاز می شود که براستی یک معمار نرم افزار کیست؟! و تعاریف مختلفی از آن را ارائه نموده و مورد بررسی قرار می دهند.
یکی از منحصر به فرد ترین ویژگی های این کتاب این است که مؤلفین اغلب کتاب ها و مقالات ارزشمند معماری نرم افزار از سال های مربوطه به سال های 1980 تاکنون را به دقت مطالعه نموده اند و در این کتاب به وفور به نقل قول از این مطالب به شکل مستند پرداخته و سپس معایب و مزایا و ویژگی های هر نظریه را مورد بررسی قرار داده اند. در نهایت این تجربیات را به پلتفرم دات نت بسط داده و راه حل های برگزیده ی هر چالش را با ذکر دلایل خود معرفی کرده اند. در این کتاب به وفور جملات اساتیدی همچون آقای Martin Fowler و مؤلفین الگوهای Gang of Four نقل می شوند.
در این کتاب معماری در سطح تحلیل و معماری در سطح طراحی نرم افزار مورد بررسی قرار گرفته است.
خوشبختانه مطالب در مواقع مورد نیاز همراه با قطعه کد هایی با زبان Csharp همراه می باشند و بدین صورت، مخاطب می تواند درک عمیقی از این مفاهیم پیدا کند.
در این کتاب، مؤلفین به شکل مشروح و مفصلی به معرفی چهار لایه ی مهمی که معمولا نرم افزار های بزرگ در قالب آن تولید می شوند می پردازند.
این لایه ها عبارتند از:
- Business Layer
- Service Layer
- Data Access Layer
- Presentation Layer
مؤلفین ابتدا به سناریوی دلیل وجود این لایه ها پرداخته و سپس به معرفی روش ها و ابزار ها و هر آنچه که در این سال ها در نرم افزار های موفق بکار گرفته شده اند می پردازند و ویژگی ها و معایب و مزایای هر روش مورد بررسی قرار می دهند و در مواقعی که نیاز به جزئیات بیشتری می باشد، با قرار دادن لینک های مربوطه، راه را برای علاقه مندان جهت کسب جزئیات بیشتر، هموار نموده اند.
و از همه مهمتر اینکه توصیه ها و راهنمایی های ارزشمند خود را همراه با ذکر دلیل به مخاطب ارائه می دهند و با توجه به تجربیات طولانی این اساتید دنیای نرم افزار، این اطلاعات بسیار با ارزش می باشد.
با این که تعداد صفحات این کتاب 304 برگ می باشد، اما با توجه به سطح سواد مخاطبین کتاب، مطالعه ی آن می تواند بسیار زمانبرتر از آنچه که در ابتدامتصور می شود باشد. خط به خط و پاراگراف به پاراگراف این کتاب را باید با دقت بسیار زیادی مطالعه کرد و همانطور که قبلا نیز ذکر کردم ، در صورتی که قصد دارید خود را به عنوان یک معمار نرم افزار در دنیای دات نت معرفی کنید، شاید نیاز باشد که بیش از یک بار این کتاب را مطالعه کنید.
با توجه به اینکه زبان اصلی هیچ کدام از مؤلفین انگلیسی نمی باشد، برخی از پاراگراف ها ممکن است اندکی گنگ به نظر برسند ولی این موضوع هرگز باعث نام مفهوم بودن مطالب نمی شود.
امروزه فضای مجازی و اینترنت رقیب سرسختی برای کتاب های آموزشی شده اند ولی با جرأت می توان گفت که مطالب این کتاب از آن دسته مطالب می باشند که در فضای مجازی نیز کمتر می توان یافت.
این کتاب ویژه ی افراد باتجربه ای می باشد که چندین سال از عمر خود را صرف برنامه نویسی و کار در دنیای نرم افزار نموده اند و البته که چنین نیز باید باشد زیرا قطعا باید یک معمار نرم افزار شخص باتجربه و کارشناسی خبره باشد و جز این نیست. به همین دلیل مطالعه ی این کتاب به افراد مبتدی پیشنهاد نمی شود.
امیدوارم از مطالعه ی این کتاب کمال لذت را ببرید.