Javascript async và defer
Javascript là 1 trong những tài nguyên chặn trang, có nghĩa là việc hiển thị HTML có thể bị chặn hay làm chậm bởi Javascript. Khi parser đọc đến <script> tag, bất kể là inline hay là external file, quá trình parse sẽ tạm dừng để fetch script đó về và execute. Việc này có thể là vấn đề nếu ...
Laravel: Eloquent relationships
1. Vấn đề Input : Cho 2 bảng: Categories (id, name,..) và Posts (id, category_id, title, digest,..) có quan hệ 1-N. Output : Lấy ra danh sách categories, với mỗi category kèm theo 1 post mới nhất. 2. Thực hiện Quan hệ 1-N giữa 2 bảng được định nghĩa như sau: // Category model ...
GUIDELINES, BARRIERS, CHAINS AND GROUPS trong CONSTRAINTLAYOUT
ContraintLayout hẳn đã còn còn lạ lẵm đối với mỗi chúng ta, dù có thể các bạn chưa dùng nó lần nào nhưng tôi chắc rằng bạn đã từng thấy hoặc nghe qua về nó. Tôi sẽ chỉ nói qua về nó như sau. ContraintLayout nằm trong gói thư viện android support tương thích với API level 9 trở lên, loại viewgroup ...
Tiện dụng, tuyệt vời hơn khi sử dụng OneSignal thay Firebase trong `Push Notification`
Tác giả đã dùng thử OneSignal- một service Push Notification được Y Combinator đầu tư và đang phát triển cực kỳ nhanh chóng. Cũng miễn phí giống như Firebase, nhưng OneSignal lại có tính mềm dẻo linh hoạt như Parse (A/B Test, Tự động gửi tin, User Property ...) Vướng mắc của Firebase (Property ...
Tìm hiểu mô hình xoắn ốc Win - Win (Win – Win Spiral Model)
I. Tổng quan mô hình xoắn ốc Win - Win Là mô hình nhằm thỏa hiệp giữa người phát triển và khách hàng, cả hai cùng Win (tức là đôi bên cùng có lợi). Mô hình này sử dụng lý thuyết W( win-win) để phát triển phần mềm và những yêu cầu hệ thống, giải pháp kiến trúc, như những điều kiện thắng đã ...
Hướng dẫn về Web Components
Bài viết được dịch từ bài gốc: A Guide to Web Components của tác giả Rob Dodson, được đăng trên trang CSS-Tricks. Bài viết dưới đây là của một vị khách, Rob Dodson (@rob_dodson). Rob và tôi đã thảo luận về cách CodePen hỗ trợ để Polymer (một web components polyfill, đại loại vậy) hoạt động trên ...
Angular 2 căn bản - Phần 1: Giới thiệu về angular 2 và tạo web app đơn giản
1. Angular 2 là gì? Như các bạn đã biết, hiện có rất nhiều các framework về javascript trên thị trường như ReactJS, Vue.js, AngularJS.... Và trong bài viết này, mình sẽ giới thiệu đến các bạn một trong những framework được cho là tốt nhất hiện nay, đó là Angular 2. Và phiên bản này của Google ...
Software Development Process Model - Part 1
Software Life Cycle Phases Requirements, analysis, and design phase. System design phase. Program design phase. Program implementation phase. Unit testing phase. Integration testing phase. System testing phase. System delivery. Maintenance. The software process A structured ...
Kotlin Tips : Sử dụng Singleton, Utility Functions, Group Object Initialization và nhiều hơn nữa
Tất cả những Tips này để hỗ trợ các bạn viết code Kotlin trở nên tốt hơn và sử dụng tối đa những gì mà ngôn ngữ cung cấp. Có rất nhiều lợi ích cho Android Developer chúng ta khi sử dụng Kotlin như ngắn gọn, súc tích, an toàn và quan trọng hơn nó có thể tương tác với Java 100%. Và ngôn ngữ này ...
Databases on Android with Anko and Kotlin
Chào mọi người, hiện tại kotlin đã được google support trực tiếp và công nhận là một ngôn ngữ để phát triển android. Trong bài viết này, mình sẽ chia sẻ một vấn đề mà chúng ta rât hay gặp phải khi làm việc với android đó là database. Vậy với kotlin thì làm việc với database như thế nào cho tiện ...
Điều khiển thời gian với gem timecop
Khi viết unit test với rspec trong ứng dụng ruby on rails đôi khi sẽ gặp phải một số case thao tới với thời gian(Date time) mà ta khó có thể control được nó. Ví dụ như chỉ được tạo bản ghi sau 5 phút kể từ khi có request, nhưng khi viết spec sẽ có thêm một case thời gian là invalid - thường thi ở ...
7 pattern để cấu trúc lại ActiveRecord Models
Khi team muốn nâng cao chất lượng ứng dụng Rails, chúng ta phải tìm cách để loại bỏ thói quen làm model trở lên Fat. Fat models là gây ra các vấn đề về bảo trì trong các ứng dụng lớn. Vì sao Model lại Fat ? 1. Áp dụng sai SRP Chỉ gia tăng chứ không tập hợp các controllers vào theo miền ...
Sử dụng gem Pundit trong ứng dụng rails
Khi được giao cho làm một chức năng liên quan đến phân quyền. Mình bị comment và được suggest sử dụng Pundit. Lúc đấy cũng thắc mắc tự hỏi, sao lại dùng nó làm gì nhỉ, dùng thì được lợi ích gì chứ? Cũng từ lúc ấy, mình mới bắt đầu tìm hiểu về Pundit là gì? Dùng như thế nào và tại sao lại nên dùng ...
Unit test Nodejs project with mocha, chai, supertest and sinon
Hiện nay việc viết unit test là một phần không thể thiếu trong mỗi dự án. Điều đó cũng cần thiết khi chúng ta thực hiện deploy với hệ thống CI/CD. Hôm nay mình sẽ giới thiệu qua việc viết test api với cho Nodejs project với mocha, chai, supertest và sinonjs. Getting started Trước tiên cần chuẩn ...
Một số thủ thuật khi làm việc với Chrome DevTools
1. CSS Coverage Tính năng này khá hữu ích. Nó giúp chúng ta nhận biết được đoạn css hay js nào trong app mà chúng ta không dùng đến từ đó chúng ta có thể xóa block css đó đi để làm nhẹ file, 1 phần nào đó giúp tăng performance. Lưu ý: Đối với những file JavaScript thì chúng ta cũng làm ...
JPA tut
Table Of Contents Introduction Project setup Basics 3.1. EntityManager and Persistence Unit 3.2. Transactions 3.3. Tables Inheritance Relationships 5.1. OneToOne 5.2. OneToMany 5.3. ManyToMany 5.4. Embedded / ElementCollection Data Types and Converters Criteria API Sequences ...
Facial Recognition System: Face Alignment
In my last post I've shown how to identify the face from the given image or video. In this post we are going to talk about "Face Alignment" which is a normalization technique, often used to improve the accuracy of face recognition algorithms, including deep learning models. A process of facial ...
Tìm hiểu về testNG framework (Phần 4)
A. TestNG Parameters Mọi người đều biết tầm quan trọng của Parameterization trong thử nghiệm và trong kiểm thử tự động hóa. Nó cho phép chúng ta tự động chạy một trường hợp thử nghiệm nhiều lần với các giá trị đầu vào và xác nhận khác nhau. Vì Selenium Webdriver là một khuôn khổ thử nghiệm tự ...
Optional trong Swift
Chắc hẳn các bạn đã được nghe rất nhiều từ những lập trình viên Swift nói về sự tuyệt vời của Optional, một trong những đặc điểm cơ bản của ngôn ngữ lập trình Swift. Optional là một khái niệm mới trong ngôn ngữ lập trình Swift. Với việc sử dụng optional, ngôn ngữ Swift được Apple giới thiệu là ngôn ...
ASP.NET MVC Tip #8 – Tạo ASP.NET MVC GridView Helper Method
Trong thủ thuật này, bạn sẽ tìm hiểu làm thế nào để mở rộng ASP.NET MVC framework với một phương pháp helper mới sẽ hiển thị một bảng HTML của dữ liệu trong cơ sở dữ liệu. Hiện nay, framework ASP.NET MVC không bao gồm bất cứ điều gì đó là tương đương trực tiếp đến ASP.NET Web Forms GridView ...