Bài 01: Phương pháp lập trình truyền thống - Học lập trình PHP nâng cao
Để cho các bạn hiểu rõ tại sao lại phải học lập trình hướng đối tượng thì tôi sẽ giới thiệu các phương pháp lập trình truyền thống, từ đó các bạn thấy được các ưu và nhược điểm của từng phương pháp. Nội dung chúng ta sẽ tìm hiểu các phương pháp sau: Lập ...
Để cho các bạn hiểu rõ tại sao lại phải học lập trình hướng đối tượng thì tôi sẽ giới thiệu các phương pháp lập trình truyền thống, từ đó các bạn thấy được các ưu và nhược điểm của từng phương pháp.
Nội dung chúng ta sẽ tìm hiểu các phương pháp sau:
- Lập trình truyền thống có cấu trúc
- Lập trình truyền thống hướng thủ tục
- Lập trình truyền thống hướng modun
1. Lập trình truyền thống không có cấu trúc
Đây là phương pháp lập trình truyền thống cho những người mới bắt đầu học lập trình, không sử dụng hàm, tất cả dòng lệnh đều viết trong file từ trên xuống dưới, dữ liệu đều dùng chung và tất cả các biến đều ở dạng toàn cục.
Ví dụ: Chương trình in ra danh sách sinh viên
//----------------------------------------// // Chương trình in ra danh sách sinh viên // //----------------------------------------// // Danh Sách Sinh Viên $sinhvien = array( 'Nguyễn Văn A', 'Nguyễn Văn B', 'Nguyễn Văn C', 'Nguyễn Văn D', 'Nguyễn Văn E', 'Nguyễn Văn F', 'Nguyễn Văn G', 'Nguyễn Văn H', 'Nguyễn Văn I', 'Nguyễn Văn K', 'Nguyễn Văn L', 'Nguyễn Văn M' ); // In ra danh sách sinh viên echo 'DANH SÁCH SINH VIÊN'; for ($i = 0; $i < $sinhvien; $i++){ echo 'Sinh Viên ' . $sinhvien[$i];<br> }
Ưu điểm: Viết rất nhanh, chương trình chạy cũng rất nhanh vì không phải thông qua giai đoạn gọi hàm, gọi đối tượng.
Nhược điểm:
- Gặp khó khăn khi xây dựng các chương trình lớn, vì dòng lệnh rất dài rất khó bảo trì và quản lý dòng code.
- Khi chương trình có những dòng lệnh được lặp lại thì phải copy thành nhiều chỗ, và khi sửa một chỗ thì phải sửa tất cả các chỗ còn lại.
- Chỉ viết được các chương trình nhỏ.
- Chương trình không khoa học, rất khó sửa chữa và bảo trì.
2. Lập trình truyền thống hướng thủ tục
Phương pháp lập trình thủ tục cũng là một phương pháp lập trình truyền thống, nó lấy các hàm làm nền tảng cơ bản để xây dựng chương trình, chương trình sẽ được phân nhỏ thành các hàm và mỗi hàm sẽ có chức năng riêng biệt. Các hàm sẽ gọi qua lại lẫn nhau để tạo thành một hệ thống của chương trình. Vì sử dụng hàm làm nền tảng nên có sử dụng khái niệm biến toàn cục và biến địa phương.
Hình minh họa lập trình hướng thủ tục
Ví dụ: Chương Trình Quản Lý Sinh Viên
//----------------------------------------// // Chương trình Quản Lý Nhân Viên// //----------------------------------------// // Hàm kết nối cơ sở dữ liệu function connect_db() { // Dòng lệnh ... } // Hàm ngắt kết nối cơ sở dữ liệu function disconnect_db() { // Dòng lệnh ... } // Thêm Sinh Viên function add_student($id, $name, $address, $birthday, $gender) { connect_db(); // Dòng lệnh ... disconnect_db(); } // Xóa sinh viên function delete_student($id) { connect_db(); // Dòng lệnh ... disconnect_db(); } // Sửa sinh viên function edit_student($id, $name, $address, $birthday, $gender) { connect_db(); // Dòng lệnh ... disconnect_db(); }
Ưu điểm:
- Chương trình được tổ chức khoa học hơn nên dễ quản lý và bào trì
- Có thể thực hiện được nhiều chương trình lớn hơn
Nhược điểm:
- Cách tiếp cận đôi khi không phù hợp với thực tế, các diễn đạt thiếu tự nhiên.
- Khó mô tả được các hoạt động của thế giới tự nhiên
- Bảo mật kém
3. Lập trình truyền thống hướng modun
Phương pháp lập trình truyền thống này lấy ý tưởng đóng hộp, các hàm có chức năng giống nhau sẽ được gom lại thành một modun độc lập, khi cần sử dụng module nào sẽ gọi tới module đó nên một chương trình có thể có nhiều module chứ không riêng lẻ độc lập.
Hình minh họa lập trình hướng module
Ví dụ: Cấu trúc chương trình phần mềm kế toán
File maths.php
//------------------// // FILE maths.php --// //------------------// // cộng 2 số function cong($a, $b){ // Các lệnh .. } // cộng 2 số function tru($a, $b){ // Các lệnh .. } // cộng 2 số function nhan($a, $b){ // Các lệnh .. } // cộng 2 số function chia($a, $b){ // Các lệnh .. }
File nhanvien.php
//------------------// // FILE nhanvien.php --// //------------------// // Gọi module maths để xử lý tính toán require ('maths.php'); // Thêm nhân viên function them_nv() { // Các lệnh .. } // Xóa nhân viên function xoa_nv() { // Các lệnh .. } // Sửa nhân viên function edit_nv() { // Các lệnh .. } // tính lương nhân viên function luong_nv() { // Các lệnh .. }
File chuongtrinhchinh.php
// Gọi module nhanvien để thực hiện các thao tác của nhân viên require 'nhanvien.php'; // Các thao tác xoa_nv(); them_nv(); edit_nv(); luong_nv();
Ưu điểm:
- Xây dựng được các chương trình lớn.- Code rõ ràng, dễ quản lý, bào trì và nâng cấp.
- Phân theo khối nên mạch lạc
Nhước điểm:
- Tuy phân theo khối nhưng dữ liệu không có sự gắn kết với nhau
- Dữ liệu khởi tạo không bị huy sau khi gọi hàm
4. Lời kết
Trong bài học này mục đích tôi muốn các bạn hiểu rõ một vài kỹ thuật lập trình truyền thống từ xưa tới nay, các ưu và nhược điểm của từng kỹ thuật, từ đó khi qua các bài lập trình hướng đối tượng các bạn sẽ dễ dàng so sánh ưu và nhược điểm của lập trình hướng đối tượng. Bài tiếp theo chúng ta sẽ học lập trình hướng đối tượng là gì?