index
:
dotfiles
master
The .-files
summary
refs
log
tree
commit
diff
log msg
author
committer
range
path:
root
/
prompts
/
skills
/
100-go-mistakes
/
references
Mode
Name
Size
-rw-r--r--
mistake-01-unintended-variable-shadowing.md
767
log
plain
-rw-r--r--
mistake-02-unnecessary-nested-code.md
1275
log
plain
-rw-r--r--
mistake-03-misusing-init-functions.md
1210
log
plain
-rw-r--r--
mistake-04-overusing-getters-and-setters.md
1173
log
plain
-rw-r--r--
mistake-05-interface-pollution.md
412
log
plain
-rw-r--r--
mistake-06-interface-on-the-producer-side.md
1130
log
plain
-rw-r--r--
mistake-07-returning-interfaces.md
864
log
plain
-rw-r--r--
mistake-08-any-says-nothing.md
515
log
plain
-rw-r--r--
mistake-09-being-confused-about-when-to-use-generics.md
487
log
plain
-rw-r--r--
mistake-10-not-being-aware-of-the-possible-problems-with-type-embedding.md
2168
log
plain
-rw-r--r--
mistake-100-not-understanding-the-impacts-of-running-go-in-docker-and-kubernetes.md
1217
log
plain
-rw-r--r--
mistake-11-not-using-the-functional-options-pattern.md
1885
log
plain
-rw-r--r--
mistake-12-project-misorganization-project-structure-and-package-organization.md
2591
log
plain
-rw-r--r--
mistake-13-creating-utility-packages.md
542
log
plain
-rw-r--r--
mistake-14-ignoring-package-name-collisions.md
624
log
plain
-rw-r--r--
mistake-15-missing-code-documentation.md
1861
log
plain
-rw-r--r--
mistake-16-not-using-linters.md
1553
log
plain
-rw-r--r--
mistake-17-creating-confusion-with-octal-literals.md
1113
log
plain
-rw-r--r--
mistake-18-neglecting-integer-overflows.md
756
log
plain
-rw-r--r--
mistake-19-not-understanding-floating-points.md
1533
log
plain
-rw-r--r--
mistake-20-not-understanding-slice-length-and-capacity.md
464
log
plain
-rw-r--r--
mistake-21-inefficient-slice-initialization.md
988
log
plain
-rw-r--r--
mistake-22-being-confused-about-nil-vs-empty-slice.md
1230
log
plain
-rw-r--r--
mistake-23-not-properly-checking-if-a-slice-is-empty.md
1081
log
plain
-rw-r--r--
mistake-24-not-making-slice-copies-correctly.md
687
log
plain
-rw-r--r--
mistake-25-unexpected-side-effects-using-slice-append.md
979
log
plain
-rw-r--r--
mistake-26-slices-and-memory-leaks.md
1027
log
plain
-rw-r--r--
mistake-27-inefficient-map-initialization.md
846
log
plain
-rw-r--r--
mistake-28-maps-and-memory-leaks.md
369
log
plain
-rw-r--r--
mistake-29-comparing-values-incorrectly.md
2309
log
plain
-rw-r--r--
mistake-30-ignoring-that-elements-are-copied-in-range-loops.md
973
log
plain
-rw-r--r--
mistake-31-ignoring-how-arguments-are-evaluated-in-range-loops-channels-and-arrays.md
939
log
plain
-rw-r--r--
mistake-32-ignoring-the-impacts-of-using-pointer-elements-in-range-loops.md
863
log
plain
-rw-r--r--
mistake-33-making-wrong-assumptions-during-map-iterations-ordering-and-map-insert-during-iteration.md
540
log
plain
-rw-r--r--
mistake-34-ignoring-how-the-break-statement-works.md
1558
log
plain
-rw-r--r--
mistake-35-using-defer-inside-a-loop.md
1892
log
plain
-rw-r--r--
mistake-36-not-understanding-the-concept-of-rune.md
1141
log
plain
-rw-r--r--
mistake-37-inaccurate-string-iteration.md
2828
log
plain
-rw-r--r--
mistake-38-misusing-trim-functions.md
644
log
plain
-rw-r--r--
mistake-39-under-optimized-strings-concatenation.md
3507
log
plain
-rw-r--r--
mistake-40-useless-string-conversions.md
1027
log
plain
-rw-r--r--
mistake-41-substring-and-memory-leaks.md
928
log
plain
-rw-r--r--
mistake-42-not-knowing-which-type-of-receiver-to-use.md
2055
log
plain
-rw-r--r--
mistake-43-never-using-named-result-parameters.md
1449
log
plain
-rw-r--r--
mistake-44-unintended-side-effects-with-named-result-parameters.md
1453
log
plain
-rw-r--r--
mistake-45-returning-a-nil-receiver.md
353
log
plain
-rw-r--r--
mistake-46-using-a-filename-as-a-function-input.md
851
log
plain
-rw-r--r--
mistake-47-ignoring-how-defer-arguments-and-receivers-are-evaluated.md
1935
log
plain
-rw-r--r--
mistake-48-panicking.md
1092
log
plain
-rw-r--r--
mistake-49-ignoring-when-to-wrap-an-error.md
1365
log
plain
-rw-r--r--
mistake-50-comparing-an-error-type-inaccurately.md
410
log
plain
-rw-r--r--
mistake-51-comparing-an-error-value-inaccurately.md
1306
log
plain
-rw-r--r--
mistake-52-handling-an-error-twice.md
1032
log
plain
-rw-r--r--
mistake-53-not-handling-an-error.md
379
log
plain
-rw-r--r--
mistake-54-not-handling-defer-errors.md
1162
log
plain
-rw-r--r--
mistake-55-mixing-up-concurrency-and-parallelism.md
749
log
plain
-rw-r--r--
mistake-56-thinking-concurrency-is-always-faster.md
503
log
plain
-rw-r--r--
mistake-57-being-puzzled-about-when-to-use-channels-or-mutexes.md
2767
log
plain
-rw-r--r--
mistake-58-not-understanding-race-problems-data-races-vs-race-conditions.md
2597
log
plain
-rw-r--r--
mistake-59-not-understanding-the-concurrency-impacts-of-a-workload-type.md
1432
log
plain
-rw-r--r--
mistake-60-misunderstanding-go-contexts.md
2926
log
plain
-rw-r--r--
mistake-61-propagating-an-inappropriate-context.md
2757
log
plain
-rw-r--r--
mistake-62-starting-a-goroutine-without-knowing-when-to-stop-it.md
2986
log
plain
-rw-r--r--
mistake-63-not-being-careful-with-goroutines-and-loop-variables.md
1139
log
plain
-rw-r--r--
mistake-64-expecting-a-deterministic-behavior-using-select-and-channels.md
2255
log
plain
-rw-r--r--
mistake-65-not-using-notification-channels.md
1104
log
plain
-rw-r--r--
mistake-66-not-using-nil-channels.md
1739
log
plain
-rw-r--r--
mistake-67-being-puzzled-about-channel-size.md
2838
log
plain
-rw-r--r--
mistake-68-forgetting-about-possible-side-effects-with-string-formatting.md
2650
log
plain
-rw-r--r--
mistake-69-creating-data-races-with-append.md
1843
log
plain
-rw-r--r--
mistake-70-using-mutexes-inaccurately-with-slices-and-maps.md
3183
log
plain
-rw-r--r--
mistake-71-misusing-syncwaitgroup.md
1169
log
plain
-rw-r--r--
mistake-72-forgetting-about-synccond.md
976
log
plain
-rw-r--r--
mistake-73-not-using-errgroup.md
939
log
plain
-rw-r--r--
mistake-74-copying-a-sync-type.md
865
log
plain
-rw-r--r--
mistake-75-providing-a-wrong-time-duration.md
1314
log
plain
-rw-r--r--
mistake-76-timeafter-and-memory-leaks.md
994
log
plain
-rw-r--r--
mistake-77-json-handling-common-mistakes.md
1065
log
plain
-rw-r--r--
mistake-78-common-sql-mistakes.md
1206
log
plain
-rw-r--r--
mistake-79-not-closing-transient-resources-http-body-sqlrows-and-osfile.md
1165
log
plain
-rw-r--r--
mistake-80-forgetting-the-return-statement-after-replying-to-an-http-request.md
1799
log
plain
-rw-r--r--
mistake-81-using-the-default-http-client-and-server.md
375
log
plain
-rw-r--r--
mistake-82-not-categorizing-tests-build-tags-environment-variables-and-short-mode.md
527
log
plain
-rw-r--r--
mistake-83-not-enabling-the-race-flag.md
2181
log
plain
-rw-r--r--
mistake-84-not-using-test-execution-modes-parallel-and-shuffle.md
282
log
plain
-rw-r--r--
mistake-85-not-using-table-driven-tests.md
308
log
plain
-rw-r--r--
mistake-86-sleeping-in-unit-tests.md
292
log
plain
-rw-r--r--
mistake-87-not-dealing-with-the-time-api-efficiently.md
381
log
plain
-rw-r--r--
mistake-88-not-using-testing-utility-packages-httptest-and-iotest.md
1178
log
plain
-rw-r--r--
mistake-89-writing-inaccurate-benchmarks.md
766
log
plain
-rw-r--r--
mistake-90-not-exploring-all-the-go-testing-features---not-using-fuzzing.md
1029
log
plain
-rw-r--r--
mistake-91-not-understanding-cpu-caches.md
1349
log
plain
-rw-r--r--
mistake-92-writing-concurrent-code-that-leads-to-false-sharing.md
412
log
plain
-rw-r--r--
mistake-93-not-taking-into-account-instruction-level-parallelism.md
364
log
plain
-rw-r--r--
mistake-94-not-being-aware-of-data-alignment.md
459
log
plain
-rw-r--r--
mistake-95-not-understanding-stack-vs-heap.md
409
log
plain
-rw-r--r--
mistake-96-not-knowing-how-to-reduce-allocations.md
1366
log
plain
-rw-r--r--
mistake-97-not-relying-on-inlining.md
139
log
plain
-rw-r--r--
mistake-98-not-using-go-diagnostics-tooling.md
191
log
plain
-rw-r--r--
mistake-99-not-understanding-how-the-gc-works.md
1342
log
plain