Skip to content

Instantly share code, notes, and snippets.

@toannd96
Last active July 22, 2019 17:06
Show Gist options
  • Save toannd96/25f4e191cd206f520b59dcb3de66b70e to your computer and use it in GitHub Desktop.
Save toannd96/25f4e191cd206f520b59dcb3de66b70e to your computer and use it in GitHub Desktop.
learn go
https://www.bogotobogo.com/GoLang/GoLang_Visual_Studio_Code.php
https://golangbot.com/variables/
Tổng hợp tài liệu Golang từ cơ bản đến nâng cao cho beginner:
Trang chủ: https://golang.org
Official docs: https://golang.org/doc
Official blog: https://blog.golang.org
Training Golang cơ bản: https://tour.golang.org (Khuyến khích xem trước, rất dễ học)
Làm sao "chơi" với Golang hiệu quả? https://golang.org/doc/effective_go.html
Tổng hợp các ví dụ khi lập trình Go: https://gobyexample.com
Tập luyện Go với các bài toán thực tế nhỏ: https://gophercises.com
Kiểm tra xem đang ở level nào: http://devs.cloudimmunity.com/gotchas-and-common-mistakes-…/
Videos:
- https://www.safaribooksonline.com/…/ultimate…/9780134757476/ . Đây là khóa học mình tâm đắc nhất. Rất hay cho cả beginner đến expert. Giọng điệu người dạy rõ ràng lành mạch, nhấn mạnh đúng chỗ, đầy lôi cuốn. Khóa học cung cấp đầy đủ về thông tin kỹ thuật của go cho đến lập trình, tips, và quan trọng (với mình) là bao gồm cả nội dung "Under the hood" (nội dung kỹ thuật dưới nền mà official docs không nói đến). Khóa này hay quá nên mình ngày xưa cày 3 ngày là hết (lôi cuốn quá không dừng được). Theo mình xong khóa này là nắm được tầm 80 90% Golang rồi :D
- https://kotdao.com học golang bằng videos tiếng Việt (share bởi Nguyễn Văn Kiên)
- Mì ăn liền Golang: https://m.youtube.com/playlist…
Ebooks:
- https://1drv.ms/f/s!AryzE7UcHLfbg_JFfVQqftJSuQ8vAA (share bởi Phạm Khắc Hưng)
- https://github.com/dariubs/GoBooks (share bởi Quế Hương)
- http://www.golangbootcamp.com/book (share bởi @Phê)
Git hay:
- https://github.com/tmrts/go-patterns . Các design pattern trong Go và ví dụ cụ thể, rất dễ học.
- https://github.com/avelino/awesome-go . Tổng hợp những thông tin hay về Go (bao gồm libs, frameworks) - share bởi Phạm Khắc Hưng
- https://github.com/denji/awesome-http-benchmark . Các tools bench http server (chủ yếu được viết bằng Golang)
Libs:
- https://golanglibs.com/categories (shares bởi Phạm Khắc Hưng) tổng hợp các libs hay của Go.
Blogs:
- https://laptrinhgo.blogspot.com/ (tác giả Phạm Khắc Hưng) Blog tiếng việt, là những kinh nghiệm cá nhân của tác giả.
- https://golangbot.com/ (share bởi Nguyễn Mạnh Duẩn)
- https://blog.golang.org/advanced-go-concurrency-patterns . Blog của golang về những patterns nâng cao khi làm việc với Go Concurrency.
1 vài lưu ý khi optimize performance trong Go:
- Chỉ dùng pointer khi cần thiết, không lạm dụng pointer.
- Stack memory luôn nhanh hơn Heap memory, dựa vào đó để optimize, hạn chế càng ít memory allocation càng tốt (tìm hiểu về go memory management: https://www.youtube.com/watch?v=zjoieOpy5hE).
- Hãy tìm hiểu về alignement và padding để tối ưu kích cỡ của 1 struct.
- Hãy sử dụng các tools đi kèm với Go để đo lường.
- Chú ý đến vấn đề data race khi làm việc với go concurrency (go có data race detector, nên sử dụng).
- Chú ý kỹ về buffered và unbuffered channel.
- Lưu ý về slice khi truyền slice vào channel. (https://www.facebook.com/groups/335069743983293/permalink/519691028854496/)
- Đã "mở" cái gì thì luôn nhớ defer "đóng" để tránh memory leak. (Lưu ý https://www.facebook.com/groups/335069743983293/permalink/497426167747649/ )
- Bạn phải biết 1 goroutine lúc nào sẽ dừng lúc nào sẽ chạy. Tránh việc 1 goroutine chạy mà không biết khi nào dừng => goroutine leak.
- Trong go không có "pass by reference", chỉ có "pass by value" (https://dave.cheney.net/…/there-is-no-pass-by-reference-in-…)
- Tìm hiểu Golang memory ballast để tối ưu hoá Gabage Collector (GC) trong môi trường production tại đây (https://blog.twitch.tv/go-memory-ballast-how-i-learnt-to-st…)
- Go có một số hàm/package có thể sử dụng trên hệ điều hành này nhưng có thể sẽ không thể ở hệ điều hành khác.
- Clean Golang code https://github.com/Pungyeon/clean-go
1 vài SAI LẦM mà Gopher hay mắc phải: https://youtu.be/29LLRKIL_TI trình bày bởi kỹ sư của Docker
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment