C++ Web Framework: Drogon - Bá chủ web trong hiện tại và tương lai

Mở đầu

Chắc các bạn đang sử dụng các framework của java, ruby, php, hay tồi tệ hơn là python / ruzt, cõ lẽ sẽ rất buồn khi nghe thấy người anh cả C++ đã có 1 framework riêng cho mình trong mảng web server.

Vậy nên hôm nay mình sẽ giới thiệu qua cho các bạn vì sao framework Drogon lại là tương lai của ngành web server trong vài câu từ dưới đây.

Link repo trước cho các bạn xem qua:

Tốc độ + Chịu tải

Vâng, luật bất thành văn trong ngành rồi, một webserver thì điều quan trọng nhất nó phải gánh vác đó là tốc độ phản hồi tới người dùng. Sau đó là mức độ chịu tải.

Hiện nay có thể nói chưa một framework nào vượt qua được Drogon trong 2 key-requirement này.

Proof:

=> Ngay cả rust actix gì gì đó cũng chỉ dám đứng sau Drogon bất bại của chúng ta.

image

Develop webapp + Bảo trì

Chắc hẳn các bạn đang nghĩ rằng, thời gian ngồi code C++ để ra được web app, thì thà tải vài cái laravel, hay express rồi chạy lệnh là có web, chứ mổ C++ thì có khi sau công nguyên cũng chưa release được cái web.

=> Bạn sai rồi bạn ơi

Mấy bạn đọc xong kiểu:
image

Vậy vì sao Drogon có thể hoà, thậm chí thắng được các framework tép riu khác trong phần này?
Cùng đón xem số tiếp theo của cùng chủ đề nhé…

Số tiếp theo

Không để các bạn chờ lâu, mình viết luôn giải thích cho các bạn thấy lí do.

1. Hỗ trợ command line controller

  • Tương tự artisan của laravel, hỗ trợ cả stress test, create new app,…

2. Đã có sẵn cấu trúc file/folder (Application Structure)
Ngay sau khi create app từ command line, các bạn sẽ có luôn cấu trúc file tương tự như sau:
image

Công việc tiếp theo của các bạn là config file config.json rồi code controller thôi

3. Hỗ trợ ORM cho xử lí liên quan tới table của database
ORM của Drogon sẽ dược tự động tạo sau khi các bạn config đúng endpoint tới DB, và chạy lệnh generate.

Đại khái nó sẽ tạo luôn như sau:

4. Hỗ trợ template cho view
Tương tự blade của laravel, thì Drogon hỗ trợ chúng ta csp
Link: https://drogon.docsforge.com/master/view/#a-simple-example

-> Thực ra ngày nay đa số sử dụng react/vue để dev FrontEnd nên có lẽ tính năng này không quan trọng lắm. Cơ mà thêm vào để tụi framework cùi bắp khác đỡ cà khịa được mà. Cho ra dáng anh cả chứ : ))

5. Code không phải lo tới crash
Tất cả những gì sử dụng trong framework đều được xài smart pointer (shared_ptr là chính), nên các bạn hoàn toàn yên tâm code xong thì bật 1 lần chạy mãi mãi.

6. Library bạt ngàn
Vâng, không một ngôn ngữ nào nhiều library bằng C/C++ được, ngay cả node cũng phải dùng backend là v8 để compute javascript.

Nên có thể nói, không một công việc cần tới thư viện ngoài nào bạn định tìm kiếm mà C++ không có cả.

7. Vip Pro
Tất nhiên dòi, ngồi code ngôn ngữ thượng đẳng như C++ rồi compile ra web, xung quanh các em đang chật vật cài npm, php, nginx các thứ đồ, lại không oai hay sao?

Chốt

Các bạn ạ, 4.0 rồi, nên đi theo công nghệ dần đi thôi.
Giờ còn lẹt đẹt ngồi cài npm hay fix bug log4j thì đến bao giờ mới to the moon được.

image

14 Likes

bài này phù hợp với các bạn newbie đọc để trầm trồ, mà newbie trên đây chắc cũng không thích đọc đâu, toàn là tạo account để hỏi bài tập và biến mất thôi
post lên mấy group lập trình trên fb chắc sẽ được hưởng ứng hơn

