
Continuous Integration with Jenkins - Bài 2: Cài đặt và cấu hình Jenkins
Chào các bạn! Chúng ta lại gặp nhau trong phần 2 của loại bài viết về Continuous Integration with Jenkins của mình. Ở bài 1, chúng ta đã được giới thiệu về CI, các ưu điểm và khó khăn khi triển khai CI trong phát triển phần mềm. Mình cũng đã giới thiệu về Jenkins - một open source cho CI server, ...

[NodeJS]Use GraphQL with ExpressJS
Mở đầu Ở phần trước mình đã giới thiệu về GraphQL, phần này mình sẽ hướng dẫn cách tích hợp graphql vào project expressjs sử dụng mongodb. Tạo project bằng ExpressJS express --view=pug graphql-express Cấu trúc project: public: Assest folder routes: Chứa các routes schema: ...

Jbuilder
Trước đây, việc tạo nguồn cấp dữ liệu JSON thích hợp có thể rất phức tạp. May mắn thay Ruby on Rails làm cho giao dịch với JSON dễ dàng hơn nhiều. Hôm nay chúng ta sẽ học cách sử dụng gem JBuilder , cho phép chúng ta dễ dàng xây dựng các nguồn cấp dữ liệu phức tạp. Trước tiên, chúng ta cần phải ...

Code Smells - Part 1 - Long Method
Joker: What? How can code "smell"?? Developer: Well it doesn't have a nose... but it definitely can stink! Definition Code smell hay bad code (dịch nôm na là code bốc mùi hay code xấu) trong lập trình, đề cập đến bất kỳ triệu chứng bất ổn nào bên trong mã nguồn của một chương trình, mà vì ...

Immutability Helpers - Reactjs
Importing import update from 'react-addons-update'; // ES6 var update = require('react-addons-update'); // ES5 with npm note: update là một add-on và không liên quan đến react. Tuy nhiên nó thường được sử chung với react. Overview React cho phép ta sử dụng bất kì kiểu quản lý dữ liệu nào ...

Lập trình C cho hệ thống nhúng (P5- Serial Interface trong V850E)
1.Giới thiệu về UART Bài viết này sẽ giới thiệu cho các bạn về các khái niệm về truyền thông nối tiếp UART và cách sử dụng truyền thông nối tiếp trên V850. Định nghĩa Thuật ngữ USART trong tiếng anh là viết tắt của cụm từ: Universal Synchronous & Asynchronous serial Reveiver and ...

Triển khai website lên Amazon Cloud
Ngày nay cloud đã trở lên …bla bla… Nhìn chung lợi ích của việc sử dụng cloud thì rất là nhiều, nhưng xét trên góc nhìn của 1 developer thì nổi bật nhất đó là “không phải quan tâm quá nhiều tới infra”. Sau khi code xong một web application, chúng ta chỉ việc upload đống ...

Locking with rails
Mình có lướt FB và có 1 xem đc 1 câu hỏi của 1 bạn khá hay như sau: Vậy câu hỏi đặt ra là tại sao tài khoản của 1 vài người bị âm. Và cách khắc phục như thế nào? Đầu tiên hãy giả sử Tôi là khách hàng và trong tài khoản của tôi có 10 triệu VND. Tôi bắt đầu truy cập vào 1 trang web mua hàng online ...

Reactjs - Bài 1 - Helloworld
1.Giới thiệu về React React là một thư viện javascript được phát triển bởi Facebook, dùng để xây dựng giao diện người dùng(User Interface – UI). UI tất nhiên là quan trọng, nhưng không phải là tất cả. Để phát triển ứng dụng hoàn chỉnh, một mình React Js là không làm được tất cả, bạn sẽ cần ...

Tìm hiểu về Phaser
1.Phaser là gì? Phaser là một HTML5 game framework mã nguồn mở. Phaser sử dụng Pixi.js để rendering trên WebGL và Canvas , Phaser hỗ trợ các trình duyệt web trên cả desktop và mobile. Game được phát triển bởi Phaser có thể dễ dàng được biên soạn thành ứng dụng cho iOS, Android và desktop thông ...

