اشکالات رخ میدهند، اما مطمئناً میتوانید مجموعهای از روشها را برای تشخیص زودهنگام یا حتی پیشگیری از آنها اجرا کنید. در این دوره آموزشی، برنامه نویسی دفاعی در جاوا، یاد خواهید گرفت که چگونه کد خود را ایمنتر و قویتر کنید.
آنچه خواهید آموخت:
در هسته توسعه نرمافزار دانش کاملی از عیب یابی و اشکال زدایی است، اما به سختی `سرگرم کننده` است. بهتر است از بروز اشکالات جلوگیری کنید یا حداقل هر چه زودتر به آنها واکنش نشان دهید. در این دوره آموزشی، کدنویسی دفاعی در جاوا، یاد خواهید گرفت که چگونه نرم افزارهای ایمنتر و قویتر بنویسید. ابتدا، مفهوم شکست زودهنگام و نحوه استفاده موثر از انواع بندهای محافظ در روشها و سازندهها را خواهید آموخت. در مرحله بعد، مجموعهای از کتابخانههای کمکی بسیار محبوب را بررسی خواهید کرد که کد دفاعی شما را مختصرتر و ظریفتر میکند. سپس، خواهید دید که بازگرداندن مقادیر قابل پیش بینی و قابل درک از روشهای خود چقدر مهم است و نحوه انتخاب و پیادهسازی آنها را خواهید آموخت. در نهایت، انواع تکنیکهای دفاعی را خواهید دید که اغلب نادیده گرفته میشوند، اما تا حد زیادی به کیفیت کلی نرمافزار کمک میکنند. پس از اتمام این دوره، مهارتهای لازم برای نوشتن کدی را خواهید داشت که قابل اطمینانتر و نگهداری آسانتر باشد.
نمونه ویدیوی آموزشی ( زیرنویسها جدا از ویدیو است و میتوانید آنرا نمایش ندهید ) :
[ENGLISH]
01 Course Overview [1min]
01-01 Course Overview [1mins]
02 Why Defensive Coding Matters [9mins]
02-01 Course Introduction [1mins]
02-02 What is Defensive Coding [4mins]
02-03 Why Apply Defensive Coding [2mins]
02-04 Prerequisites [1mins]
02-05 Course Overview [1mins]
03 Validating Method Input [47mins]
03-01 Module Overview [2mins]
03-02 Code Project Introduction [5mins]
03-03 Lambdas Crash Course [3mins]
03-04 Fail Fast with Guard Clauses [3mins]
03-05 Validating null [7mins]
03-06 Validating Number Ranges [4mins]
03-07 Validating Strings [5mins]
03-08 Handling Dates [5mins]
03-09 Considering Combinations [2mins]
03-10 Implementing Class Invariants [4mins]
03-11 Choosing the Right Exceptions [2mins]
03-12 What We Didn`t Cover [3mins]
03-13 Module Wrap Up [2mins]
04 Using Frameworks for Validation [22mins]
04-01 Module Overview [2mins]
04-02 Objects API [3mins]
04-03 Using Google Guava [4mins]
04-04 Comparing Apache Commons [2mins]
04-05 Leveraging Hamcrest and AssertJ [7mins]
04-06 Managing Libraries [3mins]
04-07 Module Wrap Up [1mins]
05 Improving Method Return Values [23mins]
05-01 Module Overview [3mins]
05-02 Magic Numbers [2mins]
05-03 Method Return Options [3mins]
05-04 What Happens When You Return null [3mins]
05-05 Sensible Defaults [1mins]
05-06 Empty Collections [2mins]
05-07 Java Optional [7mins]
05-08 Module Wrap Up [2mins]
06 Using Other Defensive Practices [20mins]
06-01 Module Overview [1mins]
06-02 Strive for Better Encapsulation [4mins]
06-03 Be Careful with Method Side Effects [4mins]
06-04 Improve Your Exception Handling [5mins]
06-05 Use Static Analysis Tools [3mins]
06-06 Further Recommendations [2mins]
06-07 Module Wrap Up [1mins]
[فارسی]
01 نمای کلی دوره [1 دقیقه]
01-01 بررسی اجمالی دوره [1 دقیقه]
02 چرا کدنویسی دفاعی مهم است [9 دقیقه]
02-01 معرفی دوره [1 دقیقه]
02-02 کدگذاری دفاعی چیست [4 دقیقه]
02-03 چرا از کدگذاری دفاعی استفاده کنیم [2 دقیقه]
02-04 پیش نیازها [1 دقیقه]
02-05 بررسی اجمالی دوره [1 دقیقه]
03 ورودی روش اعتبارسنجی [47 دقیقه]
03-01 نمای کلی ماژول [2 دقیقه]
03-02 معرفی پروژه کد [5 دقیقه]
03-03 Lambdas Crash Course [3 دقیقه]
03-04 شکست سریع با بند نگهبانی [3 دقیقه]
03-05 در حال اعتبارسنجی null [7 دقیقه]
03-06 اعتبارسنجی محدوده اعداد [4 دقیقه]
03-07 اعتبار سنجی رشتهها [5 دقیقه]
03-08 رسیدگی به تاریخها [5 دقیقه]
03-09 در نظر گرفتن ترکیبات [2 دقیقه]
03-10 پیادهسازی متغیرهای کلاس [4 دقیقه]
03-11 انتخاب استثناهای مناسب [2 دقیقه]
03-12 آنچه را پوشش ندادیم [3 دقیقه]
03-13 جمعبندی ماژول [2 دقیقه]
04 استفاده از فریمورک برای اعتبارسنجی [22 دقیقه]
04-01 نمای کلی ماژول [2 دقیقه]
04-02 Objects API [3 دقیقه]
04-03 استفاده از Google Guava [4 دقیقه]
04-04 مقایسه Apache Commons [2 دقیقه]
04-05 استفاده از Hamcrest و AssertJ [7 دقیقه]
04-06 مدیریت کتابخانهها [3 دقیقه]
04-07 جمعبندی ماژول [1 دقیقه]
05 بهبود مقادیر بازگشتی روش [23 دقیقه]
05-01 نمای کلی ماژول [3 دقیقه]
05-02 اعداد جادویی [2 دقیقه]
05-03 گزینههای بازگشت روش [3 دقیقه]
05-04 وقتی پوچ برگردید چه اتفاقی میافتد [3 دقیقه]
05-05 پیشفرضهای معقول [1 دقیقه]
05-06 مجموعههای خالی [2 دقیقه]
05-07 جاوا اختیاری [7 دقیقه]
05-08 جمعبندی ماژول [2 دقیقه]
06 استفاده از سایر تمرینات دفاعی [20 دقیقه]
06-01 نمای کلی ماژول [1 دقیقه]
06-02 برای کپسولاسیون بهتر تلاش کنید [4 دقیقه]
06-03 مراقب عوارض جانبی روش باشید [4 دقیقه]
06-04 مدیریت استثناهای خود را بهبود بخشید [5 دقیقه]
06-05 استفاده از ابزارهای تحلیل استاتیک [3 دقیقه]
06-06 توصیههای بیشتر [2 دقیقه]
06-07 جمعبندی ماژول [1 دقیقه]
Andrejs یک متخصص تضمین کیفیت با بیش از 6 سال تجربه است. او در اتوماسیون تست تخصص دارد اما اهمیت درگیر شدن زودهنگام در چرخه عمر توسعه نرمافزار را نادیده نمیگیرد - یافتن مسائل در طول تجزیه و تحلیل نیازمندیها به اندازه انجام آزمایشهای دستی و اکتشافی مهم است. او در نوشتن واحد، تستهای یکپارچهسازی و پذیرش برای تعداد زیادی از فناوریها و زمینهها - از اتوماسیون مرورگر گرفته تا لایه Web API و همه راهها تا آزمایش اجزای پیامرسانی Enterprise، تجربه دارد.