Menu
Đăng ký
Truyện
← Trước Sau →
Truyen.Free

(Đã dịch) Học Bá Đích Hắc Khoa Kỹ Hệ Thống - Chương 47: Khai phá cái APP luyện tập

Phòng máy khá vắng vẻ, không một bóng người. Bởi lúc này đang là kỳ nghỉ hè, các sinh viên bình thường đâu mấy ai sử dụng máy tính.

Lục Chu bước đến bật điều hòa, tùy ý chọn một chiếc máy tính trống, thành thục nhập tài khoản và mật khẩu để đăng nhập. Sở dĩ Lục Chu chọn phòng máy của trường chủ yếu là vì ngôn ngữ Python cùng các chương trình của nó chủ yếu vận hành trên hệ điều hành Linux. Học Python trực tiếp trong môi trường Linux có thể nói là một công đôi việc. Chiếc laptop cũ kỹ của Lục Chu thực sự quá tệ hại, đến nỗi chuyển một bài luận sang định dạng PDF cũng phải "chết đứng" một hồi, còn khi chơi game thì người khác đã bắt đầu giao tranh hắn mới từ khu vực xuất phát tiến lên. Việc cài đặt song song hệ điều hành hay sử dụng máy ảo những thao tác ấy thì càng không cần nghĩ tới.

Dù sách vở đã nói rất rõ ràng, nhưng Lục Chu không ngờ thứ này lại phiền phức đến vậy khi sử dụng... Quả nhiên, những điều trên lý thuyết và thực tế thao tác hoàn toàn là hai chuyện khác nhau. Muốn học được thật sự, vẫn phải dựa vào thực tiễn. Lần đầu sử dụng hệ điều hành Linux, Lục Chu cảm thấy khá lúng túng. Hắn phải dựa vào cuốn giáo trình mượn từ thư viện, đọc đi đọc lại hồi lâu mới dần hiểu rõ được ngọn ngành.

Không thể không nói, hệ điều hành Windows chiếm lĩnh thị phần lớn đến vậy quả có lý do của nó. Một hệ điều hành đồ họa trực quan, ngay cả người mới hoàn toàn chưa từng chạm vào máy tính cũng có thể dễ dàng làm quen. Thế nhưng hệ điều hành Linux lại khác hẳn, về cơ bản là hình thức thao tác bằng dòng lệnh, chỉ cần thông qua bàn phím là có thể hoàn thành mọi thao tác. Cũng may mà trường học đã cài đặt phiên bản có môi trường giao diện đồ họa, nếu không Lục Chu còn chẳng biết con chuột này dùng để làm gì.

Đương nhiên, ưu điểm của Linux cũng rất rõ ràng: tính tùy biến cực cao và độ bảo mật tuyệt vời khiến nó thích hợp hơn hệ điều hành Windows cho máy chủ và nhiều lĩnh vực khác. Hơn nữa, một khi đã quen thuộc với việc thao tác bằng dòng lệnh, hiệu suất công việc sẽ cao hơn người dùng Windows gấp mấy lần. Bởi vậy, nhiều doanh nghiệp khi tuyển dụng lập trình viên server đều sẽ hỏi một câu: có biết sử dụng hệ điều hành Linux hay không.

Sau khi làm quen với các thao tác cơ bản của hệ điều hành Linux, Lục Chu mở phần mềm Python, đặt sách vở lên bàn và ngồi trước máy tính, đăm chiêu suy nghĩ.

"Nhắc đến ứng dụng của Python, một trong số đó là viết Web crawler. Nếu muốn kiểm nghiệm thành quả học tập, bắt đầu từ đây là tốt nhất... Nhưng nên thu thập dữ liệu từ đâu đây?"

Lục Chu không khỏi rơi vào trầm tư.

Thu thập bài viết từ Weibo Blog ư? Thu thập các bài đăng trên Tieba ư? Hình như hơi tẻ nhạt.

Vấn đề chính là dữ liệu thu thập được dù có cầm trong tay cũng vô dụng, nhiều đến nỗi chẳng có chỗ để lưu trữ.

Bỗng nhiên, trong lòng hắn chợt động, không biết vì sao lại nhớ đến những trải nghiệm khổ sở khi giành vé mỗi lần về nhà. Không phải vì máy tính của hắn chậm, mà là vì giao diện người dùng (UI) của trang web chính thức ngành đường sắt thực sự quá bất tiện.

"Dùng kỹ thuật thu thập dữ liệu để lấy thông tin về các nhà ga, số hiệu tàu, số vé còn lại từ trang web 12306... Cái này hình như có thể làm được."

