Essential RubyOnRails patterns : Service Objects

Xin chào tất cả các bạn, hôm nay mình xin giới thiệu với các bạn về chủ đề như tiêu đề mình đã nhắc đến, đó là Service Object trong Ryby on Rails. Service object là gì? Service Objects là một mô hình trong phát triển Ruby on Rails, nó giúp giảm tính xử lý trong models và controllers, giúp cho ...

Tác giả: Tạ Quốc Bảo viết 18:20 ngày 12/08/2018

Ruby Array

Trong ruby, ta thường sửa dụng 2 class Array và Hash để lưu trữ và truy vấn sữ liệu. Hôm nay mình sẽ viết 1 bài về các phương thức thường được sử dụng của Array, bài về Hash hẹn tháng sau nhé (yaoming). 1. Khởi tạo array: Ruby cung cấp nhiều cách khởi tạo array khác nhau. Khởi tạo array và ...

Tác giả: Trịnh Tiến Mạnh viết 18:20 ngày 12/08/2018

Thống kê với Aggregation Query trong Elasticsearch (Phần 4 - Multi-values metrics aggregation, top_hits)

Ở phần trước chúng ta đã tìm hiểu thế nào là multi-values aggregations, sử dụng một số loại query như stats, extended_stats, và một loại thống kê rất hưũ ích trong phân tích log đó là percentiles, ở bài này chúng ta sẽ tìm hiểu thêm một aggregation query tương tự như percentiles đó là ...

Tác giả: Tạ Quốc Bảo viết 18:20 ngày 12/08/2018

Cấu trúc dữ liệu và giải thuật - Cấu trúc dữ liệu đồ thị (Graph)

1. Cấu trúc dữ liệu đồ thị Một đồ thị là một dạng biểu diễn hình ảnh của một tập các đối tượng, trong đó các cặp đối tượng được kết nối bởi các link. Các đối tượng được nối liền nhau được biểu diễn bởi các điểm được gọi là các đỉnh (vertices), và các link mà kết nối các đỉnh với nhau được gọi ...

Tác giả: Trịnh Tiến Mạnh viết 18:20 ngày 12/08/2018

Angularjs phần 3 - Module & Realtime application

Bài trước chúng ta đã tìm hiểu về HTTP & AJAX, bài tiếp theo chúng ta sẽ cùng tìm hiểu sử dụng về Module& Realtime application. Module Trong các ứng dụng thực tế, việc phân chia ứng dụng thành các thành phần khác nhau là điều cần thiết. Dưới đây là lợi ích của việc chia nhỏ ứng dụng: ...

Tác giả: Hoàng Hải Đăng viết 18:19 ngày 12/08/2018

Phương thức và đối số trong Ruby

phương thức không có đối số Một phương thức có thể được định nghĩa và được gọi không có đối số như sau: def method_without_arg() "without arg" end def method_without_arg_and_parentheses "without arg & parentheses" end irb> method_without_arg => "without arg" irb> ...

Tác giả: Bùi Văn Nam viết 18:19 ngày 12/08/2018

Sidekiq Error Handling

Sidekiq là framework để thực hiện các background job được sử dụng rất nhiều trong các rails app hiện nay. Trong bài viết này tôi sẽ giới thiệu một vài vấn đề về xử lý lỗi trong sidekiq. 1. Best Practices Sử dụng một dịch vụ báo lỗi - Honeybadger, Airbrake, Rollbar, BugSnag, Sentry, ...

Tác giả: Hoàng Hải Đăng viết 18:19 ngày 12/08/2018

Tìm hiểu về React Router

Tại sao lại cần React Router Việc SPA bị giới hạn trong 1 view trong khi ứng dụng của chúng ta cần hiển thị rẩt nhiều view. Do đó ta cần bỏ qua giới hạn đó để học cách hiển thị nhiều view trên cùng 1 SPA. Đồng thời việc routing cho ứng dụng SPA củng giúp cho việc đồng bộ dữ liệu hiển thị với URL, ...

Tác giả: Hoàng Hải Đăng viết 18:19 ngày 12/08/2018

Tại sao chúng ta nên sử dụng Angular

Mở đầu Nếu đã từng xây dựng một vài ứng dụng Web , chắc hẳn bạn đã từng nghe đến cái tên Angular , một Frameworks Javascript giúp chúng ta xây dựng ứng dụng Web đầy đủ tính năng từ phía Client . Angular lần đầu được phát hành bởi gã khổng lồ Google vào năm 2010 với phiên bản AngularJS ...

Tác giả: Bùi Văn Nam viết 18:19 ngày 12/08/2018

Thực thi 1 chuỗi Ajax request với BackboneJS

Đối với dự án Backbone.js mà tôi đang làm việc, tôi cần triển khai một mô hình trong đó lưu yêu cầu vào chương trình phụ trợ 1 cách tuần tự. Điều này có thể cần thiết hoặc hữu ích vì những lý do sau: State và thứ tự ưu tiên: Giả sử ứng dụng phía máy khách trong đó người dùng thực hiện hai ...

Tác giả: Bùi Văn Nam viết 18:19 ngày 12/08/2018

