Nested set model (góc nhìn khác cho mô hình category đa cấp)

Nếu bạn đã từng xây dựng mô hình menu đa cấp hay gì đó đại loại như xây dựng danh sách cấu trúc lồng nhau thì chắc hẳn bạn đã từng dùng đệ quy để làm việc này nhưng đệ qui là phương pháp không được khuyến khích dùng cho lắm vì nó rất hao tốn tài nguyên.Vậy có cách nào khác tối ưu hơn để giải quyết ...

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

Hướng dẫn cách tạo một Cocoapod

Các bạn chắc hẳn đã rất quen thuộc với khái niệm opensource cocoapod như Alamofire hay MBProgressHUD. Nhưng đôi khi bạn khó có thể tìm thấy một pod thoả mãn các chức năng mà bạn cần, hoặc bạn có thể muốn chia nhỏ một project thành các module nhỏ hơn và sử dụng lại các module đó ở các project khác. ...

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

Giới thiệu về thư viện load ảnh Glide và so sánh với thư viện Picasso

Trong sự kiện Google Developer Summit Thailand, Google đã giới thiệu đến chúng ta một thư viện load ảnh mới dành cho Android được phát triển bởi bumptech với tên Glide, đây là một thư viện mà Google khuyên dùng. Nó đã được sử dụng trong nhiều dự án mã nguồn mở của Google đến nay bao gồm cả sự kiện ...

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

Tìm hiểu gem Draper trong rails

