Spring MVC - Hiểu nó theo cách đơn giản

Trong bài viết này mình xin chia sẻ chút kiến thức nền tảng của Spring MVC, giúp các bạn có thể hiểu được luồng đi của nó. Cơ chế xử lí Request và Response trong SpringMVC: Một ngày nọ bạn lướt web xem phim, bạn vô tình nhập vào đường link trong trình duyệt với nội dung là ...

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

Ứng dụng Google Maps chỉ đường từ nơi này đến nơi khác

Bạn có thể tính chỉ đường (sử dụng nhiều phương thức di chuyển khác nhau) bằng cách sử dụng đối tượng DirectionsService. Đối tượng này tương tác với Google Maps API Directions Service nhận yêu cầu chỉ đường và trả lại một kết quả chỉ đường chuẩn xác. Thời gian đi lại là yếu tố chính được ưu tiên, ...

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

Một số lưu ý khi viết RSpec

1. Viết miêu tả cho hàm Nội dung miêu tả RSpec phải được viết rõ ràng. Ví dụ như, nên sử dụng . (hoặc ::) khi đề cập đến tên class method và # khi đề cập đến tên instance method. # BAD describe 'the authenticate method for User' do describe 'if the user is an admin' do # GOOD describe ...

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

8 Xu hướng phát triển của ứng dụng trong năm 2018

Đợt này mình sẽ viết 1 bài khác chút so với những bài đã viết từ trước, đó là dự đoán xu hướng phát triển ứng dụng trong năm 2018, mặc dù đã qua được 2 tháng rồi nhưng rất có thể sẽ hữu ích với tất cả các bạn. Các bạn có thể tìm đọc các xu hướng về phần mềm của năm 2017, để xem độ chính xác ...

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

Eager loading get n related models per parent in Laravel

