Cắt nghĩa những khái niệm thông thường trong Ruby on Rails - Ước gì tôi được biết từ trước

Ruby on Rails giờ đây đã trở nên quá phổ biến với cộng đồng phát triển website, các lập trình viên web hoặc là newbie đôi khi cũng muốn ngắm nghía qua xem Ruby on Rails thực chất nó ra làm sao, mùi vị nó thế nào. Nhưng với Ruby on Rails(RoR) cũng có những khái niệm những người mới bắt đầu lại khá ...

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

Writing Java-friendly Kotlin code (Phần 3)

Generics , @JvmWildcard, @JvmSuppressWildcards Như chúng ta đã biết, Kotlin có declaration-site variance trong hộp công cụ của nó. Điều này có nghĩa rằng List<Dog> có thể được sử dụng thay cho List<Animal> mà không có bất kỳ kí tự đặc biệt nào, ngay cả <? extends …> ...

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

Những điều bạn có thể chưa biết về Node

1. Call Stack là gì, nó có phải là một phần của V8? Chuẩn, Call Stack chắc chắn là một phần của V8. Nó là một cấu trúc dữ liệu mà V8 dùng để lưu vết lại những function được gọi. Mỗi khi chúng ta invoke một function, V8 đặt reference của function đấy vào call stack và cứ tiếp tục làm như vậy đối ...

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

Các việc cần làm để review code hiệu quả

Mình đọc bài viết này khá thú vị về review code nên dịch lại chia sẻ cho anh em. Bài viết gốc tại đây: https://willowtreeapps.com/ideas/best-practices-for-effective-code-reviews Tại WillowTree, chúng tôi thường được hỏi về cách chúng tôi thực hiện việc review code và cách feedback về process khi ...

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

Design Patterns in Ruby: Observer

Đây là bài viết trong chuỗi bài viết về mẫu thiết kế trong phần mềm và áp dụng của chúng như thế nào vào Ruby. Mẫu thiết kế đầu tiên được giới thiệu là Observer Pattern. Theo wikipedia: The observer pattern (aka. Dependents, publish/subscribe) is a software design pattern in which an object, ...

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

Sử dụng MariaDB thay cho MySQL, tại sao?

Mã nguồn mở (miễn phí thực sự) Sử dụng MariaDB hay Mysql đều có 2 phiên bản thương mại và cộng đồng, tuy nhiên với MySQL bản thương mại (Entrerprise) và bản cộng đồng (miễn phí) có ngay từ những ngày đầu tiên của dòng sản phẩm này. Đó cũng chính là lý do mà MySQL được mua lại một cách dễ dàng từ ...

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

Object và Class - Phần 1

Chúng ta được học rằng Ruby là một ngôn ngữ hướng đối tượng, bắt nguồn từ các ngôn ngữ như SamllTalk và Simula. Mỗi giá trị là một đối tượng và tất cả các chương trình Ruby bao gồm một tập hợp các đối tượng và các thông điệp được gửi giữa chúng. Thông thường, chúng ta học về lập trình hướng đối ...

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

Một vài thủ thuật cải thiện performance cho Rails

Chúng ta biết rằng Ruby đã có nhiều cải tiến từ version 1.9 và đã được chứng mình là một option có khả năng mở rộng cho app web. Tuy nhiên, thực tế là nó vẫn chưa nhanh và không thể cải thiện sớm được, vì trong thời gian xử lý của Ruby phải đảm nhiệm quá nhiều nhiệm vụ và cơ chế garbage collection ...

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

Strings in switch Statements

