Go Optimizations

Написання та оптимізація Go коду

Цей документ встановлює найкращі практики для написання високо-швидкісного Go коду.

Хоча буде згадуватися як зробити певні сервіси швидше (кешування і так далі), дизайн швидких розподілених систем поза цією роботою. Вже існують хороші тексти про моніторинг та дизайн розподілених систем. Оптимізація розподілених систем охоплює зовсім інший набір досліджень та компроміси в дизайні.

Весь контент опубліковано під ліценхією CC-BY-SA.

Ця книжка розбита на різні секції:

  1. Базові поради для написання не повільного софту
    • речі рівня CS 101
  2. Поради для написання швидкого софту
    • специфічні для Go секції як отримати максимум з Go
  3. Продвинуті поради для написання справді швидкого софту
    • для випадків коли Ваш код оптимізовано не достатньо

Ми можемо підсумувати ці три секції як:

  1. “Будьте розсудними”
  2. “Будье поміркованими”
  3. “Будьте небезпечні”

Коли і де оптимізувати

Я ставлю це першим тому що це справді важливий крок. Чи повинні Ви взагалі займатися цим всим?

Кожна оптимізація має ціну. Загалом, ця ціна є виражена в складності коду чи розумовому навантажені – оптимізований код рідко коли є простіший за неоптимізовану версію.

Але існує ще інша сторона яку Я називатиму економікою оптимізацій. Як програмер Ващ час має ціну. Існує ціна можливості працювати над чимось іншим на вашому проекті, які баги фіксити, які фічі додавати. Оптимізовувати речі весело, але це не завжди найкраще завдання. Швидкодія це чудово, але доставка фіч та коректність теж важливі.