Kiến trúc hệ thống trên Laravel – phần 8
Bài đăng này đã không được cập nhật trong 7 năm
Các bài viết trong series
Kiến trúc hệ thống trên Laravel – phần 1 : Tại sao phải áp dụng architect vào trong Laravel Kiến trúc hệ thống trên Laravel – phần 2 : OOP, Interface, Dependency Injection, IoC Kiến trúc hệ thống trên Laravel – phần 3 : Phân tích sâu vào việc sử dụng interface Kiến trúc hệ thống trên Laravel – phần 4 : Design Pattern – Decorator Kiến trúc hệ thống trên Laravel – phần 5 : Design Pattern – Adapter Kiến trúc hệ thống trên Laravel – phần 6 : Design Pattern – Repository Kiến trúc hệ thống trên Laravel – phần 7 : Design Pattern – Factory Kiến trúc hệ thống trên Laravel – phần 8 : Advance component trong Laravel Kiến trúc hệ thống trên Laravel – phần 9 : Mô hình kiến trúc cụ thể Part 1 Kiến trúc hệ thống trên Laravel – phần 10 : Mô hình kiến trúc cụ thể Part 2
Xin chào các bạn. Mình vào nghề lập trình cũng đã lâu, cũng có 1 số hiểu biết coi như là nâng cao về framework Laravel. Nên hôm nay mình xin chia sẻ 1 chút về kiến trúc hệ thống của mình được xây dựng trên Laravel như thế nào. Mong rằng có thể giúp ích cho các bạn .
Hôm nay chúng ta sẽ đi lướt các component mà có thể cả nhà chưa sử dụng trong Laravel. Đây sẽ là 1 bài chán nhất trong series này ^^.
1. Mở đầu
Làm gì cũng thế, chúng ta phải có kiến thức cơ bản đủ vững để có thể bắt đầu vào dự án thật. Mình thấy có nhiều công ty cho các bạn join ngay vào dự án sau vài ngày tìm hiểu 1 framework mới mà hoàn toàn không có 1 lộ trình cụ thể để verify xem bạn đã sẵn sàng với framework mới đấy chưa.
Với Laravel, mình nghĩ để có thể join được vào dự án 1 cách vững vàng thì các bạn nên nắm bặt được trong đầu Laravel có thể làm được những gì (nắm bắt chứ không phải thành thục nhé ).
Một resource rất hay mà các bạn có thể xem là trên trang laracasts.com:
L5.1: https://laracasts.com/series/whats-new-in-laravel-5-1
L5.2: https://laracasts.com/series/whats-new-in-laravel-5-2
L5.3: https://laracasts.com/series/whats-new-in-laravel-5-3
L5.4: https://laracasts.com/series/whats-new-in-laravel-5-4
2. Các component hay trong Laravel
2.1. ACL (Access Control List)
https://laravel.com/docs/5.4/authorization
Nói nôm na là hệ thống phân quyền user – role – permission -> Bình thường chúng ta hay sử dụng các package ngoài cho vấn đề này, nổi tiếng nhất là Entrust, Sentinel … Nhưng hiện tại, chúng ta hoàn toàn có thể làm hệ thống ACL trong Laravel vì nó đã chuẩn bị sẵn sàng trong core cho chúng ta rồi, các bạn hãy click vào link trên để tìm hiểu nhé.
2.2. Live chat với Laravel: broadcasting + pusher
https://laravel.com/docs/5.4/broadcasting
Làm live chat, notification, websocket hiện tại với Laravel khá là dễ dàng. Mình đã từng build 1 server socket.io riêng để thử với Laravel (cũng có hỗ trợ sẵn trong core) nhưng với pusher thì đơn giản hơn rất nhiều -> cần tăng tốc độ thì các bạn hãy áp dụng vào ngay nhé.
2.3. Notification với rất nhiều dạng: mail, sms, slack, markdown, broadcast …
https://laravel.com/docs/5.4/notifications
Không chỉ gửi email, bạn có có thể notify user bằng rất nhiều cách khác nhau, và với Laravel thì làm việc đó thật là đơn giản … Không biết có bạn nào từng sử dụng notification package ngoài nào làm việc này chưa ?
2.4. Browser test với Laravel Dusk
https://laravel.com/docs/5.4/dusk
Thực sự rất tuyệt vời khi Laravel release Laravel Dusk, chúng ta giờ có 1 tool quá, quá là tuyệt với để thực hiện integration test –> nếu bạn nào còn chưa sử dụng Laravel Dusk, các bạn phải nghiên cứu và áp dụng vào dự án ngay lập tức. Nhắc lại 1 lần nữa, đây là 1 phần mà bạn phải nghiên cứu ngay và luôn nhé, cực kỳ có lợi cho bạn.
2.5. Official Packages
Được viết và hỗ trợ chính hãng Laravel nên các bạn an tâm sử dụng các packages này nhé:
Cashier: hỗ trợ các payment gateway online
Envoy: hỗ trợ chạy task ngầm trên server (giành cho các bạn có kinh nghiệm deploy trên server sử dụng ^^)
Passport: build cả OAuth2 server trên Laravel chỉ trong vòng 30′ >.< -> kể cho các bạn biết, hồi trước bên mình tự build OAuth2 server mất 1 tháng trời T_T.
Scout: Full-text search với eloquent ^^ trên Algolia (mình chửa sử dụng thằng này bao giờ nên ko dám chém)
Socialite: quá nổi tiếng rồi, social authen ^^
2.6. Viết 1 package của riêng bạn
https://laravel.com/docs/5.4/packages
Bạn có thể tích hợp rất nhiều package ngoài vào Laravel -> thế sao bạn không viết các package của riêng bạn cho người khác sử dụng. Bạn hãy thử chia nhỏ dự án của bạn thành các package xem sao -> nó sẽ luyện cho bạn nhưng tư tưởng rất hay về việc chia để trị )
3. Kết luận
Ở trên là mình chỉ list các component lạ và hay của Laravel mà có thể các bạn chưa sử dụng. Ngoài ra các bạn các bạn phải nắm vững cách sử dụng cache, queue, middleware, routing, sử dụng interface, DI và IoC với Service Provider trong Laravel. Nếu viết API thì cần sử dụng Fractal vào để viết nhé, sẽ đẹp hơn rất nhiều ^^ –> các kiến thức này sẽ được rèn luyện dần nhưng các bạn phải luôn có ý thức tìm cách áp dụng nó vào những cái bạn viết hàng ngày nhé.
Cám ơn các bạn
All rights reserved