Hôm nay chúng ta tiếp tục series sách thuần technical nhé. Kì trước, mình vừa review cuốn sách Ship It! – Làm phần mềm theo phong cách chất chơi người dơi. Kì này, mình sẽ giới thiệu cuốn sách cũng hay không kém mang tên Release It! – Xây dựng và thiết kế hệ thống trâu bò cho hàng triệu người dùng.
Giới thiệu
Đây là một cuốn sách trong bộ sách Pragmatic Programmer. Bộ sách này có nhiều cuốn sách rất hay, chuyên sâu về kĩ thuật mà lại dễ đọc, rất phù hợp với lập trình viên, điển hình là 3 cuốn sách SQL Anti-Pattern và The Healthy Programmer, Ship It mà mình từng review trước đây.
Cuốn sách này có thể coi là “đàn em” của cuốn sách Ship It mình đã giới thiệu kì trước.
Nếu như trong Ship It hướng dẫn chúng ta phương thức làm việc, qui trình xây dựng phần mềm thì Release It lại hướng dẫn chúng ta cách thiết kế và deploy phần mềm trâu bò, giữ cho hệ thống hoạt động tốt và phục vụ được nhiều người dùng.
Nói đơn giản như thế này! Với developer chúng mình, phần mềm chúng ta viết ra cũng giống như đứa con chúng ta rứt ruột đẻ ra vậy.
Ship It hướng dẫn chúng ta cách đẻ, cách nuôi con để nó khoẻ mạnh, không bị bệnh. Release It lại hướng dẫn chúng ta cách dạy con, giúp cho nó trâu bò, nó khôn để lúc ra đời không bị người lại bắt nạt, không bị đời vả sml như thằng code dạo.
Tóm tắt
Sách khá dài, cỡ 350 trang nên có khá nhiều kiến thức để hấp thu. Nội dung chung của quyển sách là thiết kế, implement và giữ cho hệ thống hoạt động hiệu quả, do vậy sách chia làm 4 phần chính:
- Tính ổn định của hệ thống
- Khả năng chịu tải của hệ thống
- Một số lỗi thiết kế hệ thống thường găp
- Vận hành hệ thống
Ở mỗi phần, tác giả đều nêu ra những lỗi thiết kế thường gặp, cùng với những pattern hiệu quả mà chúng ta nên làm theo.
Phần hay nhất trong cuốn sách là những câu chuyện về kinh nghiệm thực tế của tác giá. Chúng ta sẽ được nghe câu chuyện về các hệ thống bị sập do thiết kế:
- Ngay phần 1, chúng ta sẽ nghe chuyện hệ thống một hãng máy bị sập trong 3 tiếng, gây thiệt hại khủng khiếp và còn bị lên mặt báo.
- Một hệ thống khác bị sập vì không chịu nổi vài trăm ngàn lượt tải do team marketing đã quảng cáo quá đà, sập ngay vào ngày Black Friday do lượng khách quá bự.
Đọc xong, ngẫm nghĩ lại ta mới thấy đội ngũ kĩ thuật của các hệ thống lớn Taobao, Amazon, Alipay “trâu bò” ra sao, khi thiết kế ra được một hệ thống chịu được cả chục triệu lượt tải.
Nhận xét
Quyển sách sẽ thay đổi cách nhìn của bạn về việc phát triển phần mềm.
Trước đây mình từng nói, code viết ra không phải chỉ chạy được, mà còn phải dễ đọc, dễ hiểu, dễ bảo trì. Nay, mình xin bổ sung thêm là code phải production-ready. Tức là code phải cover được hầu hết các trường hợp lỗi, bảo mật tốt. Code cũng phải đi kèm với logging để có thể tìm và sửa lỗi sau này.
Một hệ thống production ready là một chịu tải được, ổn định có tính availablity cao, vẫn hoạt động tốt khi các hệ thống phụ bị lỗi. Ngoài ra, hệ thống phải đi kèm với loggging. Dựa theo log, khi hệ thống có vấn đề, ta mới có thể lần ra lý do để tiến hành cải tiến và sửa chữa.
Những bài học kinh nghiệm trong sách khá hay, đôi chỗ còn có những thiết kế hệ thống để chúng ta học hỏi.
Đánh giá: 8/10 (Thật ra mấy cuốn điểm dưới 8 mình không thèm viết review đâu hihi)
Theo mình, cỡ tầm mid-level hoặc senior thì bạn đã có thể hấp thụ những kiến thức trong sách. Tốt nhất là bạn nên đọc cuốn này sau khi đã đi làm 2-3 năm, đã kinh qua vài dự án thực tế.
Với các bạn sinh viên thì kiến thức trong sách hơi cao siêu và khó hiểu đôi chút nên cũng không cần đọc ngay đâu nhé!