II. NGUYÊN LÝ TRONG REFACTORING
5. REFACTORING VÀ HIỆU NĂNG XỬ LÝ
Liên quan với refactoring thì hiệu quả phải xét đến hiệu năng chương trình. Để làm phần mềm dễ để hiểu, bạn phải thường thay đổi có thể gây cho chương trình chạy chậm hơn. Điều này là vấn đề quan trọng. Bí quyết đối với phần mềm phát triển nhanh khó đối với ngữ cảnh thực tế là để viết phần mềm có tính cộng hưởng thì đặt vào tốc độ hữu hiệu.
Tác giả có ba phương pháp chung để viết phần mềm nhanh. Điều quan trọng nhất là quỹ thời gian, được sử dụng trong hệ thống thời gian thực. Trong ngữ cảnh như vậy, khi bạn phân rã thiết kế cho mỗi thành phần với một ngân sách tài nguyên - thời gian và dự trữ. Thành phần đó không được đạt đến ngân sách, mặc dù cơ chế cho trao đổi thời gian đặt ra được phép. Mỗi cơ chế tập trung mở rộng cố định trên thời gian hiệu năng xử lý cố định.
Phương pháp hai là phướng pháp mở rộng. Với phương pháp này với mỗi người lập trình, tất cả thời gian, bất kỳ gì nó giữ cho hiệu năng xử lý mức cao. Những thay đổi cải tiến hiệu năng luôn làm cho chương trình khó làm việc hơn. Điều này chậm lại phát triển. Đó là chi phi phải trả nếu kết quả phần mềm nhanh hơn. Cải tiến hiệu năng trải qua chương trình, và mỗi cải tiến làm hẹp khía cạnh ứng xử chương trình. Điều thú vị về hiệu năng là nếu phân tích hầu hết chương trình, tìm thấy rằng sự lãng phí thời gian thành phân mảnh đoạn code. Nếu bạn tối ưu tất cả code tương đương, bạn đi đến 90% tối ưu đã chiếm hết thời gian bởi vì tối ưu chương trình không nhiều. Thời gian chi cho thực hiện chương trình nhanh, thời gian mất nhiều bởi vì thiếu sự rõ ràng, đó là tất cả thời gian lãng phí.
Phương pháp thứ ba để cải tiến hiệu năng đặt trước 90% thống kê. Trong phương pháp này bạn xây dựng chương trình nhiều yếu tố tốt mà không chú ý đến hiệu năng cho đến khi bạn bắt đầu giai đoạn tối ưu hiệu năng, thường khá trễ trong qui trình phát triển. Trong suốt giai đoạn tối ưu hiệu năng, bạn theo một qui trình cụ thể để hòa hợp chương trình.
Tác giả nhận thấy rằng refactoring giúp viết chương trình nhanh. Nó làm chậm phát triển phần mềm trong khoảng thời gian ngắn hạn khi refactoring nhưng nó làm cho phần mềm dễ hòa hợp trong giai đoạn tối ưu.