10 Likes

hướng dẫn cách deploy lên heroku/aws/azure gì đi :relieved:

10 Likes

1 framework tốt là 1 framework có cộng đồng sử dụng đông đảo và đc cập nhật liên tục,chứ ko phải là đc viết bằng ngôn ngữ nào, những thứ dù cho được quảng cáo tốt đến đâu có cái gốc tốt đến đâu nhưng ko đc người dùng sử dụng cũng sẽ tự bị đào thải :smiley:

8 Likes

lên đó lại bị oldbie ném đá chứ ích gì thím :roll_eyes:

phí hướng dẫn 500k nhé, inbox để nhận giá cạnh tranh hơn

thế nên mới cần phải có những seeder tâm huyết như tuôi đây thím :wink:

4 Likes

Hôm nào lại có thêm một Framework như lời đồn :smiley:

12 Likes

Framework này với TreeFrog thì như nào bạn?

Cái của nợ C++ viết cái app đơn giản mà mình toát mồ hôi hột với con trỏ và cấp phát vùng nhớ …
Chưa tưởng tượng ra nếu viết Web bằng C++ nó sẽ như nào nhỉ ???

4 Likes

Mình nghĩ cứ quy về nền tảng chung của việc lập trình đó là: input => process(ing) => output. Bất cứ ứng dụng nào phức tạp đến đâu cũng chỉ có bây nhiêu đó chuyện. Lập trình web thì bạn cứ xem như trang web là cái cửa sổ nhập liệu hoặc cái màn hình mà bạn lập trình desktop vậy thôi, còn việc xử lý thì khi người dùng cung cấp dữ liệu, bạn tóm lấy và xử lý rồi trả ngược lại, printf hoặc cout chẳng hạn. Còn viêc còn lại móc nối với web server thông qua CGI/ FastCGI thay vì phải tự viết web server (chạy ổn không đơn giản tí nào) vì C++ vốn không được tạo ra chuyên dụng để làm web nên khó tìm thấy module của web server sẵn kết hợp với C++ như bên PHP, Java.

6 Likes

drogon nhanh hơn, có tài liệu sample đầy đủ cho newbie
cấu trúc project cũng sáng sủa và tính mở rộng khá tốt
vừa có thể chạy standalone, vừa có thể tích hợp vào app khác

1 Like

cứ thử đi
c++20 rồi thì code k cần care gì nữa đâu
mọi thứ chỉ còn quy về kinh nghiệm lập trình thôi thím

1 Like

Có lib, có framework, tool hết rồi viết app dễ như C#.

2 Likes

Bạn nào nghi vấn c++ không viết được web thì mình share luôn em hàng webshop quản lí từ trang bán hàng tới quản lí kho + xuất đơn hàng mình live production hơn năm nay nhé

10 Likes

Mình cũng có đam mê và rất thích ngôn ngữ c++, bạn có zalo hay facebook ko mình liên hệ tiện trao đổi về framework này. Mình củng mới sài và cần người hổ trợ.

1 Like

Thảo luận trên đây luôn đi bạn ơi (để hậu thế vào đọc cùng nữa :laughing:), muốn riêng tư thì DNH có chức năng nhắn tin riêng đó.

Theo mình web framework này rất nhanh nhưng không biết database có đáp ứng nổi tốc độ xử lý của nó không nữa.

1 Like

Mình đang vướng về vấn đề kết nối CSDL và Query của thằng này chủ bài hoặc ai có thể giúp đở không. nếu ok mình gửi tiền cà phê

1 Like

Bạn gặp lỗi gì khi làm theo hướng dẫn tại trang chủ?

1 Like

Mình không biết làm thế nào thằng này kết nối CSDL đươc, có cần cài thêm package gì không. Mình chủ yếu xài MySql
Đây là khi build thì không báo lỗi nhưng hiện trên CMD như này
image

Nó ko hỗ trợ Mysql rồi thím ơi, nó bảo nên cài đặt Postgresql hoặc cái khác đi

1 Like

Mình đang cần giúp đỡ về thằng drogon này, Chủ thớt hoặc có ai từng làm chưa nếu ok sẽ có phí nhé.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?