Cách xác định các Phần tử Web bằng Using Selenium Xpath và Other Locators – Selenium Tutorial #5

Trong bài hướng dẫn trước, chúng ta đã làm quen với cách tạo kịch bản test cho Selenium IDE bằng cách sử dụng Firebug để xác định các phần tử Web. Mỗi phần tử có thể định vị bằng ID, type, placeholder và name. Tuy nhiên có những phần tử ta lại không thấy có ID hoặc không biết cách xác định để ...

Tác giả: Bùi Văn Nam viết 18:19 ngày 12/08/2018

Cùng tìm hiểu về ReactJS - Components

Trong phần này chúng ta sẽ cùng tìm hiểu về cách kết hợp các components để làm cho ứng dụng đễ bảo trì hơn. Cách tiếp cận này cho phép cập nhật và thay đổi các components của bạn mà không ảnh hưởng đến các phần còn lại của trang. 1. Stateless Example Components đầu tiên trong ví dụ dưới đây ...

Tác giả: Tạ Quốc Bảo viết 18:19 ngày 12/08/2018

Khi nào nên sử dụng PureComponent hoặc Component

PureComponent tiền đề của nó là một phiên bản có hiệu suất cao hơn của Component. Điều này là đúng, nhưng hiệu suất đạt được đi cùng với một vài thứ đi kèm. Chúng ta hãy tìm hiểu về PureComponent và hiểu tại sao chúng ta nên sử dụng nó nhé. Component và PureComponent có một sự khác biệt ...

Tác giả: Hoàng Hải Đăng viết 18:19 ngày 12/08/2018

Passport NodeJS

Khi xây dựng một ứng dụng, có nhiều trang chúng ta cần yêu cầu người dùng phải là ai đó mới cho truy cập. Vì vậy cần có xác thực người dùng - là việc kiểm tra xem người dùng đang truy cập đã đăng ký tài khoản hay chưa, người dùng là ai? Quy trình này được thực hiện bằng cách yêu cầu người dùng cung ...

Tác giả: Trịnh Tiến Mạnh viết 18:19 ngày 12/08/2018

Business Analyst và design functions

Bài toán: Bạn phụ trách phần phân tích sản Khách hàng đưa bạn một số ideas cơ bản về chức năng sản phẩm Team dev chưa thể start coding vì chưa hiểu gì Team QA yêu cầu bạn đưa ra function list hoặc mock-up UI Cấp trên yêu cầu bạn đưa ra estimation ASAP Một cổ nhiều tròng, là BA, bạn nên bắt ...

Tác giả: Trịnh Tiến Mạnh viết 18:19 ngày 12/08/2018

Tìm hiểu về HTTP Cache Manger, HTTP Cookie Manager, HTTP Authorization Manager trong JMeter

Jmeter cung cấp rất nhiều tính năng để kiểm tra hiệu suất của bạn trở nên thực tế hơn. Mặc dù Jmeter không phải là một trình duyệt web, nhưng nó cung cấp các cấu hình để tái tạo hành vi duyệt thực tế. Sau đây mình sẽ cùng tìm hiểu về 3 cấu hình, 3 trong những tính năng quan trọng nhất của Jmeter là ...

Tác giả: Bùi Văn Nam viết 18:19 ngày 12/08/2018

[Elasticsearch] Mapping - A Closer Look

Trong bài trước chúng ta đã có cái nhìn tổng quan về mapping. Trong bài viết này mình sẽ đi sâu hơn về Mapping. 1. Mapping Type Each index has one mapping type which determines how the document will be indexed. Mỗi index có duy nhất 1 kiểu mapping, và mapping type này sẽ quyết định cách ...

Tác giả: Hoàng Hải Đăng viết 18:19 ngày 12/08/2018

Font Fira Code và config (sublime text) để hiển thị giúp việc code trở nên thú vị.

Xin chào các bạn. Hôm nay, mình gửi đến các bạn một bài viết không liên quan chính đến lập trình. Nhưng nó hỗ trợ cho việc lập trình, nên mình quyết định viết luôn. </p> <div class= Tác giả: Hoàng Hải Đăng viết 18:19 ngày 12/08/2018

Thay Thế Database Của Ứng Dụng Bằng Room Database

Room Database( Room Persistence Library ) là một phần trong Android Architecture Components, nó giúp cho việc thao tác với SQLiteDatabase Object trở lên dễ dàng hơn, giảm thiểu số lượng câu truy vấn bằng những annotation sẵn có và xác minh truy vấn tại thời điểm biên dịch. Đó chỉ là một phần của ...

Tác giả: Tạ Quốc Bảo viết 18:19 ngày 12/08/2018

Giới thiệu MotionLayout

MotionLayout là 1 class mới trong thư viện ConstraintLayout 2.0, giúp developer Android quản lý các motion và widget animation trong ứng dụng. Trong bài viết này sẽ hướng dẫn bạn cách thêm library vào application và bắt đầu sử dụng những khái niêm và tính năng của MotionLayout. Note: Library ...

Tác giả: Bùi Văn Nam viết 18:19 ngày 12/08/2018