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, ...

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

[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: ...

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

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 ...

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

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ì ...

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

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 ...

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

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 ...

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

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 ...

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

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 ...

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

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ác giả: Trịnh Tiến Mạnh viết 15:23 ngày 12/08/2018

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 ...

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

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 ...

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

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 ...

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

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 ) ...

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

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" ...

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

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 ...

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

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à ...

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

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. ...

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

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à ...

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

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 ...

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

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 ...

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