Top những tricks giúp bạn code Ruby ở một đẳng cấp cao hơn

Ruby là một ngôn ngữ lập trình không hề dễ nhằn đối với một lập trình viên chuyển từ một ngôn ngữ như Java , Python hay PHP . Đó là bởi tính độc đáo của Ruby . Ruby được Yukihiro Matsumoto tạo ra nhằm mục đích khiến cho lập trình viên cảm thấy hạnh phúc hơn, vì code của nó rất gần với ...

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

Tìm hiểu về Reselect và ý nghĩa của nó

Reselect là một thư viện được sử dụng để tạo ra các memoized selector. Đây chỉ là một cách nói hài hước về việc nó lưu trữ các kết quả của một hàm gồm biến truyền vào. Nó thường được sử dúng với Redux, và thuật ngữ "selector" thường được sử dụng trong hệ sinh thái Redux, đề cập đến cách chọn một ...

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

Có gì mới ở Google I/O 2018 (Phần 1)

Google I/O là ngày hội thường niên của toàn thể các android developer trên toàn thế giới, Bắt đầu từ 2008 đến nay, Google IO là ngày mà hàng triệu con tim luôn ngóng chờ. Vừa qua từ 08/05/2018 - 10/05/2018 Google I/O 2018 đã được tổ chức tại Shoreline Amphitheater - một giảng đường ngoài trời nằm ...

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

Sử dụng Laravel Collections trong JavaScript với Collect.js

Chào mọi người, một tháng lại đi qua, mình đã trở lại và ăn hại gấp đôi (hehe). Trong quá trình phát triển các ứng dụng, chắc hẳn bạn đã từng phải xử lý các thao tác tính toán, tìm kiếm, sắp xếp, ... phức tạp trên một tập dữ liệu. Việc này có lẽ đã khiến cho bạn tốn kha khá thời gian. Chính vì ...

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

Rails transactions

Giới thiệu Rails transaction là một cách để đảm bảo một tập các thao tác trên database chỉ được thực hiện khi mà tất cả đều thành công. Nếu không, dữ liệu sẽ rollback về trạng thái trước đó. Cách dùng cơ bản: ActiveRecord::Base.transaction do david.update!(money: david.money + 100) ...

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

Bài 2: Tự tạo component và binding data cho component

Chào các bài đến với bài tiếp theo của mình, ở bài trước mình đã hướng dẫn các bạn Cài đặt Vue và chạy chương trình Hello world đầu tiên. Ở bài này chúng ta sẽ cùng thử tạo một component, khai báo sử dụng và binding data cho nó nhé. Để khai báo mới một component trước hết chúng ta cần tạo một ...

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

Bài 5: Sử dụng computed trong VueJS, sự khác nhau giữa computed và methods

Chào mừng các bạn quay trở lại với series học VueJS của mình. Ở bài trước chúng ta đã tìm hiểu cách sử dụng của methods trong Vue, bài này chúng ta sẽ tìm hiểu về computed, cách sử dụng và so sánh sự khác nhau giữa computed và methods Khi component được khởi tạo thì computed sẽ được biến đổi ...

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

Tìm hiểu về Flutter

Android là một trong những hệ điều hành phổ biến nhất trên thế giới ở nền tảng di động, nhưng nó không chỉ là hệ điều hành duy nhất. Nếu bạn muốn ứng dụng của mình tiếp cận đến người dùng nhiều nhất có thể, thì bạn phải cung cấp ứng dụng của mình trên các nền tảng khác, bao gồm cả ios.. ...

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

Cách đơn giản để mã hóa thuộc tính của model trong Rails

Giới thiệu Khi lưu trữ project trên các public repo việc để các dữ liệu ở plain text thì mình thấy không an tâm lắm, nên mình sẽ tìm cách mã hóa chúng. Trong bài viết này, mình xin giới thiệu cách sử dụng module Cipher của thư viện openssl được cung cấp mặc định trong Ruby để mã hóa các dữ liệu ...

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

Kotlin hiệu quả: Sử dụng Sequence cho các collections lớn với nhiều bước xử lý

