Web novel (Chương 61 ~ 80)
Chương 65: Toàn cảnh phát triển Web
0 Bình luận - Độ dài: 1,214 từ - Cập nhật:
Enjoy!
-------------------------------------
Toàn cảnh phát triển Web
Sau khi câu chuyện về việc ôn thi tạm lắng xuống, Takuya-san lại quay sang nhìn tôi.
“Nhân tiện, chuyện React với TypeScript mà cậu nói lúc nãy ấy.”
“Vâng.”
“Cụ thể là cậu đang mắc kẹt ở đâu, nói rõ cho anh nghe xem.”
“Dạ, được ạ.”
Tôi hít một hơi, cố gắng sắp xếp lại mớ hỗn độn trong đầu rồi bắt đầu nói.
“Thực ra là… mọi thứ đang rối tung cả lên. React, TypeScript, Node.js… em đều đang học, nhưng không hiểu rõ mỗi thứ đảm nhiệm vai trò gì, rồi nên học theo thứ tự nào trước sau. Càng học càng thấy mù mờ.”
Takuya-san trầm ngâm “ừm” một tiếng, khoanh tay suy nghĩ một lát, rồi bất ngờ hỏi:
“Kenta, khi nấu ăn thì cậu bắt đầu từ đâu?”
“Ể? Nấu ăn ạ?”
Câu hỏi quá đột ngột khiến tôi ngơ ngác.
“Thì… chuẩn bị nguyên liệu, sơ chế, rồi mới nấu…”
“Đúng vậy.”
Anh ấy gật đầu.
“Nấu ăn có từng công đoạn rõ ràng. Web app cũng thế. Nếu ngay từ đầu đã cố làm tất cả cùng lúc thì kiểu gì cũng thất bại.”
Nói rồi, anh ấy bật máy tính của mình lên.
“Để anh cho cậu xem trực tiếp.”
Trên màn hình hiện ra một trình soạn thảo code quen thuộc.
“Giả sử Chihiro-chan nhập ‘Sakura mochi 5 cái’ vào form đặt hàng.”
Vừa nói, anh vừa gõ code, vừa giải thích.
“Đầu tiên là frontend. Đây là phần giao diện chạy trên điện thoại hay máy tính của Chihiro-chan. Ở đây, em ấy nhập ‘Sakura mochi 5 cái’.”
Trên màn hình hiện ra một giao diện giống như form đặt hàng.
“Tiếp theo, thông tin đó được gửi qua internet đến backend server. Backend là hệ thống xử lý hậu trường, chạy trên một máy tính khác.”
Code chạy, dữ liệu xuất hiện ở một màn hình khác.
“Rồi backend lại kết nối đến database server — cũng là một máy khác nữa — để kiểm tra tồn kho, ghi lại đơn hàng.”
Một màn hình khác nữa hiện lên, cho thấy dữ liệu đang được lưu trữ.
“Cuối cùng, kết quả từ database được trả về backend, rồi từ đó gửi ngược lại qua internet đến frontend, và hiển thị cho Chihiro-chan dòng ‘Đã tiếp nhận đơn hàng’.”
Takuya-san vừa nói vừa chỉ vào ba khu vực khác nhau trên màn hình.
“Nói cách khác, frontend, backend và database đang chạy trên những máy tính khác nhau.”
Tôi vô thức giơ tay hỏi:
“À… thế còn website WordPress của tiệm Mizunoya thì sao ạ? Em vẫn thao tác trên máy tính của mình mà…”
“Câu hỏi hay đấy.”
Takuya-san gật đầu hài lòng.
“Thực ra WordPress của Mizunoya cũng dùng đúng cơ chế đó. Khi cậu chỉnh sửa WordPress trên máy mình, thực chất là cậu đang truy cập từ máy cá nhân đến một máy khác trên cloud — tức là server.”
“Ơ, vậy sao?”
“Đúng vậy. Màn hình quản trị WordPress mà cậu thấy là frontend hiển thị trên trình duyệt. Hệ thống WordPress phía sau là backend. Còn nơi lưu bài viết, thông tin người dùng… chính là database. Tất cả đều chạy trên các server riêng.”
Anh ấy vừa nói vừa dùng tay minh họa.
“Khi cậu viết bài rồi bấm ‘Đăng’, dữ liệu đó được gửi qua internet đến server WordPress và lưu vào database. Còn khi Chihiro-chan truy cập website, hệ thống lại gửi một request khác để lấy dữ liệu từ database và hiển thị ra.”
“Uwaa… em không hề biết. Cứ tưởng là mình làm hết trên máy tính.”
“Khoan đã.”
Takuya-san nở một nụ cười hơi tinh quái.
“Nếu thật sự mọi thứ đều chạy trên máy của cậu, thì Chihiro-chan làm sao xem được website Mizunoya bằng điện thoại?”
“À…”
Quả đúng là vậy. Chihiro có thể xem website bất cứ lúc nào trên điện thoại, ngay cả khi máy tính của tôi đã tắt.
“Cho nên, thực ra cậu đã sử dụng hệ thống phân tán từ lâu rồi. Chỉ là WordPress lo hết cho cậu, nên cậu không nhận ra thôi.”
Nhìn thấy toàn bộ quy trình một cách trực quan như vậy, tôi không kìm được sự phấn khích.
“À! Thì ra hệ thống vì Chihiro đang vận hành như thế này!”
Bức tranh tổng thể bỗng nhiên hiện ra rõ ràng trước mắt tôi. Những công nghệ mà trước giờ tôi học rời rạc, giờ đây đều liên kết với nhau.
“Đúng vậy.”
Takuya-san cười khổ.
“Học kỹ thuật bằng cách yêu đương như cậu đúng là trường hợp hiếm.”
“Với cậu, hãy lấy hệ thống của tiệm Mizunoya của Chihiro-chan làm trục để học.”
“Ý anh là sao?”
“Xây hệ thống quản lý tồn kho bằng backend, học quản lý đơn hàng qua database, rồi làm giao diện khách hàng bằng frontend. Vì là hệ thống dùng thật, cậu sẽ nhớ nhanh hơn — mà Chihiro-chan chắc chắn cũng sẽ rất vui.”
Tôi chợt hiểu ra.
Một cách học kết hợp giữa tính thực tế… và động lực từ tình cảm.
“Thật ra lúc đầu, anh cũng bắt đầu học lập trình vì một cô gái mình thích.”
Takuya-san bất ngờ nói vậy.
“Thật sao ạ?”
“Hồi còn học ở Đại học Tsukuba, trong cùng câu lạc bộ có một cô gái làm website. Anh muốn cô ấy chú ý đến mình nên đã liều mạng học lập trình.”
“Vậy… rồi sao nữa ạ?”
“Ừm, chuyện đó để hôm khác kể tiếp nhé.”
Takuya-san khéo léo lảng sang chuyện khác, nhưng trên gương mặt lại thoáng hiện một vẻ ngại ngùng.
“Dù sao thì, khi công nghệ gắn với mong muốn làm ai đó vui, con người ta học nhanh hơn rất nhiều. Cách tiếp cận của cậu không hề sai.”
Nghe được lời khẳng định ấy, cái gọi là “học vì tình” của tôi như được đóng dấu bảo chứng, khiến lòng tôi nhẹ nhõm hẳn đi.
“Được rồi, lý thuyết nói đến đây là đủ. Bắt đầu từ backend thôi.”
Takuya-san đứng dậy, quay lại trước máy tính.
“Ơ? Làm ngay bây giờ ạ?”
“Trăm nghe không bằng mắt thấy. Để anh cho cậu xem thứ đang chạy thật.”
Tôi rời đi với tâm trạng vô cùng mãn nguyện.
Những kiến thức kỹ thuật từng khiến tôi rối bời, giờ đây được sắp xếp lại gọn gàng nhờ một mục tiêu rõ ràng: xây dựng hệ thống vì Chihiro. Hơn nữa, khi biết rằng Takuya-san ngày xưa cũng học lập trình vì tình yêu, tôi càng chắc chắn rằng con đường mình đang đi không hề sai.
Bảy phần dành cho ôn thi đại học, ba phần cho học kỹ thuật. Và tôi đã nhìn thấy cách để tận dụng ba phần ấy một cách hiệu quả hơn.
Trên chuyến tàu về nhà, tôi nghĩ đến việc sẽ kể lại chuyện hôm nay cho Chihiro. Chắc chắn em ấy sẽ rất vui.
Và rồi, bằng chính những kỹ thuật vừa học được, tôi muốn khiến Mizunoya trở nên tiện lợi hơn, tốt hơn. Chỉ nghĩ đến đó thôi, lòng tôi đã ngập tràn cảm xúc ấm áp.
0 Bình luận