Найти в Дзене
2025 подписчиков

👣 Go: распространенные антипаттерны


Самый простой способ писать хороший код заключается в том, чтобы не употреблять в своих программах «антипаттерны». Собственно, об этом и идёт речь в этой полезной статье

А вот некоторые из обсуждаемых антипаттернов:
🟡Возврат значения неэкспортируемого типа из экспортируемой функции
// Не рекомендовано
type unexportedType string
func ExportedFunc() unexportedType {
return unexportedType("some string")
}

// Рекомендовано
type ExportedType string
func ExportedFunc() ExportedType {
return ExportedType("some string")
}

🟡Неоправданное использование пустых идентификаторов
// Не рекомендовано
for _ = range sequence
{
run()
}

x, _ := someMap[key]

_ = <-ch

// Рекомендовано
for range something
{
run()
}

x := someMap[key]

<-ch

🟡Ненужное выражение return в функциях
// Бесполезное выражение return, не рекомендовано
func alwaysPrintFoofoo() {
fmt.Println("foofoo")
return
}

// Рекомендовано
func alwaysPrintFoo() {
fmt.Println("foofoo")
}

🟡Ненужные команды break в выражениях switch
// Не рекомендовано
switch s {
case 1:
fmt.Println("case one")
break
case 2:
fmt.Println("case two")
}

// Рекомендовано
switch s {
case 1:
fmt.Println("case one")
case 2:
fmt.Println("case two")
}


Около минуты