کتاب Mastering React Test-Driven Development (تسلط بر توسعه تستمحور React: ساخت برنامههای وب ساده و قابل نگهداری با React، Redux، و GraphQL، نسخه دوم) با محوریت برنامهنویسی React برای توسعهی آزمایش محور و بررسی ابعاد این چارچوب برنامهنویسی تحت وب خواهد پرداخت.
ر ادامه مقدمهای از کتاب Mastering React Test-Driven Development را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Mastering React Test-Driven Development:
این کتاب در مورد تعصب است. دگم من این مجموعهای از اصول، شیوهها و آیینهایی است که به نظر من هنگام ساخت برنامههای React بسیار مفید هستند. سعی میکنم این ایدهها را در کارهای روزانهام به کار ببرم و آنقدر به آنها اعتقاد دارم که از هر فرصتی برای آموزش آنها به دیگران استفاده میکنم. به همین دلیل است که من این کتاب را نوشتم: برای نشان دادن ایدههایی که به من کمک کرده اند در حرفه ام موفق باشم.
مانند هر کار دیگری، شما آزاد هستید که در مورد آن تصمیم بگیرید. افرادی هستند که از همه چیز درباره این کتاب خوششان نمیآید. کسانی هستند که همه چیز این کتاب را دوست دارند. با این حال افراد بیشتری برخی چیزها را جذب میکنند و برخی دیگر را فراموش میکنند. همه اینها خوب است. تنها چیزی که من میخواهم این است که در حین پیگیری و آماده شدن برای به چالش کشیدن جزمات خود، ذهنی باز داشته باشید.
بیشتر بخوانید: کتاب React and React Native
توسعه تست محور (TDD) در جامعه جاوا اسکریپت ایجاد نشده است. با این حال، تست درایو کد جاوا اسکریپت کاملا امکان پذیر است. و اگرچه TDD در جامعه React رایج نیست، دلیلی وجود ندارد که اینطور نباشد. در واقع، React به عنوان یک پلتفرم رابط کاربری به دلیل مدل ظریف اجزای عملکردی و حالت آن، برای TDD مناسب است.
بنابراین، TDD چیست و چرا باید از آن استفاده کنید؟ TDD فرآیندی برای نوشتن نرم افزار است که شامل نوشتن تستها یا مشخصات قبل از نوشتن هر کدی است. متخصصان آن از آن پیروی میکنند زیرا معتقدند که به آنها کمک میکند تا نرم افزاری با کیفیت بالاتر با طول عمر بیشتر و با هزینه کمتر بسازند و طراحی کنند.
آنها معتقدند که مکانیزمی برای برقراری ارتباط در مورد طراحی و مشخصات ارائه میدهد که به عنوان یک مجموعه رگرسیون سنگ-جامد نیز دو برابر میشود. دادههای تجربی زیادی وجود ندارد که صحت هر یک از آنها را ثابت کند، بنابراین بهترین کاری که میتوانید انجام دهید این است که خودتان آن را امتحان کنید و تصمیم خود را بگیرید.
شاید مهمتر از همه برای من، متوجه شدم که TDD ترس از ایجاد تغییرات در نرمافزار من را از بین میبرد و روزهای کاری من را بسیار کمتر از گذشته استرسزا میکند. من نگران وارد کردن اشکالات یا رگرسیون در کارم نیستم زیرا آزمایشها از من در برابر آن محافظت میکنند.
TDD اغلب با مثالهای اسباببازی آموزش داده میشود: لیست کارهای انجام شده، مبدلهای دما، تیک تاک و غیره. این کتاب دو کاربرد در دنیای واقعی را آموزش میدهد. اغلب، آزمایشات مودار میشوند. ما به سناریوهای چالش برانگیز زیادی برخورد خواهیم کرد و برای همه آنها راه حلهایی ارائه خواهیم کرد. بیش از 500 تست در این کتاب وجود دارد و هر کدام چیزی به شما یاد میدهد.
قبل از شروع، چند کلمه توصیه.
کتاب Mastering React Test-Driven Development در مورد اصول اولیه است. من معتقدم که یادگیری TDD در مورد درک فرآیند با جزئیات استثنایی است. به همین دلیل، ما از React Testing Library استفاده نخواهیم کرد. در عوض، ما کمککنندههای آزمایشی خود را خواهیم ساخت. من به شما پیشنهاد نمیکنم که در کار روزانه خود از این ابزارها اجتناب کنید – من خودم از آنها استفاده میکنم – اما پیشنهاد میکنم بدون آنها در حالی که یاد میگیرید یک ماجراجویی ارزشمند است. مزیت انجام این کار درک و آگاهی عمیقتر از کارهایی است که آن کتابخانههای آزمایشی برای شما انجام میدهند.
چشمانداز جاوا اسکریپت و ریاکت با چنان سرعتی تغییر میکند که نمیتوانم ادعا کنم که کتاب Mastering React Test-Driven Development برای مدت طولانی جاری باقی خواهد ماند. این دلیل دیگری است که من از رویکرد اصول اول استفاده میکنم. امید من این است که وقتی همه چیز تغییر کرد، همچنان بتوانید از این کتاب استفاده کنید و آنچه را که آموخته اید در آن سناریوهای جدید به کار ببرید.
موضوع دیگر این کتاب بازسازی سیستماتیک است که میتواند نسبتاً پر زحمت باشد اما سنگ بنای TDD و دیگر شیوههای طراحی خوب است. من نمونههای زیادی از آن را در این صفحات ارائه کرده ام، اما برای اختصار، گاهی اوقات مستقیماً به یک راه حل نهایی و اصلاح شده میپرم. به عنوان مثال، من گاهی اوقات انتخاب میکنم که روشها را قبل از نوشته شدن استخراج کنم، در حالی که در دنیای واقعی، معمولاً روشها را به صورت خطی مینویسم و فقط زمانی استخراج میکنم که متد حاوی (یا تست) خیلی طولانی شود.
موضوع دیگر تقلب است که در بسیاری از کتابهای TDD نمیتوانید به آن اشاره کنید. این یک تصدیق است که گردش کار TDD داربستی است که میتوانید قوانین خود را پیرامون آن بسازید.
هنگامی که نسخه سختگیرانه TDD را برای مدتی یاد گرفتید و تمرین کردید، میتوانید یاد بگیرید که از چه تقلبهایی میتوانید برای کوتاه کردن گوشهها استفاده کنید. چه آزمایشهایی در دراز مدت ارزش زیادی را ارائه نمیدهند؟ چگونه میتوان تستهای تکراری را سرعت بخشید؟ بنابراین، تقلب تقریباً مانند این است که بگویید گوشهای را به گونهای بریدهاید که اگر ناظری فردا به کد شما مراجعه کند، برایش واضح نباشد. شاید، برای مثال، شما سه تست را در یک زمان اجرا کنید، نه یکی در یک زمان.
در این ویرایش دوم کتاب Mastering React Test-Driven Development، آموزش TDD را بر روی ویژگیهای React دوچندان کردهام. فراتر از بهروزرسانی نمونههای کد برای کار با React 18، استفادههای کمی از ویژگیهای جدید React وجود دارد. در عوض، آزمایشها بهشدت بهبود یافتهاند.
آنها سادهتر، کوچکتر هستند و از تطبیقهای Jest سفارشی (که خود تست محور هستند) استفاده میکنند. خوانندگان نسخه اول متوجه خواهند شد که من رویکرد خود را به مدلهای کامپوننت تغییر دادهام. این نسخه از طریق عملکرد jest.mock به ماژولهای ماژول متکی است. این کتاب دیگر رندر سطحی را آموزش نمیدهد. تغییرات کوچکتر دیگری نیز وجود دارد، مانند اجتناب از ماژول ReactTestUtils.Simulate. سازماندهی فصل نیز بهبود یافته است، با برخی از فصلهای قبلی تقسیم و ساده شده است. امیدوارم قبول داشته باشید که این نسخه بسیار بهتر از نسخه اول است.
کتاب Mastering React Test-Driven Development برای چه کسی است؟
اگر یک برنامهنویس React هستید، این کتاب برای شما مناسب است. من قصد دارم به شما نشان دهم که چگونه TDD میتواند کار شما را بهبود بخشد.
اگر قبلاً در مورد TDD آگاه هستید، امیدوارم هنوز چیزهای زیادی از مقایسه فرآیند خود با من بیاموزید.
اگر قبلاً React را نمیدانید، از صرف زمان برای اجرای راهنمای شروع در وبسایت React سود خواهید برد. همانطور که گفته شد، TDD یک پلت فرم فوقالعاده برای توضیح فناوریهای جدید است، و کاملاً قابل قبول است که بتوانید React را به سادگی با دنبال کردن این کتاب انتخاب کنید.
آنچه کتاب Mastering React Test-Driven Development پوشش میدهد:
فصل 1، مراحل اول با توسعه آزمایش محور، Jest و چرخه TDD را معرفی میکند.
فصل 2 کتاب Mastering React Test-Driven Development، فهرستهای رندر و نماهای جزئیات، از چرخه TDD برای ساخت یک صفحه ساده برای نمایش اطلاعات مشتری استفاده میکند.
فصل 3، Refactoring مجموعه تست، برخی از راههای اساسی را معرفی میکند که از طریق آنها میتوانید تستها را ساده کنید.
فصل 4، Test-Driving Data Input با React، استفاده از حالت جزء React را برای مدیریت نمایش و ذخیره فیلدهای ورودی متن پوشش میدهد.
فصل 5 کتاب Mastering React Test-Driven Development، افزودن فعل و انفعالات فرم پیچیده، به تنظیم فرم پیچیدهتر با دکمههای کشویی و رادیویی میپردازد.
فصل 6، کاوش دوبلهای تست، انواع مختلفی از دوتاییهای آزمایشی را که برای آزمایش اشیاء همکار ضروری هستند و نحوه استفاده از آنها برای ارسال فرم درایو تست معرفی میکند.
فصل 7 کتاب Mastering React Test-Driven Development، تست مولفههای useEffect و Mocking، به استفاده از دوبلهای تست برای واکشی دادهها هنگام نصب اجزا و نحوه استفاده از ماژولهای ماژول برای مسدود کردن این رفتار هنگام آزمایش مؤلفههای والد میپردازد.
فصل 8، ساختن یک مؤلفه برنامه، همه چیز را با یک مؤلفه «ریشه» به هم پیوند میدهد که سفر کاربر را به هم پیوند میدهد.
فصل 9 کتاب Mastering React Test-Driven Development، اعتبار سنجی فرم، با افزودن اعتبار سنجی سمت سرویس گیرنده و سرور و افزودن یک شاخص برای نشان دادن اینکه دادهها در حال ارسال هستند، با ساخت فرم ادامه مییابد.
فصل 10، فیلتر کردن و جستجوی دادهها، نحوه ساخت یک جزء جستجو با برخی الزامات تعامل پیچیده، علاوه بر الزامات پیچیده درخواست واکشی را نشان میدهد.
فصل 11 کتاب Mastering React Test-Driven Development، تست رانندگی React Router، کتابخانه React Router را معرفی میکند تا ناوبری را در سفرهای کاربر ما ساده کند.
فصل 12، تست محرک Redux، Redux را به برنامه ما معرفی میکند.
فصل 13، Test-Driving GraphQL، کتابخانه Relay را برای برقراری ارتباط با یک نقطه پایانی GraphQL که توسط باطن برنامه ما ارائه شده است، معرفی میکند.
فصل 14 کتاب Mastering React Test-Driven Development، ساخت مترجم لوگو، یک برنامه کاربردی سرگرمکننده را معرفی میکند که با ایجاد ویژگیها در هر دو مؤلفه React و میانافزار Redux شروع به کاوش میکنیم: لغو/دوباره، وضعیت پایدار در جلسات مرورگر با LocalStorage API، و مدیریت برنامهای فوکوس فیلد.
فصل 15 کتاب Mastering React Test-Driven Development، افزودن انیمیشن، افزودن انیمیشن به برنامه ما با استفاده از مرورگر requestAnimationFrame API، همه با رویکرد آزمایش محور را پوشش میدهد.
فصل 16، کار با WebSockets، پشتیبانی از ارتباطات WebSocket را با پشتیبانی برنامه ما اضافه میکند.
فصل 17 کتاب Mastering React Test-Driven Development، نوشتن اولین تست Cucumber شما، Cucumber و Puppeteer را معرفی میکند، که ما از آنها برای ساخت تستهای BDD برای عملکرد موجود استفاده خواهیم کرد.
فصل 18 کتاب Mastering React Test-Driven Development، افزودن ویژگیهایی که توسط تستهای خیار هدایت میشوند، آزمایش پذیرش را با ساختن تستهای BDD با Cucumber، قبل از رها شدن به تستهای واحد، در فرآیند توسعه ما ادغام میکند.
فصل 19، درک TDD در چشمانداز وسیعتر تست، کتاب را با بررسی اینکه چگونه آموختهاید با سایر روشهای تست و کیفیت مطابقت دارد، به پایان میرسد.
سرفصلهای کتاب Mastering React Test-Driven Development:
- Foreword
- Contributors
- About the author
- About the reviewer
- Preface
- Part 1 – Exploring the TDD Workflow
- Chapter 1: First Steps with Test-Driven Development
- Chapter 2 Rendering Lists and Detail Views
- Chapter 3: Refactoring the Test Suite
- Chapter 4: Test-Driving Data Input
- Chapter 5: Adding Complex Form Interactions
- Chapter 6: Exploring Test Doubles
- Chapter 7: Testing useEffect and Mocking Components
- Chapter 8: Building an Application Component
- Part 2 – Building Application Features
- Chapter 9: Form Validation
- Chapter 10: Filtering and Searching Data
- Chapter 11: Test-Driving React Router
- Chapter 12: Test-Driving Redux
- Chapter 13: Test-Driving GraphQL
- Part 3 – Interactivity
- Chapter 14: Building a Logo Interpreter
- Chapter 15: Adding Animation
- Chapter 16: Working with WebSockets
- Part 4 – Behavior-Driven Development with Cucumber
- Chapter 17: Writing Your First Cucumber Test
- Chapter 18: Adding Features Guided by Cucumber Tests
- Index
- Other Books You May Enjoy
جهت دانلود کتاب Mastering React Test-Driven Development میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.