Teten Nugraha
BackendHero

Follow

BackendHero

Follow
1. Tips membuat code Java Efisien - Constant dan Variable

1. Tips membuat code Java Efisien - Constant dan Variable

Teten Nugraha's photo
Teten Nugraha
·Sep 27, 2021·

2 min read

Mengutip dari quoate nya Bernard Shaw :

There are only two kinds of code: efficient code and inefficient code, and there are only two kinds of programmers in the world: programmers who write efficient code and programmers who write inefficient code

Mengapa kita harus membuat code yang efisien ?

Untuk kalian yang sudah berada dalam level middle sampe advance, alangkah bagus nya jika sudah membuat code yang efisien, mengapa ? Karena dengan membuat code yang efisien kita bisa membuat efisiensi dari sisi memory, gampang dibaca dan dimaintain oleh programmer dan lain-lain.

Artikel ini akan membahas beberapa contoh membuat good code and bad code dari sisi *Constant *dan Variable.

Jika anda mengisi sebuah object value, misalkan Long, String. Kalian bisa langsung mengisi dengan nilai tanpa harus membuat *object reference *terlebih dahulu.

Bad Code :

Long i = new Long(1L);
String s = new String("abc");

Good code: :

Long i = 1L;
String s = "abc";

Tentukan nilai Variable Member yang tidak berubah sebagai Static Constant

Bad Code:

public class Connection {
    private final long timeout = 5L;
    ...
}

Good code: :

public class Connection {
    private static final long timeout = 5L;
    ...
}

Jangan Tetapkan Nilai Awal ke Variabel yang Nilai Awal Dapat Ditimpa

Bad Code:

List<UserDO> userList = new ArrayList<>();
if (isAll) {
    userList = userDAO.queryAll();
} else {
    userList = userDAO.queryActive();
}

Good code: :

List<UserDO> userList;
if (isAll) {
    userList = userDAO.queryAll();
} else {
    userList = userDAO.queryActive();
}

Jangan membuat object diluar Looping

Versi Java Development Kit (JDK) sebelumnya tidak memberikan dukungan yang baik untuk mendefinisikan variabel di luar loop. Namun, versi JDK yang lebih baru telah ditingkatkan dalam hal ini. Analisis bytecode yang dikompilasi menunjukkan bahwa kode dengan variabel yang ditentukan intra-loop dan kode dengan variabel yang ditentukan ekstra-loop memiliki efisiensi runtime yang sama. Menurut prinsip meminimalkan ruang lingkup variabel lokal, variabel yang ditentukan dalam loop dapat menghindari daur ulang yang tertunda karena siklus hidup objek besar yang berkepanjangan.

Bad Code:

UserVO userVO;
List<UserDO> userDOList = ...;
List<UserVO> userVOList = new ArrayList<>(userDOList.size());
for (UserDO userDO : userDOList) {
    userVO = new UserVO();
    userVO.setId(userDO.getId());
    ...
    userVOList.add(userVO);
}

Good code: :

List<UserDO> userDOList = ...;
List<UserVO> userVOList = new ArrayList<>(userDOList.size());
for (UserDO userDO : userDOList) {
    UserVO userVO = new UserVO();
    userVO.setId(userDO.getId());
    ...
    userVOList.add(userVO);
}

If you enjoyed reading this, tapping the “︎❤” would help promote this post to more folks. Sharing it with other people who could benefit from it would be even better!

Feel free to contact me

Did you find this article valuable?

Support Teten Nugraha by becoming a sponsor. Any amount is appreciated!

Learn more about Hashnode Sponsors
 
Share this