Інтерфейси в Go: dependency injections, Liskov substitution principle, приймай інтерфейс на вхід - повертай структуру, інтерфейс на стороні консюмера, не потрібно дублювати інтерфейсом свою структуру (це вам не Java)
Запитання від Junior Go Developers: чи потрібно тестувати приватні методи (про юніт та інтерейшн тести з коробки)? Як обробляти помилки в середині goroutines (про error channels)? Чому функція log.Fatal() практично зло в реальному проекті (про error handling)?
Ще раз про важливість code review і мій підхід до нього