Về ý thứ nhất: Đúng là giờ làm app có Spring gánh còng lưng vụ DI rồi, nên 99% các object (Service, Repo...) mình giao cho framework quản lý scope là êm nhất, đỡ sinh ra tight-coupling. 1% anh em mình vẫn phải tự code Singleton là khi viết các SDK/Library dùng chung (không muốn ép app tích hợp phải cài thêm DI framework), hoặc các config core khởi tạo trước cả DI Container.
Về ý thứ hai: Nếu phải tự implement trong môi trường multi-thread (như Java), cách 'chân ái' nhất là dùng Enum Singleton (vừa thread-safe vừa chống được Reflection/Serialization). Nếu muốn lazy-load thì xài Static Inner Class (Bill Pugh). Còn nếu bác thích xài Double-Checked Locking truyền thống thì nhớ bắt buộc phải kẹp thêm từ khóa volatile vào biến instance nhé, không là CPU nó reorder instruction là toang ngay.
Cảm ơn bác đã đặt một câu hỏi mở cực kỳ hay để anh em cùng thảo luận nha
Haha em cảm ơn anh nha! Viết xong bài này cũng tốn kha khá nơ-ron thần kinh anh ạ 😂. Rất vui vì phần Anti-pattern gãi đúng chỗ ngứa của anh em mình. Cảm ơn anh đã nhiệt tình share cho team và thả vote cho em nhé! Có dịp anh em mình cafe đàm đạo thêm nha
Dạ em cám ơn anh nha. Đúng kiểu ranh giới mong manh thật sự, vượt qua được đoạn đó mới thấy mình lên trình đúng không anh. Cám ơn anh đã đọc và động viên nha 😁
Nỗi đau này quen quá bạn ơi 😂. Để trị dứt điểm, bác thử kết hợp 2 chiêu: 1 là bật no-appendfsync-on-rewrite yes để nó không block main thread lúc rewrite; 2 là nới lỏng auto-aof-rewrite-min-size lên vài GB để nó ít chạy lại. Nhưng 'bài ngửa' an toàn nhất ở các hệ thống lớn vẫn là tắt auto đi và hẹn giờ cronjob chạy BGREWRITEAOF lúc nửa đêm. Rất vui vì bài viết chạm đúng thực tế của bác nha
Chuẩn luôn bạn ơi, làm hệ thống suy cho cùng toàn là những pha trade-off. Cứ ốp đúng bài toán thực tế mà gọt cấu hình cho phù hợp thôi. Cảm ơn bác đã ủng hộ bài viết nhaaa
THẢO LUẬN
Mình còn muốn nó sâu đến đáy luôn ấy chứ
Câu hỏi của bác quá chuẩn và chạm đúng thực tế
Anh em cảm thụ được là tốt rồi
Okii, để anh show đáp án, em đối chiếu xem được bao nhiêu % nhé kkk
Cảm ơn bạn đã ủng hộ nhé
Mình cũng ấp ủ lâu rồi ạ, nhưng mà mới để bản nháp thôi
Thiếu làm sao được gia vị này đúng không nào
Tự tin để mang nó ra ngoài thực tế chưa ạ
Haha em cảm ơn anh nha! Viết xong bài này cũng tốn kha khá nơ-ron thần kinh anh ạ 😂. Rất vui vì phần Anti-pattern gãi đúng chỗ ngứa của anh em mình. Cảm ơn anh đã nhiệt tình share cho team và thả vote cho em nhé! Có dịp anh em mình cafe đàm đạo thêm nha
Dạ em cám ơn anh nha. Đúng kiểu ranh giới mong manh thật sự, vượt qua được đoạn đó mới thấy mình lên trình đúng không anh. Cám ơn anh đã đọc và động viên nha 😁
Cảm ơn b đã ủng hộ nhé, hay thì chia sẻ mọi người cùng đọc nhé
Cảm ơn b đã ủng hộ ạ, hay thì chia sẻ cho mọi người cùng đọc nhé
Cảm ơn b nhiều nhé
gãi được rồi là thoải mái liền đúng không nè
Nỗi đau này quen quá bạn ơi 😂. Để trị dứt điểm, bác thử kết hợp 2 chiêu: 1 là bật no-appendfsync-on-rewrite yes để nó không block main thread lúc rewrite; 2 là nới lỏng auto-aof-rewrite-min-size lên vài GB để nó ít chạy lại. Nhưng 'bài ngửa' an toàn nhất ở các hệ thống lớn vẫn là tắt auto đi và hẹn giờ cronjob chạy BGREWRITEAOF lúc nửa đêm. Rất vui vì bài viết chạm đúng thực tế của bác nha
Chuẩn luôn bạn ơi, làm hệ thống suy cho cùng toàn là những pha trade-off. Cứ ốp đúng bài toán thực tế mà gọt cấu hình cho phù hợp thôi. Cảm ơn bác đã ủng hộ bài viết nhaaa
Chỉ cần như vậy là đủ rồi đúng không ^^
Tks bác nha! Hy vọng bài viết nhặt nhạnh được chút gì đó hữu ích cho công việc của bác 🤝
Sợ bị các bạn chê là khô khan quá😥
@ngocbach99 có luôn rùi hả, thank tác giả, vừa đọc sơ sơ qua thì thấy khá là ok la nhaaa