Một lập trình viên trong cơn tức giận đã "hủy diệt" Internet chỉ bằng 11 dòng code  
 

Vừa qua, một lập trình viên trong cơn nóng giận đã gián tiếp làm gián đoạn một loạt phần mềm có vai trò sống còn cho nhiều đại gia Internet bằng cách xóa một chương trình đơn giản chỉ gồm 11 dòng code...

FPT-APTECH-mot-lap-trinh-vien-trong-con-tuc-gian-da-huy-diet-internet-chi-bang-11-dong-code

Mọi chuyện bắt đầu với một lập trình viên tên là Azer Koçulu, người đã viết một đoạn code không có gì đặc biệt gọi là Kik dựa trên ngôn ngữ lập trình phổ biến Node.js. Koçulu đã đưa module Kik lên NPM, một nền tảng giống như chợ ứng dụng đối với các lập trình viên bằng ngôn ngữ Node.js, để họ có thể tải xuống miễn phí và sử dụng tùy ý.

Một Kik khác

Kik, một mạng xã hội nổi tiếng cùng tên đã chú ý đến sự việc trên và gửi email cho Koçulu, yêu cầu anh phải đổi tên module của mình. Theo thú nhận của Koçulu trên một đoạn blog, yêu cầu ban đầu của Kik là hợp lý. Tuy nhiên, Koçulu lại chẳng thèm đếm xỉa đến yêu cầu này.

"Khi tôi bắt đầu viết code cho Kik, tôi chẳng hay biết có một công ty cùng tên. Và không ai có thể bắt tôi phải đổi tên đứa con của mình", Koçulu ngạo nghễ viết.

Mặc dù Koçulu giữ bản quyền của Kik, CEO của NPM, Isaac Schlueter, đã tước quyền sở hữu của anh đối với module trên mà không hỏi ý kiến. Tức giận, Koçulu tuyên bố trên blog rằng anh sẽ xóa bỏ Kik khỏi NPM vĩnh viễn, cùng với các đoạn code khác của anh.

Vấn đề là tuy Koçulu đã tạo ra một module NPM bình thường và cơ bản nhưng lại rất phổ biến gọi là "npm left-pad". Đó là 11 dòng code dài và thực sự không có gì phức tạp nhưng đã được tải xuống 575.000 lần. Và khi nó biến mất, các lập trình viên của Reddit, Twitter và nhiều nơi khác đã thấm đòn ngay tức khắc.

Hiệu ứng domino

Mọi chuyện đã trở nên lộn xộn như thế nào?

Một module kiểu như npm left-pad về cơ bản có tính năng giống như một phím tắt để lập trình viên không phải viết một đống code lằng nhằng và dựa trên đó để phát triển phần mềm nhanh hơn. Nếu một lập trình viên dùng NPM module, điều này đồng nghĩa với việc "viết đoạn code này sau" và người viết phần mềm chỉ cần tải đoạn code này xuống khi thích hợp.

Mặc dù việc phát triển phần mềm theo quy trình này tương đối thuận tiện, nó đã tạo ra một hệ thống domino nguy hiểm. Một module Node.js được phát triển dựa trên một module khác, module này lại được phát triển dựa trên một module khác nữa. Cứ thế, mọi chuyện vẫn hoạt động bình thường cho đến khi npm left-pad bị xóa xổ.

Bùm, cả chuỗi domino đã sụp đổ. Các dự án phần mềm phổ biến như Babel, giúp Facebook, Netflix, và Spotify chạy code nhanh hơn, và React, giúp các nhà phát triển phần mềm xây dựng giao diện tốt hơn, đột nhiên bị gián đoạn và không thể hoạt động được nữa. Tổng cộng, hơn 1000 dự án phần mềm đã bị ảnh hưởng.

Khắc phục vấn đề này đòi hỏi các lập trình viên phải loại bỏ sự phụ thuộc dây chuyền trên và đảm bảo rằng không còn thứ gì bị ràng buộc với 11 dòng code ngớ ngẩn kia nữa.

Và vì thế, trước sự hoảng loạn của các nhà phát triển phần mềm trên toàn thế giới, NPM đã buộc phải có giải pháp gỡ bỏ sự ràng buộc giữa các module lập trình và đưa ra hệ thống sở hữu bản quyền tách biệt hơn.

Sau tất cả, cơn bão đã chấm dứt, và npm left-pad đã hoạt động trở lại. Nhưng những vết thương do nó gây ra thì vẫn còn nhức nhối. Có người đã tự hỏi "Phải chăng chúng ta đã quên cách lập trình rồi ư?" và hối thúc các lập trình viên xem xét lại quy trình phát triển ứng dụng của mình.

Koçulu thì nói rằng "Mặc dù tôi cảm thấy có lỗi vì đã làm ảnh hưởng đến công việc của nhiều người, điều tôi làm thực ra lại có lợi cho cộng đồng trong dài hạn. NPM sẽ không còn duy trì được sự độc quyền trong cộng đồng phần mềm nữa".

FPT APTECH mở ra cho các bạn đam mê học tin học, học công nghệ thông tin chuyên sâu về học lập trình cơ hội được đào tạo Công Nghệ Thông Tin trong môi trường tiêu chuẩn chất lượng quốc tế ISO 9001

Học CNTT - Học Aptech - Học tại FPT

Nam Nguyễn
(theo CafeBiz)

Khối Giáo dục FPT – fpt.edu.vn

Trường Đào Tạo Lập Trình Viên Quốc Tếfpt.aptech.edu.vn

Tin liên quan:



 
 

 
     
 
Công nghệ khác:


Nguồn mở: hiểm họa tiềm tàng trong ứng dụng doanh nghiệp7 chiêu lập trình xấu xí nhưng được việc
Hãy cân nhắc những điều này trước khi quyết định ghi danh một khóa học code10 ứng dụng Android dành cho nhà phát triển
Hướng dẫn nhanh lập trình với Google Go10 tính năng nên sử dụng của router không dây
  Xem tiếp    
 
Lịch khai giảng của hệ thống
 
Ngày
Giờ
T.Tâm
TP Hồ Chí Minh
Hà Nội
 
   
New ADSE - Nhấn vào để xem chi tiết
Mừng Sinh Nhật Lần Thứ 20 FPT-APTECH
Nhấn vào để xem chi tiết
Bảng Vàng Thành Tích Sinh Viên FPT APTECH - Nhấn vào để xem chi tiết
Cập nhật công nghệ miễn phí cho tất cả cựu sinh viên APTECH toàn quốc
Tiết Thực Vì Cộng Đồng
Hội Thảo CNTT
Những khoảnh khắc không phai của Thầy Trò FPT-APTECH Ngày 20-11