
Sự lựa chọn hợp lý: Single Table Inheritance hay Polymorphic Associations?
Khi xây dựng một ứng dụng có nhiều model, điều quan trọng là phải xác định rõ ràng các loại mối quan hệ được sử dụng để liên kết các model với nhau. Quy mô ứng dụng càng lớn thì việc xác định mối quan hệ nào nên tồn tại giữa các model càng khó. Ví dụ một trường hợp chúng ta thường gặp phải, đó là: ...

[Android Library]: Tìm hiểu Retrofit2
I. Mở đầu Việc phát triển thư viện HTTP type-safe để giao tiếp với Rest API có thể thực sự là một điều khó khăn vì bạn phải xử lí rất nhiều các chức năng chẳng hạn như : tạo kết nối, lưu trữ cache, thử lại các yêu cầu thất bại, phân tích luồng phản hồi, xử lí lỗi và nhiều hơn nữa. Nhưng mặt ...

iOS Development dưới góc nhìn của một Android Developer?
Ở bài viết này, mình muốn đề cập đến những ưu điểm và nhược điểm của iOS Development với góc nhìn là một Android Developer. Tất nhiên bài viết chỉ có thể ở mức tương đối, khách quan chứ chưa đi vào cụ thể được. The Storyboard Có thể nói Storyboard là một điểm cộng khá lớn trong việc thiết kế ...

Những lỗi cần tránh khi làm việc với Vuejs
Include template compiler Vấn đề đầu tiên của chúng ta là một vấn đề khá cơ bản. Việc đầu tiên cần làm để sử dụng Vue.js là import nó. Nếu bạn làm theo hướng dẫn chính thức và sử dụng một inline template cho component của bạn, thì bạn sẽ nhận được một trang trắng. import Vue from 'vue'; var ...

Testing Microservices - Hướng dẫn cho người mới bắt đầu
Microservices không phải là một khái niệm mới. Nó đã được sử dụng trong hơn một thập kỷ nay bởi những người khổng lồ như Amazon, Google và Facebook. Khi bạn tìm kiếm nội dung nào đó trên Google, để truy xuất kết quả có liên quan, Google sẽ gọi tới gần 70 microservices. Microservices testing ngày ...

Dàn trang với Flexbox - Phía sau Bootstrap Grid
Trước kia khi mà việc dàn website tương đối đơn giản và không quan tâm tới responsive design chúng ta thường sử dụng thuộc tính float trong css. Tuy nhiên, giao diện (UI) và trải nghiệm (UX) người dùng ngày càng được chú trọng và đòi hỏi nhiều hơn, tức là ngoài việc bạn dàn trang với một bố cục chi ...

Tầm quan trọng và ý nghĩa của màu sắc trong thiết kế website
1. Tầm quan trọng của màu sắc trong thiết kế website Màu sắc có ở mọi nơi trong cuộc sống của chúng ta. Mỗi vật mỗi cảnh đều có một màu sắc riêng của nó. Màu sắc tác động đến cách chúng ta suy nghĩ, cảm nhận và hành xử. Trong thiết kế web, màu sắc ảnh hưởng đến nơi chúng ta nhìn, những gì ...

Sử dụng Atomic Design và bootstrap 4 để tạo một số atom component test trên Storybook
Trong bài post trước mình đã giới thiệu với các bạn về storybook, setup và demo. Hôm nay mình sẽ base theo atomic design, boostrap 4 để tạo một số atom đơn giản để test trên storybook nhé! 1. Tạo một số atom đơn giản Chúng ta sẽ tạo một số atom component đơn giản dùng trong form như là button, ...

Lưu ý khi làm vue
Vue Devtools Vue Devtools là một extension Chrome để dubugg các ứng dụng Vue. Nó công cụ tuyệt vời giúp bạn theo dõi code, data. Với Devtools, bạn có thể nhìn thấy components, vuex, events,.... Bạn có thể xem và thay đổi dữ liệu trực tiếp. Nếu đang code Vue mà chưa có dùng Devtools thì nên cài ...

Một số cuốn Ebook hay cho lập trình viên C#
Hôm nay mình sẽ chia sẻ cho các bạn một số cuốn sách học lập trình C# hay nhất. Sách chia ra nhiều cấp độ từ cơ bản đến nâng cao, giúp bạn nhanh chóng làm chủ ngôn ngữ lập trình tuyệt vời này. Cuốn C# Network Programming của Richa là một trong những cuốn sách tập trung vào lập trình mạng ở mức ...