Draper là 1 gem bổ trợ để viết code trông sáng sủa hơn khi bạn viết code với decorator. Bạn hoàn toàn có thể lựa chọn sử dụng hay không sử dụng draper hay decorator trong project của mình nhưng tốt hơn hết là nên sử dụng để đưa project của mình về đúng với bản chất của ruby on rails ( hướng đối ...

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

Phân tích thiết kế hệ thống thông tin sử dụng biểu đồ UML (Phần 2)

Trong phần 1 tôi đã giới thiệu với các bạn khái quát về phân tích thiết kế hệ thống thông tin sử dụng biểu đồ UML và 2 dạng biểu đồ ca sử dụng(Use Case Diagram) và biểu đồ lớp (Class Diagram). Trong phần này tôi sẽ tiếp tục giới thiệu tới các bạn một số dạng biểu đồ UML được sử nhiều trong các thiết ...

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

Hướng dẫn tạo Test Case (cơ bản)

1. Khái niệm Test Cases (TCs) là gì? Test Cases là 1 tập hợp các trường hợp điều kiện theo đó mà Tester có thể dựa vào nó để xác định liệu 1 ứng dụng, hệ thống phần mềm hoặc là 1 trong các tính năng của nó có hoạt động như mong muốn cần làm hay không? Các cơ chế để xác định liệu một ...

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

Rating với ratyrate gem, đơn giản và đầy đủ hơn

Để xây dựng một trang web có tính tương tác với người dùng, mong muốn người dùng đưa ra được ý kiến, đánh giá của mình về một bài đăng/ một sản phẩm nào đó, developer thường phát triển tính năng Rating. Tuy nhiên, để xử lý cả đống sự kiện ajax cũng như lưu vào database nghe qua có vẻ khá vất vả và ...

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

RecyclerView trong Android

** I. Tổng quan ** RecyclerView là một ViewGroup mới, nó là sự kế thừa và nâng cao của ListView và GridView được hỗ trợ trong support-v7 version . Một trong những ưu điểm nổi trội của Recycler là nó có khả năng mở rộng tốt hơn, nó có thể hiển thị dữ liệu theo cả chiều ngang và chiều ...

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

Code hiệu quả hơn với tính năng Live Template của Android Studio

Nếu bạn là một lập trình viên Android lâu năm, chắc hẳn bạn đã từng mắc lỗi này ít nhất 1 lần: Toast . makeText ( MainActivity . this , "This will not be displayed" , Toast . LENGTH_SHORT ) ; Nếu bạn chưa nhận ra cái dòng đấy lỗi ở đâu thì là do hàm show() chưa được gọi nên Toast sẽ ...

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

Tạo ra bảng lưu lịch sử thay đổi với ActiveModel::Dirty và CallBack

Trong ứng dụng có yêu cầu về bảo mật cao, yêu cầu ghi lại lịch sử thay đổi của các đối tượng chính trong hệ thống là cần thiết. Bạn phải xây dựng một bảng lịch sử ghi lại tất cả các thay đổi của đối tượng như: ID của đối tượng, các thuộc tính bị thay đổi, giá trị thuộc tính trước và sau khi thay ...

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

Convert Date (java.util.Date) to new date type Java 8: LocalDateTime, LocalDate, LocalTime.

Một trong những update feature của Java 8 là có 1 hệ thống class mới để thao tác với dữ liệu kiểu date. Dễ hiểu hơn, dễ sử dụng hơn, tốt hơn so với kiểu cũ. Nhưng chưa phải hầu hết các thư viện, framework build trên java đã support kiểu date mới. Vì vậy đôi khi chúng ta cần phải chuyển đổi kiểu ...

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

Nested comments rails

Bình luận là ở khắp mọi nơi. Blog, mạng xã hội, các trang web fan hâm mộ, các nguồn tài nguyên học tập - tất cả đều có một số loại của một hệ thống nhận xét. Thường thì chúng tôi muốn trình bày tùy chọn người dùng của chúng tôi để cả hai để lại nhận xét và trả lời là tốt. Cách tự nhiên nhất để đại ...

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

Xóa Nhiều Record Đã Lựa Chọn Bởi Checkbox Trong Rails 4

Trong qúa trình phát triển ứng dụng web với Rails, mình gặp một vấn đề cần giải quyết đó là xóa đi một số records mà người dùng lựa chọn trong danh sách các records thông qua checkbox. Có rất nhiều cách để làm việc này, dưới đây mình trình bày 2 cách đó là xóa thông thường không sử dụng ajax ...

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

Tạo ứng dụng Angular 2 với TypeScript

Hôm nay mình sẽ cùng các bạn xây dựng một ứng dụng Angular 2 với TypeScript. Nếu bạn chưa biết về TypeScript thì hãy đọc bài này https://viblo.asia/le.cong.phuc/posts/OEqGj50JM9bL trước nhé. Giờ các bạn đã sẵn sàng chưa nào? Chúng ta cùng bắt đầu nhé. Môi trường phát triển Trước tiên chúng ...

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

MVC Design Pattern

In this article I will try to focus on design pattern, its uses and the most commonly used design pattern. So, lets continue...... What is Design Pattern? The first thing when discussing something is to know the definition of that thing. So, what actually is the design pattern? Some definitions ...

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

Advanced SQL Queries

Sau đây, tôi sẽ giới thiệu cho bạn đọc một số câu lệnh SQL nâng cao mà có thể các bạn ít khi hoặc chưa dùng tới, nhưng sẽ rất là hữu ích ^^. Cùng tìm hiểu xem những câu lệnh đó như thế nào nha </p> <div class= Tác giả: Trịnh Tiến Mạnh viết 13:26 ngày 12/08/2018

Multiple authentication in Laravel 5.2

Vâng, shitpost mãi cũng chán rồi, dạo này trời nóng cũng chả có cái vẹo gì vui vẻ trong đầu được. Thôi hôm nay viết một bài-tạm-coi-là-tử-tế vậy Multiple authentication in Laravel 5.2 Đây là một tính năng mới, được đưa vào từ bản Laravel 5.2. Nếu như trong các phiên bản 5.1 trở về trước , ...

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

Android Wear và TizenWatch sự giống và khác nhau.

Android Wear có lẽ không quá mới lạ với các bạn qua các bài viết được một số bạn chia sẻ trên viblo trước đây rồi. Nhưng mình nghĩ trải nghiệm 1 thứ gì đó thú vị là chưa đủ, chúng ta cần có nhiều trải nghiệm hơn để có thể thấy được điều j là tuyệt nhất, điều gì là phù hợp với mình nhất ^_^ Ở ...

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

Alamofire

Đúng ra là như thế này. Nhưng lần đầu vô thì chưa có data. Chào các bạn trên Viblo, Cho mình hỏi có bạn nào đã dùng Alamofire để get Json về rồi pasre lưu vô coreData sau đó các bạn cập nhật kết quả lên trên UI (tableView )chưa? Mình đang gặp vấn đề là: khi debug mình thấy ứng dụng chạy ...

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

Làm việc hiệu quả, về nhà đúng giờ

Lời tựa: Là một lập trình viên, chắc hẳn việc chạy Deadline đã quá quen thuộc với các bạn phải không nào. Tuy nhiên vì Deadline mà hôm nào bạn cũng phải thức đêm thức hôm, ở lại công ty đến 12h, thậm chí overnight thì đúng là ác mộng (sohai). Không có thời gian nghỉ ngơi, không có thời gian cho ...

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