Azure / azure-sdk-for-ios

iOS client SDKs for Microsoft Azure
https://azure.github.io/azure-sdk-for-ios/
MIT License
184 stars 89 forks source link

iOS Guidelines: Fit content to new Guidelines structure #587

Closed bsiegel closed 3 years ago

bsiegel commented 3 years ago

Description

Per the MQ Guidelines initiative to fill gaps in the guidelines across languages, we are moving to a new common structure for the guidelines and calling out areas where there are content gaps -- i.e. one or more of the other Tier 1 language guidelines have guidance that is not language-specific that is not represented in this language's guidelines.

Note

For Implementation, the below structure is based on .NET content. It is intended to provide implementation details for things that aren't visible in the public API, with a TOC that largely maps to the API Design section in the Design TOC, with sections filled for areas where you already have content written. Feel free to reach out with any questions.

New Structure

(Numbers for ease of reading here, but won't be shown in the guidelines page TOC)

For further details, please see the restructured .NET guidelines here.

Design

  1. Introduction

    1. Design Principles
    2. General Guidelines
    3. Non-HTTP Libraries
  2. Azure SDK API Design

    1. Service Client
      1. Service Client Constructors
        1. Client Configuration
        2. Setting the Service Version
        3. Sync and Async
        4. Client Immutability
      2. Service Methods
        1. Naming
        2. Return Types
        3. Cancellation
      3. Service Method Parameters
        1. Options Parameters
        2. Parameter Validation
      4. Methods Returning Collections (Paging)
      5. Methods Invoking Long Running Operations
      6. Conditional Request Methods
      7. Hierarchical Clients
    2. Supporting Types
      1. Model Types
      2. Enumerations
      3. Using Azure Core Types
      4. Using Primitive Types
    3. Exceptions (Errors)
    4. Authentication
    5. Namespaces
    6. Support for Mocking
  3. Azure SDK Libraries (Packages)

    1. Packaging
      1. Service-Specific Common Libraries
    2. Versioning
    3. Dependencies
    4. Native Code
    5. Doc Comments
  4. Repository Guidelines

    1. Documentation Style
    2. README
    3. Samples

Implementation

  1. API Implementation
    1. Service Client
      1. Service Methods
        1. HttpPipeline
        2. HttpPipelinePolicy/Custom Policies
      2. Service Method Parameters
        1. Parameter Validation
    2. Supporting Types
      1. Serialization
      2. Enumeration-like Structs
  2. SDK Feature Implementation
    1. Configuration
    2. Logging
    3. Distributed Tracing
    4. Telemetry
  3. Testing
  4. Language-specific other

Implements Azure/azure-sdk#2117

tjprescott commented 3 years ago

This is done.