Skip to content

Instantly share code, notes, and snippets.

View nguyenthanhcong101096's full-sized avatar
🤫

Nguyen Thanh Cong nguyenthanhcong101096

🤫
  • Coinhako
  • Thao Dien, TP Thu Duc, HCM
View GitHub Profile
@nguyenthanhcong101096
nguyenthanhcong101096 / awesome-interview-questions.md
Last active December 30, 2023 17:17
awesome-interview-questions
@nguyenthanhcong101096
nguyenthanhcong101096 / vpc_ec2_rds.md
Last active November 23, 2023 01:41
AWS EC2 VPC RDS

[AWS] Building Your First Amazon Virtual Private Cloud+(EC2+RDS+VPC)

Mục đích

  • Task 1: Tạo và hiểu được mục đích của 1 VPC là gì?
  • Task 2: Tạo và hiểu được mục đích của 1 public subnet là gì?
  • Task 3: Tạo và hiểu được mục đích của 1 Internet Geteway là gì?
  • Task 4: Tạo và hiểu được mục đích của 1 Route Table là gì?

Hello Docker CI / CD - Github Actions

1. Intro

Manually running builds, executing tests and deploying can become a nightmare and an error-prone process:

In this post we will use Github Actions to automatically trigger the following processes on every merge to master or pull request:

  • Fire up a clean linux + nodejs instance.
  • Download the repository source code.
  • Install the project dependencies.

Deploy app with Capistrano

Capistrano | Github

Step 1: Add gem && bundle install

  • Gemfile
group :development

Github Actions là gì?

  • Github Actions cho phép chúng ta tạo workflows vòng đời phát triển phần mềm cho dự án trực tiếp trên Github repository của chúng ta

  • Github Actions giúp chúng ta tự động hóa quy trình phát triển phần mềm tại nơi chúng ta lưu trữ code và kết hợp với pull request và issues. Chúng ta có thể viết các tác vụ riêng lẻ, được gọi là các actions và kết hợp các actions đó lại với nhau để tạo ra một workflow theo ý của chúng ta. Workflow là các tiến trình tự động mà bạn có thể thiết lập trong repository của mình để build, test, publish package, release, hoặc deploy dự nào trên Github

  • Với Github Actions chúng ta có thể tích hợp continuous integration (CI) và continuous deployment (CD) trực tiếp trên repository của mình

@nguyenthanhcong101096
nguyenthanhcong101096 / react-native.md
Last active December 24, 2020 00:28
React-Native Basic

React Native Logo https://github.com/huongnguyenvan/react-native

CODE 101 - React Native

Chào mừng các bạn đến với hướng dẫn học React-Native cho người mới bắt. Sau đây là một số chia sẻ, hướng dẫn của mình cho người mới bắt đầu tìm hiểu về React-Native. Qua đó nhằm giúp các bạn có cách nhìn tổng quát hơn và dễ dàng tìm hiểu vấn đề khi mới chập chững bước chân vào lập trình với React-Native.

P/s: Bài viết chủ yếu dựa trên tài liệu chính thống của React-Native phiên bản 0.56 tại https://facebook.github.io/react-native/docs/getting-started kết hợp với sự hiểu biết cá nhân của mình vì vậy nếu có sai sót, anh em cứ góp ý để mình sửa đổi nhé.

@nguyenthanhcong101096
nguyenthanhcong101096 / Mina deploy.md
Last active May 5, 2020 16:20
Deploy Rails application to AWS server with mina deployment

Deploy app with Mina

Mina | Github

Step 1: New deploy user with sudo privileges

  • ssh to server
sudo useradd -d /home/app -m app
sudo passwd app
@nguyenthanhcong101096
nguyenthanhcong101096 / rails-directory-structure-guide.md
Last active May 5, 2020 16:20
rails-directory-structure-guide

Rails Directory Structure Guide

There is a default directory structure that Ruby on Rails comes with. The Rails guides go in depth in explaining the folder structure, but does not talk about the extra folders that commonly get added in Rails Apps.

The goal of this guide is to be a central place to learn about ALL the folders that are used in Rails apps, not just the ones that come by default (Marked with asterisk).

We will also go over explaining RSpec folder structure and any additional folders.

@nguyenthanhcong101096
nguyenthanhcong101096 / laravel-deploy.md
Last active May 5, 2020 16:19
Push Project Laravel to EC2

Deploy Laravel to EC2

Install PHP 7.1 with Nginx on Ubuntu 16.04

Step 1: Enable PPA

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

CI là gì?

  • CI là viết tắt của Continuous Integration (Tích hợp liên tục)
  • CI là phương pháp phát triển phần mềm đòi hỏi các thành viên trong nhóm phải tải code của họ lên kho lưu trữ thường xuyên, lý tưởng là nhiều lần trong ngày.
  • Mỗi lần họ làm, mã được xác minh bởi một bản dựng tự động, bộ kiểm tra chạy các công cụ phân tích mã tĩnh chuyên dụng kiểm tra các lỗ hổng bảo mật, lỗi và tất cả các loại không chính xác.
  • Điều này rất tốt cho cả nhóm giúp giảm bớt vấn đề và phát triển phần mềm nhanh hơn

Tại sao lại cần Continuous Integration?

Thông thường, các lập trình viên thường làm việc độc lập trong 1 thời gian dài và chỉ merge code vào nhánh master khi họ đã hoàn thành công việc. Chưa kể đến sau khi merge còn cần phải chờ review, có khi phải đợi đến vài ngày hay cả tuần. Điều này dẫn đến việc merge code gặp khó khăn, tiêu tốn nhiều thời gian, và đồng thời cũng tạo ra nhiều bugs, conflicts...