Học lập trình không chỉ học ngôn ngữ lập trình, mà phương pháp lập trình cũng vô cùng quan trọng. Có một số ngôn ngữ lai ( hybrid ) hỗ trợ nhiều phương pháp lập trình, ví dụ như C#, Java hỗ trợ thuần hướng đối tượng. Ngôn ngữ lập trình thì có rất nhiều, chúng ta có thể tra cứu như tra từ điển vậy, còn phương pháp lập trình thì chúng ta bắt buộc phải nắm vững. Bài viết dưới đây sẽ giới thiệu tổng quát về các phương pháp lập trình cơ bản để có cái nhìn tổng quát nhất.
Phương pháp lập trình tuần tự (Sequential Programming)
Vào thủa sơ khai phương pháp lập trình là lập trình tuần tự. Một chương trình sẽ là một tập hợp các câu lệnh có thứ tự chạy nối tiếp nhau.
Chương trình sẽ chạy từ câu lệnh đầu tiên, và kết thúc ở câu lệnh cuối cùng. Lập trình thế này khó, lâu, và việc xử lý các bài toán lớn sẽ khó khăn, chương trình chỉ có thể viết theo một cấu trúc duy nhất là tuần tự.
Phương pháp lập trình cấu trúc (Structured Programming)
Đây là một phần của các phương pháp lập trình thủ tục, ở phương pháp lập trình này ngoài cấu trúc tuần tự, ta có thể viết chương trình theo các cấu trúc rẽ nhánh, cấu trúc vòng lặp và kết hợp của các cấu trúc đó với nhau. Ở phương pháp lập trình này xuất hiện khái niệm về cấu trúc điều khiển ( control structure) như if-else, switch case…để khiển rẽ nhanh hay for, while để điều khiển vòng lặp.
Phương pháp này đã khiến việc lập trình trở lên linh hoạt hơn rất nhiều, nhưng nó vẫn thực sự hạn chế khi lập trình các hệ thống lớn. Hiện nay nó không còn là phương pháp lập trình thông dụng. Nhưng nó vẫn tồn tại như là một phần không thể thiếu trong các phương pháp lập trình hiện đại hơn.
Phương pháp lập trình thủ tục (Procedural Programming)
Phương pháp lập trình thủ tục hay còn gọi là hướng chức năng. Phương pháp này sẽ chia một chương trình thành các khối thủ tục nhỏ, mỗi thủ tục sẽ có dữ liệu và logic riêng. Các thủ tục làm việc độc lập với nhau, dữ liệu sẽ được trao đổi qua các đối số ( arguments) và giá trị trả về ( returned value). Việc chia thủ tục sẽ có nhiều lợi thế ví dụ như việc sử dụng lại mã ( reuse code) dễ dàng chia công việc cho nhiều người.
Lập trình thủ tục đi liền với các khái niệm khái niệm hàm (function), thủ tục (procedure), tham số (paramenter), đối số (argument), trả về (return).. Ở một số ngôn ngữ như C, C++ không phân biệt hàm với thủ tục, ở một số ngôn ngữ khác như pascal thì hàm sẽ có giá trị trả về và sử dụng từ khóa function, còn thủ tục không có giá trị trả về và sử dụng từ khóa procedure.
Cách lập trình này đã trìu tượng hóa công việc lập trình hơn rất nhiều. Người lập trình có thể quan sát tổng thể một chương trình qua các chức năng của nó mà không cần quan tâm tới chi tiết trong nó. Hiểu được đặc điểm này là rất quan trọng, nó sẽ giúp bạn giải quyết các bài toán lớn một cách dễ dàng và chính xác hơn rất nhiều.
Có thể lập trình thủ tục khó tiếp cận và không có được nhiều ưu điểm như phương pháp hướng đối tượng nhưng nó là phương pháp lập trình quan trọng. Nắm được phương pháp này bạn sẽ dễ dàng tiếp cận được với những phương pháp lập trình cao hơn, lập trình hướng đối tượng dù là phương pháp hiện đại hơn nhưng nó vẫn chứa đựng trong đó các hàm và thủ tục.
Các ngôn ngữ hỗ trợ lập trình hướng thủ tục thông dụng như: C, C++, Pascal, PHP…
Phương pháp lập trình hướng đối tượng (Object-Oriented Programming)
Lập trình hướng đối tượng (object-oriented programming viết tắt là OOP), hay còn gọi là lập trình định hướng đối tượng, là kĩ thuật lập trình hỗ trợ công nghệ đối tượng. OOP được xem là giúp tăng năng suất, đơn giản hóa độ phức tạp khi bảo trì cũng như mở rộng phần mềm bằng cách cho phép lập trình viên tập trung vào các đối tượng phần mềm ở bậc cao hơn. Ngoài ra, nhiều người còn cho rằng OOP dễ tiếp thu hơn cho những người mới học về lập trình hơn là các phương pháp trước đó.Một cách giản lược, đây là khái niệm và là một nỗ lực nhằm giảm nhẹ các thao tác viết mã cho người lập trình, cho phép họ tạo ra các ứng dụng mà các yếu tố bên ngoài có thể tương tác với các chương trình đó giống như là tương tác với các đối tượng vật lý.
Những đối tượng trong một ngôn ngữ OOP là các kết hợp giữa mã và dữ liệu mà chúng được nhìn nhận như là một đơn vị duy nhất. Mỗi đối tượng có một tên riêng biệt và tất cả các tham chiếu đến đối tượng đó được tiến hành qua tên của nó. Như vậy, mỗi đối tượng có khả năng nhận vào các thông báo, xử lý dữ liệu (bên trong của nó) và gửi ra hay trả lời đến các đối tượng khác hay đến môi trường
Trong OOP, việc lập trình dựa trên cơ chế kế thừa, tận dụng mọi đặc trưng đã được mô tả cho các lớp có sẵn để tạo ra lớp mới. Các đối tượng trong OOP dùng các thông báo gửi tới các đối tượng khác để thực hiện yêu cầu tính toán cần thiết. OOP quan tâm nhiều tới việc nhìn nhận khía cạnh tĩnh của đối tượng – dữ liệu, và coi chương trình xử lí là một thành phần của dữ liệu đó phản ánh mặt động của đối tượng.
Hầu hết các ngôn ngữ lập trình hiện đại đều có xu hướng hỗ trợ lập trình hướng đối tượng. Các ngôn ngữ lập trình hướng đối tượng phổ biến: Objective-C, C++, JAVA, C#…
Với những chia sẻ trên, hy vọng sẽ giúp các bạn hiểu hơn về các phương pháp lập trình cơ bản nhất.