<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Go on HuyDQ&#39;s Blog</title>
    <link>https://robinhuy.github.io/tags/go/</link>
    <description>Recent content in Go on HuyDQ&#39;s Blog</description>
    <image>
      <url>https://robinhuy.github.io/icons/dragon-thumbnail.png</url>
      <link>https://robinhuy.github.io/icons/dragon-thumbnail.png</link>
    </image>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Mon, 22 Oct 2018 00:00:00 +0000</lastBuildDate><atom:link href="https://robinhuy.github.io/tags/go/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Quản lý Dependencies trong Go bằng Govendor</title>
      <link>https://robinhuy.github.io/blog/quan-ly-dependencies-trong-go-bang-govendor/</link>
      <pubDate>Mon, 22 Oct 2018 00:00:00 +0000</pubDate>
      
      <guid>https://robinhuy.github.io/blog/quan-ly-dependencies-trong-go-bang-govendor/</guid>
      <description>Để 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.</description>
    </item>
    
    <item>
      <title>Validate dữ liệu trong Go sử dụng Govalidator</title>
      <link>https://robinhuy.github.io/blog/validate-du-lieu-trong-go-su-dung-govalidator/</link>
      <pubDate>Fri, 18 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://robinhuy.github.io/blog/validate-du-lieu-trong-go-su-dung-govalidator/</guid>
      <description>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:</description>
    </item>
    
    <item>
      <title>Golang embedded type - Kế thừa trong Go</title>
      <link>https://robinhuy.github.io/blog/golang-embedded-type-ke-thua-trong-go/</link>
      <pubDate>Wed, 16 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://robinhuy.github.io/blog/golang-embedded-type-ke-thua-trong-go/</guid>
      <description>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 &amp;ldquo;kế thừa&amp;rdquo; 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.</description>
    </item>
    
    <item>
      <title>Quản lý package trong Go</title>
      <link>https://robinhuy.github.io/blog/quan-ly-package-trong-go/</link>
      <pubDate>Fri, 30 Mar 2018 00:00:00 +0000</pubDate>
      
      <guid>https://robinhuy.github.io/blog/quan-ly-package-trong-go/</guid>
      <description>Để 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:</description>
    </item>
    
    <item>
      <title>Học Go cấp tốc Phần 5:  Methods và Interfaces</title>
      <link>https://robinhuy.github.io/blog/hoc-go-cap-toc-phan-5-methods-va-interfaces/</link>
      <pubDate>Wed, 21 Mar 2018 00:00:00 +0000</pubDate>
      
      <guid>https://robinhuy.github.io/blog/hoc-go-cap-toc-phan-5-methods-va-interfaces/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Học Go cấp tốc Phần 4:  Structs và Maps</title>
      <link>https://robinhuy.github.io/blog/hoc-go-cap-toc-phan-4-structs-va-maps/</link>
      <pubDate>Tue, 20 Mar 2018 00:00:00 +0000</pubDate>
      
      <guid>https://robinhuy.github.io/blog/hoc-go-cap-toc-phan-4-structs-va-maps/</guid>
      <description>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.</description>
    </item>
    
    <item>
      <title>Học Go cấp tốc Phần 3:  Arrays và Slices</title>
      <link>https://robinhuy.github.io/blog/hoc-go-cap-toc-phan-3-arrays-va-slices/</link>
      <pubDate>Mon, 19 Mar 2018 00:00:00 +0000</pubDate>
      
      <guid>https://robinhuy.github.io/blog/hoc-go-cap-toc-phan-3-arrays-va-slices/</guid>
      <description>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] = &amp;#34;Hello&amp;#34; a[1] = &amp;#34;World&amp;#34;  // In kết quả ra console fmt.</description>
    </item>
    
    <item>
      <title>Học Go cấp tốc Phần 2:  Điều khiển luồng với if, else, switch và defer</title>
      <link>https://robinhuy.github.io/blog/hoc-go-cap-toc-phan-2-dieu-khien-luong-voi-if-else-switch-va-defer/</link>
      <pubDate>Sun, 18 Mar 2018 00:00:00 +0000</pubDate>
      
      <guid>https://robinhuy.github.io/blog/hoc-go-cap-toc-phan-2-dieu-khien-luong-voi-if-else-switch-va-defer/</guid>
      <description>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, &amp;hellip; 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 &amp;lt; 10; i++ {  sum += i } fmt.</description>
    </item>
    
    <item>
      <title>Học Go cấp tốc Phần 1: Packages, variables và functions</title>
      <link>https://robinhuy.github.io/blog/hoc-go-cap-toc-phan-1-packages-variables-va-functions/</link>
      <pubDate>Sat, 17 Mar 2018 00:00:00 +0000</pubDate>
      
      <guid>https://robinhuy.github.io/blog/hoc-go-cap-toc-phan-1-packages-variables-va-functions/</guid>
      <description>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 😅</description>
    </item>
    
  </channel>
</rss>
