Flyway – Databases Migration

Posted by:

Ngữ Cảnh:

Một ứng dụng, một database nhưng có nhiều schemas, mỗi 1 khách hàng là một schema, cấu trúc tables cho mỗi schema là giống nhau. Những tables trong schema public là dùng chung như là City , Country và cấu hình của ứng dụng, vì do dùng chung nên users chỉ được đọc, không có quyền ghi, tận dụng schema public có sẵn và phân quyền thôi. Nếu không thích tên public thì vẫn có tên tạo tên khác.

Khi cần thêm cột hay ...

Đọc tiếp
0

Lombok

Posted by:

Project mình đa phần là dùng Maven, Eclipse

<dependencies>
    ...
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
        <scope>provided</scope>
    </dependency>
    ...
</dependencies>

Kiểm tra version mới nhất thì vào đây

Cài đặt lombok cho Eclipse

Để khi dùng thư viện ...

Đọc tiếp
0

Multi-tenancy là gì

Posted by:

Multi-tenancy là gì ?

Multi-Tenancy is a single instance of software that serves multiple customers privately.

Hiểu đơn giản Multi-Tenancy là một hệ thống web application có nhiều khách hàng cùng sử dụng nhưng dữ liệu giữa các khách hàng hoàn tập độc lập, khách hàng này không thể truy cập vào dữ liệu của khách hàng kia.

Một vài ví dụ như là: Hệ thống chấm công, trả lương hay khai báo thuế cho tổng công ty có nhiều ...

Đọc tiếp
0

Instagram đã sinh ra ID trong database của họ như thế nào

Posted by:

Đối với những hệ thống nhỏ chỉ cần 1 Database thì chắc chẳng mấy ai quan tâm đến việc tạo ra ID cho bản ghi. Vì dùng auto increment trong MySQL là có thể làm được rồi, chẳng cần phải làm gì thêm.

Thế nhưng với dữ liệu càng ngày càng to ra thì hệ thống chỉ có 1 database duy nhất có thể sẽ không thể đáp ứng được. Bởi vì traffic đang tập trung hết vào database đó.

Để giải ...

Đọc tiếp
0

Docker

Posted by:

I. Docker là gì ?

Docker – đây là một công cụ tạo môi trường được “đóng gói” (còn gọi là Container) trên máy tính mà không làm tác động tới môi trường hiện tại của máy, môi trường trong Docker sẽ chạy độc lập.

Một số developer thường tạo sẵn các môi trường này, và upload lên mạng để mọi người lấy về dùng, và mấy cái này gọi là các Images.

Docker là công cụ tạo môi trường đóng gói, ...

Đọc tiếp
0

Fibonacci

Posted by:

Fibonacci là gì ? Thôi google đi cho nhanh

f(n) = f(n-1) + f(n-2)

  • n = 0, f = 0
  • n = 1, f = 1
  • n = 2, f = 1 (f(0) + f(1) = 0 + 1)

Dãy số fibonacci: 0, 1, 1, 2, 3, 5, 8, 13. Con số 13 = 8 + 5 (tổng 2 số trước)

0: 0

1: 1

2: 1

3: 2

4: 3

5: 5

6: 8

7: 13

Cách viết đệ quy

Cách ...

Đọc tiếp
0

Spring boot | application.properties vs application.yml

Posted by:

1/ .properties

Cấu trúc của properties là không cấp bặc và dùng `=`

Spring profiles: phải tách ra mổi profile là 1 file properties: local.properties, staging.properties, prod.properties

2/ .yml

Cấu trúc của yml thì có cấp bậc và dùng `:`

Spring profiles: cấu hình nhiều profiles trong 1 file yml

Khi dùng yml file thì chú ý, sẽ support @PropertySource để đọc file yml (Mình thì hem thích dùng chung 1 file sẽ ...

Đọc tiếp
0

Microservices Authentication and Authorization Solutions

Posted by:

  • Authentication: who you are.
  • Authorization: what you can do.

1. Distributed Session Management

1.1. Sticky session:

Bảo đảm rằng tất cả requests của users sẽ trên cùng server giống như request ban đầu, sẽ phụ thuộc là load balancer. Session sẽ bị mất nếu requests không đi đúng servers ban đầu có chứ session vì bất kỳ lý do nào đó như ...

Đọc tiếp
0

Singapore và các loại passport làm việc

Posted by:

1. Nhóm chuyên gia: phải có bằng đại học

1.1. Employment Pass:

Lương tối thiểu $3,600 đô la 1 tháng. Dạng này đi rất nhiều. http://www.mom.gov.sg/passes-and-permits/employment-pass/key-facts Có thể mang gia đình và con cái theo (dưới 21t) và được học ở các trường của Singapore. Có thể xin thường trú tại Sing phải sau 2 năm làm việc. Thường dành cho những người có 2, 3 năm kinh nghiệm và phải tốt ...

Đọc tiếp
0

Những nguyên tắc cơ bản nhất trong Java

Posted by:

1/ Khi constructor() có quá nhiều parameters thì nên dùng Builder. (vì quá đơn giản nên ko cần ví dụ link tham khảo)

2/ Nên dùng try-with-resources hơn là try-finally

[code lang=”java” highlight=”1,11″]
Không nên:
static String firstLineOfFile(String path) throws IOException {
BufferedReader br = new BufferedReader(new FileReader(path));
try {
return br.readLine();
} finally {
br.close();
}
}

Nên:
Đọc tiếp

0
Page 1 of 5 12345