Nghĩ đến đây, Lục Chu không còn chần chừ nữa, lập tức bắt tay vào việc.

Bởi lẽ, Web crawler là một kiểu ứng dụng điển hình của ngôn ngữ Python, khung chương trình thu thập dữ liệu đều được đề cập trong sách. Hơn nữa, để ứng phó với các tình huống khác nhau, trong sách còn tiến hành cải tiến thuật toán ở nhiều mức độ khác nhau. Đương nhiên, 12306 rốt cuộc không phải một diễn đàn BBS thông thường, lấy nó làm mục tiêu luyện tập cho người mới học vẫn có độ khó không nhỏ. Bất quá, độ khó này cũng chỉ là "không nhỏ" mà thôi. Đối với học bá Lục Chu, người đã hiểu rõ cả cuốn sách, vấn đề này chẳng đáng là bao. Bản thân kỹ thuật thu thập dữ liệu cũng không có độ khó quá cao, chưa đến 30 dòng mã đã có thể định hình toàn bộ chương trình, vận hành hoàn hảo không một lỗi nhỏ.

Sau đó, chính là bắt đầu thu thập dữ liệu.

Lục Chu dán URL của trang web vào sau đoạn mã, chọn chạy chương trình, đồng thời tạo bảng dữ liệu và lưu vào tệp tin đã tạo sẵn. Ngay lập tức, quạt tản nhiệt của máy tính bắt đầu kêu ong ong, máy tính trở nên chậm dần. Từng hàng mã hóa nhanh chóng lướt qua trong khung lệnh màu đen, và được thu thập vào bảng dữ liệu.

Nhìn tệp tin dữ liệu không ngừng được bổ sung, Lục Chu tựa vào ghế, trong lòng cảm thán.

"Ngôn ngữ Python thực sự tiện lợi đến vậy, chẳng trách nhiều cao thủ đều đề cử thứ này."

Nhìn từng hàng thông tin dữ liệu lướt qua, Lục Chu thực sự có cảm giác mình như một hacker đang say mê. Nhưng đương nhiên, đó cũng chỉ là ảo giác mà thôi, thậm chí không thể gọi là cảm giác. Rốt cuộc, việc này hoàn toàn chẳng liên quan gì đến kỹ thuật hacker. Thu thập thông tin công khai từ máy chủ không phải là phạm pháp, nhiều lắm thì chỉ có hiềm nghi chiếm dụng tài nguyên máy chủ của người khác, và sẽ bị các quản trị viên web căm ghét không thôi.

Bởi vậy, nhiều trang web "hẹp hòi" sẽ thiết lập chương trình chống thu thập dữ liệu. Nếu kỹ thuật cao, sẽ khiến ngươi không thể thu thập được gì, hoặc thu về toàn là mã loạn; nếu hàm lượng kỹ thuật thấp, cũng có thể thông qua việc giám sát số lần truy vấn mà trực tiếp khóa địa chỉ IP của ngươi. Bất quá, trang web 12306 hiển nhiên không hề hẹp hòi đến thế. Ngẫm lại một bá chủ độc quyền mà đến cả trải nghiệm người dùng cơ bản cũng chẳng thèm quan tâm, thì sao lại để ý chút tài nguyên máy chủ này chứ? Chỉ cần các ngươi đừng làm sập máy chủ của ta, ai mà thèm quản!

Nhìn thư mục chứa thông tin số hiệu tàu không ngừng chất đống, ánh mắt Lục Chu lấp lánh, suy nghĩ liệu có nên dùng nó để làm gì đó không.

"Làm một trang web đặt vé ư? Hình như hơi thừa thãi..."

Bỗng nhiên, trong lòng hắn chợt động.

"Nếu không thì..."

"Làm một ứng dụng đặt vé trực tuyến?"

Ý nghĩ tức thời nảy ra này vừa xuất hiện đã không thể khống chế, cứ thế bén rễ nảy mầm trong lòng hắn. Tuy trên internet có không ít ứng dụng đặt vé của bên thứ ba, nhưng một ứng dụng đặt vé chính thức thì quả thật chưa có. Nếu hắn có thể tạo ra một cái độc đáo, khác biệt, bán cho những nhà vận hành có hứng thú, biết đâu còn có thể kiếm thêm chút chi phí sinh hoạt.

