/codegym.vn/ - 128
Gây ra việc khó sử dụng khi truyền tham số khi gọi. Để khắc phục lỗi này, chúng ta
cần tìm một tên có ý nghĩa để đặt cho hàm này.
Nên:
1.
function
sum
(
firstNumber
,
secondNumber
)
{
2.
// Đoạn mã tính tổng hai tham số
3.
}
Quy tắc #2: Một hàm chỉ thực hiện một công việc duy nhất
Tránh trường hợp bên trong hàm thực hiện nhiều hơn 2 hành động, như vậy mục đích
của hàm được tạo ra sẽ bị sai lệch về ý nghĩa. Điều này sẽ dẫn đến việc khó kiểm
soát và khó bảo trì về sau.
Ví dụ:
Hàm getDaysOfMonth() sau đây được khai báo để trả về số ngày trong tháng.
1.
function
getDaysOfMonth
(
month
,
year
)
{
2.
switch
(
month
)
{
3.
case
1
:
4.
case
3
:
5.
case
5
:
6.
case
7
:
7.
case
8
:
8.
case
10
:
9.
case
12
:
10.
return
31
;
11.
case
4
:
12.
case
6
:
13.
case
9
:
14.
case
11
:
15.
return
30
;
16.
case
2
:
17.
let
isLeapYear
=
false
;
18.
if
(
year
%
4
===
0
)
{
19.
if
(
year
%
100
===
0
)
{
20.
if
(
year
%
400
===
0
)
{
21. isLeapYear
=
true
;
22.
}
23.
}
else
{
24. isLeapYear
=
true
;
25.
}
26.
}
27.
if
(
isLeapYear
)
{
28.
return
29
;
29.
}
30.
return
28
;
31.
}
32.
}
Thoạt nhìn thì chúng ta thấy hàm này được triển khai khá tốt, và trả về kết quả đúng
như mong đợi. Tuy nhiên, xét kỹ hơn thì chúng ta lại thấy hàm này đang làm hai nhiệm
vụ: tính số ngày trong tháng và kiểm tra năm nhuận. Điều này là không tốt, do đó
chúng ta cần tách hàm này thành các hàm nhỏ hơn.