thảo luận Tất tần tật về Go (Golang)

RPG29

Đã tốn tiền
Go thì học với làm lâu toàn đọc spec chứ không cần lên stack overflow làm gì.
Thím có project mẫu nào để học theo không nhỉ?

Trước giờ toàn code Java, Kotlin sang Go thấy thọt thọt chưa quen khó chịu quá.
Project mới bắt buộc dùng nên đang xem lại, trước giờ toàn học chơi chơi :shame:
 

BetterNextTime

Senior Member
Thím có project mẫu nào để học theo không nhỉ?

Trước giờ toàn code Java, Kotlin sang Go thấy thọt thọt chưa quen khó chịu quá.
Project mới bắt buộc dùng nên đang xem lại, trước giờ toàn học chơi chơi :shame:
Nếu code server thím có thể dùng thử cái library này
https://github.com/go-kit/kit/tree/master/examples

Còn nếu code library thì cứ tìm mấy cái repo của google mà tham khảo
https://github.com/google/go-cloud

Nếu muốn include cả frontend để làm monorepo thì xem cái này
https://github.com/sosedoff/pgweb

Cần library thì vào đây
https://github.com/avelino/awesome-go
 

RPG29

Đã tốn tiền
Nếu code server thím có thể dùng thử cái library này
https://github.com/go-kit/kit/tree/master/examples

Còn nếu code library thì cứ tìm mấy cái repo của google mà tham khảo
https://github.com/google/go-cloud

Nếu muốn include cả frontend để làm monorepo thì xem cái này
https://github.com/sosedoff/pgweb

Cần library thì vào đây
https://github.com/avelino/awesome-go
Thằng GoKit này so với Gin thì sao thím?

Mấy bữa nay lọ mọ tìm pick library ráp vô mà trầy trật quá, mãi mới lựa được mấy cái này, giờ đang glue với nhau :sweat:

Configuration: https://github.com/spf13/viper
Postgres: https://gorm.io/
Redis: https://github.com/go-redis/redis
MongoDB: https://github.com/mongodb/mongo-go-driver
Elasticsearch: https://github.com/elastic/go-elasticsearch
RabbitMQ: https://github.com/streadway/amqp

Thím xem vậy đã ổn chưa? :shame:
 

HaLinhNHP

Senior Member
Em học Go được 1 tháng rồi, cũng chưa làm được gì nhiều. Lí thuyết cũng chưa vững nữa :):):)

À bên em chọn fiber framework code nhé, vì mọi người background đều biết code nodejs expressjs

Sent from Xiaomi Redmi 7 using vozFApp
 

BetterNextTime

Senior Member
Thằng GoKit này so với Gin thì sao thím?

Mấy bữa nay lọ mọ tìm pick library ráp vô mà trầy trật quá, mãi mới lựa được mấy cái này, giờ đang glue với nhau :sweat:

Configuration: https://github.com/spf13/viper
Postgres: https://gorm.io/
Redis: https://github.com/go-redis/redis
MongoDB: https://github.com/mongodb/mongo-go-driver
Elasticsearch: https://github.com/elastic/go-elasticsearch
RabbitMQ: https://github.com/streadway/amqp

Thím xem vậy đã ổn chưa? :shame:
Gin performance tốt nhưng nó khá là plain. Thím có thể thấy nó nhét hết code vào trong handler.

Go-kit thì provides a good standard for microservices implementation. Nó có chia layer giống như kiểu https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch01.html

Fiber tiện và dễ học cho người biết express. Tuy nhiên nó cũng minimal như "express" vậy
 

RPG29

Đã tốn tiền
Gin performance tốt nhưng nó khá là plain. Thím có thể thấy nó nhét hết code vào trong handler.

Go-kit thì provides a good standard for microservices implementation. Nó có chia layer giống như kiểu https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch01.html

Fiber tiện và dễ học cho người biết express. Tuy nhiên nó cũng minimal như "express" vậy
Cảm ơn thím, bữa giờ vọc thử Gin loay hoay tích hợp, chia layer thấy hơi vất vả, đá quá GoKit xem thử ntn :beauty:
 

RPG29

Đã tốn tiền
Có câu lệnh để cài package mà gỡ package ra phải tìm đúng cái folder package đó để gỡ bằng tay :LOL:
Thực ra có cách nhanh hơn đó là gõ go mod tidy.
Mà thực ra package manager của Go vẫn dở dở ương ương, xài được chứ chưa gọi là ngon.
 

XxxCancerJukexxX

Đã tốn tiền
Thực ra có cách nhanh hơn đó là gõ go mod tidy.
Mà thực ra package manager của Go vẫn dở dở ương ương, xài được chứ chưa gọi là ngon.
go mod tidy nó chỉ làm mất cái dòng require trong file go.mod thôi. Ở đây tôi đang nói việc xóa hoàn toàn trong máy mà
 

RPG29

Đã tốn tiền
go mod tidy nó chỉ làm mất cái dòng require trong file go.mod thôi. Ở đây tôi đang nói việc xóa hoàn toàn trong máy mà
Thì nó cache lại mà, cache nhiều lên thì cứ xóa hết để nó down lại thôi :byebye:

Như Maven lâu lâu cache nó đầy quá cũng phải xóa bớt :byebye:
 

XxxCancerJukexxX

Đã tốn tiền
Thì nó cache lại mà, cache nhiều lên thì cứ xóa hết để nó down lại thôi :byebye:

Như Maven lâu lâu cache nó đầy quá cũng phải xóa bớt :byebye:
Thì nó có cái câu lệnh go clean --modcache nhưng nó sẽ xóa hết tất cả các module đã cache, hài vl
 

BetterNextTime

Senior Member
Về việc xóa hoàn toàn module cache trong máy thì thực ra rất ít khi làm vì
  • module có thể được share giữa nhiều repo, mất thời gian đi check all repos để đảm báo xóa không cần tải lại
  • no gain khi remove cache, tương lai nếu cần phải download lại

Bản thân tôi chỉ làm khi:
  • có 1 cái dependency mà owner overwrite code nhưng giữ version giống thế, cách duy nhất để pull cái mới về là clear cache (tôi nói trên context của go 1.14)
  • package download bởi go get trong older version, nhưng muốn download lại bằng go mod tidy hoặc go mod vendor.
 

THE LAST LEAF

Junior Member
Go dùng sướng nhưng go mod thực sự như hạch, khó dùng hơn rất nhiều so với các package manager khác như npm, maven, nuget,...
 

RPG29

Đã tốn tiền
Đá lên phát, bên Java mình hay dùng Feign hoặc Retrofit cho HTTP Client.
2 thằng này nó là declarative client nên rất tiện, khai báo interface rồi call nó tự request, binding... các kiểu trả POJO.
Bên Go có thằng HTTP/REST Client tương tự không nhỉ? :amazed:
 

huylc

Junior Member
Đá lên phát, bên Java mình hay dùng Feign hoặc Retrofit cho HTTP Client.
2 thằng này nó là declarative client nên rất tiện, khai báo interface rồi call nó tự request, binding... các kiểu trả POJO.
Bên Go có thằng HTTP/REST Client tương tự không nhỉ? :amazed:
go-resty

via theNEXTvoz for iPhone
 
Top