Một Chương Trình Được Sinh Ra Như Thế Nào? (Phần 2)
NỘI DUNG BÀI VIẾT
3. Áp dụng thuật toán
“Lập trình viên không thể làm cho máy tính xử lí vấn đề nếu như chính anh ta cũng chả thể tự mình giải quyết nó”.
Thuật toán là những thủ thuật, biện pháp nào đó để giải quyết bài toán, vấn đề thôi. Nên chúng ta không cần phải vẽ ra những gì quá cao siêu, code chạy trước đi rồi mình tối ưu nó sau vẫn được mà.
Thuật toán cho việc tìm diện tích của một hình chữ nhật có chiều dài chiều rộng có vẻ đơn giản, ta chỉ cần lấy tích của chúng là ra. Nhưng nếu phải xử lý những bài toán phức tạp (cũng là tìm diện tích nhưng trên mặt phẳng tọa độ) thì sao nhỉ? Lúc đấy ta có thể lấy giấy bút ra và giải tay trước như một bài toán bình thường rồi phân tích hướng đi, quay lại bước 2 xem xét những biến, tham số nào phát sinh thêm trong quá trình. Và hãy nhớ, chỉ cần chúng ta giải được thì chúng ta sẽ code được.
4. Lập trình
Bước này ai cũng biết rồi đúng không nào, mở IDE, notepad,… và khai phím thôi nào.
5. Xây dựng bộ kiểm thử
Để biết được chương trình có chạy đúng mục đích hay không, người ta có khâu kiểm thử, điều này cũng giống như việc làm của các KCS trong nhà máy, xí nghiệp vậy.
Bộ kiểm thử được xây dựng dựa trên kết quả mong muốn (expected) của mình đối với chương trình (có thể là từng hàm trong đấy hoặc toàn bộ) và kết quả thực tế (actual) thay vì chúng ta phải log từng dòng ra để kiểm tra sẽ rất mất thời gian. Hiện nay có rất nhiều thư viện hỗ trợ cho việc kiểm thử (JUnit, Pytest, Jest,….)
Xây dựng bộ kiểm thử cho bài toán này thì sao nhỉ? Chúng ta có 2 input và 1 output đúng không. Thế thì bộ kiểm thử căn bản sẽ là
width | length | expected |
3 | 3 | 9 |
5 | 2 | 10 |
1 | 1 | 1 |
Thế này thì hơi đơn giản đúng không nào? Thế nhỡ đâu có một input cà trớn là số âm thì sao? Chúng ta đâu thể cấm người khác nhập được. Nếu như họ cố tình nhập như thế thì phải có gì đó thông báo lỗi chứ. Vậy thì:
width | length | expected |
-3 | 2 | error |
6 | -1 | error |
-5 | -5 | error |
Vậy là chúng ta đã có một bộ kiểm thử căn bản rồi. Việc xây dựng bộ kiểm thử này cũng có thể được thực hiện ngay sau bước số 0 để ta có thể hình dung rõ hơn chương trình của mình sẽ phải làm gì.
6. Kiểm thử và sửa lỗi
Có code rồi, có cả test rồi, chúng ta có thể chạy bộ test (kiểm thử) để xem chương trình đã chạy đúng hay chưa, có lỗi gì không. Nếu mọi thứ ổn định rồi thì mình có thể build ra một phiên bản hoàn chỉnh hoặc nộp bài cho giáo viên hay optimize cho code chạy nhanh hơn,… Còn trong trường hợp có lỗi xảy ra, chúng ta bắt đầu phân tích xem trong code đã có những vấn đề gì, lỗi ấy do đâu. Có thể quay về bước số 0 để tiến hành lại.
Lời kết
Bài viết này dựa trên những gì mình trải nghiệm và học hỏi, có thể đúng cũng có thể sai. Các bạn có thể góp ý dưới comment để cùng hoàn thiện nhé.
Tham khảo khóa học lập trình web 6 tháng, đảm bảo 100% công việc đầu ra!
Nguồn: https://codelearn.io/sharing/mot-chuong-trinh-duoc-sinh-ra-nhu-the-nao
Leave a Reply