Chuyển tới nội dung chính

Cách cài đặt và sử dụng cùng lúc nhiều version nodejs trên windows

· 4 phút để đọc
ManhPT
Just another developer!

Chuyển từ MacOS hay Ubuntu về sử dụng Windows

Mình gần như đã từng là fan của Apple khi mà sử dụng iPhone, Macbook cho cuộc sống và công việc. Việc cho phép cài đặt phần mềm qua dòng lệnh khá là lý tưởng với một developer như mình.

Ngoài ra, ngày còn khờ dại, đọc được thông tin đâu đó về việc NodeJs được tạo ra trên MacOS đã khiến mình quyết định mua chiếc Macbook đầu tiên - mình là một NodeJS Developer.

7 xu hướng Cloud Native đáng quan tâm trong năm 2020

· 9 phút để đọc
ManhPT
Just another developer!

Khi Cloud Native tiếp tục đà phát triển mạnh mẽ trong cộng đồng, ngày càng nhiều tổ chức áp dụng những công nghệ và kỹ thuật, ứng dụng đi kèm của nó. Hãy điểm qua những gì được mong đợi sẽ diễn ra trong năm 2020.

Kubernetes đã không còn là một công nghệ mới và tên của nó đang lùi dần vào sau hậu trường. Sự tập trung sẽ được dành cho việc xây dựng các phương thức trừu tượng (abstractions) - để giảm độ phức tạp, công cụ và nền tảng bởi các cộng đồng đang không ngừng phát triển.

Dưới đây là 7 xu hướng đáng quan tâm trong năm 2020:

Sử dụng Commitizen để commit đúng chuẩn

· 4 phút để đọc
ManhPT
Just another developer!

Lịch sử git thiếu nhất quán

Hầu hết developer chúng ta đều biết đến git - nếu chưa biết thì phải tìm hiểu và sử dụng ngay - một công cụ quá tuyệt vời để quản lý source code. Và giống như việc đặt tên biến trong code, commit messages cũng là một thứ gì đó thực sự gây đau đầu.

Trong một team, có anh em sẽ chỉ đặt một message ngắn ngủn cho xong, một số cẩn thận sẽ viết rõ những thay đổi trong đó và chèn thêm cả JIRA ticket number. Như thế sẽ tạo ra sự thiếu nhất quán trong lịch sử commit vốn đã rất phức tạp. Điều này khiến mình nghĩ đến việc chuẩn hóa commit trong project hiện tại.

[Gitlab] Cài đặt gitlab-runner trên môi trường docker swarm

· 4 phút để đọc
ManhPT
Just another developer!

Why docker swarm? Liên quan gì đến gitlab-runner?

Setup gitlab-runner trên môi trường docker bình thường khá đơn giản trong bài viết này. Nhưng nếu bạn có nhiều máy (máy tính local hoặc server) thì sao? Setup gitlab-runner cho từng máy không phải là một ý hay:

Kết hợp các máy này lại với nhau, tạo thành một cụm docker swarm.

Cách lưu trữ mật khẩu git trên linux terminal

· 3 phút để đọc
ManhPT
Just another developer!

Vấn đề là...

Nếu bạn đã từng sử dụng git trên "cửa sổ dòng lệnh" (terminal) của windows, linux hay macOS, bạn sẽ thấy rằng mật khẩu git của chúng ta được lưu lại tự động. Sau đó, chúng ta chỉ cần fetch - push - pull bình thường. Không cần nhập lại username và password của git nữa.

Hơi tiếc là Ubuntu nói riêng và linux nói chung không có tính năng này. Dĩ nhiên chúng ta có thể cài đặt thêm phần mềm bên thứ 3 để có được tính năng tương tự. Mmình chưa thử và cũng ko tin tưởng để thử... lol.

Thay đổi version java trên macos mà không cần cài đặt thêm thư viện

· 2 phút để đọc
ManhPT
Just another developer!

Vấn đề là...

Có nhiều lúc bạn cần sử dụng một phiên bản nhất định của Java để phục vụ công việc, ví dụ như build app android thì cần Java 8 trong khi version mới nhất của Java hiện đã là 11 (tại thời điểm viết bài).

