Học cái để làm một trang web giống như viblo?
Chào cả nhà, chào các anh chị em! Nội dung câu hỏi của em cũng giống như tiêu đề là: Học cái để làm một trang web giống như viblo?
- Về ngôn ngữ lập trình, về sử dụng framework nào?
- Và có khóa học nào để làm 1 website tương tự?
Em xin cảm ơn! (Em chưa có kinh nghiệm nhiều làm web)
3 CÂU TRẢ LỜI
Một câu hỏi xuất sắc. Bạn có thể bắt đầu bằng một con đường đúng đắn như sau.
Bạn hãy coi thời gian làm dự án này là nơi bạn học hỏi mọi thứ về làm web, cả front-end và back-end. Dự án làm một trang web hỏi đáp, chia sẻ kinh nghiệm lập trình thường là dự án tốt nghiệp của các bạn học CNTT.
-
Vì bạn nói bạn thích các trang web được load động, load từng phần chứ không load cả trang như là gõ url vào trình duyệt. Vậy thì bạn phải dùng đến AJAX và Jquery (Bạn phải học code ngôn ngữ Javascript). Nhưng cách đó hơi cổ xưa rồi. Hiện giờ cách hiện đại là sử dụng các front-end framework như là Angular hoặc ReactJS hoặc VueJS để load động được các phần giao diện màn hình. Do đó bạn hãy bỏ thời gian học một trong 3 framework đó nhé. Trong quá trình học làm giao diện front-end, bạn có thể phải học thêm về HTML5, CSS3 để thiết kế màn hình web nó được responsive (co dãn tùy kích cỡ, để xem trên điện thoại và MTB không bị vỡ, không bị cỡ chữ to nhỏ, cái này học về Media Query của css3 1 tí) hoặc bạn học luôn framework front-end nổi tiếng là Bootstrap 4.
-
Học xong phần front-end thì bạn phải chọn học một framework back-end nào đó. Vì bạn cần phải code phần login user, bình chọn bài viết, chia sẻ bài viết, upload ảnh nữa. Ngôn ngữ PHP với Framework Laravel khá là mạnh mẽ, kiến trúc theo kiểu MVC rất dễ học, rất dễ code. Ngoài ra nếu yêu thích Java bạn có thể chọn framework Spring MVC (cũng tương tự như Laravel) hoặc yêu C# thì chúng ta có Framework ASP.Net Core. Tất cả các framework back-end này đều có điểm chung là kiến trúc code theo MVC. Do đó bạn phải nắm rõ cách code theo mô hình mvc (bên cạnh kiến thức về lập trình hướng đối tượng).
-
Nếu bạn muốn trang web của mình có 1 app chạy trên mobile được và trỏ vào back-end của bạn để hiển thị lên màn hình mobile. Thì bạn có thể sử dụng lại các kiến thức ở front-end để làm ra một app mobile dạng hybrid (web app nhưng build ra bản cài đặt cho mobile). Bạn hoàn toàn có thể dùng Angular để làm một mobile app với framework Ionic 4, hoặc thích React thì dùng framework ReactNative.
Bạn có lẽ đang được tiếp cận kiến thức trong trường ĐH là lập trình php gọi form request bình thường nên khi chuyển trang thì phải load toàn bộ trang. Tuy nhiên các framework Back-end ngày nay đều giao tiếp với front-end bằng giao thức API, truyền tải JSON từ front-end sang back-end và ngược lại. Cho nên bạn phải học code back-end dưới dạng web API để dễ dàng nâng cấp về sau.
Con đường tự làm một trang web từ đầu thì là như vậy. Tuy nhiên hiện tại có rất nhiều opensource trên github về một trang chia sẻ kiến thức nhiều người dùng tham gia (dưới dạng forum như viblo).
Nếu bạn chọn cho mình 1 cặp front-end và back-end yêu thích, mình có thể tìm một bộ source code hoàn chỉnh để bạn tham khảo dựa theo sự lựa chọn của bạn.
Câu trả lời rất tâm huyết. (+1)
Cảm ơn a đã chia sẻ rất nhiều thông tin Xin chân trọng cảm ơn anh (Mặc dù không nói rõ đúng yêu cầu câu hỏi nhưng xin phép đánh giá cao câu trả lời ạ)
@chungminhtu Em đang tìm hiểu về Laravel làm backend, anh có project mẫu nào về nó ko. Cho em xin tham khảo với ạ.
@chungminhtu "Nếu bạn chọn cho mình 1 cặp front-end và back-end yêu thích, mình có thể tìm một bộ source code hoàn chỉnh để bạn tham khảo dựa theo sự lựa chọn của bạn." Bạn có thể giới thiệu giúp mình 1 bộ với combo Laravel+ Nuxtjs dc ko
@chungminhtu cảm ơn nhiều nhé. Mình chưa khám phá github dc nhiều
Mình nghĩ cái quan trọng là bạn xây dựng được bài toán và cách giải quyết bài toán (như Viblo nói đơn giản là trang quản lí user và quản lí bài viết/câu hỏi/bình luận). Để làm được một trang web thì bạn cần có những kiến thức web base như:
- Cơ sở dữ liệu
- Backend: PHP, Ruby, ...
- Frontend: html, css, javascript (jQuery, React, Vue, ...)
Sau khi học những kiến thức trên thì mình nghĩ bạn có thể làm được 1 trang web đơn giản. Còn để làm 1 trang web như Viblo thì ngoài những kiến thức cơ bản trên còn cần tìm hiểu thêm khá nhiều kiến thức khác nữa!
Ngoài ra mình có cái extension này khá hay, nó phân tích được trang web đang sử dụng framework, ngôn ngữ nào, bạn có thể tham khảo. https://www.wappalyzer.com/
Vâng em cảm ơn! Em biết là cần những gì để làm, nhưng vấn đề ở đây là em vẫn không hiểu cách chạy ngầm khi click vào 1 link nào đó . Thường thì là js, nhưng có dùng fw nào hỗ trợ không đó ạ!!
@nongminh Hiện nay Viblo đang sử dụng VueJS để hỗ trợ điều đó. Viblo có rất nhiều tài liệu về VueJS đó. Chúc bạn thành công
@nongminh như Viblo thì đang sử dụng Vue bạn nhé, ngoài ra bạn có thể thử làm 1 "phiên bản" Viblo React cho riêng mình chẳng hạn.
Trong quá trình làm có vấn đề gì bạn có thể đăng câu hỏi lên đây để mọi người cùng giải đáp
@vuongthai95 ồ, em cảm ơn a đã giải đáp nhé!! Sau ngày m8/3 say quá giờ mới dậy để đọc được thông báo
@quankm1097 Cảm ơn a nhé hiện cmt không có nút like nên e cũng không biết biểu lộ cảm xúc như nào
@nongminh bạn có thể thử tính năng upvote của viblo
Viblo là Laravel cho back end bạn ạ. Mobile app dùng React Native và Front-end web là Vue. Bạn có thể tham khảo
Ồ, vì mình thích kiểu click vào link nó load ở dưới nền đó Chứ dùng php bình thường nó sẽ load tới href
@nongminh à đấy là Vue JS ở front end mà
@devil_boom_129 Cảm ơn bạn nhé