Yêu cầu thg 12 20, 2019 12:46 CH 1115 1 4
  • 1115 1 4
+1

Các công nghệ xây dựng Forum website ?

Chia sẻ
  • 1115 1 4

Xin chào mọi người!

Em là newbie trong lập trình web, hiện tại em đang tìm hiểu các công cụ để có thể tạo ra được một Forum chất lượng như Viblo.

Mọi người có thể chỉ dẫn cho em là nếu muốn tạo một forum như vậy thì cần những gì không ạ ? Em thấy phần lớn các forum hiện nay đang sử dụng vBulletin hay Xenforo như tinh tế. Vậy cho em hỏi tại sao Viblo không sử dụng các nền tảng đã có sẵn như vậy mà lại code bằng PHP ạ. Các anh chị có dùng thêm thư viện nào của php không hay là code từ đầu?

Và nếu em xử dụng các nền tảng như vBulletin hay Xenforo thì việc tùy chỉnh, tạo thêm trang chủ, thêm chức năng có dễ dàng không ạ.

Mọi người cũng có thể giải đáp luôn cho em là tại sao các trang web hiện nay không chỉ sử dụng một ngôn ngữ duy nhất mà thường kết hợp Nodejs và PHP, như e thấy Viblo, Tinhte,.. đều có dùng 2 ngôn ngữ. ???

Em xin cảm ơn!

4 CÂU TRẢ LỜI


Đã trả lời thg 12 20, 2019 2:34 CH
Đã được chấp nhận
+3

Chào bạn,

Câu hỏi này mình sẽ trả lời bằng những gì mình hiểu biết được (cố gắng 😄), và mình cũng xin chỉ trả lời phần nào đó câu hỏi của bạn vì có những thứ như vBulletIn hay Xenforo bạn đề cập mình chưa từng dùng thử:

  • Việc Viblo không dùng nền tảng sẵn có thay vào đó viết mới có thể do mục đích của Viblo có những nhu cầu mà 2 phần mềm (hay framework) bạn nói ra kia không đáp ứng được, đồng thời nếu khi Viblo lớn lên thì sự phụ thuộc vào 1 phần mềm nào đó sẽ thực sự là 1 trở ngại
  • Việc viết mới thay vì dùng cái có sẵn đúng là ban đầu sẽ có những khó khăn vất vả nhưng có thể cho phép ta xây dựng nên đúng thứ chúng ta mong muốn sử dụng những công nghệ mới nhất, khi có lỗi lầm ta cũng sẽ dễ dàng hơn nhiều trong việc tìm và sửa lỗi. Đồng thời Ta không cần mua hẳn hẳn 1 con voi để chở một bao gạo có 20kg 😄
  • Theo mình tìm hiểu qua việc vọc Viblo và đọc được tin tuyển dụng từ Viblo, thì Viblo sử dụng NuxtJS - một Framework được xây dựng từ VueJS, để chạy được NuxtJS thì phải có NodeJS, Đó là cho phần frontend (những thứ hiển thị ở trình duyệt). Còn cho phần backend thì Viblo sử dụng Laravel (quản lý user, bài viết,....)

Frontend là những gì bạn thấy ở trình duyệt, là bộ mặt bên ngoài của 1 cỗ máy, cái mọi người nhìn thấy, còn backend là những hoạt động phía trong, cái cốt lõi của bộ máy đó. Bạn có thể hiểu như thế 😄

Tại sao một số trang như Viblo hay tinh tế lại dùng 2 ngôn ngữ NodeJS và PHP:

  • Như mình nói ở trên Viblo dùng NuxtJS và để chạy được NuxtJS thì cần có NodeJS, và Viblo dùng Laravel (PHP) để làm phần backend (quản lý dữ liệu,...)
  • Tinh tế cũng tương tự, Tinh tế dùng NextJS (framework dựa trên ReactJS), và để chạy NextJS cũng cần có NodeJS, và backend thì chắc cũng cùng lí do với việc Viblo chọn Laravel(PHP)
  • Việc Viblo và tinh tế dùng NodeJS và PHP theo mình nghĩ là để tận dụng sức mạnh của NodeJS cho frontend và của Laravel(PHP) cho phần quản lý dữ liệu phía sau

Bạn có cần chọn 2 ngôn ngữ? Câu trả lời là tuỳ nhu cầu của bạn và khả năng của bạn

Bạn hoàn toàn có thể chỉ dùng mỗi NodeJS cho cả frontend lẫn backend

Vậy chọn PHP cho cả frontend lẫn backend được không? Câu trả lời là được, nhưng vì công nghệ frontend của PHP khá là nghèo nàn so với Javascript ở thời điểm hiện tại, nên theo mình thấy việc tận dụng các thư viện, framework Javascript như Vue hay React để làm frontend sẽ tốt hơn là dùng PHP cho frontend.

Nếu bạn muốn thì cũng có thể dùng "mix" như Viblo hay tinh tế đã làm 😉

Hi vọng giúp bạn được phần nào thắc mắc 😃

Chia sẻ
Avatar Neo @ketchup
thg 12 21, 2019 12:48 SA

Thật sự cảm ơn trả lời của bạn. Mình cũng đã hiểu ra nhiều hơn về vấn đề này.

Avatar Code BetterMe @codebetterme
thg 1 3, 2020 10:37 SA

ủa không phải Back-end của Viblo dùng WP à 😄

Đã trả lời thg 12 20, 2019 4:54 CH
+2

Về mặt kỹ thuật thì mình cũng không rành, nhưng mình chỉ thấy học lập trình, như cứ đau đầu không biết học ngôn ngữ nào trước, ngôn ngữ nào sau, tại sao dùng framework này, sao lại bỏ framework kia,... nó sẽ khiến bạn lúc nào cũng nghi ngờ con đường mình chọn đi. Thật ra cứ học tốt một thứ là tự vỡ ra được cần cái gì.

Có cảm giác viblo xây dựng Front-end lấy cảm hứng từ Quora (Questions) và Linkedin (Discussions). Còn kiểu Post Rate lại giống với Reddit. Nói chung là lấy những cái hay nhất từ mấy cái social media top. Tham vọng rất lớn, hì hì.

Chia sẻ
Avatar Neo @ketchup
thg 12 21, 2019 12:49 SA

Cảm ơn bạn, chắc mình nên tập trung lại, công nghệ giờ nhiều quá nên khá là loạn đối với newbie bạn ạ.

Đã trả lời thg 12 28, 2019 2:29 CH
0

Backend: Nodejs, PHP, hoặc ruby

Frontend: Javascript, Jquery, react, vue hoặc Nuxtjs, Nextjs

Hoặc dùng wordpress

Chia sẻ
Đã trả lời thg 1 9, 2020 2:26 SA
0

Để tự build 1 forum hay bất kì ứng dụng nào đưa vào hoạt động thì đòi hỏi cần 1 team và cần phải tốn nhiều thời gian. Theo mình thì bạn nên thử các opensource sau:

Demo: https://4rum.vn/

Bạn muốn học hỏi, training kỹ năng dev thì theo mình nên chọn build những project nhỏ và mở rộng dần.

Chia sẻ
thg 9 29, 2021 8:19 SA

Mình thấy 4rum đang dùng discourse làm forum. Về code ruby thì ở Việt Nam ít người dùng, theo bạn thì liệu sau này maintain có phức tạp không? Và Discourse cũng nặng nền hơn so với NodeBB. Dù tính năng được cộng đồng hỗ trợ khá tốt

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí