VẤN ĐỀ VỚI REFACTORING

Một phần của tài liệu TỐI ƯU HÓA XỬ LÝ CHƯƠNG TRÌNH potx (Trang 40 - 41)

II. NGUYÊN LÝ TRONG REFACTORING

4. VẤN ĐỀ VỚI REFACTORING

Khi càng nhiều người nghiên cứu về refactoring, chúng ta càng học nhiều. Tác giả tin chắc rằng chúng ta thử refactoring cho vấn đề thực sự mà nó có thể cung cấp, chúng ta có thể kiểm soát được tiến trình. Tìm thấy những vấn đề mà refactoring được bắt đầu. Khi chúng ta học nhiều về refactoring. Chúng ta sẽ giải quyết với nhiều giải pháp và học được những vấn đề khó có thể giải quyết.

4.1 Cơ sở dữ liệu (Database)

Một vấn đề trong refactoring là database. Trong hầu hết ứng dụng doanh nghiệp gắn kết chặt chẽ với khung cơ sở dữ liệu mà chúng được hỗ trợ. Đó là một nguyên nhân mà cơ sở dữ liệu khó thay đổi. Nguyên nhân khác đó là chuyển dịch dữ liệu. Thậm chí bạn cẩn thận bao bộc hệ thống của bạn để tối thiểu những phụ thuộc giữa khung cơ sở dữ liệu và mô hình đối tượng, sự thay đổi khung dữ liệu buộc chúng ta phải dịch chuyển dữ liệu mà đó có thể là một công việc kéo dài và rủi ro.

Với cơ sở dữ liệu không hướng đối tượng, một cách để giải quyết vấn đề này là thay thế tầng tách biệt phần mềm giữa mô hình đối tượng và mô hình cơ sở dữ liệu. Đó là cách cô lập thay đổi đối với hai mô hình khác nhau. Khi cập nhật mô hình một, không cần cập nhật mô hình hai. Chỉ cần cập nhật ở tầng trung gian. Một tầng như vậy thêm độ phức tạp nhưng cho ta sự uyển chuyển. Khi không có refactoring điều quan trọng trong tình huống có nhiều cơ sở dữ liệu hay cơ sở dữ liệu phức tạp mà bạn không kiểm soát.

Bạn không cần phải bắt đầu với tầng tách biệt. Bạn có thể tạo một tầng khi bạn chú ý đến một phần mô hình đối tượng trở nên vi phạm. Đây là cách bạn tác dụng đòn bẩy cho những thay đổi.

Một số cơ sở dữ liệu hướng đối tượng cung cấp cơ chế chuyển đổi tự động từ một version đối tượng sang version khác. Điều này giảm nỗ lực nhưng vẫn mất thời gian khi thực hiện chuyển đổi. Khi việc chuyển đổi không tự động, bạn phải tự chuyển đổi và mất nhiều công sức. Trong trường hợp này bạn phải cẩn thận những thay đổi đối với cấu trúc dữ liệu của lớp. Bạn có thể cảm thấy nhẹ

nhỏm với những thói quen, những cũng phải cẩn thận về việc dịch chuyển các trường.

4.2 Thay đổi giao diện

Điều quan trọng đối với đối tượng cho phép thay đổi thực thi mô đun phần mềm tách biệt với thay đổi giao diện. Bạn có thể thay đổi bên trong đối tượng mà không ai lo lắng nhưng giao diện quan trọng - thay đổi bất kỳ có thể xảy ra.

Nhiều refactoring có thể thay đổi giao diện. Đơn giản như Rename Method thì tất cả thay đổi giao diện.

Một phần của tài liệu TỐI ƯU HÓA XỬ LÝ CHƯƠNG TRÌNH potx (Trang 40 - 41)