دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: نویسندگان: Pedro M. Santos, Marco Consolaro, Alessandro Di Gioia سری: ISBN (شابک) : 1838980849, 9781838980849 ناشر: Packt Publishing سال نشر: 2019 تعداد صفحات: 443 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 8 مگابایت
در صورت تبدیل فایل کتاب Agile Technical Practices Distilled: A learning journey in technical practices and principles of software design به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب Agile Technical Practices Distilled: یک سفر یادگیری در شیوه های فنی و اصول طراحی نرم افزار نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
عمیق در شیوه های مختلف فنی، اصول و ارزش های Agile کاوش کنید.
تعداد شیوه های فنی رایج در چند سال اخیر به طور تصاعدی افزایش یافته است. یادگیری روش های رایج توسعه نرم افزار می تواند به شما کمک کند تا برنامه نویس بهتری شوید. این کتاب از اصطلاح Agile به عنوان یک چتر گسترده استفاده می کند و اصول و شیوه های چابک و همچنین اکثر روش های مرتبط با آن را پوشش می دهد.
شما با کشف نحوه هدایت-راننده، ساعت شطرنج و سایر تکنیک ها شروع خواهید کرد. استفاده از رویکرد برنامه نویسی زوجی، نظم و انضباط را هنگام نوشتن کد معرفی می کند. سپس یاد خواهید گرفت که با استفاده از refactoring، طراحی کد خود را با خیال راحت تغییر دهید. در حین یادگیری این تکنیک ها، بهترین شیوه های مختلف برای نوشتن تست های کارآمد را نیز بررسی خواهید کرد. فصول پایانی کتاب عمیقاً به اصول SOLID می پردازد - پنج اصل طراحی که می توانید از آنها برای درک بیشتر، انعطاف پذیری و نگهداری نرم افزار خود استفاده کنید.
در پایان کتاب، شما متوجه خواهید شد. ایدههای جدید برای بهبود مهارتهای طراحی نرمافزار، روابط درون تیم و نحوه عملکرد کسبوکار شما.
این کتاب برای توسعه دهندگان نرم افزار طراحی شده است که به دنبال بهبود شیوه های فنی خود هستند. مربیان نرم افزار همچنین ممکن است آن را به عنوان یک راهنمای مرجع آموزشی مفید بدانند. این یک کتاب مبتدی در مورد نحوه برنامه نویسی نیست. شما باید حداقل با یک زبان برنامه نویسی راحت باشید و باید بتوانید تست های واحد را با استفاده از هر چارچوب تست واحد بنویسید.
Delve deep into the various technical practices, principles, and values of Agile.
The number of popular technical practices has grown exponentially in the last few years. Learning the common fundamental software development practices can help you become a better programmer. This book uses the term Agile as a wide umbrella and covers Agile principles and practices, as well as most methodologies associated with it.
You'll begin by discovering how driver-navigator, chess clock, and other techniques used in the pair programming approach introduce discipline while writing code. You'll then learn to safely change the design of your code using refactoring. While learning these techniques, you'll also explore various best practices to write efficient tests. The concluding chapters of the book delve deep into the SOLID principles - the five design principles that you can use to make your software more understandable, flexible and maintainable.
By the end of the book, you will have discovered new ideas for improving your software design skills, the relationship within your team, and the way your business works.
This book is designed for software developers looking to improve their technical practices. Software coaches may also find it helpful as a teaching reference manual. This is not a beginner's book on how to program. You must be comfortable with at least one programming language and must be able to write unit tests using any unit testing framework.
Cover FM Copyright Table of Contents Preface First Steps Chapter 1: Pair Programming What is Pair Programming? Roles Driver/Navigator Switch Techniques Chess Clock Ping Pong/Popcorn Breaks Pomodoro Katas When Should I Move to the Next Lesson? Resources Web Chapter 2: Classic TDD I – Test-Driven Development Classic TDD The Three Laws of TDD 1. You Are Not Allowed to Write Any More of a Unit Test That Is Sufficient to Fail, and Compilation Failures Are Failures 2. You Are Not Allowed to Write Any Production Code Unless It Is to Make a Failing Unit Test Pass 3. You Are Not Allowed to Write Any More Production Code That Is Sufficient to Pass the One Failing Unit Test Refactoring and the Rule of Three – Baby Steps Three Methods of Moving Forward in TDD From Red to Green Degrees of Freedom Naming Tests A Test Name Pattern Katas Fizz Buzz by cyber-dojo Fizz Buzz Kata Summary More Katas Leap Year by cyber-dojo Nth Fibonacci by cyber-dojo Great Habits Considerations when Writing a New Test Considerations When Making a Failing Test Pass Considerations After the Test Passes Classic TDD Flow Where are We in the Big Picture of Object-Oriented (OO) Software Design? When Should I Move to the Next Lesson? Resources Web Books Chapter 3: Classic TDD II Writing the Assertion First and Working Backward Organizing Your Test in Arrange, Act, and Assert Blocks Benefits of Organizing Tests in Arrange, Act, and Assert Blocks Unit Test Principles Katas Stats Calculator by cyber-dojo Anagrams by cyber-dojo Great Habits Considerations when Writing a New Test Considerations when Making a Failing Test Pass Considerations after the Test Passes Classic TDD Flow Where are we in the Big Picture of Object-Oriented (OO) Software Design? When Should I Move to the Next Lesson? Resources Web Books Chapter 4: Classic TDD III – Transformation Priority Premise Kata Roman Numerals by cyber-dojo TPP – Defining Obvious Implementation TPP Table The Transformations Transformation 1 – {} -> Nil Transformation 2 – Nil -> Constant Transformation 3 – Constant -> Constant+ Transformation 4 – Constant -> Scalar Transformation 5 – Statement -> Statements Transformation 6 – Unconditional -> Conditional Transformation 7 – Scalar -> Array Transformation 8 – Array -> Container Transformation 9 – Statement -> Tail Recursion Transformation 10 – If -> Loop Transformation 11 – Statement -> Recursion Transformation 12 – Expression -> Function Transformation 13 – Variable -> Mutation Example Using the TPP on the Fibonacci Sequence Katas Roman Numerals by cyber-dojo Prime Factors by cyber-dojo Boolean Calculator by Alessandro Di Gioia Great Habits Considerations when Writing a New Test Considerations when Making a Failing Test Pass Considerations after the Test Passes Classic TDD flow Where are We in the Big Picture of Object-Oriented (OO) Software Design? When Should I Move to the Next Lesson? Resources Web Chapter 5: Design 1 – Object Calisthenics It's the Design... Kata Tic-Tac-Toe Object Calisthenics – 10 Steps to Better Software Design Only One Level of Indentation per Method Don't Use the ELSE Keyword Wrap All Primitives and Strings First-Class Collections No Getters/Setters/Properties Wrap All Primitives and Strings One Dot per Line Don't Abbreviate Keep All Entities Small No Classes with More Than Two Instance Variables All Classes Must Have State Heuristics Katas Tic-Tac-Toe Game of Life Great Habits Considerations When Writing a New Test Considerations When Making a Failing Test Pass Considerations after the Test Passes Classic TDD flow Where Are We in the Big Picture of OO Software Design? When Should I Move on to the Next Lesson? Resources Web Walking Chapter 6: Design 2 – Refactoring When to Refactor (For Now) Main Refactors IDE Agility (Know Your Shortcuts) Kata Refactoring Golf Refactor 80-20 Rule Refactoring Guidelines Stay in the Green While Refactoring Commit as Often as Possible Refactor Readability before Design Change Design (Simple Changes) Kata Tennis Refactoring by Emily Bache Parallel Change (Or Expand, Migrate, and Contract) Expand Migrate Contract Kata Parallel Change Kata by Pawel Duda and Carlos Blé Great Habits Considerations When Writing a New Test Considerations When Making a Failing Test Pass Considerations after the Test Passes When Should I Move on to the Next Lesson? Resources Web Books Chapter 7: Design 3 – Code Smells Design Smells Code Smells Bloaters Couplers Object-Orientation Abusers Change Preventers Dispensables Highlighted Code Smells Code Smells Hierarchy Primitive Obsession Feature Envy Message Chains Object Calisthenics Preventing Code Smells When to Refactor (Extended for Code Smells) Refactor Code Smells Kata Smelly Tic-Tac-Toe Great Habits Considerations When Writing a New Test Considerations When Making a Failing Test Pass Considerations After the Test Passes Classic TDD Flow The Big Picture When Should I Move on to the Next Lesson? Resources Web Books Chapter 8: Test Doubles Principles Command-Query Separation Queries Commands Different Types of Test Doubles Dummy Objects Stubs Fake Objects Mocks Spies Test Doubles Guidelines Only Use Test Doubles for Classes That You Own Verify as Little as Possible in a Test Don't Use Test Doubles for Isolated Objects Don't Add Behavior in Test Doubles Only Use Test Doubles for Your Immediate Neighbors Too Many Test Doubles CQS Principle Trade-OffS Katas Character Copier by Urs Enzler Instrument Processor by Urs Enzler Great Habits Considerations When Writing a New Test Considerations When Making a Failing Test Pass Considerations after the Test Passes When Should I Move on to the Next Lesson? Resources Web Books Chapter 9: Testing Legacy Code Breaking Dependencies Using a Seam Using Inheritance to Decouple Production Code Characterization Tests Kata Characterization Tests on Gilded Rose Kata by Emily Bache Golden Master Feasibility Generate Input/Output (Golden Master) Assert Kata Golden Master on Gilded Rose Kata by Emily Bache Approval Tests by Llewellyn Falco Combination Tests Revisiting the Refactoring Guidelines Stay in the Green while Refactoring Kata Gilded Rose Refactoring Kata by Emily Bache Conclusions Guideline Questions Great Habits Considerations when Writing a New Test Considerations when Making a Failing Test Pass Considerations after the Test Passes When Should I Move to the Next Lesson? Resources Web Books Chapter 10: Design IV –Design Patterns Design Pattern Advantages Design Pattern Pitfalls A Quick Reference Catalogue Creational Design Patterns Behavioral Design Patterns Structural Design Patterns Revisiting the Refactoring Guidelines Refactoring Design Kata Refactoring Game of Life Kata to Patterns Great Habits Considerations When Writing a New Test Considerations When Making a Failing Test Pass Considerations After the Test Passes When Should I Move to the Next Lesson? Resources Web Books Running Chapter 11: Design V – Cohesion and Coupling Coupling Types of Coupling Interaction Coupling Law of Demeter Method Coupling Premises Inheritance Coupling Cohesion Other Indicators of Possible Low Cohesion in Design Types of Cohesion Class Cohesion Method Cohesion Katas Connecting Code Smells with Cohesion/Coupling Connecting Object Calisthenics with Code Smells and Cohesion/Coupling When to Refactor (Extended for Cohesion/Coupling) Classic TDD Flow The Big Picture When Should I Move to the Next Lesson? Resources Web Books Chapter 12: Design VI – Solid Principles ++ Single Responsibility Principle Open/Closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion Principle Balanced Abstraction Principle Principle of Least Astonishment Kata Connecting Cohesion/Coupling and SOLID principles When to Refactor (Extended for SOLID Principles) Classic TDD Flow The Big Picture When Should I Move to the Next Lesson? Resources Web Books Chapter 13: Design VII – Connascence Definition Dimensions Degree Locality Strength Connascence of Name and Type (CoN and CoT) Connascence of Position Connascence of Value (CoV) Connascence of Meaning Connascence of Algorithm Connascence of Execution Order Connascence of Timing Connascence of Identity Connascence of Manual Task Classic TDD Flow The Big Picture When Should I Move to the Next Lesson? Resources Web Books Chapter 14: Design VIII –The Four Elementsof Simple Design What Are the Four Elements of Simple Design? What Does Each Element Mean? Passes Its Tests Minimizes Duplication Maximizes Clarity Has Fewer Elements Alternative Definitions of Simple Design Definition #1 Definition #2 Definition #3 Definition #4 Definition #5 Definition #6 Our Personal Definitions of Simple Design Pedro Marco Alessandro Kata Elevator Kata by Marco Consolaro Classic TDD Flow The Big Picture When Should I Move to the Next Lesson? Resources Web Books Chapter 15: Conclusion Cohesion and Coupling as Forces The 3 Cs of Design: From Cohesion and Coupling to Connascence Systems Entropy The Relevance of Systems Entropy Software Development as System Building Good Design as a Low-Entropy System The Big Picture Resources Web-based resources: Books: Flying Chapter 16: Outside-In Development The Classic TDD Approach Acceptance Tests Acceptance Test Styles Test Boundaries Double Loop TDD The Outside-In Approach An Outside-In Mindset Outside-In TDD: The London School Example The Direction of Dependencies Should I Use Classic TDD or Outside-In TDD? Kata Stock Portfolio Katacombs of Shoreditch by Marco Consolaro Part I PART II The Big Picture Great Habits Considerations When Writing a New Test Considerations When Making a Failing Test Pass Considerations After the Test Has Passed Resources Web-based resources: Books: Chapter 17: Behavior-Driven Development Poka-Yoke Mistakes versus Defects: Feedback Is the Cure (Again) Bugs and Communication User Stories Behavior-Driven Development The Structure of a Story Acceptance Criteria: It's All about the Examples From Criteria to Acceptance Tests Acceptance Tests Done Right Readable by Business Folks Feature Complete Fast Boundaries The Walking Skeleton Kata The Messy Delivery Office Requirements Resources Web-based resources Books Chapter 18: Understand the Business Knowledge versus Understanding Theory of Constraints Domain-Driven Design: What Domain? Beyond Requirements: Knowledge Crunching 5 Whys Impact Mapping PopcornFlow User Story Mapping EventStorming Business Model Canvas Value Streams and Domain Events Bounded Contexts and Communication Synchronous versus Asynchronous Command-Query Separation Business and DevOps The First Way The Second Way The Third Way Systems Thinking and Sociotechnical Organizations Resources Web-based resources Books Chapter 19: Story of Team C Terraforming Team Building The Backlog: Crunching Knowledge for Breakfast Cracking On From Forming to Performing Outside-In ATDD with Optional Unit Tests The Green Flag The Moral of the Story Chapter 20: Conclusion The Human Factor Team Play Bounded Rationality and Knowledge Sharing Resources Web Books Chapter 21: The 12 Agile Principles Chapter 22: PopcornFlow by Claudio Perrone The 7-Steps Decision Cycle The Principles Who Can Benefit from PopcornFlow Resources Web-based resources: Books: Chapter 23: EventStorming by Alberto Brandolini Silos and Value Streams The Importance of Learning The EventStorming Approach The Workshop: A Quick Overview Different Flavors of EventStorming Complex Systems and Proven Solutions Resources Web Books License: CyberDojo About CyberDojo Foundation Exercises Web Resources Sample Solutions Sample Solutions: FizzBuzz in Clojure Sample Solutions: Fibonacci Sequence in C++ Sample Solutions: Roman Numerals in C# Sample Solutions: Tic-Tac-Toe in Swift (Partial Solution) Sample Solutions: Connecting Code Smells with Cohesion/Coupling Sample Solutions: Connecting Object Calisthenics with Code Smells and Cohesion/Coupling Sample Solutions: Connecting Cohesion/Coupling and SOLID Principles Feedback Personalized Coaching Individuals Organizations Feedback Please Index