CSCI 420: Quiz 3 Continuous Integration - Definition - Stages - Locally Test - Remotely Build - Remotely Test - Remotely Deploy - Workflow (See diagram) - Steps to Success **IMPORTANT ONES** - automate the build - make the code self-testing - configure a reproducable test environment - definition of a container - trigger builds automatically - force passed checks to merge - CI Platforms - Travis CI or Github Actions - Configuration (yml) API Design - Characteristics of a good API :tm: - Designing a Good API - Interface Principles - Simple - General - Regular - Predictable - Robust - Adaptable - Resource Management - Initialization, Sharing, Copying, Cleaning up - Resource types - Error Handling - Catch, don't ignore - Enable recovery - "Fail fast" - Exception best practices RESTful APIs - REST definition - The six principles - Resource vs. URI - Safety vs. Idempotence - GET, POST, PUT, DELETE - Status codes - Data flow from Eric's talk - Microservice definition Dependency Injection - Definition - S.O.L.I.D. - Know the "S" and the "D" - What does DI enable? - Types of Injection - Process for Testing with DI - Mock object definition - When to use Debugging Teams - Chapter 3 - Chapter 4