
Rails Service Object
Trong lập trình Rails, chắc hẳn các bạn từng biết đến kiểu thiết kế này rồi chứ fat models, skinny controllers. Ban đầu nó có vẻ khá hợp lý và đơn giản vì chúng ta chỉ cần đưa tất cả logic cần xử lý vào model là xong, đó là việc của model mà quá dễ. Tuy nhiên đôi khi ta gặp những thứ phức tạp hơn, ...

Những thứ mới ở Chrome 56
Như các bạn biết thì thế giới luôn thay đổi và công nghệ thì càng thay đổi nhanh chóng. Chrome giờ đã là browser được sử dụng phổ biến nhất hiện nay. Nó là 1 trình duyệt web tốc độ, nhanh, đơn giản và an toàn được tạo ra dành cho web hiện đại. Chrome luôn được cập nhật để có thể tích hợp được ...

Cấu trúc của các component trong Rails và các cách refactor code với các Ruby object - Part 2
Trong bài viết trước tôi đã trình bày với các bạn về tổng quan cấu trúc cơ bản của một Rails project. Hôm nay tôi sẽ giới thiệu với các bạn các cách refactor code bằng các kĩ thuật với object: Form object, Service object, Query object, Decorator/Presenter, Value object. Trước khi đi sâu vào việc ...

Tổng quan về TDD
Phát triển hướng kiểm thử TDD (Test-Driven Development) là một phương pháp tiếp cận cải tiến để phát triển phần mềm trong đó kết hợp phương pháp Phát triển kiểm thử trước (Test First Development) và phương pháp Điều chỉnh lại mã nguồn (Refactoring). Mục tiêu quan trọng nhất của TDD là hãy nghĩ về ...

Series Hướng Dẫn Lập Trình Ruby on Rails (Phần 5)
Chào các bạn, hôm nay mình sẽ tiếp tục phần 5 của Series Hướng dẫn lập trình Ruby on Rails nhé. Ở phần trước chúng ta đã thực hiện project login_app hoàn thành bước đăng ký User, như vậy là trong db của chúng ta đã lưu thông tin User với name và password bây giờ chúng ta sẽ xây dựng chức năng ...

Cơ bản về Exception trong Ruby
Exception là một khái niệm không lạ trong Ruby, có thể bạn đã từng sử dụng nó nhưng có chắc bạn biết chính xác Exception là gì hay tại sao nó lại hữu dụng. Nếu chưa, hy vọng bạn sẽ tìm thấy câu trả lời sau khi đọc bài viết này. Exception là gì? Exception dịch sang tiếng việt là ngoại lệ, là ...

Nguyên lý SOLID cho thanh niên code "cứng"
Trong quá trình học, hầu như các bạn sinh viên đều được học một số khái niệm OOP cơ bản như sau: Abstraction Encapsulation Inheritance Polymophirsm Những khái niệm này đã được dạy khá rõ ràng, và hầu như những buổi phỏng vấn nào cũng có những câu hỏi liên quan đến khái niệm này. Vì 4 khái ...

Real Device Vs Emulator Testing: Ultimate Showdown
Thử nghiệm thiết bị thật: Thử nghiệm trên thiết bị thật cho phép bạn chạy các ứng dụng di động và kiểm tra chức năng của nó. Kiểm thử thiết bị thật đảm bảo rằng ứng dụng của bạn sẽ hoạt động thông suốt trên thiết bị của khách hàng. Emulators: Emulator là một chương trình cho phép thiết bị ...

Làm sao để lựa chọn dịch vụ Cloud
Đừng quá lo lắng, trông có vẻ khó nhưng thực ra nó đơn giản hơn rất nhiều so với nó . Mỗi nhà cung cấp điện toán đám mây đang hướng tới mẫu khách hàng và cách sử dụng khác nhau. Với tôi, tôi nhóm các nhà cung cấp điện toán đám mây theo loại như phía dưới. Và tôi sẽ giải thích mục đích của mỗi loại ...

RESTFUL Web API Standards
1. API là gì? API là chữ viết tắt của Application Programming Interface (giao diện lập trình ứng dụng), nó là các cổng giúp các hệ thống có thể giao tiếp với nhau. Ví dụ khi bạn muốn lấy danh sách bạn bè trên Facebook thì đương nhiên bạn không thể nào truy vấn vào dữ liệu của Facebook được mà ...

