diff --git a/site/index.html b/site/index.html index 9e75cfd9..80e8d7cd 100644 --- a/site/index.html +++ b/site/index.html @@ -3069,7 +3069,7 @@

Not properly checking if a TL;DR

To check if a slice doesn’t contain any element, check its length. This check works regardless of whether the slice is nil or empty. The same goes for maps. To design unambiguous APIs, you shouldn’t distinguish between nil and empty slices.

-

To determine whether a slice has elements, we can either do it by checking if the slice is nil or if its length is equal to 0. Checking the length is the best option to follow as it will cover both if the slice is empty or is the slice is nil.

+

To determine whether a slice has elements, we can either do it by checking if the slice is nil or if its length is equal to 0. Checking the length is the best option to follow as it will cover both if the slice is empty or if the slice is nil.

Meanwhile, when designing interfaces, we should avoid distinguishing nil and empty slices, which leads to subtle programming errors. When returning slices, it should make neither a semantic nor a technical difference if we return a nil or empty slice. Both should mean the same thing for the callers. This principle is the same with maps. To check if a map is empty, check its length, not whether it’s nil.

Source code

Not making slice copies correctly (#24)

@@ -3717,7 +3717,7 @@

Data Race

We can prevent a data race from happening using different techniques. For example:

Race Condition

diff --git a/site/ja/index.html b/site/ja/index.html index 3df79639..e74ed22f 100644 --- a/site/ja/index.html +++ b/site/ja/index.html @@ -860,21 +860,551 @@
  • - インターフェイス汚染 (#5) + インタフェース汚染 (#5)
  • - プロデューサー側のインターフェイス (#6) + 生産者側のインタフェース (#6)
  • - インターフェイスを返す (#7) + インタフェースを返す (#7) + + +
  • + +
  • + + any は何も言わない (#8) + + +
  • + +
  • + + ジェネリックスをいつ使用するべきか理解していない (#9) + + +
  • + +
  • + + 型の埋め込みで起こりうる問題を把握していない (#10) + + +
  • + +
  • + + Functional Options パターンを使用していない (#11) + + +
  • + +
  • + + 誤ったプロジェクト構成 (プロジェクト構造とパッケージ構成) (#12) + + +
  • + +
  • + + ユーティリティパッケージの作成 (#13) + + +
  • + +
  • + + パッケージ名の衝突を無視する (#14) + + +
  • + +
  • + + コードの文章化が行われていない (#15) + + +
  • + +
  • + + リンターを使用してない (#16) + + +
  • + + + + + + +
  • + + データ型 + + + + +
  • + +
  • + + 構造の制御 + + + + +
  • + +
  • + + 文字列 + + + + +
  • + +
  • + + 関数とメソッド + + + + +
  • + +
  • + + エラー処理 + + + + +
  • + +
  • + + 並行処理:基礎 + + +