Composite Pattern in Ruby
Trong quá trình làm việc chúng ta thường phải đối mặt với bài toán được là phải xây dựng một hệ thống gồm các objects liên kết, tương tác với nhau theo dạng tree hierarchy. Vậy chúng ta cần áp dụng nguyên lý hay cách thiết kế nào để giải quyết vấn đề trên một cách hiệu quả, hãy cùng tham khảo bài ...

Tìm hiểu về những thay đổi trên Swift 4.2
Sau lần đầu được giới thiệu chính thức phiên bản Swift 1.0 đầu tiên vào 09/09/2014, Swift đã trải qua rất nhiều phiên bản. Ở mỗi phiên bản nâng cấp, Swift lại được hoàn thiện hơn, bỏ đi các hàm tồn tại trên ngôn ngữ C cũ kỹ, thêm nhiều hàm hiện đại và tiện ích hơn, tối ưu tốt hơn, giúp code chạy ...

Block, Proc, Lambda trong Ruby
I. Khái niệm 1. Block Block đơn giản là tập hợp các lệnh thành 1 khối, nằm trong {...} hoặc do ... end. Có 1 quy ước chung là sử dụng {...} cho các block đơn (1 dòng lệnh) và do...end cho các block bội (multi-line). Ví dụ: [1, 2, 3].each do |n| puts n*n end [1, 2, 3].each { |n| puts ...

Xác thực dữ liệu với gem jquery-validation-rails
I. Giới thiệu Trong Rails, chúng ta có thể validate các dữ liệu trước khi chúng được lưu vào cơ sở dữ liệu bằng cách sử dụng Active Record's validatetion. Đây là cách tốt nhất để kiểm tra và đảm bảo rằng chỉ có dữ liệu hợp lệ mới được lưu vào cơ sở dữ liệu. Tuy nhiên có một số cách khác để xác ...

What is Non-functional Testing?
Kiểm thử phi chức năng ( Non-functional Testing) là một loại kiểm thử để kiểm tra các khía cạnh không hoạt động (hiệu suất, khả năng sử dụng, độ tin cậy, vv) của một ứng dụng phần mềm. Nó được thiết kế để kiểm tra sự sẵn sàng của một hệ thống theo các tham số phi chức năng mà không bao giờ được ...

Laravel 5.6 with QRCodes, APIs, AndroidiOS Phần 1
I. Giới thiệu: 1. Kiến thức sau khi thực hành: Tìm hiểu về Laravel 5.6 Tìm hiểu về database relationships Tìm hiểu tích hợp QRCodes vào trang web Tìm hiểu cách xây dựng ứng dụng bằng QRCodes Tìm hiểu tích hợp thanh toán vào trang web Tìm hiểu cách xây dựng nền ...

Xử lý datetime dễ dàng hơn với thư viện Carbon trong laravel
- Carbon là một gói phần mềm được phát triển bởi Brian Nesbit mở rộng từ class DateTime của PHP. Từ phiên bản 5.3, Laravel đã tích hợp sẵn thư viện này vào Project. Việc sử dụng tốt thư viện này sẽ giúp bạn rất nhiều vấn đề về xử lý thời gian. Thư viện này giúp chúng ta rất nhiều trong việc ...

Hơn 120.000 website bị tin tặc tấn công trong quý 3 năm 2018
Theo Báo cáo an ninh website Q3/2018 của CyStack, trong quý 3 năm 2018 trên thế giới đã có 129.722 website bị tin tặc tấn công và chiếm quyền điều khiển. Việt Nam đứng thứ 19 trong danh sách này với 1.183 website bị tấn công. Báo cáo an ninh website là báo cáo thống kê và phân tích tình hình ...

Mong đợi gì từ hội nghị lập trình viên Google IO 2016 (P2)
Google IO 2016: Thời gian và địa điểm Google IO là hội nghị thường niên dành cho các lập trình viên được tổ chức bởi Google tại California. Google I/O mang đến những bài thuyết trình chuyên sâu về công nghệ mà trọng tâm là phát triển web, nền tảng di động, và những ứng dụng ...

Hướng dẫn cài đặt SQL Server 2019
Vào ngày 24 tháng 9, Microsoft đã công bố việc phát hành SQL Server 2019 Community Technical Preview (CTP) 2.0. Nó rất thích hợp cho các chuyên gia về cơ sở dữ liệu để bắt kịp với công nghệ hiện đại. Chính vì vậy, bài viết hôm nay sẽ viết về SQL ...