دانلود کتاب Growing Object-Oriented Software, Guided by Tests

49,000 تومان

رشد نرم افزار شی گرا، هدایت شده توسط تست ها


موضوع اصلی برنامه نویسی
نوع کالا کتاب الکترونیکی
ناشر Addison Wesley
تعداد صفحه 385
حجم فایل 4 مگابایت
کد کتاب 0321503627,9780321503626
نوبت چاپ 1
نویسنده
زبانانگلیسی
فرمتPDF
سال انتشار2010
مطلب پیشنهادی: با پول کتاب در ایران چی میشه خرید؟
در صورت نیاز به تبدیل فایل به فرمت‌های PDF، EPUB، AZW3، MOBI و یا DJVU می‌توانید به پشتیبان اطلاع دهید تا در صورت امکان، فایل مورد نظر را تبدیل نمایند. سایت بَلیان دارای تخفیف پلکانی است، یعنی با افزودن کتاب بیشتر به سبدخرید، قیمت آن برای شما کاهش می‌یابد. جهت مشاهده درصد تخفیف‌ها بر روی «جدول تخفیف پلکانی» در پایین کلیک نمایید. جهت یافتن سایر کتاب‌های مشابه، از منو جستجو در بالای سایت استفاده نمایید.
شما می‌توانید با هر 1000 تومان خرید، ۱ شانس شرکت در قرعه‌کشی کتابخانه دیجیتال بلیان دریافت کنید و شانس خود را برای برنده شدن جوایز هیجان انگیز امتحان کنید. «شرایط شرکت در قرعه‌کشی»

جدول کد تخفیف

با افزودن چه تعداد کتاب به سبد‌خرید، چند‌ درصد تخفیف شامل آن خواهد شد؟ در این جدول پاسخ این سوال را خواهید یافت. برای مثال: اگر بین ۳ الی ۵ کتاب را در سبد خرید خود قرار دهید، ۲۵ درصد تخفیف شامل سبد‌خرید شما خواهد شد.
تعداد کتاب درصد تخفیف قیمت کتاب
1 بدون تخفیف 25,000 تومان
2 20 درصد 20,000 تومان
3 الی 5 25 درصد 18,750 تومان
6 الی 10 30 درصد 17,500 تومان
11 الی 20 35 درصد 16,250 تومان
21 الی 30 40 درصد 15,000 تومان
31 الی 40 45 درصد 13,750 تومان
41 الی 50 50 درصد 12,500 تومان
51 الی 70 55 درصد 11,250 تومان
71 الی 100 60 درصد 10,000 تومان
101 الی 150 65 درصد 8,750 تومان
151 الی 200 70 درصد 7,500 تومان
201 الی 300 75 درصد 6,250 تومان
301 الی 500 80 درصد 5,000 تومان
501 الی 1000 85 درصد 3,750 تومان
1001 الی 10000 90 درصد 2,500 تومان
توضیحات

ترجمه فارسی توضیحات (ترجمه ماشینی)

رشد نرم افزار شی گرا، هدایت شده توسط تست ها

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

کتاب از 5 قسمت تشکیل شده است. بخش اول معرفی سریع TDD و jMock. قسمت دوم چرخه tdd را با جزئیات بیشتری مورد بحث قرار می دهد. قسمت سوم (150 صفحه) نمونه بسیار بزرگی از رشد یک نرم افزار است. بخش چهارم موضوعاتی را در مورد چگونگی حفظ TDD مورد بحث قرار می دهد و قسمت آخر برخی از موضوعات پیشرفته را پوشش می دهد.

در این بررسی، قسمت 1 را رد می کنم زیرا کوتاه بود و چیز خاصی نداشت. قسمت دوم چرخه TDD و پیوند به طراحی تکاملی را پوشش می دهد. استیو و نات یک سبک طراحی دارند که تقریباً صرفاً بر تعاملات بین کلاس‌ها متمرکز است که اغلب با استفاده از انتظارات روی اشیاء ساختگی آزمایش می‌شوند (که به عنوان نویسندگان jMock تجربه زیادی در مورد آن دارند). قابل توجه ترین قسمت 2، برای من، طبقه بندی اشیایی بود که آنها استفاده می کردند، تمرکز قوی روی تعامل و تمسخر (بیشتر از آنچه که معمولاً در هنگام تست رانندگی دارم) و عدم تمرکز آنها بر کلاس ها اما تمرکز بر نقش ها و مسئولیت ها. نات و استیو تفکرات خود را به خوبی روشن می کنند که درک همه چیز را آسان می کند.

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

