Bài viết của Trịnh Tiến Mạnh

PHP Framework Các giải pháp điều chỉnh hiệu suất cho ứng dụng web của bạn

Hiệu suất cho ứng dụng web Có nhiều yếu tố ảnh hưởng tới hiệu suất ứng dụng Web của bạn. Một số về môi trường, một số liên quan đến mã nguồn của bạn, và cũng có liên quan tới Framework bạn đang triển khai.Trong bài viết này, mình sẽ liệt kê các yếu tố này và giải thích cách bạn có thể cải thiện ...

Tác giả: Trịnh Tiến Mạnh viết 15:44 ngày 12/08/2018 chỉnh sửa

Value Objects trong Ruby on Rails

Giới thiệu Trong bài viết này, tôi sẽ đề cập đến value objects, cách để sử dụng kỹ thuật này như thế nào và các dấu hiệu để xác định value objects trong một ứng dụng Rails. Mục tiêu khi viết code là làm đơn giản tối đa models và controllers bằng cách chia nhỏ thành các class. Và để đạt được ...

Tác giả: Trịnh Tiến Mạnh viết 15:43 ngày 12/08/2018 chỉnh sửa

Self join trong ruby

mối quan hệ SELF-JOIN (tự vấn) ONE-TO-MANY: một model có thể được tái sử dụng với chính nó, giả sử nhân viên và quản lý đều là user nên chỉ cần dùng self-join trong bảng user là đủ, cách sử dụng: trong model user tạo thêm: has_many :nhanvien, class_name: User.name, foreign_key: ...

Tác giả: Trịnh Tiến Mạnh viết 15:43 ngày 12/08/2018 chỉnh sửa

Liệu chúng ta có thể xây dựng trí tuệ nhân tạo mà không mất kiểm soát đối với nó?

Hoàn cảnh Gần đây trên mạng xuất hiện một cuộc tranh cãi giữa 2 vị tỉ phú nổi tiếng thế giới là Elon Musk và Mark Zuckerburg về một vấn đề khá nóng trong các diễn đàn trên mạng hiện nay, đó là liệu trí tuệ nhân tạo (AI) có nguy hiểm hay không? Trong khi Mark Zuckerburg cho rằng việc Elon Musk ...

Tác giả: Trịnh Tiến Mạnh viết 15:43 ngày 12/08/2018 chỉnh sửa

Sự khác nhau giữa Block, Proc, và Lamdba trong Ruby

Block, Proc, và Lamdba là gì ? Theo định nghĩa kỹ thuật : thì nó là ví dụ của closures trong Ruby. Có thể hiểu closures là một hàm được tạo ra từ bên trong một hàm khác (hàm cha), và nó có thể sử dụng các biến toàn cục, cục bộ của hàm cha và chính nó. Viết code kiểu closures có thể giúp code dễ ...

Tác giả: Trịnh Tiến Mạnh viết 15:43 ngày 12/08/2018 chỉnh sửa

PHỐI HỢP KIỂM THỬ HIỆU SUẤT VỚI QUÁ TRÌNH LẶP CƠ BẢN (PHẦN 1)

Tìm hiểu cách tiếp cận để phối hợp kiểm thử hiệu suất với quá trình lặp cơ bản Tìm hiểu cách phát hiện và giải quyết các vấn đề chính trong dự án sớm nhất có thể. Tìm hiểu làm thế nào để tối đa hóa tính linh hoạt mà không bị mất kiểm soát Tìm hiểu cách cung cấp cho các nhà quản lý và các bên ...

Tác giả: Trịnh Tiến Mạnh viết 15:43 ngày 12/08/2018 chỉnh sửa

Giới thiệu searchkick - gem hỗ trợ tìm kiếm trong Rails

Tìm kiếm là tính năng không thể thiếu của một trang web thời nay, và ElasticSearch là cái tên quá nổi tiếng. Tuy nhiên, trong bài viết này, mình muốn đề cập đén searchkick - gem hỗ trợ tìm kiếm rất tốt, dễ sử dụng hơn ES và còn quen thuộc hơn với Ruby dev. Link gem Searchkick. Cùng tìm hiểu qua ...

Tác giả: Trịnh Tiến Mạnh viết 15:43 ngày 12/08/2018 chỉnh sửa

Quản lý các file cá nhân trong Rails app với S3

Để quản lý các file cá nhân trên Rails app, gem Paperclip có thể thực hiện tốt nhiệm vụ này. Khi application lớn dần, ta sẽ muốn lưu trữ các file ở một vị trí khác, thay vì lưu trực tiếp trên server. Đưa các file lưu trữ ra khỏi server vừa giúp cho application có thêm không gian phát triển vừa có ...

Tác giả: Trịnh Tiến Mạnh viết 15:43 ngày 12/08/2018 chỉnh sửa

each - find_each - find_in_batches - nil? - blank? - empty? - present? in rails

Giới thiệu: khi chúng ta muốn thao tác với một số lượng lớn các bản ghi ví dụ như gửi mail cho nhiều user, hoặc update thông tin của nhiều user... chúng ta đều sử dụng vòng lặp để thực hiện. Trong rails có rất nhiều phương thức để thực hiện điều đó như: each find_each find_in_batches ...

Tác giả: Trịnh Tiến Mạnh viết 15:43 ngày 12/08/2018 chỉnh sửa

Giới thiệu Laravel Package Development

Laravel Package là một hình thức thêm chức năng cho laravel, để chúng ta có thể sử dụng được ở bất cứ project nào mà chúng ta muốn. Không cần lặp đi lặp lại một hành đồng là copy và paste từ project này sang project khác, mặt khác chúng ta cũng có thể public package này ra cho nhưng dev khác dùng ...

Tác giả: Trịnh Tiến Mạnh viết 15:43 ngày 12/08/2018 chỉnh sửa