Test model - Kiểm thử trái tim của project.
Mở đầu Đã có người từng nói với tôi rằng, "Bước vào một dự án mới, chưa cần tìm đọc nhưng file doc của dự án, nhưng chú giải, chú thích, ghi ghép...Mà chỉ cần xem thư mục Model của dự án là chúng ta đã hiểu được hệ thống đó hoạt động như thế nào rồi". Đương nhiên, tôi không hề phủ nhận tầm quan ...
Xây dựng Axios Clients một cách linh hoạt
Gần đây khi làm việc với Vue tôi có thời gian làm quen với Axios, đó là một thư viện thường hay sử dụng trong Vuex để thực hiện các tác vụ triệu gọi các API. Tôi thích xây dựng các mô-đun API JS cụ thể mà tôi có thể nhập vào các thành phần và mô-đun Vuex thay vì một cuộc gọi Axios được nướng trong ...
Giới thiệu thư viện play video youtube react-native-youtube
Trước đây, bạn nào đã từng code native, xử lý việc play video youtube, chúng ta cũng mất khá nhiều time để tìm tòi và xử lý code cũng khá là dài dòng. Nhưng trên React native, chuyện đó giờ đã trở nên đơn giản hơn rất nhiều với sự hỗ trợ của thư viện react-native-youtube và cách sử dụng cũng cực kỳ ...
Tạo checkbox hình Totoro siêu dễ thương
Trong bài viết này tôi sẽ giới thiệu cách để làm một checkbox siêu dễ thương, hình dáng giống Totoro, con vật trong bộ anime kinh điển của Nhật Bản "Hàng xóm của tôi là Totoro", kết quả như hình dưới đây: Mã HTML Cấu trúc HTML như sau: < div class = ' wrap ' > ...
Reflection trong Kotlin
1. Giới thiệu Với các bạn chưa biết thì Reflection là kỹ thuật cho phép chúng ta kiểm tra, dung nạp và tương tác với các class, field và method tại thời điểm runtime. Chúng ta thậm chí có thể làm được điều này kể cả khi chúng ta không hề biết tí gì về chúng tại thời điểm compile. Kỹ thuật này ...
Hướng dẫn tạo hiệu ứng các hạt chuyển động sử dụng thư viện Particles.js
Particles.js là một thư viện Javascript dùng để tạo ra hiệu ứng các hạt chuyển động. Particles.js là một thư viện mã nguồn mở và bạn có thể tạo ra các trang web dạng LandingPage đẹp mắt hoặc tạo ra hiệu ứng cho các phần của trang web. Trong bài viết này, mình sẽ chia sẻ cách sử dụng thư viện ...
Kết nối các thiết bị Android Things với smartphone bằng Nearby Connections Api
Một trong những thứ mà người sử dụng smart phone hiện nay mong muốn thực hiện được với chiếc điện thoại smart phone trên tay đó là kết nối không dây. Rất nhiều thiết bị IOT (internet of thing) không có bàn phím hay màn hình, nên cách hữu hiệu nhất để kết nối và điều khiển các thiết bị đó là kết nối ...
Kết hợp Kotlin Coroutine và Retrofit trong call api
Như đã giới thiệu ở bài trước về cách sử dụng Kotlin Coroutine trong Android thì ở bài này mình sẽ tiếp tục giới thiệu tới các bạn cách sử dụng Coroutine kết hợp Retrofit trong việc call api thay cho Rxjava. Bước 1: Thêm dependency của retrofit adapter cho Kotlin Coroutine implementation ...
Positive vs Negative vs Destructive Test Cases
Chúng tôi đã nói rất nhiều về tài liệu test. Nó là một phần không thể thiếu của kiểm thử phần mềm, và một trong những yếu tố chính đó là test case. Testcase là trình tự từng bước một người kiểm thử thực hiện để xác thực một phần mềm đang hoạt động như dự định hay không. Khi viết testcase, điều quan ...
Design Patterns - Null Object Pattern
Trong đối tượng Null Object, một đối tượng null thay thế kiểm tra đối tượng NULL. Thay vì đặt nếu kiểm tra giá trị null, Null Object phản ánh mối quan hệ không làm gì cả. Object Null này cũng có thể được sử dụng để cung cấp hành vi mặc định trong trường hợp dữ liệu không có sẵn. Trong Null Object ...
[Review sách] Lập trình cơ bản PHP và MySQL (cơ bản và nâng cao)
Kể từ khi ra đời vào năm 1995, PHP đã trở thành ngôn ngữ được giới lập trình yêu thích khi viết các ứng dụng web. Một số điều tra thực tế minh chứng rằng PHP hiện là ngôn ngữ lập trình thông dụng nhất. Chúng ta có thể thống kê có tới vài triệu website được viết bằng PHP, kể cả những site tiếng tăm ...
Xây dựng chức năng tự động suggest tag với ngôn ngữ tiếng Nhật
Mở đầu Do sắp tới dự án mình đang làm, KH mong muốn xây dựng chức năng tự động suggest keyword từ một đoạn text tiếng Nhật được nhập vào, và mình được giao cho nghiên cứu vụ này. Ban đầu mình cũng cảm thấy bế tắc vì mình không biết tiếng Nhật, cộng thêm xử lý ngôn ngữ tự nhiên cũng là một lĩnh ...
QuesXpert No.01: For Ruby Developers
Các thủ thuật tăng performance cho việc import data. Có nên import hàng loạt và bỏ qua validation không? Answer: Tính đến thời điểm hiện tại, Ruby cũng như Rails đã có nhiều gem hỗ trợ cho việc import, export data dễ dàng hơn trước. Có thể sử dụng những gem này để giúp cho việc import ...
Vim basic knowledge
1. Giới thiệu 1.1. Vim Là Gì Vim là chương trình soạn thảo văn bản (text editor) mạnh mẽ và được sử dụng phổ biến hiện nay. Vim được phát triển dành cho các bản phân phối của Linux (Linux distro) và sau đó mở rộng cho Windows. Trên hệ điều hành Ubuntu chạy trên Desktop, Vim được cài đặt mặc ...
QuesXpert No.02: For Mobile Developers
Synchronized trên Swift thì làm như thế nào? Nếu dùng synchonized với nhiều luồng trong app thì app rất dễ bị “đơ”, vậy làm thế nào để tránh được điều đó? Answer: Trong Swift đã không còn sử dụng từ khóa “Synchronized” nữa. Để thực hiện đồng bộ giữa các thread thì bạn ...
Elasticsearch Analyzers
I. Introduction Có lẽ khi làm việc với elasticsearch chúng ta đều đã ít nhiều từng nghe về analyzer, đây có thể được hiểu như là một công cụ của elasticsearch trong việc bẻ từ và cấu trúc dữ liệu giúp cho việc tìm kiếm text, khi chúng ta làm việc với text dưới các ngôn ngữ các khau. ...
Tìm hiểu về biến trong css
Những website lớn thường sẽ sử dụng rất nhiều CSS với lượng lớn giá trị bị lặp lại. Giả sử khi bạn muốn sửa màu chủ đạo của website thì rất có khả năng bạn sẽ phải sửa ở rất nhiều vị trí ví dụ như button, navbar, title,.... Điều này gây ra rất nhiều khó khăn khi code cũng như khi bảo dưỡng và duy ...
Kiến trúc web hiện đại
Trước đây một website đơn giản được tạo ra chỉ người dùng truy cập và sẽ trả về một trang html gồm text và hình ảnh cho người dùng, sau đó sẽ được hiển thị lên web browser. Những website này đơn giản chỉ cần một web application được lưu trữ trên một server, cùng với đó là một địa chỉ ip để người ...
Một vài vấn đề khi import csv phần 2
Tiếp nối phần trước (https://viblo.asia/p/import-csv-data-va-mot-vai-cau-chuyen-thuong-gap-phai-L4x5xNXYZBM), trong bài viết này, mình sẽ đề cập đến 2 vấn đề gặp phải khi thực hiện chức năng import csv. Bài toán ở đây là, với mỗi row, cần phải import vào 1 bảng chính (vd bảng User) và vài bảng ...
Putting Together a Golang App Part I
Introduction Being fast and simple gives Golang a very appealing attraction to developers. But being simple means that every decision must be made by developer; from organizing directory structure to database configuration to choosing application architecture ...etc. There are many debates as ...