Một khi liên quan đến tiền bạc, Lục Chu tức khắc trở nên chú tâm, trong lòng bắt đầu không ngừng tính toán. Về mặt kỹ thuật, việc độc lập hoàn thành một ứng dụng từ khâu phát triển giao diện người dùng (frontend) đến lập trình máy chủ (backend) có độ khó rất cao, khó hơn nhiều so với việc chỉ viết một chương trình thu thập dữ liệu đơn giản. Bất quá, điều đó cũng không phải là không thể hoàn thành. Huống chi, nếu không giải quyết được thuật toán thì còn có thể hỏi hệ thống, việc tiêu hao điểm tích lũy để tra cứu tài liệu bản thân cũng chính là một quá trình học tập. Chờ hắn hoàn thành nhiệm vụ khen thưởng, mở khóa công nghệ trí tuệ nhân tạo cấp LV0, những kinh nghiệm quý báu này nhất định sẽ phát huy được tác dụng.

Chỉ có điều, việc mua và duy trì một máy chủ e rằng sẽ tốn không ít tiền. Chi phí điện năng vận hành máy chủ cùng các loại phí bảo trì, e rằng cũng là một khoản chi không nhỏ... Mà trong thẻ của hắn chỉ có chưa đầy mười ngàn tệ, e rằng đến mức đốt một ngọn lửa nhỏ cũng khó khăn.

Nghiến răng, Lục Chu vẫn quyết định khắc phục những vấn đề khó khăn này. Đến năm trăm ngàn tệ tiền lương một năm còn từ bỏ được, thì còn có điều gì không làm được đây? Dù cho có thất bại, thì xem như một bài tập thực chiến cũng chẳng sao.

Thế là, Lục Chu đóng chương trình, không vội vã bắt đầu chỉnh sửa mã, mà mở một tài liệu Word, bắt đầu thiết kế đề cương quy trình phát triển ứng dụng, hệt như khi phác thảo đề cương luận văn vậy.

"Việc tra cứu vé tàu hỏa nhất định phải thu thập dữ liệu thời gian thực, yêu cầu rất cao về hiệu suất máy chủ, mã lệnh nhất định phải càng ngắn gọn càng tốt!"

"Giao diện có thể đơn giản, nhưng thông tin nhất định phải chuẩn xác, toàn diện. Điểm này có thể tham khảo các ứng dụng đặt vé bên thứ ba phổ biến, bất quá nhất định không thể hoàn toàn tương tự, phải có điểm cải tiến mới mẻ..."

Viết tới đây, ngón trỏ Lục Chu nhẹ nhàng xoa xoa bàn phím, suy nghĩ rất lâu, rồi mới tiếp tục gõ chữ.

"Đầu tiên là tự động giành vé. Cái này hẳn không tính là một điểm mới lạ, từ rất lâu trước đây các trình duyệt như Baidu, 360 đã có chức năng này rồi."

"Bất quá, chức năng treo máy tự động quét vé... thì hình như vẫn chưa từng thấy." Nhớ lại kỳ nghỉ đông năm ngoái, vì đặt vé muộn, mấy thằng bạn trong ký túc xá đã phải ngồi trước máy tính nhấn F5 liên tục nửa giờ, mới quét được vài tấm vé trả lại. Lục Chu liền cảm nhận sâu sắc rằng, việc đông đảo người dân lao động về quê ăn Tết thật không dễ dàng chút nào. Thông qua việc liên tục quét mới dữ liệu trên trang web chính thức, sẽ có một xác suất mang tính may rủi mà quét được một vài tấm vé. Trong đó có những vé do người dùng khác trả lại, có những vé mà Lục Chu cũng không rõ từ đâu mà ra. Bất quá, chức năng này đúng là có thể cân nhắc một chút.

Chẳng hạn như, thiết lập một khoảng thời gian cùng vài số hiệu tàu, để máy chủ tự động giúp người dùng quét mới dữ liệu, và ngay lập tức gửi đơn đặt hàng khi vé trống xuất hiện. Trong mấy phần mềm giành vé mà hắn từng thấy, hình như vẫn chưa có chức năng này. Hơn nữa, về mặt thuật toán, thực hiện nó hình như cũng không quá khó.

Nghĩ tới đây, Lục Chu ngẩng đầu nhìn chiếc đồng hồ treo tường.

Bây giờ là 3 giờ chiều!

Lưu tài liệu Word lại, Lục Chu đầy nhiệt huyết xắn tay áo lên, hai tay đặt lên bàn phím.

"Bắt đầu làm việc!"

Mọi quyền sở hữu bản dịch này đều thuộc về truyen.free.

Trước Sau
Nghe truyện
Nữ
Nam

Cài đặt đọc truyện

Màu nền:
Cỡ chữ:
Giãn dòng:
Font chữ:
Ẩn header khi đọc
Vuốt chuyển chương

Danh sách chương

Truyen.Free