Phân quyền trong Rails sử dụng Pundit

I. Giới thiệu Với mỗi ứng dụng web bất kì, phân quyền cho người dùng là việc làm không thể thiếu. Đối với các ứng dụng sử dụng ruby on rails, chúng ta có một số thư viện hỗ trợ việc phân quyền như cancancan, pundit, authorite... Những thư viện này sẽ giúp chúng ta tách hoàn toàn phần logic phân ...

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

The Quality of Software Design - Part 2

Part 2. The Utopia of Reuse Khi bàn về chất lượng thiết kế phần mềm, tiếp sau Correctness, Robustness, có rất nhiều thuật ngữ khác nhưng có lẽ phải kể đến Extendibility (Tính mở rộng) và Reusability (Tính tái sử dụng). Tôi nghĩ các bạn đều hiểu đại khái ý nghĩa của những từ này. Nói một cách đơn ...

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

Giới thiệu angular js 2

Chào các bạn! Như tiêu đề, hôm nay mình xin giới thiệu đôi nét cơ bản về angular js 2 Như các bạn đã biết , @Angular2@ vừa được release cách đây không lâu sau một thời gian phát hành bản beta. Vậy angular 2 có những đặc điểm gì mà chúng ta cần phải lưu tâm, có những đặc điểm gì vượt trội so ...

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

Form và Form Validation trong SpringMVC

Chào các bạn. Có lẽ giới lập trình chúng ta đã quá quen với từ "validate" dữ liệu rồi. Chúng ta sẽ không bàn bạc về khái niệm cũng như những lợi ích của nó nữa vì nó vốn đã quá rõ ràng rồi. Bài viết ngày hôm nay của tôi sẽ hướng dẫn các bạn tạo form và validate form trong java SpringMVC nói riêng. ...

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

Firebase Cloud Messaging Tutorial for Android

Xin chào bạn bè, Hiện tại có rất nhiều cách hướng dẫn push GCM điển hình chúng ta đã biết với 2 cách sau đây. Google Cloud Messaging Hướng dẫn cho Android Ứng dụng Android Push Notification sử dụng GCM Tutorial Nhưng bây giờ google có một sự thay thế đó là dễ dàng hơn gcm. Trong ...

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

Bootstrap và những điều cơ bản cần biết trong giao diện web

. Câu hỏi đầu tiên, bootstrap là gì? Bootstrap đơn giản là một bộ khung để phát triển phần giao diện của website. Nhưng ngoài ra, nói một cách tối giản hơn nữa thì bootstrap là 1 file css. Vậy file css này có những gì? Đó là nó quy định sẵn các Class, quy định các thuộc tính về giao ...

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

Những điều người mới học Reactjs nên biết

Trong bài này mình sẽ giới thiệu cho ai mới học Reactjs về những điều cần biết khi bắt đầu học 1: Đầu tiên chúng ta sẽ tìm hiểu React là gì? React là 1 thư viện của Facebook giúp render ra phần view, 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 ...

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

Sử dụng Sentry để log exceptions và logging messages trong Django

Sentry là một ứng dụng để log lại bản ghi sử dụng để log exceptions và message trong Django. Để tìm hiểu thêm về Sendtry các bạn có thể tìm hiểu thêm về cài đặt và source code trên doc. Sentry thường đuọc sử dụng để log và thông báo lỗi trên server Python. Hôm nay tôi sẽ hướng dẫn thiết lập sentry ...

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

Làm thế nào cải thiện performance trong ứng dụng angular js

Đã có rất nhiều thảo luận về những tính năng tuyệt vời mà angularjs mang lại cho những ứng dụng trên nền web như: two way-binding, dependency injection, directive, service,..Tuy nhiên, trong quá trình xây dựng các ứng dụng lớn cùng angularjs chúng ta có thể gặp rất nhiều vấn đề về performace. Điều ...

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

Using C code in Python

Ta thường sử dụng C/C++ cho những công việc yêu cầu tốc độ xử lý cũng như hiệu năng cao. Vậy làm thế nào để ta có thể gọi các hàm được cung cấp trong các thư viện C từ Python? Bài viết này trả lời câu hỏi trên. Python cung cấp module ctypes để ta có thể giao tiếp với các thư viện ngoài của C. ...

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