نوشتن تست ها یک چیز است، حفظ آنها در چیز دیگر. بخش 4 چگونگی پایدار نگه داشتن تست ها و پایدار نگه داشتن چرخه tdd را مورد بحث قرار می دهد. من شخصاً این بخش را بسیار روشنگر یافتم و نظم و انضباط نویسندگان نمونه بود. نویسندگان با بوهای مختلف آزمایش و اینکه در مورد آن چه باید کرد شروع می کنند. سپس خوانایی تست ها و پیام های خطا را مورد بحث قرار می دهند و مدتی را صرف ایجاد شی آزمایشی می کنند. قابل توجه ترین در آن بخش (برای من) تمرکز آنها بر استفاده از سازنده ها برای ایجاد داده های آزمایشی به جای مادران شی بود.

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

به هر حال، در جمع بندی، این قطعاً یکی از کتاب های مورد علاقه من (اگر نه مورد علاقه) TDD و کتاب های طراحی عمومی خواهد بود. استیون و نات در این مورد کار فوق العاده ای انجام دادند. اگرچه کتاب کامل نیست، اما از آن لذت بردم. یک توصیه قطعی برای هر کسی که به طراحی مدرن و TDD علاقه دارد.

Growing Object-Oriented Software, Guided by Tests

This book has been in my Amazon pre-ordered list for quite a while and I was looking forward to this. I found the title alone already excellent. Steven and Nat (authors of jMock) are well known expert TDD practitioners, so I was looking forward to what they had to say. The book was better than I had expected.

The book consists of 5 parts. The first part of a very quick introduction to TDD and jMock. The second part discusses the tdd cycle in more detail. The third part (150 pages) is a very large example of growing a piece of software. The fourth part discusses topics on how to sustain TDD and the last part covers some advanced topics.

In this review, I’ll skip part 1 as it was short and nothing special. Part two covers the TDD cycle and the link to evolutionary design. Steve and Nat have a design style that focuses almost purely on the interactions between classes which are most frequently tested using expectations on mock objects (which, as authors of jMock, they have lots of experience with). Most notable from part 2, for me, were the classifications of objects that they used, the strong focus on interaction and mocking (more than I usually have when test-driving) and their lack of focus on classes but focus on roles and responsibilities. Nat and Steve clarify their thinking exceptionally well which makes it all easy to understand.

Part 3 takes the largest part of the book, which is where they test-drive an AuctionSniper application. It is a small application, but large for a book example. The authors show how they gradually build up the application by adding one test at the time and how they gained insights during this process which made them adjust their design. I had mixed feelings about this part as a book didn’t seem like the best medium for doing this, but still I appreciate the insights they had and also their attempt to make it as close to “real world” as possible.

Writing tests is one thing, maintaining them in another. Part 4 discusses how to make the tests maintainable and the tdd cycle sustainable. Personally, I found this part very insightful and the authors discipline exemplar. The authors start of with different test smells and what to do about it. They then discuss readability of the tests and of the error messages and spend some time of test object creation. Most notable from that part (for me) was their focus on using builders for creating test data, rather than object mothers.

The final part covers three (or actually two!) advanced topics. First is testing persistence where most interesting was how the authors seemed to prefer to “go all the way” whereas the common advise (for test speed) is to rollback and mock more. (this was actually a common theme in their book). The last two chapters deal with multi-threading and async code. I was unclear why these were separated in two chapters and they they were in this particular order. The content was excellent though, except that I missed some typical design guidelines related to multi-threading design. It almost felt they were in a hurry to write the last two chapters…

Anyways, in conclusion, this will definitively be one of my favorite (if not the favorite) TDD books and general design books. Steven and Nat did a wonderful job on this one. Though the book is not perfect, I enjoyed it thoroughly. A definite recommendation for anyone interested in modern design and TDD.

نظرات (0)

نقد و بررسی‌ها

هنوز بررسی‌ای ثبت نشده است.

اولین کسی باشید که دیدگاهی می نویسد “دانلود کتاب Growing Object-Oriented Software, Guided by Tests”