Các vấn đề khi refactor

Từ VLOS
Bước tới: chuyển hướng, tìm kiếm

Cơ sở dữ liệu[sửa]

Nhiều ứng dụng gắn chặt với lược đồ dữ liệu hỗ trợ nó, đây là một lý do khiến cơ sở dữ liệu khó thay đổi. Một lý do khác là việc chuyển đổi dữ liệu có thể rất lâu và nguy hiểm.

Với các cơ sở dữ liệu phi đối tượng một cách giải quyết là đặt một tầng phần mềm giữa mô hình đối tượng và mô hình cơ sở dữ liệu. Bằng cách đó bạn có thể tách rời các thay đổi giữa hai mô hình. Bạn cũng không cần thiết phải tạo một lớp riêng biệt từ đầu. Bạn có thể xây dựng lớp này khi nhận ra mô hình đối tượng không còn ổn định.

Cơ sở dữ liệu hướng đối tượng vừa hỗ trợ vừa cản trở. Một vài cơ sở dữ liệu hướng đối tượng có khả năng chuyển đổi tự động từ phiên bản này sang phiên bản khác của đối tượng. Nếu không, bạn phải rất cẩn thận khi chuyển đổi dữ liệu bằng tay. Bạn có thể thoải mái di chuyển các hành vi nhưng với các trường thì phải cần thận. Có thể sử dụng hàm truy cập để tạo ra cảm giác là dữ liệu đã được chuyển và khi chắc chắn về sự thay đổi bạn có thể thực sự di chuyển trường.

Thay đổi giao diện[sửa]

Khi làm việc với đối tượng bạn có thể tuỳ ý thay đổi nội dung bên trong miễn là giao diện vẫn giữ nguyên. Nếu cần thay đổi giao diện và bạn có thể thay đổi tất cả những nơi sử dụng nó, bạn chỉ việc sửa tất cả đồng thời. Tuy nhiên nếu bạn có một giao diện đã được công bố, mọi việc trở nên phức tạp hơn nhiều. Bạn không thể sửa những đoạn mã do người khác viết sử dụng giao diện của bạn. Bạn cần một quy trình phức tạp hơn nhiều.

Khi refactor một giao diện đã được công bố, bạn cần giữ lại toàn bộ giao diện cũ, ít nhất cho đến khi người sử dụng có thể phản ứng với sự thay đổi. Nếu bạn đổi tên một hàm, hãy giữ lại hàm cũ và cho nó gọi đến hàm mới. Đừng sao chép thân hàm vì bạn sẽ lại mất thời gian xử lý sự trùng lặp mã nguồn. Bạn cũng nên sử dụng công cụ deprecate của Java để thông báo những chỗ bị phản đối.

Công bố giao diện có ích lợi của nó nhưng cũng gây nhiều khó khăn vì vậy nếu có thể, đừng công bố giao diện. Tất nhiên nếu bạn thiết kế thư viện lập trình, điều đó là không tránh khỏi. Nhưng nếu bạn làm một phần mềm với nhóm làm việc gồm ba người, đừng công bố giao diện từ người này đến người kia. Đơn giản là hãy mở mã nguồn ra và sửa đổi.


← Mục lục

Liên kết đến đây