Hieu Nguyen's Blog Easy Peasy Lemon Squeezy

Tản mạn về gsub trong Ruby

Chúng ta đã khá quen thuộc với method gsub, tuy nhiên sức mạnh của nó có thể bạn chưa biết.

Client side render vs Server side render

Thời kỳ đầu, khi web mới phát triển, khái niệm Server side render (SSR) đã được biết tới. Bạn request một trang web, server xử lý nội dung thành HTML, return lại cho browser hiển thị lại lên màn hình. Cho tới nay, SSR vẫn được sử dụng phổ biến và chưa có dấu hiệu bị thay thế hoàn toàn. Nhưng càng ngày, những trang web càng giống ứng dụng hơn là nơi hiển thị nội dung, bạn có thể xử lý ảnh, chat, soạn thảo văn bản … Dần dần cách thức hoạt động của SSR tỏ ra nặng nề hơn và bộc lộ những nhược điểm nhất định. Trước khi nói rõ hơn về nhược điểm, hãy nhắc lại cách hoạt động của SSR. enter image description here Nguồn https://medium.com/walmartlabs/the-benefits-of-server-side-rendering-over-client-side-rendering-5d07ff2cefe8 Nội dung HTML được xử lý trên server và trả lại cho browser, lúc này nội dung HTML đã hoàn chỉnh và được hiển thị ngay khi nó được load về máy, tuy nhiên lúc này trang web mới chỉ xem được nội dung, người dùng chưa thể tương tác được. Ngay trong lúc này, trình duyệt vẫn âm thầm tải tiếp JS và thực thi nó ngay khi hoàn tất, một khi hoàn tất quá trình này người dùng mới có thể tương tác được. Từ đây ta có thể nhận thấy một vài điểm yếu nổi bật :

  • Trang web phải xử lý lại hoàn toàn và load lại từ đầu nếu chỉ có một thay đổi nhỏ trong nội dung. (Ví dụ tiêu đề thay đổi …)
  • Việc xử lý nội dung HTML khiến hao tốn tài nguyên server, gây chậm trễ khi xử lý các request khác.
  • Lượng request lên server rất nhiều, do mọi tác vụ đều phải xử lý lại trên server và render lại HTML
  • TTFB (Time To First Byte) cao do cần phải xử lý trên server, sẽ ảnh hưởng tới một vài công cụ benchmark

Tản mạn về case...when trong Ruby, bản chất hoạt động và cách tận dụng nó theo cách riêng

Tản mạn về case ... when, bản chất hoạt động ra sao và tận dụng nó theo cách riêng ra sao ?

Tản mạn về thread-based và event-based

Tại sao khi nói tới việc xử lý lượng request lớn, người ta thường nhắc tới Node.js, hay cụ thể hơn là đang băn khoăn về khái niệm event-driven programming, non-blocking

Unicorn hoạt động thế nào ?

Mấy hôm vừa rồi có đọc bài viết trong blog của GitHub nói về Unicorn, nay mình viết lại để ghi nhớ cũng như giới thiệu cho mọi người về cách hoạt động của Unicorn.