Senior & Junior Java Dev – điều gì làm nên sự khác biệt (1)

Đối với nghề lập trình viên, kinh nghiệm code là cực kì quan trọng. Nhìn vào một đoạn code, người làm lâu năm có thể nhìn ra đó là đoạn code của Senior Java hay Junior Java. Cũng chẳng phải ngẫu nhiên lại có sự chênh lệch mức lương giữa 2 rank này. =)))

Để cố gắng trở thành Senior, bản thân chúng ta phải luôn luôn học hỏitrau dồi kiến thức. May mắn thay, ngay từ những ngày đầu lọ mọ code từng dòng code, mình đã được sư phụ chỉ cho vài đường cơ bản, tiện đây muốn chia sẻ với các bạn.

1. Kiểm tra NULL (CHECK NULL).

Java NULL, vấn đề muôn thủa. Một Senior với kinh nghiệm code dồi dào sẽ biết cách phòng tránh, hạn chế các trường hợp dẫn tới NullPointerException.

Một trong những lỗi thường gặp nhất của những bạn mới đó là thiếu kiểm tra Object có phải là NULL hay không.

Thay vì sử dụng những Object này một cách trực tiếp để thực hiện xử lý (cộng trừ nhân chia, cắt chuỗi, nối chuỗi, getLength size…)

Hãy tạo ra những hàm common, trong những hàm này sẽ thực hiện việc kiểm tra giá trị NULL, và thực hiện sử lý tương ứng.

BAD CODE:

public String StringUtil.nullToEmpty(String str) { 
if (str == null) { 
return ""; 
} 
return str; 
}

GOOD CODE:

public String StringUtil.substring(String str, int start, int len) { 
str = nullToEmpty(str); 
// Luôn thực hiện kiểm tra độ dài trước khi substring. 
if (str.length() > len) { 
return str.substring(start, len); 
} 
return str.substring(start); 
}

Mặc dù là nỗi sợ hãi thường trực của các Java Dev, null cũng có đôi điều thú vị. Các bạn có thể đọc thêm ở bài viết này.

2. Sử dụng toán tử cộng trừ nhân chia.

Khi thực hiện cộng trừ nhân chia, trường hợp nếu sử dụng kiểu dữ liệu là Long, Double,… sẽ có trường hợp giá trị trả về bị sai

Decimal dec1 = 4; 
Decimal dec2 = 2; 
Decimal dec3 = dec1 / dec2;

-> Đúng ra, giá dec3 sẽ có giá trị là 2 
Tuy nhiên, trong một vài trường hợp dec3 sẽ có giá trị là 2.0000…1 hoặc 1.99999…9 
Do đó, nếu ta dùng giá trị dec3 để đi so sánh với 2, giá trị sẽ trả về là FALSE

Trường hợp này, nên sử dụng để tính toán. Kì công hơn, hãy tạo class NumberUtil để sử lý việc cộng trừ nhân chia, làm tròn, compare giá trị, format kiểu số…

3. Khai báo biến bên ngoài IF FOR WHILE.

String str; 
for (int i = 0; i < strList.size(); i++) { 
str = strList.get(i); 
… 
} 
// Biến str chỉ được sử dụng bên trong FOR
// Nhưng lại được khai báo bên ngoài.

Source vẫn sẽ chạy đúng, không sai.

Tuy nhiên, sẽ có một vài vấn đề sau:

  • Trường hợp xử lý phức tạp, sẽ khó để một người khác đọc và hiểu ý nghĩa của biến này là gì.
  • Nếu str không phải là String, Number, Date… mà là một kiểu Object có kích thước lớn, thì mặc dù đã ra khỏi IF, FOR, WHILE (biến không còn được sử dụng nữa), nhưng biến này vẫn sẽ giữ giá trị và gây tốn memory.

Xử lí như thế nào?.

  • Khai báo biến bên trong IF FOR WHILE
  • Sử dụng for each (for (String str : strList) {)

Tham khảo khóa học lập trình web 6 tháng, đảm bảo 100% công việc đầu ra!

Nguồn: https://topdev.vn/blog/senior-junior-java-dev-dieu-gi-lam-nen-su-khac-biet/


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Bài viết liên quan

Leave a Reply

Your email address will not be published.

TÀI LIỆU DEV WORLD
Cẩm nang phát triển bền vững với nghề lập trình!