Погружение в принципы SOLID с примерами на языке Golang
Принципы SOLID - это набор из пяти принципов проектирования для написания удобного в обслуживании и масштабируемого программного обеспечения в объектно-ориентированном программировании. Они были введены Робертом К. Мартином. Эти принципы представляют собой рекомендации по структурированию кода таким образом, чтобы его было легко понять, изменить и расширить.
💎 Чат: ссылка
Читать статью
Принципы SOLID - это набор из пяти принципов проектирования для написания удобного в обслуживании и масштабируемого программного обеспечения в объектно-ориентированном программировании. Они были введены Робертом К. Мартином. Эти принципы представляют собой рекомендации по структурированию кода таким образом, чтобы его было легко понять, изменить и расширить.
💎 Чат: ссылка
Читать статью
👍6🔥2
Chisel
Chisel - это быстрый TCP/UDP-туннель на Go, для пеередачи HTTP запросов, защищенный с помощью SSH. Chisel в основном полезен для прохождения через брандмауэры, но может быть использован и для обеспечения безопасной конечной точки входа в сеть.
Chisel - это быстрый TCP/UDP-туннель на Go, для пеередачи HTTP запросов, защищенный с помощью SSH. Chisel в основном полезен для прохождения через брандмауэры, но может быть использован и для обеспечения безопасной конечной точки входа в сеть.
$ go install github.com/jpillora/chisel@latest
💎 Чат: ссылка
Github👍4
Что выведет код ?
package main
import (
"fmt"
)
func main() {
i := -5
j := +5
fmt.Printf("%+d %+d", i, j)
}
Ответ👍2👎2
Что выведет код?
package main
import "fmt"
func main() {
for t := 0; t < 10; t++ {
for i := 0; i < 10; i++ {
fmt.Print("*")
}
fmt.Println()
}
}
Ответ🤯16💩4🔥1🖕1
The Ultimate Guide
To Building Database
Driven Apps with Go
Автор: Baron Schwartz
Год издания: 2019
#go #en
Скачать книгу
To Building Database
Driven Apps with Go
Автор: Baron Schwartz
Год издания: 2019
#go #en
Скачать книгу
👍1
Что выведет код ?
Ответ
package main
import "fmt"
func foo(a []int) {
a = append(a, 7)
a[1] = 7
}
func bar(a *[]int) {
*a = append(*a, 7)
}
func main() {
a := []int{1, 2, 3, 4, 5, 6}
fmt.Printf("a[1]=%d\n", a[1])
b := a[1:3]
b[0] = 10
fmt.Printf("1. a[1]=%d\n", a[1]) // что выведет?
b = append(b, a...)
b[0] = 100
fmt.Printf("2. a[1]=%d\n", a[1]) // что выведет?
foo(a)
fmt.Printf("3. a[1]=%d\n", a[1]) // что выведет?
bar(&a)
fmt.Printf("4. a=%v\n", a) // что выведет?
}
Ответ
go.dev
Go Playground - The Go Programming Language
Что выведет код?
package main
import (
"errors"
"fmt"
)
var ErrNotFound = errors.New("Resource was not found")
func main() {
err := raise()
if err == ErrNotFound {
fmt.Println("impossible")
return
}
if err != nil {
fmt.Println("unexpected error")
return
}
}
func raise() error {
return ErrNotFound
}
Ответ🥱3👍1👎1
Что выведет код ?
package main
import "fmt"
func main() {
animals := []string{"bear", "bear", "rabbit", "wolf"}
for _, animal := range animals {
switch animal {
case "rabbit":
fmt.Println(animal, "is so weak!")
fallthrough
case "bear", "wolf":
fmt.Println(animal, "is so strong!")
}
}
}
ОтветЧто выведет код?
package main
func f(n int) (r int) {
defer func() {
r += n
recover()
}()
var f func()
defer f()
f = func() {
r += 2
}
return n + 1
}
func main() {
println(f(3))
}
Ответgo.dev
Go Playground - The Go Programming Language
🤯5
Generic Data Structures and
Algorithms in Go
Автор: Richard Wiener
Год издания: 2022
#go #en
Скачать книгу
Algorithms in Go
Автор: Richard Wiener
Год издания: 2022
#go #en
Скачать книгу
🔴 Dot: элегантное решение для манипуляции данными в Golang
Мы разработали удивительный новый пакет для Golang на GitHub, который позволяет легко вносить изменения в структуры с использованием пути к полям, разделенных точками:
➡️ Идея возникла, когда нам понадобилось обновить данные во множестве структур для последующей передачи в API. Мы знали точные пути ко всем полям, но не хотели делать это вручную. Именно тогда родился Dot!
Если вы поддерживаете open-source, мы будем благодарны за вашу ⭐️ нашему репозиторию на GitHub. Вместе мы делаем разработку в Go еще лучше!
🌍 Github: https://github.com/mowshon/dot (очень подробная документация - на английском) 🇬🇧
📚 Статья на русском языке: https://golangify.com/dot
Мы разработали удивительный новый пакет для Golang на GitHub, который позволяет легко вносить изменения в структуры с использованием пути к полям, разделенных точками:
Field1.Field2.Field3
. ➡️ Идея возникла, когда нам понадобилось обновить данные во множестве структур для последующей передачи в API. Мы знали точные пути ко всем полям, но не хотели делать это вручную. Именно тогда родился Dot!
Если вы поддерживаете open-source, мы будем благодарны за вашу ⭐️ нашему репозиторию на GitHub. Вместе мы делаем разработку в Go еще лучше!
🌍 Github: https://github.com/mowshon/dot (очень подробная документация - на английском) 🇬🇧
📚 Статья на русском языке: https://golangify.com/dot
👍8💩4
Вопрос с собеседования. Как устроен слайс и чем он отличается от массива?
Ответчерез пару часов завтра.
#собеседование
Ответ
#собеседование