viblo.asia viblo.asia

Tại sao ứng nodejs lại dể dàng để mở rộng

Clusters and Child Processes Scaling Node.js Applications Mặc dù single-threaded và non-block là khá tốt. Nhưng một process trong một CPU sẽ không đủ để xử lý khối lượng công việc ngày càng tăng của một ứng dụng. Cho dù server của bạn sử dụng có thể mạnh đến mức nào, những gì single-threaded có thể hỗ trợ sẽ bị hạn chế. Thực tế là node chạy trong...

viblo.asia viblo.asia

Framework Nestjs - Giới thiệu (part 1)

Introduction Nest (NestJS) là một framework để xây dựng các ứng dụng server-side bằng Node.js hiệu quả, và dể mở rộng. Nó sử dụng ngôi ngữ bậc cao của javascrip là TypeScript (nhưng vẫn cho phép các nhà phát triển sử dụng JavaScript thuần túy) và kết hợp các tính chất của OOP (Lập trình hướng đối tượng), FP (Lập trình chức năng) và FRP (Lập trình...

viblo.asia viblo.asia

OpenAPI and gRPC Side-by-Side

Giới thiệu Dành thời gian làm việc với OpenAPI và gRPC và bạn sẽ nhận thấy rằng hai công nghệ này có rất nhiều điểm chung. Cả hai đều là những nỗ lực nguồn mở, cả hai đều mô tả API và cả hai đều hứa hẹn những trải nghiệm tốt hơn cho các nhà phát triển API. Vậy tại sao chúng ta cần cả hai? trong bài viết này mình sẽ so sánh 2 cách...

viblo.asia viblo.asia

TypeScript - Generics

Giới thiệu Một phần chính của công nghệ phần mềm là xây dựng các thành phần có thể tái sử dụng. Các thầnh phần có khả năng làm việc với dữ liệu của ngày hôm nay cũng như dữ liệu của ngày mai. Điều này cung cấp cho chúng ta các khả năng linh hoạt nhất để xây dựng các hệ thống phần mềm lớn. Bài viết giả định mọi người đã...

viblo.asia viblo.asia

OpenURI - Nguy hiểm mất dữ liệu

Nguy hiểm - Không được thử kernel.open("| rm -rf ~") # Rails c Giới thiệu Gần đây mình có cơ hội tìm hiểu về OpenURI. Khi sử dụng thư viện này mình đã nghịch dại và làm mất dữ liệu trên máy tính. Nên hôm nay mình sẽ giới thiệu nó lại với mọi người. Viết bài này xong là mình phải ngồi cài lại zhs, rails, ruby.v.v... OpenURI OpenURI là...

viblo.asia viblo.asia

Tìm hiểu Policy Objects trong Ruby on Rails

Đặt vấn đề Giả sử chúng ta có 1 ứng dụng đơn giản với 3 phân quyền như sau regular user: có thể xem được các dữ liệu public của clients moderator: có thể chỉnh sửa dữ liệu của clients và có thể xem dữ liệu private của clients admin: có tất cả các quyền Chúng ta có 2 model như sau: class Client < ActiveRecord::Base # ... end class User <...

viblo.asia viblo.asia

Một số Options hửu ích khi tạo Association

counter_cache option for belong_to association Gĩa sử mình có 2 model Author và Book. khi mình gọi @author.books.size rails sẻ truy cấn database để thực thi câu lệnh count(). Để tránh cuộc gọi này mình có thể thêm tùy chọn counter_cache khi định nghĩa liên kết belong_to class Book < ApplicationRecord belongs_to :author, counter_cache: true end class Author < ApplicationRecord ...

viblo.asia viblo.asia

Locking Active Record

Đặt vấn đề Bạn hãy tưởng tượng điều gì xãy ra nếu một người sở hửu một tài khoản ngân hàng có 500 vnd nhưng đồng thời tiến anh chuyển 500 vnd này cho 500 người. Tất nhiên là chỉ chuyển được lần đầu thôi đúng không. Tuy nhiên nếu điều này xãy ra trên ứng dụng của chính bạn thì sao. Đây là cách mà request thứ nhất đã được thực...