Đặt vấn đề Yêu cầu đặt ra khá đơn giản là mình có 1 bảng Post và 1 bảng Comment, 1 post có nhiều comments, bây giờ mình muốn lấy tất cả các bài post và mỗi bài post mình muốn lấy 1 comment mới nhất sử dụng Eager loading. Post::with([ 'comments' => function ($query) { ...

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

Giải thích về Javascript thời hiện đại cho khủng long

Đây là bài dịch, bài gốc mời các bạn xem ở đây: https://medium.com/the-node-js-collection/modern-javascript-explained-for-dinosaurs-f695e9747b70 Thời nay, việc học Javascript sẽ rất là khoai nếu như bạn không theo dõi từ đầu sự bùng nổ và phát triển của JS trong những năm gần đây. Hệ sinh ...

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

Pair programming

Pair programming lặp trình cặp (hay còn gọi là Pair programming) là một cách phát triển phần mềm, ở đó hai nhà phát triển cùng làm việc trên chỉ một máy tính, một người lái (driver), một người làm hoa tiêu (navigator). Người lái tập trung vào sách lước – viết cho mã nguồn chạy được, hoa tiêu tập ...

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

5 Laravel Helpers hữu ích đối với bạn

Bài dịch từ trang laravel-news.com Laravel cung cấp rất nhiều các helper function giúp cho bạn cảm thấy đơn giản hơn trong việc viết code, tôi khuyến khích bạn nên sử dụng chúng hàng ngày khi bạn làm việc với Laravel. Trong bài viết này tôi muốn chỉ ra một vài helper functions mà tôi thấy ổn. ...

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

Tạo My terminar sử dụng HyperTerm

Bài viết này tôi sẽ giới thiệu về customize của HyperTerm sử dụng js,html,css. Phương pháp cài đặt Bạn cũng có thể làm DL trực tiếp từ trang HyperTerm, hoặc DL bằng lệnh thông qua Homebrew Cask. brew update brew cask install hyper Windows cũng có thể DL thông qua chocolatey. choco ...

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

Fighting the Hydra of N+1 queries

Chúng ta hãy nói về vấn đề N+1 trong rails. Chúng tôi sẽ giới thiệu sơ qua với những bạn nào chưa biết, nói về cách kiểm soát vụ N+1 queries (cụ thể là bằng cách sử dụng bullet gem), ActiveSupport, và giới thiệu sơ qua về rspec-sqlimit gem. The Hydra N + 1 là gì? và nó xảy ra như thế ...

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

Snackbar Android

Link tham khảo : https://spin.atomicobject.com/2017/07/10/android-snackbar-tutorial/ Android Snackbar rất hữu dụng trong các trường hợp show error hay những thông báo nhỏ đến người dùng - đi cùng với nó là sự dễ dàng cài đặt. Đây là một bài hướng dẫn ngắn gọn cho việc cài đặt một Snackbar thông ...

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

Building Blockchain in Go. Part 2: Proof-of-Work

Proof-of-Work Ý tưởng chính của blockchain đó là việc đưa dữ liệu vào nó phải thật khó khăn. Bởi vì đó là công việc khó khăn nên nó làm cho blockchain an toàn và nhất quán. Ngoài ra, thì sẽ có một phần thưởng được trả cho công việc khó khăn này (đây là cách mọi người nhận được tiền coins cho ...

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

AngularJS với Rails cơ bản

I. Giới thiệu AngularJS là 1 thư viện javascript cực kì phổ biến, cho phép bạn nhanh chóng và dễ dàng để tạo ra các trang web, ứng dụng web phong phú. Trong bài viết này tôi sẽ chỉ cho bạn cách tích hợp AngularJS vào ứng dụng Rails của bạn. Tôi sẽ xây dựng 1 ứng dụng AngularJS đơn giản gọi là ...

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

Systrace - Công cụ giúp phân tích hiệu năng của ứng dụng Android(Phần 2)

Tiếp theo phần 1 về sử dụng Systrace để phân tích hiệu năng của ứng dụng Android (https://viblo.asia/p/systrace-cong-cu-giup-phan-tich-hieu-nang-cua-ung-dung-androidphan-1-3P0lPkLpZox) Ở phần 2 này mình sẽ trình bày cách phân tích 1 file systrace. Các thông số bạn cần quan tâm trong quá trình ...

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

[Java] Custom collector trong Java 8

Trong số các tính năng mới xuất hiện của Java 8, Stream được xem như một yếu tố tác động mạnh mẽ tới việc viết code của lập trình viên Java. Quá trình sử dụng Stream mang tính tuyến tính: stream được tạo ra từ một collection, nó được xử lý bởi một hoặc nhiều stream method, sau đó nó được thu hồi ...

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

HADOOP - CÀI ĐẶT HADOOP TRÊN UBUNTU (PHẦN 2)

Tôi viết tiếp theo phần 1 ở đây 3. Cấu hình các tập tin XML Hadoop Tất cả các file cấu hình hadoop nằm trong thư mục /usr/local/hadoop/hadoop-2.7.0/etc/hadoop Đầu tiên, thực hiện lệnh dưới đây: cd /usr/local/hadoop/hadoop-2.7.0/etc/hadoop Cấu hình tập tin core-site.xml: Mở tập ...

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

Hello Cucumber

Khi bắt đầu tìm hiểu một kĩ thuật mới, chúng ta thường có một ví dụ kinh điển là "Hello World", ở bài viết này mình cũng xin giới thiệu một ví dụ đơn giản "Hello Cucumber" để làm quen với Cucumber Cucumber cho phép người dùng định nghĩa hành vi hệ thống với ngữ nghĩa tiếng anh thông qua cú pháp ...

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

Bàn về quy cách đặt tên (Naming Convention)

Có một câu trích dẫn mà chắc hẳn nhiều người đã từng nghe đến: “There are only two hard things in Computer Science: cache invalidation and naming things.” – Phil Karlton. Đại ý là trong lĩnh vực Khoa học máy tính: cache invalidation (vô hiệu cache) và đặt tên là 2 cản trở lớn nhất. ...

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

Dàn trang bằng css flexbox

Trong CSS, nếu chúng ta muốn dàn layout của trang thì sẽ sử dụng các thuộc tính float và kỹ thuật clear float để chia cột website như ý muốn. Hoặc muốn thuận tiện hơn thì sử dụng các CSS Grid Framework để tiết kiệm thời gian. Nhưng đôi khi việc chia cột đôi khi rất tốn thời gian với kỹ thuật truyền ...

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

Tìm hiểu về Jquery Validation (Phần 2)

Ở bài chia sẻ trước, tôi đã chia sẻ cho các bạn một bài tính năng cơ bản của Jquery Validation. Ở phần 2 này, tôi sẽ giới thiệu cho bạn một vài customize option của Jquery Validation để chúng ta có thể sử dụng Jquery Validation trong mọi trường hợp. Submit Form Sau khi form đã hoàn thành việc ...

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