Chào các bạn, gần đây trên fanpage Tự học lập trình của mình, có mấy bạn inbox câu hỏi dạng như:
- Web wordpress là gì vậy anh?
- Framework là gì vậy anh, sao mấy tin tuyển dụng toàn yêu cầu biết Laravel gì đó?
- Để làm ra một trang web thì có những cách nào vậy anh?
Đáp án của 3 câu hỏi trên được mình tổng hợp và viết lại thành bài này. Mời các bạn cùng theo dõi.
Lưu ý: Trong bài viết này mình chỉ đề cập tới các nền tảng xây dựng trên ngôn ngữ PHP thôi nhé.
Mục lục
Cách 1. Tự lập trình
Nếu tự tin về kiến thức của mình, bạn hoàn toàn có thể tự lập trình ra một trang web mà không cần dựa vào bất kỳ thư viện nào.
Bạn nên tự lập trình khi nào?
Theo mình có 2 trường hợp mà bạn nên tự lập trình một trang web:
- TH1. Khi bạn mới học lập trình web: Khi mới học, bạn vừa mới chỉ tiếp xúc với những khái niệm cơ bản nên việc tự lập trình một trang web từ đầu tới cuối sẽ giúp bạn củng cố kiến thức, hiểu thêm nhiều vấn đề. Tuy nhiên khả năng trang web của bạn có thể sử dụng được trong thực tế thường là thấp, nhưng đừng vì vậy mà không thử.
- TH2. Khi bạn đạt đến cảnh giới thượng thừa của lập trình: Trái ngược hoàn toàn với level trên, đây là level cao nhất. Khi ở đẳng cấp này, bạn giỏi tới mức không cần phụ thuộc vào bất kỳ thư viện nào, bởi tất cả những thư viện sẵn có đều không tốt bằng những dòng code thần thánh mà bạn tự mình viết ra.
Có một điều là mình chưa gặp ai ở TH2 cả, tức là TH1 xảy ra phổ biến hơn. Vậy bạn nên tự lập trình một trang web từ đầu đến cuối khi mới bắt đầu học lập trình web.
Cách 2. Sử dụng các CMS có sẵn
CMS là từ viết tắt của Content Management System – Hệ thống quản trị nội dung. Hiểu nhanh thì CMS là những hệ thống được thiết kế sẵn, hướng tới một mục đích cụ thể như: hệ thống web tin tức, hệ thống web bán hàng, hệ thống web quản lý trường học,… Bạn chỉ cần tải các CMS về, cài đặt là có ngay một hệ thống web ngon lành.
Sử dụng CMS để làm web thì rất nhanh, tuy nhiên thường không tối ưu cho mục đích sử dụng. Bởi CMS được thiết kế sẵn, nó sinh ra để giải quyết những vấn đề chung chung chứ không cụ thể. Nếu muốn điều chỉnh tính năng cho phù hợp với nhu cầu sử dụng, thì cần phải can thiệp vào code của CMS.
Đương nhiên là hầu hết các CMS đều cung cấp tài liệu chi tiết giúp bạn tùy biến lại nó, nhưng nhìn chung vẫn khá rắc rối. Do làm gì thì làm, bạn vẫn phải tuân theo các quy tắc mà CMS đặt ra.
Một số CMS phổ biến hiện nay sử dụng để thiết kế website là:
- WordPress: Blog phambinh.net cũng đang sử dụng WordPress. WordPress là CMS lý tưởng cho những trang web kiểu tin tức, blog cá nhân, bán hàng quy mô nhỏ.
- Magento: CMS phù hợp cho các hệ thống web bán hàng. Ngày xưa tiki.vn cũng sử dụng Magento đó.
- Opencart: Cũng là CMS cho các hệ thống web bán hàng, gọn nhẹ hơn Magento, nhưng mạnh mẽ hơn WordPress trong khoản làm web bán hàng.
Bạn nên sử dụng CMS khi nào?
Theo mình, CMS sẽ hữu dụng trong những trường hợp:
- Khi bạn có cần làm một trang web có tính năng phổ thông như: blog cá nhân, web tin tức, web bán hàng, website rao vặt, diễn đàn thảo luận.
- Khi bạn muốn có nhanh một trang web, và chấp nhận nó có thể thừa, thiếu một số tính năng.
- Khi bạn muốn học hỏi từ những gì mà CMS có thể làm. CMS cung cấp sẵn nhiều tính năng mạnh mẽ, tối ưu thiết kế UI, UX, nhiều design pattern hay, cho dù bạn không sử dụng CMS như một công cụ để tạo ra trang web, thì bạn cũng có thể học hỏi được rất nhiều điều thú vị từ nó.
Cách 3. Sử dụng Framework có sẵn
Framework là một nền tảng được thiết kế sẵn kiến trúc hệ thống, cung cấp sẵn các thư viện tiện lợi. Đảm bảo khi bạn phát triển web thì bạn chỉ cần tập trung vào tính năng của trang web, chứ không cần quan tâm tới các yếu tố khác.
Nếu việc xây dựng một trang web hoàn chỉnh giống như việc xây nhà. Thì khi sử dụng framework, coi như bạn đã có người trộn vữa sẵn, có người xếp gạch sẵn, có người chuẩn bị sẵn các đồ nghề như bay, dây dọi, thước,… và bạn không cần phải quan tâm tới chất lượng vữa có tốt không, gạch có tốt không, bay, dây dọi, thước có đầy đủ không. Công việc của bạn chỉ là vận dụng những thứ được cung cấp sẵn để xây dựng lên ngôi nhà theo ý mình.
Một số framework hót hòn họt hiện nay:
- Laravel: Đây là PHP famework được đánh giá cao nhất hiện nay, Laravel không chỉ là một PHP framework đơn thuần mà nó còn là cả một hệ sinh thái cung cấp tiện ích tới tận răng giúp bạn xây dựng một ứng dụng web nhanh chóng và hiệu quả. Trên blog mình cũng ưu ái dành cả một chuyên mục để nói về Laravel.
- Symfony: Cũng gần giống Laravel, mạnh mẽ không kém nhưng cộng đồng developer sử dụng lại ít hơn.
- Codeigniter: Nói về Codeigniter thì giống như nhắc về một huyền thoại vậy, Codeigniter từng là framework số một, từng là lựa chọn của nhiều developer. Có điều, Codeigniter không chịu cập nhật theo nhu cầu của thị trường, nên đó đang dần mai một. Mặc dù có kế hoạch cho ra mắt phiên bản Codeigniter 4 để đuổi theo xu hướng công nghệ, nhưng nó vẫn không có điều gì khác biệt với những framework tiên tiến khác (nhận định của mình năm 2019).
Bạn nên sử dụng Framework khi nào?
Framework không được thiết kế sẵn thành một ứng dụng web hoàn chỉnh như CMS, cũng không khiến bạn phải làm mọi thứ như “Tự code”. Framework đứng ở giữa, không quá tiện lợi, cũng không quá thô sơ. Vì vậy mà bạn có thể sử dụng framework để làm các dự án từ nhỏ xíu như mấy con pet project của mình, hoặc cũng có thể là cả một hệ thống web lớn.
Cách 4. Sử dụng CMS hoặc Framework của bản thân
Mỗi người lại có một ý kiến khác nhau, có người thấy các CMS, framework có sẵn vô cùng tiện lợi và hữu dụng. Nhưng có những người thấy chúng thật lằng nhằng, thừa thãi. Những developer “bất hảo” như vậy thường “tự chế tạo” cho mình một CMS hoặc framework riêng để thay thế các nền tảng có sẵn. Với họ, sản phẩm của mình tạo ra là dễ dàng kiểm soát nhất.
Việc tự xây dựng một nền tảng riêng cũng không quá khó, về cơ bản tất cả các thành phần để xây nên một framework hay CMS đều có mặt đầy đủ trên mạng. Chỉ cần bạn có kinh nghiệm với các nền tảng tương tự là có thể ráp chúng lại với nhau và tạo nên sản phẩm của riêng mình.
Sử dụng nền tảng riêng giúp bạn có một số lợi thế:
- Dễ dàng để lại thương hiệu cá nhân trong các sản phẩm.
- Mã nguồn bảo mật hơn do chỉ lưu hành nội bộ.
- Dễ dàng kiểm soát.
Nhưng có cũng nhiều điểm bất lợi:
- Tốn khá nhiều thời gian.
- Không có cộng đồng hỗ trợ.
- Bạn không thể tập trung vào tính năng chính của dự án.
Khi nào nên sử dụng?
- Khi bạn sẵn sàng đánh đổi nhược điểm để đổi lấy ưu điểm như mình phân tích ở trên.
- Khi bạn thực sự cảm thấy không thể “sống chung” với các nền tảng có sẵn.
Kết luận
Trong 4 cách mà mình kể trên, thì cách 2 và cách 3 được áp dụng trong các dự án web nhiều nhất. Trong đó, nền tảng đại diện cho từng cách là WordPress (PHP CMS số 1) và Laravel (PHP Framework số 1). Chính vì sự phổ biến này, nên khái niệm “web wordpress” mới ra đời, và các tin tuyển dụng thì hay yêu cầu biết Laravel.
Bài viết được viết dựa theo kinh nghiệm cá nhân. Rất mong nhận được góp ý của các bạn.