Thông thường khi cần kiểm tra một biến int chẳng hạn, có bằng giá trị nào đó không để xử lý theo từng trường hợp, nếu lượng giá trị lớn thì thay vì dùng if else thì chúng ta thường dùng switch-case. int value; ................ switch (value) { case 1: // do something ...

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

Đôi điều về Laravel Model

Skip Model Event Giả sử bạn có định nghĩa một event trong model User như sau: public static function boot() { self::updated(function() { Log::info('User updated'); }); } Tức là mỗi khi bạn gọi update một đối tượng user như sau User::find($id)->update ...

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

Hướng dẫn tạo khoảng cách giữa các item cách đều nhau trong recycler view

Hôm nay mình sẽ hướng dẫn mọi người cách tạo khoảng cách đều giữa các item trong recycler view trong android. Thông thường khi tạo list các item, khoảng cách sẽ như sau Như các bạn thấy thì khoảng cách bên trên, bên phải, bên trái của item đầu tiên thì bằng nhau nhưng khoảng cách của item đó với ...

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

Design Patterns - Singleton pattern

Mẫu thiết kế Singleton đảm bảo rằng một lớp chỉ có một thể hiện (instance) duy nhất. Do thể hiện này có tiềm năng sử dụng trong suốt chương trình, nên mẫu thiết kế Singleton cũng cung cấp một điểm truy cập toàn cục đến nó. Cài đặt Mẫu thiết kế Singleton đơn giản và dễ áp dụng, chỉ cần bổ ...

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

Tải file mp3 từ Youtube bằng 1 câu lệnh Linux

Đôi lúc bạn không muốn nghe nhạc hay xem các video trực tuyến nữa mà muốn tải chúng về điện thoại để nghe offline bằng file mp3, thông thường bạn tìm đến Google và search ra một đống website chuyên convert từ Youtube video sang mp3, nhưng mình dạo 1 vòng thì thấy đầy quảng cáo khó chịu và rất nhức ...

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

5 extensions google chrome cho nhà phát triển web

Ai trong chúng ta cũng đã quá quen với Chrome! Đây là một trình duyệt nhẹ nhàng và nhanh chóng, một phần mềm gần như là bắt buộc phải có thời đại thông tin số, mọi thứ tập trung về nền web như hiện nay. Kể từ lúc ra đời và được phổ biến vào năm 2006 đến nay, Chrome đã phát triển mạnh mẽ từ một ...

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

Part 1: HOW TO RUN PERFORMANCE TESTS USING JMETER ON MOBILE APPS

Introduction: In this tutorial, we will look like overview of how to install and start Jmeter 3.2 and we will also learn about the basic Jmeter and how to run performance tests on mobile apps. What is Jmeter? JMeter is a 100% Java application, open source software, designed to load test for ...

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

Trình biên dịch Javascript JIT (Just-in-time)

Javascript khi mới ra mắt thì khá là chậm chạp, nhưng sau đó đã trở nên nhanh hơn nhờ vào một cái gì đó gọi là JIT. Vậy JIT là gì và làm thế nào để JIT làm việc? Chúng ta sẽ cùng đi tìm hiểu trong bài này. Làm thế nào Javascript được chạy trong trình duyệt Khi bạn thêm Javascript vào trang web ...

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

What is a URL?

Khi bạn cần định vị nhà của ai đó, bạn cần phải có địa chỉ nhà. Nếu bạn muốn gọi cho bạn chưa bạn, bạn cần có số điện thoại của bạn của bạn. Nếu không có thông tin đó, thì việc tìm nhà hoặc gọi điện thoại cho bạn của bạn là không thể. Hơn nữa, nếu bạn cũng cấp địa chỉ hoặc số điện thoại, bạn có thể ...

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

Quick example of Node.js, Express and MySQL

Regarding node, it illustrates the JS execution environment to install various nomads to use at the front at npm, but I tried to make it because it is possible to create a web server as well. Front end engineer node, npm are available for front-end use Little knowledge of infrastructure and ...

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

ECMAScript proposal: Pattern Matching

Currently, there's an ECMAScript proposal for pattern matching in JavaScript. The proposal's authors are Brian Terlson, who is also the author of the async/await feature, and Sebastian Markbåge. In this article, let's take a look at its current specs and syntax. The proposal is still at stage 0 ...

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

Xây dựng API với grape và grape swagger

Thêm vào trong Gemfile gem "grape" gem "grape-swagger" Để sử dụng gem, bạn cần một root API chính để mount các resouces khác Cấu trúc thư mục thì bạn bên để api/api.rb class API < Grape::API VERSION = name.downcase version VERSION, using: :path mount Users ...

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