Bài 6: Tránh tạo object không cần thiết
## Bad practice thường gặp (tạo object dư thừa) ```java boolean isRomanNumeral(String s) { return s.matches("^(?=.)M*(C[MD]|D?C{0,3})(X[CL]|L?X{0,3})(I[XV]|V?I{0,3})$"); } ``` Vấn đề c?...
Đọc tiếpĐang tải...
Chia sẻ kinh nghiệm, tips & tricks về phát triển web
## Bad practice thường gặp (tạo object dư thừa) ```java boolean isRomanNumeral(String s) { return s.matches("^(?=.)M*(C[MD]|D?C{0,3})(X[CL]|L?X{0,3})(I[XV]|V?I{0,3})$"); } ``` Vấn đề c?...
Đọc tiếp
## Bad practice thường gặp (làm theo hướng cũ) ```java public class SpellChecker { private final Lexicon dictionary = new FileLexicon("/etc/dict.txt"); public boolean isValid(String word) { ...
Đọc tiếp
## Bad practice thường gặp (hướng cũ) ```java public class UtilityClass { // Chỉ có static method, nhưng không khai báo constructor public static int add(int a, int b) { return a + b; }...
Đọc tiếp
Trong bài viết trước, chúng ta đã tìm hiểu lý do vì sao Builder Pattern là một giải pháp hiệu quả khi một class có quá nhiều constructor parameters. Tuy nhiên, ví dụ ...
Đọc tiếp
> Có một cái cây inheritance mà mình từng nhìn vào và không biết nên khóc hay nên cười. Nó sâu 7 tầng. `VNPayFlashSaleDiscountPaymentService` extends `VNPayDiscountPaymentServ...
Đọc tiếp
# 🎬 Mở bài: Git ban đầu là công cụ quản lý source code… **… nhưng vào tay nhiều team, nó thành trò chơi sinh tồn.** Chuyện về những nhánh chồng chéo, conflict b...
Đọc tiếp
# 🎬 Từ một thằng dev cắm mặt CRUD… đến người biết “sai AI làm” ### Ngày xưa, đời Java Backend Developer của tôi khá đơn giản: > 1. ☀️ Sáng mở máy > 1. ...
Đọc tiếp
# Mở đầu Trước đây, khi vừa ra trường và gõ những dòng code enterprise đầu tiên, đã có một thời gian tôi nghĩ rằng bản thân đã thực sự hiểu tường tận...
Đọc tiếpNơi chúng tôi chia sẻ kiến thức, kinh nghiệm và những xu hướng mới nhất trong lĩnh vực phát triển web.