Lý lịch
Tôi đang làm việc trong một nhóm đang tìm cách triển khai các triển khai không thời gian chết. Chúng tôi đang lên kế hoạch sử dụng chiến lược triển khai xanh / xanh để đạt được điều này. Một trong những điều tôi nhận ra khi thực hiện nghiên cứu là mức độ phức tạp của việc thay đổi cơ sở dữ liệu. Một thao tác đơn giản như đổi tên một cột có thể mất 3 chu kỳ phát hành đầy đủ cho đến khi hoàn thành!
Dường như với tôi, việc triển khai đầy đủ thay đổi cần nhiều chu kỳ phát hành mang lại rất nhiều khả năng cho lỗi của con người. Trong bài viết được liên kết, nó cho thấy các thay đổi mã là cần thiết cho 2 bản phát hành và di chuyển cơ sở dữ liệu là cần thiết cho 3 bản phát hành.
Thứ tôi đang tìm kiếm
Hiện tại, nếu chúng ta muốn nhớ làm gì đó, chúng ta có thể tạo một vé trong hệ thống quản lý vấn đề của mình, điều này tạo ra sự lộn xộn và cũng có thể được quản lý chuyển sang chạy nước rút sau hoặc tồn đọng bởi quản lý; hoặc chúng ta có thể tạo một bình luận TODO, có lẽ sẽ bị lãng quên hoàn toàn.
Điều tôi đang tìm kiếm là một cách mà một bình luận TODO có thể có thời hạn cuối cùng và hệ thống Tích hợp liên tục của chúng tôi (hiện tại chưa quyết định mà chúng tôi sẽ sử dụng) sẽ từ chối bản dựng nếu hết thời hạn này.
Ví dụ: nếu chúng tôi đổi tên một cột, chúng tôi có thể tạo di chuyển ban đầu cho cột đó và sau đó hai nhận xét TODO để đảm bảo rằng hai di chuyển còn lại được tạo:
// TODO by v55: Create migration to move constraints to new column, remove references to old column in app
// TODO by v56: Create migration to drop old column
Điều này có vẻ khá đơn giản để thực hiện, nhưng tôi tự hỏi nếu một cái gì đó như thế này đã tồn tại, bởi vì tôi không muốn phát minh lại bánh xe.
Suy nghĩ thêm
Tôi cảm thấy mình có thể đang gặp phải vấn đề XY ở đây, vì việc triển khai cuộn và triển khai xanh / xanh được coi là cách thực hành tốt nhất, có vẻ lạ là tôi không thể tìm ra giải pháp giúp cập nhật cơ sở dữ liệu ít đau đớn hơn. Nếu bạn nghĩ rằng tôi đang nhìn vào điều sai hoàn toàn, xin vui lòng cho tôi biết trong một nhận xét! Điều đó nói rằng, ví dụ cơ sở dữ liệu tôi đã đưa ra chỉ là một ví dụ và tôi nghĩ rằng các bình luận TODO có ngày đáo hạn cũng sẽ hữu ích trong các tình huống khác, vì vậy ngay cả khi tôi tiếp cận tình huống cụ thể này, tôi thực sự muốn trả lời câu hỏi thực tế quá. Cảm ơn!
EDIT: Tôi chỉ nghĩ về một tình huống khác mà điều này có thể hữu ích. Nếu bạn sử dụng Kính râm tính năng để bật các phần của ứng dụng khi chúng sẵn sàng, bạn phải cẩn thận để dọn sạch chúng, nếu không bạn có thể kết thúc với Toggle Debt . Bình luận với thời hạn có thể là một cách tốt để ghi nhớ điều này.
TODO <Bug#>:
để theo dõi cách giải quyết các vấn đề với các thành phần khác. Khi một lỗi được xóa trên một trong các thành phần đó, bạn có thể dễ dàng tìm và giải quyết các cách giải quyết có liên quan. Nó không thay thế một trình theo dõi vấn đề, nó giúp bảo trì dễ dàng hơn.