Quản lý Dependencies trong Go bằng Govendor

Để quản lý Dependencies (packages) trong Go chúng ta có thể dùng nhiều tool hỗ trợ. Về bản chất thì chúng tương tự nhau nhưng cũng có nhưng ưu nhược điểm riêng, ví dụ một số tool mình đã từng sử dụng như Dep hoặc Glide (tham khảo bài viết Quản lý package trong Go). Hiện mình đang sử dụng một tool khác là Govendor , và theo ý kiến cá nhân thì mình thấy tool này dễ sử dụng hơn, và cách cấu hình cũng như hoạt động của nó khá giống với npm trên NodeJS....

22/10/2018 · 3 phút

Validate dữ liệu trong Go sử dụng Govalidator

Trong các ứng dụng cho phép người dùng nhập dữ liệu thì đều cần phải có validate để bảo mật và đảm bảo ứng dụng chạy đúng. Golang có một số thư viện open source hỗ trợ chúng ta làm việc này một cách nhanh chóng, ví dụ như govalidator . Cài đặt Cài govalidator qua package manager hoặc đơn giản là dùng go get: 1 go get github.com/asaskevich/govalidator Import vào trong project:...

18/05/2018 · 2 phút

Golang embedded type - Kế thừa trong Go

Go không phải một ngôn ngữ hướng đối tượng (OOP). Tuy nhiên chúng ta có thể áp dụng một số ưu điểm của hướng đối tượng vào trong Go. Chúng ta có Struct (tương tự Class), Interface và Method . Để sử dụng thuộc tính “kế thừa” trong Go ta sẽ dùng embedded type. Embedded Type là khai báo một type nằm trong một type khác nhưng không khai báo tên, trường mà không khai báo tên còn được gọi là embedded field....

16/05/2018 · 2 phút

Quản lý package trong Go

Để sử dụng 1 package trong Go ta dùng lệnh import: Với local package (các package nằm trong project) thì ta có thể sử dụng đường dẫn tương đối. Với external package (các package bên ngoài project) thì ta sẽ phải cài đặt vào trong $GOPATH (đây là một biến môi trường để thiết lập nơi cài package). Để cài đặt package thì chúng ta có thể dùng các cách sau:...

30/03/2018 · 4 phút

Học Go cấp tốc Phần 5: Methods và Interfaces

Các phần trước: Phần 1: Packages, variables và functions. Phần 2: Điều khiển luồng với if, else, switch và defer. Phần 3: Arrays và Slices. Phần 4: Structs và Maps. Methods Trong Go không có class, chúng ta có thể dùng struct thay cho class như ở phần trước. Tuy nhiên trong struct mới chỉ có thuộc tính chứ chưa có phương thức. Để ứng dụng được phương thức (method) như các ngôn ngữ hướng đối tượng khác ta sẽ cần khai báo function kèm theo một tham số đặc biệt gọi là receiver argument....

21/03/2018 · 4 phút

Học Go cấp tốc Phần 4: Structs và Maps

Các phần trước: Phần 1: Packages, variables và functions. Phần 2: Điều khiển luồng với if, else, switch và defer. Phần 3: Arrays và Slices. Structs Tương tự C, một struct trong Go là tập hợp các trường (field) do người dùng tự định nghĩa. Mỗi trường có thể có kiểu dữ liệu khác nhau, thậm chí có thể là một struct. Trong Go không có class như các ngôn ngữ hướng đối tượng, do đó chúng ta có thể dùng struct thay cho class....

20/03/2018 · 4 phút

Học Go cấp tốc Phần 3: Arrays và Slices

Các phần trước: Phần 1: Packages, variables và functions. Phần 2: Điều khiển luồng với if, else, switch và defer. Arrays Array (mảng) trong Go tương tự các ngôn ngữ khác, tuy nhiên nó có kích thước cố định (fixed size) và các phần tử bên trong phải cùng loại dữ liệu. Ví dụ: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 // Khởi tạo một mảng gồm 2 string var a [2]string // Gán giá trị cho các phần tử trong mảng a[0] = "Hello" a[1] = "World" // In kết quả ra console fmt....

19/03/2018 · 6 phút

Học Go cấp tốc Phần 2: Điều khiển luồng với if, else, switch và defer

Phần trước: Học Go cấp tốc Phần 1: Packages, variables và functions. Phần tiếp theo chúng ta sẽ cùng tìm hiểu cách điều khiển luồng (flow control) trong Go. Vòng lặp Trong Go chỉ có 1 kiểu vòng lặp là sử dụng for. Cách dùng tương tự các ngôn ngữ khác nhưng phần khai báo biến, điều kiện lặp, … không cần đặt trong cặp ngoặc tròn: 1 2 3 4 5 6 // Tính tổng các số từ 0 - 9 sum := 0 for i := 0; i < 10; i++ { sum += i } fmt....

18/03/2018 · 4 phút

Học Go cấp tốc Phần 1: Packages, variables và functions

Go(hay thường được gọi là Golang) là một ngôn ngữ lập trình mã nguồn mở được tạo ở Google vào năm 2009 bởi Robert Griesemer, Rob Pike, và Ken Thompson. Nó được ra đời nhằm mục đích phát triển các trang web nhanh hơn, dễ dàng hơn và đáp ứng được yêu cầu truy cập lớn. Về lịch sử ra đời cũng như giới thiệu chi tiết hơn các bạn có thể xem ở wikipedia 😅...

17/03/2018 · 5 phút