Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Пословицы дядюшки Пайка

558 views

Published on

Доклад-дискуссия для Go-митапа в рамках HighLoad++ 2016.
08 ноября 2016

Published in: Technology
  • Be the first to comment

Пословицы дядюшки Пайка

  1. 1. Вспоминая 
 Go Proverbs Пословицы от дядюшки Пайка go-proverbs.github.io
  2. 2. The bigger the interface, the weaker the abstraction • Чем меньше интерфейс, тем он полезнее • Single responsibility principle 2 type Reader interface { Read(p []byte) (n int, err error) } type Writer interface { Write(p []byte) (n int, err error) }
  3. 3. interface{} says nothing • Пустому интерфейсу удовлетворяет любой тип • Пустой интерфейс ничего не может сказать о конкретном типе • От пустого интерфейс нельзя ожидать какого-либо поведения 3
  4. 4. Gofmt's style is no one's favorite, yet gofmt is everyone's favorite • gofmt — автоматический codestyle, единый для всех • gofmt — не супер-идеальный, но уже не изменится • нет споров о том, чей codestyle «более лучше» :) • чужой код проще читается 4
  5. 5. A little copying is better than a little dependency • абстракция ради абстракции • проходит время, и старая абстракция подходит уже не для всех случаев, и её приходится усложнять 5
  6. 6. Clear is better than clever будьте проще — ваш код для людей! 6
  7. 7. Errors are values • if err != nil — это не try…catch! • относитесь к ошибкам так же, как и к другим значениям 7 type error interface { Error() string }
  8. 8. Don’t panic • кто отвечает за обработку ошибок? • ошибка, «обработанная» выбросом паники, я тебя никогда не дождусь :( 8
  9. 9. Don’t just check errors, handle them gracefully • добавить полезную информацию об ошибке • передать тому, кто вызвал 9
  10. 10. Design the architecture, name the components, document the details • архитектура приложения • деление на модули • понятные имена для модулей, функций, переменных 10
  11. 11. Documentation is for users • чтобы понять, что функция делает, я хочу посмотреть её тело («пишите проще!») • чтобы понять, для чего функция нужна, я хочу посмотреть её документацию 11 Думать как пользователь:
  12. 12. Вопросы, замечания, предложения Лена Граховац twitter.com/webdeva golangshow.com 12
  13. 13. Community 13 golang-ru.slack.com 4gophers.ru/slack gophers.slack.com meetup.com/Golang-Moscow meetup.com/GolangNSK meetup.com/Golang-Peter

×