Dưới đây là tám cách thực hành từ Entropic Thoughts để thiết kế phần mềm đáng tin cậy:
1. Sử dụng giải pháp có sẵn
Phản ứng đầu tiên của chúng ta nên là, liệu chúng ta có thể sử dụng Redis không? Miễn là chúng ta không phải đối phó với một thành phần quá phức tạp hay đắt đỏ, hoặc một phần mềm tạo ra giá trị lớn nhất, chúng ta nên ưu tiên sử dụng giải pháp có sẵn.
2. Chi phí và độ tin cậy hơn là tính năng
Nếu chúng ta không thể sử dụng giải pháp có sẵn, chúng ta cần xây dựng một thứ rẻ và đáng tin cậy. Điều này thường đồng nghĩa với việc loại bỏ các tính năng không cần thiết. Câu nói phổ biến về điều này là:
Thêm tính năng vào phần mềm đáng tin cậy dễ hơn nhiều so với việc thêm độ tin cậy vào phần mềm đầy tính năng.
Bên cạnh đó, rất dễ mắc sai lầm khi nghĩ rằng chúng ta cần những tính năng mà thực tế không cần.
3. Đưa ý tưởng vào thực tiễn nhanh chóng
Làm sao chúng ta biết tính năng nào là cần thiết? Cách rẻ nhất và đáng tin cậy nhất để tìm ra điều này là đưa sản phẩm vào thực tiễn. Bằng cách triển khai bộ tính năng tối thiểu, chúng ta sẽ nhanh chóng biết được các tính năng bổ sung cần thiết.
4. Cấu trúc dữ liệu đơn giản
Cấu trúc dữ liệu phức tạp thường rất hấp dẫn. Tuy nhiên, vấn đề của chúng là dễ bị sử dụng sai, dẫn đến lỗi hiệu suất và lỗi phần mềm.
5. Dự trữ tài nguyên sớm
Việc cấp phát tài nguyên sớm giúp phát hiện sớm nếu không đủ tài nguyên, tránh gây bất tiện cho người vận hành sau này. Điều này giúp dễ dàng hơn trong việc lập kế hoạch dung lượng và quản lý hiệu suất.
6. Thiết lập giới hạn
Việc đặt giới hạn là cần thiết để đảm bảo hiệu suất không quá chênh lệch giữa các trường hợp. Ví dụ, chúng ta có thể đặt giới hạn số bước lặp là 500. Điều quan trọng không phải là con số chính xác, mà là việc có giới hạn để tránh các tình huống bất ngờ.
7. Dễ kiểm thử
Để tránh lỗi và đảm bảo hành vi mong đợi, một giải pháp là thiết kế bộ nhớ đệm có thể nhận lệnh qua đầu vào tiêu chuẩn. Điều này giúp dễ dàng kiểm thử phần mềm bằng cách viết các lệnh và kiểm tra kết quả đầu ra.
8. Nhúng bộ đếm hiệu suất
Chúng ta muốn biết chương trình dành bao nhiêu thời gian cho từng tác vụ? Bằng cách nhúng các bộ đếm hiệu suất, chúng ta có thể tích lũy số liệu như thời gian đọc và ghi các cặp khóa-giá trị, số lần bỏ lỡ bộ nhớ đệm, và nhiều chỉ số khác.