Nội dung
Mục tiêu
Refactoring – đổi tên biến và tách hằng- Luyện tập kỹ thuật đổi tên biến.
Điều kiện- Refactoring- đổi tên biến và tách hằng
Biết cách sử dụng kỹ thuật tái cấu trúc được sử dụng là: Đổi tên biến và Tách hằng.
Mô tả- Refactoring- đổi tên biến và tách hằng
Trong phần này, chúng ta sẽ thực hiện thao tác tái cấu trúc mã nguồn của một ứng dụng có sẵn:
https://github.com/codegym-vn/php-cleancode-refactoring-renaming
Kỹ thuật tái cấu trúc được sử dụng: Đổi tên biến và Tách hằng.
Hướng dẫn
Bước 1: Chạy dự án có sẵn
Clone dự án từ địa chỉ: https://github.com/codegym-vn/php-cleancode-refactoring-renaming
Mở mã nguồn dự án trong file Calculator và CalculatorTest để tìm hiểu mã nguồn.
Bước 2: Đổi tên biến a, b và o trong lớp Calculator
Trong mã nguồn hiện tại, các tên biến a, b và o không diễn đạt được ý nghĩa của nó. Cần thực hiện việc đổi tên biến này.
- Biến a: firstOperand – toán hạng đầu tiên
- Biến b: secondOperand – toán hạng thứ hai
- Biến o: operator – toán tử
Mã nguồn sau khi đổi tên:
class Calculator { public function calculate($firstOperand, $secondOperand, $operator) { switch ($operator) { case '+': return $firstOperand + $secondOperand; case '-': return $firstOperand - $secondOperand; case '*': return $firstOperand * $secondOperand; case '/': if ($secondOperand != 0) { return $firstOperand / $secondOperand; } else { echo("Can not divide by 0"); break; } default: echo ("Unsupported operation"); } } }
Bước 3: Đổi tên biến a, b và o trong lớp CalculatorTest
Mã kiểm thử cũng cần đảm bảo tiêu chí “clean”, do đó chúng ta cần thực hiện thao tác đổi tên các biến a, b và o tương tự như trong lớp Calculator
Bước 4: Tách hằng
Trong mã nguồn hiện tại, các giá trị ‘+’, ‘-‘, ‘*’ và ‘/’ được coi là các giá trị “thần kỳ”. Chúng ta cần tách các giá trị này thành các hằng số để mã nguồn clean hơn.
- Giá trị ‘+’: ADDITION – toán tử cộng
- Giá trị ‘-‘: SUBTRACTION – toán tử trừ
- Giá trị ‘*’: MULTIPLICATION – toán tử nhân
- Giá trị ‘/’: DIVISION – toán tử chia
Mã nguồn sau khi tách hằng:
const ADDITION = '+'; const SUBTRACTION = '-'; const MULTIPLICATION = '*'; const DIVISION = '/'; class Calculator { public function calculate($firstOperand, $secondOperand, $operator) { switch ($operator) { case ADDITION: return $firstOperand + $secondOperand; case SUBTRACTION: return $firstOperand - $secondOperand; case MULTIPLICATION: return $firstOperand * $secondOperand; case DIVISION: if ($secondOperand != 0) { return $firstOperand / $secondOperand; } else { echo("Can not divide by 0"); break; } default: echo ("Unsupported operation"); } } }
Lưu ý: Sau mỗi bước refactor thì cần chạy lại các test case để đảm bảo mã nguồn vẫn hoạt động tốt.
Với mã đã clean bên trên bạn hoàn toàn có thể suy nghĩ đến việc cần biến các thông báo lỗi thành hằng, thử suy nghĩ xem điều này sẽ có lợi gì nếu bạn đang xây dựng một ứng dụng lớn, triển khai đa quốc gia?
Trên đây CodeGym đã cùng với bạn luyện tập kỹ thuật đổi tên biến. Hãy chụp ảnh màn hình và nộp bài thực hành của bạn trên CodeGymX để cùng nhau luyện tập nhé!
0 Lời bình