viblo.asia viblo.asia

Lập trình hướng đối tượng với ES6

1. JavaScript(ES6) Class : Các đối tượng trong ngôn ngữ lập trình cung cấp cho chúng ta một cách dễ dàng để thao tác với mô hình dữ liệu. Lấy ví dụ ta có một đối tượng người dùng. Đối tượng người dùng này có các thuộc tính: các giá trị chứa dữ liệu về người dùng, và các phương thức xác định các hành động mà người dùng có thể...

viblo.asia viblo.asia

Chạy tự động các tác vụ (task) với `whenever` và `Rake` trong Rails

Phần lớn các chức năng trong ứng dụng web của bạn là để trả về kết quả (response) tương ứng với các yêu cầu (request). Tuy nhiên có nhiều trường hợp bạn cần phải tạo các tác vụ chạy độc lập hoặc định kì trên máy chủ (server) ko cần yêu cầu từ client. Ví dụ như các tác vụ bảo trì hệ thống, các tác vụ tính toán định kì hoặc...

viblo.asia viblo.asia

Tự cài đặt Lazy Lookup I18n Rails

1. "Lazy" Lookup Rails đã cài đặt một cách thuận tiện để tìm kiếm phần dịch theo ngôn ngữ (translate) ở trong views. Khi bạn có 1 từ điển như sau: en: books: index: title: "Title" Bạn có thể sử dụng với dạng đầy đủ cơ bản của I18n như sau: I18n.t('books.index.title'). Tuy nhiên sử dụng như vậy khá là dài dòng và không theo một...

viblo.asia viblo.asia

Sử dụng Capybara Webkit crawling với Sidekiq

Dự án mà tôi tham gia sử dụng capybara webkit để craw dữ liệu từ một trang khác về. Khi chạy test chức năng trên server local thì rất ổn không thấy có bất thường gì xảy ra. Kết hợp với sidekiq cũng không thấy vấn đề gì cả mọi thứ đều ổn. Mọi chuyện không như là mơ, khi đến tay tester thì cái quái gì thế này, sao chức năng này lại ko chạy...

viblo.asia viblo.asia

Một vài mẹo tăng tốc rspec

Viết test là một phần rất quan trọng trong các dự án để đảm bảo chất lượng của các đoạn code của bạn. Với các dự án nhỏ số lượng test không lớn thì tốc độ cả mỗi test không phải vấn đề gì lớn. Tuy nhiên đối với các dự án lớn thì tốc độ của rspec ảnh hưởng rất nhiều đến dự án. Trong quá trình phát triển lượng code tăng...

viblo.asia viblo.asia

Hiển thị các thông báo thân thiện hơn với toastr

Có thể bạn thấy việc hiển thị thông báo với bosstrap là khá nhàm chán, bạn cần một thư việc khác hiển thị thông báo một cách sinh động hơn. Toastr là một lựa chọn rất tốt bạn có thể thử và trải nghiệm. toastr là một thư viện Javascript dùng cho việc hiển thị các thông báo một cách độc lập. Để sự dụng toastr việc đầu tiên trang web...

viblo.asia viblo.asia

React PropTypes - Khai báo kiểu dữ liệu cho component

React PropTypes là một cách tốt giúp bạn bắt lỗi thông qua việc kiểm tra loại dữ liệu được truyền vào component thông qua props. PropTypes mang lại lợi ích tuyệt vời trong khi lại bỏ ra rất ít công sức để cài đặt Giới thiệu Nếu bạn muốn truyền một giá trị bất kì nào đó đến một component, và bạn không khai báo kiểu dữ liệu cho thuộc tính...

viblo.asia viblo.asia

Phòng chống DDoS với Nginx và Nginx Plus

Distributed Denial‑of‑Service (DDoS) attack là hành động cố gắng làm cho các dịch vụ thường là website. Website thường bị tấn công bởi rất nhiều yêu cầu được gửi từ nhiều máy tính khác nhau khiến cho trang web trờ nên quá tải và ko thể phản hồi lại yêu cầu từ các máy client. Sử dụng NGINX và NGINX Plus để chống DDoS Nginx và Nginx Plus có nhiều...

viblo.asia viblo.asia

Mongodb Rails

Giới thiệu MongoDB là một documented oriented database hay gọi đơn giản là một dạng NoSQL. Nó có nhiều điểm khác biệt so với hệ cơ sở dữ liệu quan hệ truyền thống như SQL. Với MogoDB, cấu trúc của cơ sở dữ liệu là động và có thể tùy biến thay đổi dễ dàng tùy thuộc vào kiểu dữ liệu lưu trữ. Nó khác hoàn toàn với MySQL, với MySQL ta phải...