Sử dụng select, reject, detect, collect hay inject
Hôm rồi làm task sau đẩy pull, mình có gặp một comment là thay vì dùng map thì chuyển sang dùng inject. Lúc ấy, cũng không rõ tại sao lại phải dùng thay thế như vậy. Vì thực sự khi làm mình rất ít khi dùng inject. Hồi sau mò lên bác google search các kiểu xem nó khác nhau như nào, tại sao phải dùng ...

Sử dụng gem Makara cho cơ sở dữ liệu nhân rộng
Hầu hết các trang web lớn hiện giờ, để tăng tốc độ truy xuất cơ sở dữ liệu, đều có sử dụng mô hình cơ sở dữ liệu nhân rộng _ database replication. Bao gồm một cơ sở dữ liệu master và nhiều cơ sở dữ liệu mở rộng gọi là slave. Master và slave cùng chia sẻ data và schema và luôn giữ trạng thái thống ...

UmbrellaJS là sự thay thế của bạn cho jQuery
Bài viết có tham khảo nguồn UmbrellaJS is Your Alternative to jQuery. Các thư viện mã nguồn mở jQuery đã chiếm ưu thế phát triển web trong nhiều năm qua, nó vẫn là một trong những mã nguồn đáng tin cậy nhất cho JavaScript . Nhưng bây giờ, chúng ta có một thư viện mới tên là UmbrellaJS ...

Các loại service trong AngularJS
Trong AngularJS có nhiều loại service. Và mỗi loại thì đều có cách dùng của nó. Tại sao chúng ta lại quyết định chọn A thay vì B. Với tính chất này thì nên dùng service nào. Kiểu như vậy. Cùng điểm qua một lượt các loại service trong Angular nhé. Provider, Factory, Service, Constant, Decorator, ...

Dynamic Dependant Select Box using JQuery Ajax Example
Hello cả nhà, hôm nay mình xin mạn phép đề cập đến một chủ đề trong Laravel đó là làm thế nào để tạo một select box động. Sao lại gọi là động? Mình ví dụ thế này, khi bạn cập nhật thông tin cá nhân, sẽ có rất nhiều ô input cho bạn chọn. Nếu bạn đã chọn countries (đất nước) thì ở ô cities(thành ...

Node.js Tutorial: Phần 4: Express framework
Giới thiệu Express Framework Express là một web application framework for nodejs, nó cung cấp cho chúng những rất nhiều tính năng mạnh mẽ trên nền tảng web. Express rất dễ dàng để phát triển các ứng dụng nhanh dựa trên Node.js cho các ứng dụng Web. Express hỗ trợ các phương thức HTTP và ...

Tạm biệt OOP, chào đón POP
1. Tại sao nên từ bỏ OOP: OOP thật sự sự rất tuyệt vời, trái tim của Cocoa chính là OOP, không có OOP chúng ta không thể viết được 1 ứng dụng iOS nào. Nhưng với OOP vẫn có những điều chưa thật sự tốt. 1.1 Những hạn chế của OOP: Khi bạn tạo 1 subclass từ 1 class bạn phải kế thừa cả thuộc tính ...

Spring security remember me
Hôm nay mình xin chia sẻ kỹ thuật login remenber username password trong spring security. Cơ chế hoạt động của spring remember me tiện lợi hơn cho người dùng khi muốn quay trở lại sử dụng ứng dụng mà không cần login. Cụ thể khi người dùng lần đầu tiên login thành công thì ứng dụng sẽ tạo ra một ...

Cẩm nang tạo nên GoodUI! [Last]
Tiếp tục cho nội dung phần trước, tôi bổ sung thêm một vài yếu tố vào mục Cẩm nang này của chúng ta nhé. Nhấn mạnh thông báo countdown thời gian Con người dễ bị chi phối bởi thời gian, khi muốn định hướng người dùng đến một hành động nào đó, thì giống như hẹn giờ báo thức, người dùng ...

Tìm hiểu về Smart Deploy trong Seasar
Xin chào mọi người, Trong tháng này, em có được làm việc với một task liên quan đến Smart Deploy tron Seasar. Task này yêu cầu em phải check được môi trường em đang làm việc là môi trường Dev hay môi trường Production. Vậy em xin chia sẻ một chút hiểu biết mà em đã học được về** Smart Deploy** ...