Mọi người thường bỏ lỡ sự khác biệt giữa Iterable và Sequence. Nó có thể giải thích được. Đặc biệt là khi bạn so sánh định nghĩa Iterable và Sequence: interface Iterable<out T> { operator fun iterator(): Iterator<T> } interface Sequence<out T> { operator fun iterator(): ...

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

Một số tip để viết AJAX tốt hơn

AJAX - Asynchronous JavaScript and XML hoặc nghĩa tiếng việt là Javascript và XML không đồng bộ. Nó là một nhóm các công nghệ phát triển Web được sử dụng để tạo các ứng dụng Web động hay các ứng dụng giàu tính Internet (Wikipedia). Ajax được sử dụng trong các trường hợp mà bạn không muốn tải lại ...

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

Những lệnh Git cơ bản cần nhớ

1. Cơ bản vê Git Git là tên gọi của một Hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS) là một trong những hệ thống quản lý phiên bản phân tán phổ biến nhất hiện nay. DVCS nghĩa là hệ thống giúp mỗi máy tính có thể lưu trữ nhiều phiên bản khác nhau của một mã nguồn ...

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

Liệu chế độ ẩn danh có thực sự an toàn?

Các trình duyệt hiện đại cung cấp tùy chọn bảo mật riêng tư khác nhau theo một số tên gọi khác nhau: Chế độ ẩn danh trong Chrome, Duyệt web riêng tư trong Firefox và Opera, Internet Explorer và Microsoft Edge, Cửa sổ riêng tư trong Safari. Ở bài viết này, mình xin đề cập đến cụ thể Chế độ ẩn danh ...

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

Regular Expression Những khái niệm cơ bản

Regular Expression hay còn gọi là biểu thức chính quy được dùng để xử lý chuỗi nâng cao thông qua biểu thức riêng của nó, những biểu thức này sẽ có những nguyên tắc riêng và bạn phải tuân theo nguyên tắc đó thì biểu thức của bạn mới hoạt động được. Ngoài cái tên gọi Regular Expression ra thì nó còn ...

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

Bài 3: Sử dụng Vue devtool để theo dõi component

Trong bài trước mình đã hướng dẫn các bạn Tự tạo component và binding data cho component. Ở bài này mình sẽ hướng dẫn các bạn sử dụng Vue devtool - một công cụ cực kì hữu hiệu trong quá trình phát triển ứng dụng sử dụng VueJS để có thể theo dõi quá trình thay đổi của dữ liệu trong toàn bộ ứng dụng ...

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

Tổng quan Service trong Android

Service là một trong 4 component lớn của Android. Nó là một thành phần hết sức quan trọng, là một Android Developer thì bắt buộc bạn phải nắm rõ và hiểu sâu về Service. Như hình vẽ bên dưới các bạn có thể thấy một robot chiến binh Android có thanh kiếm là tượng trưng cho Activity, có hai chiếc ăng ...

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

Lập trình hướng đối tượng (OOP) trong PHP - Phần 2

Ở bài trước chúng ta đã tìm hiểu về các tính chất đặc thù về OOP trong PHP và bài này chúng ta cùng tìm hiểu về: Trait Namespace Magic Functions các quy tắc trong PSR2 Nội dung 1.Trait 1.1. Trait là gì??? PHP hay Ruby đều là những ngôn ngữ hướng đối tượng chỉ hỗ trợ single ...

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

Rails Authenticity Token từ đâu mà ra và cách nó đối phó với CSRF? (Cross Site Request Forgery)

Khi chúng ta tạo form để thêm, sửa hoặc xóa tài nguyên nào đó, Rails tạo ra một authenticity_token ngẫu nhiên, lưu token này trong session và tạo một hidden field trong form đó. Khi người dùng submit form trên, Rails sẽ so sánh authenticity_token được lưu trong session và authenticity_token ...

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

Tăng tốc độ truy vấn ActiveRecord trong Rails app

Khi bạn build một Rails app mới, mặc định ta thường sử dụng ActiveRecord. Query với . where , insert với .save - tất cả đều dễ dàng và đủ nhanh. Nhưng sau một thời gian - khi một trang có nội dung đơn giản mất những một giây hoặc lâu hơn để trở lại từ server, khi bạn bắt đầu thấy lỗi T505 ...

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

Các method và thành phần của Has many trong Association

Trong Rails, association là một kết nối giữa hai mô hình Active Record. Tại sao chúng ta cần sự liên kết giữa các mô hình? Bởi vì chúng làm cho các hoạt động phổ biến đơn giản và dễ dàng hơn trong code của chúng ta. Has_many Association has_many chỉ ra một kết nối một-nhiều với một mô hình ...

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