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

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

А вот некоторые из обсуждаемых антипаттернов:

🟡Возврат значения неэкспортируемого типа из экспортируемой функции

// Не рекомендовано 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") }

// Бесполезное выражение 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") }

В своем канале я разобрал 1900 вопросов с собеседований Go разработчика, все любите Go - заходите в гости.

0
Комментарии
-3 комментариев
Раскрывать всегда