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

Một số vấn đề với Kotlin Android Studio

Ở đây ta nói về những vấn đề hiện tại và những hạn chế khi sử dụng Kotlin với Android Studio 3.0. Để biết thêm các vấn đề chung trong bản stable release của Studio Studio, hãy xem trang Known Issues. Để báo cáo một vấn đề, hãy vào đây xem cách báo cáo lỗi. Không thể build project với ...

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

Result Objects Pattern

Trong Ruby, errors và failures thường được implement bởi exceptions. Trong một số trường hợp, exceptions không phải là sự lựa chọn tốt nhất. Bài viết này sẽ trình bày một số vấn đề với exceptions và giới thiệu một giải pháp thay thế mang hướng lập trình hàm (functional) để giải quyết vấn đề xử lý ...

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

Use BUCK in Android projects to speed up your build-time.

Life is short to wait for the extra time to build our tech-systems, we need to speed up! In this trend, the giant tech companies are relying on their own customized build system. For example: Buck (Facebook), Bazel (Google) & Pants (Twitter) where the syntax of the 03 build systems are ...

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

Mối quan hệ đa hình trong Ruby on Rails (Polymorphic relationships)

Polymorphic relationships là một chủ đề bạn sẽ hầu như không đề cập suy nghĩ tới trừ khi bạn thực sự cần chức năng đó. Polymorphic relationship là nơi một mô hình có thể thuộc về nhiều mô hình khác trên một association. Ví dụ điển hình về điều này là bạn có nhiều thứ có thể được comment, ví dụ ...

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

[Ruby Cơ Bản] Ruby - Object Oriented

Ruby là một ngôn ngữ thuần hướng đối tượng. Tất nhiên, mọi thứ trong ruby đều là đối tượng. Mỗi một giá trị trong ruby là một Object,cả những kiểu dữ liệu primitive như: string, number hay là boolean. Thậm chí bản thân class cũng là một object kế thừa từ class Class. Trong bài viết này chúng ta sẽ ...

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

iOS Animation - Phần 7: Layer Animation với Group và Timing

Lời nói đầu Trong phần trước mình đã giới thiệu về cách tạo ra nhiều animation độc lập, đồng thời trên layer. Trong phần tiếp theo này, mình sẽ giới thiệu đến các bạn kỹ thuật để tạo ra nhiều animation đồng bộ với nhau về mặt thời gian. Cách tạo animation 1. Khởi tạo đối tượng ...

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

Các cách xem lịch sử commit trong git

Git là một công cụ tuyệt vời để quản lý các version của công việc, nếu bạn làm sai, bạn hoàn toàn có thể quay về một version trước đó, hoặc là khi làm việc trong cùng một nhóm, bạn không biết tiến độ công việc đến đâu rồi, chỉ cần mở lại lịch sử commit, và xem nội dung các commit gần đây. Để làm ...

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

Xây dựng ASP.NET Core app trên Linux sử dụng Visual Studio Code

Trong bài viết trước Asp.net Core những thay đổi lớn cho lập trình viên .NET tôi đã giới tới các bạn về ASP.Net Core với nhiều tính năng đáng giá. Trong số đó, việc hộ trợ đa nền tảng (cross-platform) là một trong những điểm quan trọng nhất. Trong bài viết này chúng ta sẽ đi tìm hiểu các cài đặt ...

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

Bắt đầu với ReactJs (Phần 1)

React là gì? React.JS là một thư viện Javascript dùng để xây dựng giao diện người dùng, nó không phải là 1 framework js nào hết. React hỗ trợ việc xây dựng những thành phần (components) UI có tính tương tác cao, có trạng thái và có thể sử dụng lại được. React được xây dựng xung quanh các ...

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

THỜI ĐIỂM THÍCH HỢP ĐỂ UPDATE LÊN WIN 10 CHÍNH LÀ NGAY BÂY GIỜ: AN TOÀN HƠN VÀ TIỆN ÍCH HƠN

Hiện nay, phần lớn máy tính nhiễm WannaCry đều chạy windows 7 và 8 và bị lỗi reboot. Tại sao lại như vậy? Là vì dòng chip mới nhất của AMD không tương thích với đường dẫn MFT của win 7. Vì vậy các bạn nên nâng cấp chiếc máy tính của mình nên win 10. Driver của win 10 hiện nay cũng có nhiều. Hơn nữa ...

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