Please enable JavaScript.
Coggle requires JavaScript to display documents.
IT Career - Coggle Diagram
IT Career
Git command
git rebase
-
Command :
git checkout feature-branch (change to the branch you want to integrate with => feature-branch )
git rebase main (choose branch to integrate changes)
afterthat, you will choose the differences between 2 branches that you choose to resolve each conflict in your branches
git rebase --continue (continue to resolve other conflict)
git rebase <branch_name1> <branch_name2> (Rebase <branch_name2> into <branch_name1>)
git rebase <branch_name>(Rebase <branch_name> into current branch)
git remote
Command :
git remote add <remote_name> <url>
git remote -v (Checking name of current remote)
git remote rename <old_name> <new_name>(Rename remote)
git remote set-url origin https://github.com/user/repo2.git (Change the 'origin' remote's URL)
git remote rm <remote_name> (Delete)
-
git add
-
Command:
git add . (Only adding modified files and new files)
git add --all (Adding all (deleted, modified and new)
git branch
-
Command :
git branch (List all branch of local)
git branch --all (List all branch of local and remote)
git branch <new_branch> (Create new branch and does not switch to new branch)
git checkout -b <new_branch> (Create new branch and switch to new branch)
git branch -m new_branch_name (Rename current branch to new_branch_name)
git branch -D <branch_name1> <branch_name2> ... (Delete branch on local)
git push origin :<branch_name1> :<branch_name2> ...
git push origin --delete <branch_name1> <branch_name2> (Delete branch on remote)
git clone and git pull
git clone dùng để tạo một bản copy đầy đủ của repository từ xa về máy tính của bạn. git pull dùng để cập nhật những thay đổi mới nhất từ remote repository và tích hợp chúng vào nhánh hiện tại của bạn.git fetch dùng để tải về thông tin mới nhất từ remote repository mà không tự động hợp nhất.
-
git stash
-
Command :
git stash (Stashed all changed)
git stash pop (Rồi sau khi làm việc ở nhánh vừa sửa xong, quay lại thì ta chỉ cần)
git stash list (Muốn xem list stash)
-
-
Middleware
-
Định nghĩa
-
ví dụ : giống như trước khi vào thanh toán thì phải có một hàm để check xem là người dùng đã login hay chưa nếu login rồi thì mới chuyển sang giai đoạn kế tiếp thì đây có thể gọi là một ứng dụng của middleware
-
OOP
Khái niệm
-
Ví dụ : nếu muốn giải quyết bài toán quản lý nhân viên thì mình phải mô phỏng lại những đặc tính hành vi của nhân viên để quy chung lại thành một class r sử dụng những đặc tính của OOP để giải quyết vấn đề mình gặp phải
4 đặc tính của OOP
Inheritance
Inheritance is the process by which a new class (subclass or derived class) can inherit attributes and methods from an existing class (superclass or base class). Inheritance establishes an "is-a" relationship between classes, allowing the derived class to extend or specialize the behavior of the base class.
Encapsulation
Thể hiện thông qua scope của các attributes và methods trong class ==> Private, Public , Protected
-
-
Constructor: block of code which is used to initialize an object. It must have the same name as that of the class.
SOLID Principles
-
-
-
-
-
the SOLID principles provide a set of guidelines that help developers create maintainable, extensible, and robust software systems by promoting good design practices and reducing the impact of changes on existing code.
SQL
-
-
JOIN & RELATIONSHIP
RELATIONSHIP
One-to-One (1:1)
each row in one table is related to one and only one row in another table. This relationship is less common and often used when specific attributes need to be separated into a different table to avoid null values.
-
One-to-Many (1:N)
a row in one table can be related to one or more rows in another table. This is the most common type of relationship and represents hierarchies and associations.
Many-to-Many (N:M)
multiple rows in one table can be related to multiple rows in another table. This type of relationship requires a junction (link) table to properly represent the associations
JOIN
INNER JOIN
-
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
INNER JOIN table2
ON table1.matching_column = table2.matching_column;
LELF JOIN
trả về tất cả các hàng từ bảng bên trái và các hàng khớp từ bảng bên phải. Nếu không có khớp trong bảng bên phải, các giá trị NULL sẽ được trả về.
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
RIGHT JOIN
tương tự LEFT JOIN, nhưng trả về tất cả các hàng từ bảng bên phải và các hàng khớp từ bảng bên trái. Nếu không có khớp trong bảng bên trái, các giá trị NULL sẽ được trả về.
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
FULL JOIN
trả về tất cả các hàng từ cả hai bảng, bao gồm cả các hàng không khớp. Nếu không có khớp trong một bảng, các giá trị NULL sẽ được trả về.
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
INNER JOIN table2
ON table1.matching_column = table2.matching_column;
UNION
cho phép bạn kết hợp các kết quả của các câu truy vấn (queries) khác nhau thành một kết quả duy nhất, loại bỏ các bản ghi trùng lặp. Điều này hữu ích khi bạn muốn kết hợp các tập kết quả từ các bảng hoặc câu truy vấn khác nhau để thu được một tập kết quả duy nhất
-
Type
-
UNION ALL: Bao gồm tất cả các bản ghi từ tất cả các tập kết quả, bao gồm cả bản ghi trùng lặp.
General Backend
Microservice
Microservices is an architectural style for designing and developing software systems as a collection of small, independent, and loosely coupled services. Each service in a microservices architecture is responsible for a specific, well-defined piece of functionality within an application.** These services communicate with each other through APIs or protocols like HTTP.
Keyword
-
-
-
-
Deployment and Continuous Delivery: designed for automated deployment and continuous delivery practices ==> rapid development and frequent releases.
-
-
-
-
-
DESIGN PATTERNS
SingleTon
Quản lý tài nguyên: Singleton có thể được sử dụng để quản lý tài nguyên như kết nối cơ sở dữ liệu, đối tượng cache, hoặc tài nguyên hệ thống. Việc duy nhất hóa thể hiện giúp tránh việc lãng phí tài nguyên bằng cách tạo nhiều thể hiện không cần thiết.
Đảm bảo duy nhất và toàn cục: Singleton đảm bảo rằng chỉ có một thể hiện duy nhất của lớp tồn tại trong suốt vòng đời của ứng dụng. Điều này hữu ích khi bạn muốn chia sẻ thông tin hoặc tài nguyên cụ thể từ nhiều nơi trong chương trình.
Builder
It allows you to create objects with various configurations without the need for a large number of constructors or constructor parameters.
The product class should have a private constructor to prevent direct instantiation and should be created only through the builder.
The purpose of the Builder pattern is to create complex objects with many optional properties in a flexible and readable way.
It improves code readability by allowing the client code to specify the desired configuration of the object using a fluent and expressive API.
Backend Component
Programming Languages
Java (Spring, Springboot)
-
-
-
-
APIs
Proficiency in designing, building and consuming APIs (Application Programming interfaces)
-
Server Management
-
Web servers(Apache,Ngnix)
Operating Systems (Linux, Windows)
Deployment tools (Docker, Kubernetes)
Version Control
-
Collaborating with team members, and tracking changes across different software iterations
Security
-
-
Encryption and protection against common vulnerabilities (SQL injection, XSS)
JWT
Stands for "JSON Web Token." It is a compact and self-contained way to represent information between two parties in a web application environment. JWTs are often used for authentication and authorization purposes, and they can also be used to securely transmit information between different parts of an application.
-
Example
Header:
{
"alg": "HS256",
"typ": "JWT"
}
Payload:
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}
Signature:
HMACSHA256(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret)
eyJhbGciOiAiSFMyNTYiLCAidHlwIjogIkpXVCJ9(Header).eyJzdWIiOiAiMTIzNDU2Nzg5MCIsICJuYW1lIjogIkFsaWNlIiwgImlhdCI6IDE2MzI2NjE0MTJ9(Payload).p2o9OMRwDbCrnHUbC1wGsz2MuDNYZ4hVgLQUDrW8ki0(Signature)
Purpose
-
-
-
Stateless: JWTs are typically stateless, meaning the server doesn't need to store session information for each user. All the necessary information is contained within the token.
-
-
Performance
-
Techniques like query optimization, indexing and load balancing
Scalability
-
Handle increased user load by leveraging techniques such as load balancing, horizontal scaling, and caching
Web Protocols
Knowledge of HTTP/HTTPS, REST, Websocket
-
The rest of the career
Your have to do every work with 100% or even 120% with that job owning to you don't know what will that small work bring you to somewhere
the talent or your work skills only account of 50% your career , the rest is the self-discipline, the kĩ tinh trong từng cái nhỏ cũng như là có tâm trong nghề
-
universal knowledge
Soft delete
Thường sử dụng với những dữ liệu nhạy cảm , cần truy vết , cần xem xét lại
-
Khi xóa một cái gì đó thì sẽ không phải xóa thật mà là chuyển đổi trạng thái của nó để tránh rắc rối về sau
Locking
Để kiểm soát lượt truy cập trên một bảng nào đó hoặc một đối tượng nào đó chúng ta nên sửa dụng locking
-
-
General knowledge
For Hackathon
-
Java
Definition
-
Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless (bất kể ) of the underlying computer architecture.
Java kit
-
JRE (Java Runtime Environment) : an installation package that provides an environment to only run(not develop) the java program(or application)
JVM (Java Virtual Machine) :inbuilt in both,responsible for executing the java program line by line
General
-
synchronization: Java allows multiple threads to execute. They may be accessing the same variable or object**. Synchronization helps to execute threads one after another.
It is important as it helps to execute all concurrent threads while being in sync. It prevents memory consistency errors due to access to shared memory**. An example of synchronization code is-
-
Composition : Phải có class attibute nhất định k có là k đươc ==> quyển sách mà k có trang sách thì là cái gì??
-
-
Testing
static testing
a technique of reviewing documents and automatically parsing (static analysis) of code or project documents without running the program.
Học cái gì không quan trọng quan trọng là tạo ra giá trị và phục vụ cho mục tiêu của mình là được đừng nên quan tâm quá về nên học cái này hay cái kia
-