1 00:00:00,662 --> 00:00:02,798 Khi viết chương trình, tức là ta đang tìm cách 2 00:00:02,798 --> 00:00:06,348 biến những ý tưởng thông minh trong đầu thành mã thực. 3 00:00:07,117 --> 00:00:08,947 Ở đây tôi muốn nói về kỹ thuật 4 00:00:08,947 --> 00:00:10,781 mà nhiều lập trình viên áp dụng để thực hiện điều đó 5 00:00:11,304 --> 00:00:13,481 và ta gọi đó là “mã giả”. 6 00:00:13,850 --> 00:00:17,081 Hiện tại có lẽ các bạn chưa từng nghe đến mã giả 7 00:00:17,383 --> 00:00:21,248 nhưng về cơ bản, đó là loại mã nhìn rất giống tiếng Anh 8 00:00:21,541 --> 00:00:24,474 hay thực chất, là bất cứ loại ngôn ngữ nào ta muốn sử dụng. 9 00:00:25,946 --> 00:00:27,192 Được rồi, nghe có vẻ vô lý 10 00:00:27,192 --> 00:00:29,173 vậy nên ta cùng xem một ví dụ cụ thể nhé. 11 00:00:30,083 --> 00:00:33,488 Giả sử ta muốn vẽ một khuôn mặt xinh đẹp, cân đối. 12 00:00:34,011 --> 00:00:36,404 Tôi sẽ bắt đầu bằng cách tự soi gương, 13 00:00:36,404 --> 00:00:37,530 phác thảo khuông mặt mình 14 00:00:37,530 --> 00:00:40,098 và thấy rằng, được rồi mình có khuôn mặt trái xoan, 15 00:00:40,668 --> 00:00:44,138 2 mắt và nằm ở khoảng này 16 00:00:44,138 --> 00:00:46,855 và đây là trung tâm của khuôn mặt, 17 00:00:46,855 --> 00:00:51,194 Bây giờ tôi đã có ý tưởng về dung nhan khuôn mặt của mình. 18 00:00:51,776 --> 00:00:54,596 Tôi sẽ bắt đầu viết bằng mã giả. 19 00:00:55,795 --> 00:00:57,945 Xem nào, đầu tiên là 20 00:00:58,438 --> 00:01:01,085 vẽ khuôn mặt trái xoan ở chính giữa. 21 00:01:02,621 --> 00:01:05,331 Sau đó ta sẽ vẽ 2 mắt, 22 00:01:05,926 --> 00:01:10,926 2 hình bầu dục, vị trí 2/3 khuôn mặt 23 00:01:11,784 --> 00:01:14,740 và có lẽ khoảng 1/5 kích thước khuôn mặt. 24 00:01:15,346 --> 00:01:17,967 Kích thước không chính xác lắm, tôi chỉ đang nhìn khuôn mặt của mình thôi. 25 00:01:18,330 --> 00:01:20,736 Sau đó tôi sẽ vẽ miệng bằng một đường thẳng 26 00:01:20,736 --> 00:01:23,621 đến nửa chừng khuôn mặt 27 00:01:24,145 --> 00:01:27,971 và có lẽ là 1/3 khuôn mặt tính từ dưới lên. 28 00:01:29,435 --> 00:01:32,377 Hãy chú ý cách tôi viết mã giả dưới dạng comment 29 00:01:32,716 --> 00:01:35,497 bằng cách bắt đầu từng dòng với 2 dấu gạch chéo. 30 00:01:36,602 --> 00:01:39,979 Như vậy tôi có thể viết mã giả trong chương trình 31 00:01:39,979 --> 00:01:42,778 mà không phải lo gặp bất kỳ lỗi cú pháp nào 32 00:01:43,824 --> 00:01:46,049 vì chương trình sẽ bỏ qua comment. 33 00:01:46,981 --> 00:01:48,912 Sau khi viết xong bằng mã giả, 34 00:01:48,912 --> 00:01:51,033 tôi có thể dành thời gian để biến từng 35 00:01:51,033 --> 00:01:54,734 dòng mã giả này thành các đoạn mã thực. 36 00:01:55,316 --> 00:01:56,265 Được rồi, cùng quan sát nhé. 37 00:01:56,265 --> 00:01:58,703 Với khuôn mặt, hình bầu dục ở trung tâm. 38 00:01:58,703 --> 00:02:01,244 Tôi sẽ sử dụng hàm ellipse 39 00:02:01,244 --> 00:02:05,257 và chỉ định trung tâm màn hình ở đây 40 00:02:05,257 --> 00:02:08,047 rồi tìm một kích thước phù hợp. 41 00:02:08,562 --> 00:02:10,133 OK, trông đẹp rồi đấy. 42 00:02:10,449 --> 00:02:12,676 Với mắt, ta lại sử dụng hàm ellipse. 43 00:02:12,908 --> 00:02:15,606 Tất cả mọi thứ trên mặt tôi đều có hình bầu dục, tôi tròn lắm. 44 00:02:17,067 --> 00:02:19,900 Mắt sẽ ở, xem nào, ta sẽ tính toán một chút 45 00:02:19,900 --> 00:02:23,545 để đưa mắt vào vị trí phù hợp 46 00:02:23,545 --> 00:02:27,042 và cho chúng kích thước cân đối. 47 00:02:27,044 --> 00:02:29,134 OK, con mắt đầu tiên đẹp rồi đấy, 48 00:02:29,134 --> 00:02:31,281 tôi sẽ sao chép và dán để tạo con mắt tiếp theo. 49 00:02:31,757 --> 00:02:32,716 Tuyệt vời. 50 00:02:33,136 --> 00:02:35,423 Bây giờ, tôi thậm chí có thể để bạn mình 51 00:02:35,423 --> 00:02:37,915 triển khai mã giả và có thể họ làm được chứ 52 00:02:37,915 --> 00:02:40,075 vì tôi đã hướng dẫn kỹ lưỡng như thế này rồi mà. 53 00:02:40,782 --> 00:02:45,083 Quyết định vậy đi, vì chúng ta là bạn mà, phải không? 54 00:02:45,898 --> 00:02:48,766 Hẳn các bạn sẽ nghĩ việc này thật ngu ngốc, 55 00:02:48,766 --> 00:02:50,454 tại sao lại phải tốn công 56 00:02:50,454 --> 00:02:53,529 viết một chương trình 2 lần, lần đầu bằng ngôn ngữ của con người 57 00:02:53,529 --> 00:02:55,068 rồi lần 2 bằng ngôn ngữ lập trình? 58 00:02:55,383 --> 00:02:57,846 Ví dụ này khá đơn giản 59 00:02:57,846 --> 00:03:00,527 nhưng sớm thôi các bạn sẽ phải xây dựng những chương trình phức tạp hơn 60 00:03:00,527 --> 00:03:03,360 và có thể các bạn sẽ khó mà giữ được toàn bộ chương trình 61 00:03:03,360 --> 00:03:05,763 trong đầu trước khi lập trình, 62 00:03:05,763 --> 00:03:07,945 vì vậy tôi thường viết ý tưởng chung 63 00:03:07,945 --> 00:03:12,182 bằng mã giả trước rồi mới dành thời gian 64 00:03:12,182 --> 00:03:15,341 cho chi tiết của từng phần ý tưởng đó, 65 00:03:15,341 --> 00:03:19,242 biến từng dòng mã giả thành mã thật. 66 00:03:19,826 --> 00:03:22,674 Tôi nghĩ một khi bắt đầu sử dụng mã giả, 67 00:03:22,674 --> 00:03:23,957 các bạn sẽ thấy thích hơn đấy. 68 00:03:24,400 --> 00:00:00,000 Hãy thử trong chương trình tiếp theo nhé.