
N + 1 query - Tính năng hay là bug
1. N + 1 query là gì ? Câu chuyện xảy ra khi chúng ta, những coder viết code chưa khéo, sinh ra nhiều truy vấn vào cơ sở dữ liệu làm giảm performance của hệ thống. Khi đồng nghiệp đọc code thường thì sẽ bình luận ngay: fix N + 1 Nếu để trót lọt, sau một thời gian vận hành mà chương trình chậm, ...

cách sử dụng React.js Component Lifecycle Methods
Mở đầu: Mọi thứ vận hành đều có vòng đời, hay chu trình của nó, từ khi nó được tạo ra cho đến kết thúc. Và chúng ta gọi nó là lifecycle. React.js cũng không ngoại lệ, chúng cũng có vòng đời. Chúng cần trải qua các giai đoạn hay còn gọi là các phase theo như thuật ngữ của React. Các giai đoạn ...

Continue with Machine Learning - Building Recommendation System
Nowadays there are no successful e-commerce websites which do not use recommendation system. Website such as Amazon which sell million of books use recommendation system to cater customers with the most likeable products that customer will buy. Netflix uses recommendation system to provide customer ...

Hiểu React - Life-cycle của component - Part 2
componentDidCatch(errorString, errorInfo) Một bổ sung mới trong React 16 - life-cycle method này đặc biệt theo cách nó có thể phản ứng với các sự kiện xảy ra trong thành phần con, cụ thể cho bất kỳ lỗi vô hình nào xảy ra trong bất kỳ thành phần con nào. Với phần bổ sung này, bạn có thể làm cho ...

Thực thi Selenium Tests bằng Headless Browser sử dụng PhantomJS
1. Headless Browser là gì? Headless Browser là một trình duyệt web không có giao diện đồ họa người dùng. Headless Browser cũng giống như các trình duyệt khác, chỉ khác là không có UI. Khi thực thi Selenium tests thì những testcase sẽ được thực thi ngầm (thực hiện ở background mode) và sẽ không ...

Một số UI Framework ngon cho anh em dùng Vue.js
Dưới đây em xin giới thiệu một số UI Framework khá ngon mà các bác có thể sử dụng trong project của mình thay vì tự tay code hết mọi thứ, giúp giảm thiểu thời gian phát triển đi khá nhiều đấy. Element Element là một thư viện khá nổi tiếng, khi em search google từ khóa vue ui thì ra em này ...

Self trong ruby (p2)
Self trong ruby (p1): https://viblo.asia/p/self-trong-rubyp1-ORNZqP7GK0n. Chào các bạn, trong phần trước mình đã giới thiệu về sender và receiver trong ruby, hôm nay chúng ta sẽ cùng tiếp tục tìm hiểu về self và cách giá trị của self thay đổi khi chương trình được thực thi nhé. Đầu tiên chúng ...

Sử dụng Binding Adapter với Kotlin (Phần 1)
Binding Adapter thường khó sử dụng đối với người mới dùng Binding Adapter và chúng ta cũng biết tại sao nó lại khó sử dụng ở những trường hợp phức tạp. Ví dụ như đối với việc setText của TextView hay src của ImageView thì khá dễ dàng để dùng Binding Adapter. Nhưng khi sử dụng một cái gì đó ...

Fastlane - Add frame for screenshots
Bài viết trước: Fastlane - Auto capture screenshots Như trong bài viết trước, mình đã hướng dẫn các bạn sử dụng fastlane để tự động chụp ảnh màn hình thông qua việc viết UITesting. Trong bài viết này, mình sẽ hướng dẫn các bạn add thêm frame cho mỗi ảnh đã được chụp trước đó. Add frame một cách ...

[Vim]Cài đặt và cách sử dụng cơ bản.
Lời nói đầu Mình đang định viết thêm bài để bổ sung thêm vào loạt bài viết về PHP và Laravel 5.5, nhưng không biết là do có quá nhiều thứ cần viết hay do nó quá nhiều thứ gây hứng thú với mình nên mình không biết bắt đầu từ viết từ đâu. Nên mình quyết định sẽ viết thêm sau về PHP và Laravel 5.5, ...