Sự phát phì của phần mềm (software bloat), thực trạng, nguyên nhân và quản lý.
Thời gian gần đây, trên phương tiện thông tin đại chúng, ở các quán cafe hay lúc trà dư tửu hậu, một chủ đề mà người ta thường nói nhiều là tình trạng béo phì của trẻ em, của người lớn. Những chiếc ghế trên xe buýt, trên tàu hỏa, hay trên những chuyến bay giá rẻ trở nên chỉ còn phù hợp khi 2 chiếc ...

Khi nào cần đánh index trong cơ sở dữ liệu
Các dự án Rails ban đầu thường sẽ hoạt động nhanh và ổn định. Nhưng sau khoảng vài tháng, khi số lượng người dùng sản phẩm bắt đầu tăng lên, các web request sẽ trở nên chậm hơn, việc sử dụng CPU của cơ sở dữ liệu tăng lên quá cao. Điều này dẫn đến việc, mặc dù chúng ta không thay đổi gì nhưng sản ...

Một vài method hay trong rails
1. Mở đầu Sau đây mình xin giới thiệu 1 vài method hay trong rails (Hay sử dụng hoặc hay ho) 2. Sử dụng Object#try(:method_name) thay vì kiểm tra nil if parent . children && parent . children . singleton ? singleton = parent . children . first send_mail_to ( singleton ) ...

Top 8 tools for Ruby on Rails code optimization and cleanup
Giữ code của bạn sạch sẽ và tổ chức cấu trúc tốt trong khi phát triển một ứng dụng Rails lớn là một thách thức ngay cả đối với một lập trình viên có kinh nghiệm. Thật may mắn, có một số gem giúp chúng ta trong công việc này trở nên dễ dàng hơn. Đa số lập trình viên đều tạo ra những "mã chết" ...

Rails refactoring
I. Đặt vấn đề: Website bạn phát triển ngày càng lớn, cùng với đó là số người trong team cũng dần tăng lên. Bạn nhận thấy app design theo style "Fat models, skinny controllers" ngày càng khó khăn và nhiều bug. Hôm nay chúng ta sẽ thảo luận xem sử dụng PORO (Plain Old Ruby Object) như thế nào ...

Giới thiệu về ReactJS - Phần I (Các khái niệm cơ bản)
React.js là một thư viện Javascript đang nổi lên trong những năm gần đây với xu hướng Single Page Application. Trong khi những framework khác cố gắng hướng đến một mô hình MVC hoàn thiện thì React nổi bật với sự đơn giản và dễ dàng phối hợp với những thư viện Javascript khác. Nếu như AngularJS là ...

Kỹ thuật tối ưu xử lý Javascript khi resize Browser
Vấn đề gặp phải. Khi bạn làm việc với jQuery window resize. Ví dụ <script> $(window).resize(function(){ console.log(1); // Your code }) </script> Khi bạn viết như trên thì vấn đề gặp phải ở đây là mỗi lần bạn kéo trình duyệt 1px. Code của bạn sẽ chạy 1 lần. ...

Xây dựng website bằng Nodejs và Express
Chắc hẳn các bạn đã nghe nhiều đến Nodejs - một nền tảng server side được xây dựng từ nền tảng Javascript, hôm nay tôi sẽ giới thiệu đến các bạn một cách nhanh chóng để xây dựng website bằng Nodejs. Trước hết, hãy chắc chắn rằng bạn đã cài Nodejs và npm, nếu chưa, bạn có thể tham khảo cài Nodejs và ...

Level up your Sass with the ampersand
Như mình đã từng giới thiệu về CSS Preprocessor ở bài viết CSS Preprocessor - SASS (SASS & SCSS . Ở bài viết đó mình đã giới thiệu một số khái niệm căn bản về SASS. Về phần Parent selector mình có giới thiệu qua công dụng của dấu & (ampersand) nhưng chỉ sơ qua và căn bản (vì lúc đó mình ...

Cách dùng một class để refer config var
Như chúng ta đều biết thì ở hầu hết các app có một class để refer đến những thuộc tính được setup sẵn, ví dụ: thông tin về Database, Email, Environment, ... Thông thường tất cả những thông tin đó được store vào một file yaml và được class này đọc, nhưng trong bài viết này mình sẽ hard code luôn ...