Sau đây là một vài bước đơn giản để bạn có thể thiết lập môi trường MacOS sử dụng một phiên bản nhất định (trong trường hợp máy bạn cài đặt nhiều phiên bản Java) và thay đổi giữa các phiên bản của Java.

Bạn không cần phải cài đặt thêm bất cứ plugin hay thư viện nào để có thể thực hiện các bước sau đây.

[Gitlab] Cài đặt gitlab-runner sử dụng môi trường docker

· 2 phút để đọc
ManhPT
Just another developer!

Việc cài đặt gitlab-runner sử dụng docker được hướng dẫn khá đầy đủ tại tài liệu chính thống. Nhưng thực tế quá trình cài đặt và sử dụng thường không diễn ra suôn sẻ với mình lắm nên mình chắc nhiều bạn cũng gặp vấn đề giống mình. Bài viết này chủ yếu chỉ ra những điều cần chú ý khi bạn cài đặt và sau khi cài thành công mà pipeline có thể vẫn báo tình trạng stuck (job không thể kích hoạt bởi gitlab-runner).

[Git Workflow] Giới thiệu

· 2 phút để đọc
ManhPT
Just another developer!

Bạn có bao giờ tự hỏi

  1. Git còn gì ngoài git commit, git pushgit pull? Thỉnh thoảng dùng thêm git merge, còn gì nữa không?
  2. git mergegit rebase khác gì nhau, nên dùng cái nào?
  3. Ở vị trí team leader bạn sẽ vận hành git ra sao để kết hợp với process của team (agile) và giải quyết các conflict trong quá trình code?
  4. Lịch sử git có giá trị như thế nào? Hay bạn chẳng bao giờ để ý đến nó?

Nếu bạn là 1 git command line master thì mọi thứ đều có thể được giải quyết dưới local bằng dòng lệnh. Nhưng khi làm việc trong một nhóm đông thành viên, làm thế nào để xử lý các vấn đề conflict code, release ra sao, thêm feature mới như thế nào, hotfix ra làm sao một cách trơn tru và hiệu quả, giảm thiểu tối đa các bước thủ công, tiến dần đến một git workflow tự động hoàn toàn (devops).

Làm thế nào để squash commit tại local?

· 5 phút để đọc
ManhPT
Just another developer!

Vấn đề là...

Trong quá trình code chắc hẳn bạn thường xuyên tạo ra những dumb commit để tránh mất code, hoặc nhiều commit trùng tên nhau. Bạn có bao giờ nghĩ đến việc gộp các commit (squash commit) đó lại thành một commit có ý nghĩa hơn chưa?

Squash commit (gộp commit) là một việc nên làm nhưng không phải ai cũng nghĩ đến. Thậm chí có nghĩ đến thì đa số cũng không muốn làm bởi sợ rằng có thể gây ra mất code. Xin được khẳng định luôn là code một khi đã được commit thì không mất đi đâu được, vô tư đi.

[Gitlab Flow] issue và merge request và branch

· 3 phút để đọc
ManhPT
Just another developer!

Giới thiệu Gitlab và Gitlab Flow

Gitlab là một công cụ rất hay và có self-hosted (on-premise) plan cho phép bất cứ ai, công ty hay tổ chức nào cũng có thể cài đặt một Git Platform của riêng mình.

  • Một điểm cộng của Gitlab đó là tính năng Gitlab Board, giúp bạn tổ chức và sắp xếp các issue thành các board giống như Trello, khá tiện lợi cho việc quản lý theo quy trình (VD: Agile).
  • Gitlab còn cho phép bạn tạo các Merge Request (Pull Request, theo cách nói của Github) dựa trên các issue đã có, đồng thời tạo luôn cả source branch giúp bạn.
  • Bên cạnh đó, Gitlab cung cấp Gitlab CI cho phép bạn apply CI/CD vào bất cứ project nào. Với tôi thì đây là một tính năng không thể thiếu khi lựa chọn một công cụ devops.