Architecture Components - Paging Library
Paging Library giúp ứng dụng của bạn dễ dàng tải dần thông tin khi cần từ nguồn dữ liệu, mà không làm quá tải thiết bị hoặc chờ quá lâu cho truy vấn cơ sở dữ liệu lớn. Tổng quan Nhiều ứng dụng hoạt động với bộ dữ liệu lớn nhưng chỉ cần tải và hiển thị một phần nhỏ dữ liệu đó bất kỳ lúc nào. Một ...

Một số điều thú vị khi làm việc với Mongodb
Mongodb là một trong những loại cơ sở dữ liệu Nosql phổ biến nhất hiện nay, thuộc kiểu document, mã nguồn mở, data được lưu dưới dạng binary json (BSON). Được viết bằng C++ nên mongodb có khả năng tính toán với tốc độ cao, hỗ trợ dynamic schema, cả vertical scaling và horizontal scaling. Xin liệt ...

Tổng hợp các gem được sử dụng nhiều nhất trong Ruby on Rails - Phần 2
Chào các bạn, ở phần 2 này mình sẽ nói về các gem được sử dụng với mục đích debug, xác thực, bảo mật, API, deploy và upload. Đã là developer thì việc gặp bug cũng là chuyện xảy ra hàng ngày. Bug có thể xảy ra bởi bất cứ nguyên nhân nào, do sai cú pháp, do sai logic, ... Tuy nhiên, trang thông ...

Thay "lớp áo" cho Ckedior
Có lẻ khi nhắc đến Ckeditor thì nhiều người sẽ không còn xa lạ với nó.Ckeditor giống như một bộ hổ trợ cho quá trình soạn thảo, nó có nhiều tiện ích giúp cho quá trình biên soạn trở nên đẹp đẽ hơn, chuyên nghiệp hơn. Đối với ứng dụng rails, việc thêm ckeditor không có gì quá mới mẻ và khó khăn.Tuy ...

Kiểm thử big data - hướng dẫn hoàn chỉnh cho người mới bắt đầu (phần 2)
Tiếp theo phần 1 Các cơ sở dữ liệu quan hệ truyền thống như Oracle, MySQL, SQL Server không thể được sử dụng cho big data vì hầu hết dữ liệu được định dạng phi cấu trúc Dữ liệu có thể ở dạng hình ảnh, video, hình ảnh, văn bản, âm thanh ... Đây có thể là hồ sơ quân sự, video giám sát, hồ ...

Design Patterns - Iterator Pattern
Trong bài viết này, mình sẽ giới thiệu một loại design pattern trong nhóm Behavioral Design Pattern -> liên quan đến hành vi của các object. Iterator pattern là mẫu thiết kế rât thường được sử dụng trong môi trường lập trình Java và .NET. Mẫu này được sử dụng để truy cập vào các phần tử của ...

Types of Migration Testing: With Test Scenarios for Each Type
Để đảm bảo việc di chuyển dữ liệu từ hệ thống cũ sang hệ thống mới không gây mất mát dữ liệu ta cần thực hiện kiểm tra migration. Tiếp tục chủ để về kiểm tra migration, trong các bài trước, tôi đã nói đến cách tiếp cận, chiến lược test cùng các phase trong kiểm tra migration. Trong bài này ...

Server-side Nuxt.js for Vue.js Apps
Thư viện/Framework Javascript giống như Vue có thể mang lại trải nghiệm tuyệt vời cho người dùng khi duyệt trang web của bạn. Tất cả các thay đổi nội dung trang đều được thực hiện một cách tự động mà không phải gửi yêu cầu tới server mỗi lần. Tuy nhiên, có một vấn đề với cách tiếp cận này. Khi ...

Performance Testing
1. Kiểm thử hiệu năng là gì? Có nhiều định nghĩa về kiểm thử hiệu năng, kiểm thử hiệu năng là một loại kiểm thử để đảm bảo các ứng dụng phần mềm sẽ hoạt động tốt dưới khối lượng công việc dự kiến. Các tính năng và chức năng của một hệ thống phần mềm không phải là mối quan tâm duy nhất. Hiệu ...

Kiểm tra quy trình làm việc - Workflow Testing
Kiểm tra quy trình làm việc là xu hướng mới nhất trong kiểm thử phần mềm, đang được thực hiện bởi người kiểm thử phần mềm để tạo ra kết quả mong muốn. Do đó, để xây dựng tầm quan trọng và mức độ phù hợp của thử nghiệm quy trình làm việc, hãy tìm hiểu các kiến thức cơ bản dưới đây. Khái niệm ...