С момента как я начал учить программирование и до прошлых выходных, мне казалось, что ООП - это сущий ад.
Каждый раз, когда видел что-то написанное с применением фабрик, например - пугался и тут же закрыл код, даже не пытаясь вникнуть. К тому же, несколько раз тупил на вопросах о SOLID'е во время собеседований.
И мне казалось, что я вообще никогда не начну эту тему понимать. Ну и если честно - я никогда не пытался.
Я был приятно удивлен, когда наткнувшись на курс о паттернах в Go, стал с интересом и усердием его проходить.
Сейчас я пока что на базовых штуках, но уже чувствую, что немного в своём познании преисполнился и скоро буду готов идти к реке 😂
Так вот, к чему я это. Знать SOLID и паттерны - хоть и не обязательно, но желательно и полезно. Это помогает писать более красивый, понятный и поддерживаемый код.
Ну и сам курс.
https://www.udemy.com/course/design-patterns-go/
Каждый раз, когда видел что-то написанное с применением фабрик, например - пугался и тут же закрыл код, даже не пытаясь вникнуть. К тому же, несколько раз тупил на вопросах о SOLID'е во время собеседований.
И мне казалось, что я вообще никогда не начну эту тему понимать. Ну и если честно - я никогда не пытался.
Я был приятно удивлен, когда наткнувшись на курс о паттернах в Go, стал с интересом и усердием его проходить.
Сейчас я пока что на базовых штуках, но уже чувствую, что немного в своём познании преисполнился и скоро буду готов идти к реке 😂
Так вот, к чему я это. Знать SOLID и паттерны - хоть и не обязательно, но желательно и полезно. Это помогает писать более красивый, понятный и поддерживаемый код.
Ну и сам курс.
https://www.udemy.com/course/design-patterns-go/
Udemy
Design Patterns in Go
Discover the modern implementation of design patterns in Go (golang)
Ну и еще на тему, написаного выше.
Вопросы об OOP и SOLID редко спрашивают во время собеседований на entry level junior'a. Среди трех моих собесов, когда я искал первую работу - всего один раз спросили про SOLID. Это был аутсорс, куда искали strong junior'a, чтобы продавать как мидла.
Недавно я ради интереса проходил пару собеседований, хотелось узнать, что спрашивают у джунов с опытом.
Я хорошо отвечал на вопросы о Go и базах данных, с которыми работал. Нормально рассказывал о concurrency и прочих гошных понятиях. Но как только речь заходила про паттерны - я терялся. Эти вопросы были на трех собесах из трех.
В итоге, мораль такова - учите паттерны, как минимум для того, чтобы проходить собесы :)
Вопросы об OOP и SOLID редко спрашивают во время собеседований на entry level junior'a. Среди трех моих собесов, когда я искал первую работу - всего один раз спросили про SOLID. Это был аутсорс, куда искали strong junior'a, чтобы продавать как мидла.
Недавно я ради интереса проходил пару собеседований, хотелось узнать, что спрашивают у джунов с опытом.
Я хорошо отвечал на вопросы о Go и базах данных, с которыми работал. Нормально рассказывал о concurrency и прочих гошных понятиях. Но как только речь заходила про паттерны - я терялся. Эти вопросы были на трех собесах из трех.
В итоге, мораль такова - учите паттерны, как минимум для того, чтобы проходить собесы :)
Прям дико не нравится js из-за вот таких вот конструкций.
Возможно, это так просто написано тут странно, я не шарю.
Но видел подобное часто и очень уж не нравится по коду отлавливать где и во что преобразуется переменная.
Возможно, это так просто написано тут странно, я не шарю.
Но видел подобное часто и очень уж не нравится по коду отлавливать где и во что преобразуется переменная.
archived = !!+archived;
Очень забавно. Есть официальный драйвер для Clickhouse от их команды.
При этом, есть еще и драйвер от mail.ru, где даже Readme почти полностью такой же, как у официального репо.
Только в примерах у первого репо - sqlx, а у второго мэйлрушный dbr.
Нигде вроде не указано, что это форк
1 - https://github.com/ClickHouse/clickhouse-go
2 - https://github.com/mailru/go-clickhouse
При этом, есть еще и драйвер от mail.ru, где даже Readme почти полностью такой же, как у официального репо.
Только в примерах у первого репо - sqlx, а у второго мэйлрушный dbr.
Нигде вроде не указано, что это форк
1 - https://github.com/ClickHouse/clickhouse-go
2 - https://github.com/mailru/go-clickhouse
GitHub
GitHub - ClickHouse/clickhouse-go: Golang driver for ClickHouse
Golang driver for ClickHouse. Contribute to ClickHouse/clickhouse-go development by creating an account on GitHub.
А еще, есть очень красивый SDK для github на Go от гугла.
Тут круто всё структурировано и хорошо расписаны примеры использования.
Именно отсюда узнал про кастинг типов(а не type assertion) в Go.
Ссылка на пример кода с кастингом типов.
https://github.com/google/go-github/blob/94d2fbbfba4de5018c7b19da5bc99aa1e9769f2c/github/github.go#L266
Тут круто всё структурировано и хорошо расписаны примеры использования.
Именно отсюда узнал про кастинг типов(а не type assertion) в Go.
Ссылка на пример кода с кастингом типов.
https://github.com/google/go-github/blob/94d2fbbfba4de5018c7b19da5bc99aa1e9769f2c/github/github.go#L266
GitHub
go-github/github.go at 94d2fbbfba4de5018c7b19da5bc99aa1e9769f2c · google/go-github
Go library for accessing the GitHub API. Contribute to google/go-github development by creating an account on GitHub.
Неочевидный stack overflow.
Кто понял - молодец. Пишите в комменты свои варианты :)
https://play.golang.org/p/Iriey5njCch
Кто понял - молодец. Пишите в комменты свои варианты :)
https://play.golang.org/p/Iriey5njCch
Forwarded from oleg_log (Oleg Kovalov)
Захотелось странного. Купить/собрать Intel NUC или подобное. Игровой пк не собрать из-за майнеров и отсутствия денег отсутствия времени играть и пускать слюни. Жить на ноутах все скучнее и скучнее (вот на днях соусом MBP16 утопил, я не шучу).
Пролистываю 1к сохраненный новостей заметил пост, где автор собирает Intel NUC https://dimamoroz.com/2021/03/09/intel-nuc-for-development/
Возможно у кого-то похожая железка и/или такое мелкий ПК в ящике стола. Расскажите, зачем используете и что он вам в итоге даёт. И когда его не стоит покупать)
Пролистываю 1к сохраненный новостей заметил пост, где автор собирает Intel NUC https://dimamoroz.com/2021/03/09/intel-nuc-for-development/
Возможно у кого-то похожая железка и/или такое мелкий ПК в ящике стола. Расскажите, зачем используете и что он вам в итоге даёт. И когда его не стоит покупать)
https://dave.cheney.net/2016/03/19/should-methods-be-declared-on-t-or-t
Вот пост от Dave Cheney. Тут он объясняет, почему лучше создавать методы с ресивером *T, а не T.
Если вкратце, то так нужно делать всегда, кроме случаев, когда нужно копировать значение T.
Но меня интересует скорее апендикс в конце поста:
1. Удобнее читается, аргументов меньше.
2. Можно создать абстракцию этого типа.
Вопрос, стоит ли так вообще делать тогда, если я никак не мутирую значения в этом типе? Интересно ваше мнение.
Вот пост от Dave Cheney. Тут он объясняет, почему лучше создавать методы с ресивером *T, а не T.
Если вкратце, то так нужно делать всегда, кроме случаев, когда нужно копировать значение T.
Но меня интересует скорее апендикс в конце поста:
If the method does not mutate its receiver, does it need to be a method?Если я хочу писать на го что-то похожее на ООП. И например, создаю тип какого-то юзкейса, который инициализируется при помощи фабрики, в которую передаются какие-то аргументы, а потом использую данные, которые у меня есть в этом юзкейсе. Делаю я это по двум причинам:
1. Удобнее читается, аргументов меньше.
2. Можно создать абстракцию этого типа.
Вопрос, стоит ли так вообще делать тогда, если я никак не мутирую значения в этом типе? Интересно ваше мнение.
https://youtu.be/7EmboKQH8lM
Походу много кто это видел, но это очень кайфовое выступление о культуре хорошего кода.
Походу много кто это видел, но это очень кайфовое выступление о культуре хорошего кода.
YouTube
Clean Code - Uncle Bob / Lesson 1
↓↓ ENGLISH DESCRIPTION ↓↓
"Coding Better World Together" is a set of master lessons from the famous Uncle Bob (Robert Cecil Martin), where he gives us a broad vision of the importance and future of Software in today's society.
In this first lesson, Uncle…
"Coding Better World Together" is a set of master lessons from the famous Uncle Bob (Robert Cecil Martin), where he gives us a broad vision of the importance and future of Software in today's society.
In this first lesson, Uncle…