Cơ bản về RxAndroid

Bài viết sau đây trình bày về những kiến thức cơ bản để bắt đầu sử dụng RxJava trong các ứng dụng Android. Một số khái niệm Trước khi đi vào tìm hiểu theo những ví dụ, hãy bắt đầu với một số khái niệm cơ bản. Cốt lõi của RxJava là 2 khái niệm: Observable và Observer. Observable sẽ phát ra các ...

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

Ứng dụng Native hay Web-Based?

Quyết định thiết kế một ứng dụng native hay web-based là vô cùng quan trọng. Vì vậy, bạn đã quyết định để tạo ra một ứng dụng điện thoại di động. Cho dù đó là một phần mở rộng của một dịch vụ kỹ thuật số hiện có (giống như một trang web) hoặc một ứng dụng độc lập với nhiều tính năng, đó là ...

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

Action Cable - Friend or Foe?

Mình có cơ hội được biết và làm việc với Action Cable từ phiên bản của Rails 5.0 beta 3. Trong những lần tìm kiếm tài liệu về Action Cable để giải quyết vấn đề mình gặp phải, mình đã gặp được bài viết khá hay về Action Cable là Action Cable - Friend or Foe? tạm dịch là: Action Cable - Bạn ...

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

Google map javascript API and Polygon

Chắc hẳn có rất nhiều bạn biết về google api, google cung cấp cho chúng ta rất nhiều các api hỗ trợ, đặc biệt là các vấn đề liên quan tới bản đồ như định vị, tìm đường đi ... một trong số đó là một api cung cấp để chúng ta sử dụng javascript để nhúng 1 bản đồ vào trong view của chúng ta. Hôm nay ...

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

Hiểu rõ --strictNullCheck trong Typescript 2.0

TypeScript có 2 kiểu đặc biệt, Null và Undefined, nó có giá trị tương ứng là null và undefined. Trước đây, nó không thể là tên của 1 kiểu , nhưng Null và Undefined giờ được xem như là kiểu trong checking mode. Ở phiên bản trước, thì null và undefined có thể gán cho bất cứ giá trị nào. null và ...

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

Docker-Compose: Dựng môi trường cho Ứng dụng Laravel

Sức phát triển của Docker cũng như mức độ phổ cập của nó hiện nay thì chắc tôi cũng không cần phải bàn luận thêm ở đây nữa. Trong bài viết này tôi sẽ tập trung vào trình bày cách để giúp các bạn xây dựng được môi trường chạy một ứng dụng Laravel thông qua service Nginx sử dụng Docker-composer. Để ...

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

Sql nâng cao cho Rails part 1

Giới thiệu Như các bạn đã biết khi làm việc với rails chúng ra có 1 hỗ trợ tuyệt vời để kết nối với dữ liệu mysql thông qua Active record. Công cụ này giúp chúng ta, các coder có thể xử lý dữ liệu một cách nhanh chóng với những câu lệnh đơn giản và ngắn gọn. Nhờ vậy ta có thể tập trung vào việc ...

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

Lập trình game đa nền tảng cho di động (Phần 1)

Trong thời đại Công Nghệ Thông Tin phát triển bùng nổ mạnh mẽ ngày nay kéo theo sự phát triển của di động, máy tính, máy chơi game, máy tính bảng, kính thực tế ảo … Đời sống vật chất con người ngày càng phát triển dẫn đến nhu cầu được giải trí cao chính vì vậy ngành công nghiệp GAME trở ...

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

Hello Spring Security Java Config

Spring framework đã phát triển Spring Security để hỗ trợ cho việc thực hiện cơ chế Authentication và Authorization trên ứng dụng. Bài viết này sẽ hướng dẫn các bạn config Spring Security với demo chức năng login đơn giản. Có 2 cách để config/implement Spring security. Cách thứ nhất là config ...

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

Automation Test With Selenium

Tổng quan về Selenium Trong giai đoạn bùng nổ về công nghệ thông tin hiện nay, nhu cầu phát triển phần mềm nói chung và các ứng dụng xây dựng trên nền web nói riêng về chất lượng và số lượng đang trở nên bức thiết. Kéo theo đó là nhu cầu kiểm thử giao diện ứng dụng web để đạt được chất ...

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