2 điểm bởi GN⁺ 2 giờ trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Một bài tiểu luận giải thích sự hỗn loạn của phát triển phần mềm bằng phép ẩn dụ xây cầu, với lời tự trào rằng mọi đội lập trình đều gồm những kẻ điên, và phần mềm ngân hàng lẫn Internet đều đang chạy trên những thứ họ tạo ra
  • Mã hoàn hảo chỉ tồn tại trong những tệp làm đúng một việc do một người viết ra; còn ngoài đời thực, người ta vận hành mọi thứ như kiểu tựa Picasso lên một đống bông tuyết đang tan chảy dưới mệnh lệnh phải làm xong 600 cái từ thứ Sáu đến thứ Ba
  • Nhà phát triển web phải học một công nghệ mới mỗi tuần đồng thời kiểm tra xem hàng trăm công cụ cũ có bị hỏng không, và ngay cả với chuyên gia thì việc mất 6 tiếng mới tìm ra nguyên nhân sự cố vẫn còn là may mắn
  • Internet đang dựa vào hàng nghìn tỷ đô la giá trị được chống đỡ bởi những thỏa thuận ngầm và những đoạn mã 10 năm tuổi ghi "TODO: FIX THIS", và nếu toàn bộ quản trị viên hệ thống cùng đi ăn trưa một lúc thì nền văn minh sẽ sụp đổ
  • Lập trình viên dành 10–15 giờ mỗi ngày để làm thứ mà bộ não vốn không được thiết kế để làm, và đang từ từ phát điên, đó là cái giá của nghề họ chọn thay vì đi nâng vật nặng 50 pound

Mọi đội lập trình đều gồm những kẻ điên

  • Những người bạn làm lao động chân tay luôn mở đầu kiểu như: "Cậu sướng rồi, tớ thì đào hầm bằng máy khoan bên dưới Mordor."
  • Nếu bạn đồng ý rằng căng thẳng và đau đớn tinh thần là điều tồi tệ, thì chào mừng đến với thế giới lập trình
  • Phép ẩn dụ xây cầu: bạn tham gia một dự án xây cầu cho thành phố lớn và tình hình như sau
    • Mary là trưởng dự án, Fred chỉ biết làm việc với gỗ nhưng lại phụ trách lối đi bộ của cây cầu bắc qua dòng nước xiết ở độ cao 200 foot
    • Dave bị trộm mất áo len nên lắp một hệ thống kiểm tra an ninh 15 bước
    • Phil không phải kỹ sư nhưng lại áp dụng quy tắc cấm lan can, không ai biết Phil làm gì nhưng vì có dính dáng tới ban quản lý nên mọi người cứ để vậy
    • Sara đưa toàn bộ mấy công nghệ lát mặt đường tối tân kiểu "hemorrhaging-edge" vào thiết kế
    • Tom và Harry đã cãi nhau nhiều năm về hệ mét vs hệ đo Anh-Mỹ, và đơn vị nào được dùng phụ thuộc vào người làm trước
    • Ban đầu thiết kế là cầu treo nhưng chẳng ai biết xây cầu treo, nên giữa chừng thêm cột chống, còn dây cáp treo thì cứ để nguyên vì chắc là nó đang đỡ cái gì đó ở đâu đó
    • Người mới được bảo đưa ra ý tưởng mới, nhưng hóa ra lại là kỹ sư động cơ đẩy, chẳng biết gì về cầu cả
  • Nếu hỏi có ai dám đi qua cây cầu này không thì không ai dám, vậy mà chính kiểu cấu trúc như thế này đã tạo ra toàn bộ phần mềm ngân hàng, website và chương trình bảo mật Internet

Mọi đoạn mã đều tệ

  • Mọi lập trình viên đều có một tệp Good Code mà họ lôi ra đọc khi ở nhà không có ai và rơm rớm nước mắt
    • Tên hàm và biến nhất quán, ngắn gọn, không làm mấy điều ngớ ngẩn hiển nhiên, và chưa từng bị đem ra môi trường hoang dã hay tiếp xúc với yêu cầu từ đội bán hàng
    • Nó do đúng một người viết, chưa từng bị ai khác chạm vào, và đọc như thơ do người trên 30 tuổi viết
  • Thực tế: nếu thứ Sáu bạn bị bảo đến thứ Ba phải làm ra 600 bông tuyết, thì bạn sẽ dùng đủ mọi mẹo vặt, đồng nghiệp làm nó tan chảy, mọi thứ trộn vào nhau thành một khối dị dạng, rồi bạn tựa Picasso lên trên đó, và tuần sau lại xúc thêm tuyết để Picasso khỏi đổ
  • Có một giả thuyết cho rằng chỉ cần theo tiêu chuẩn là mọi chuyện sẽ ổn, nhưng số lượng tiêu chuẩn còn nhiều hơn cả những gì máy tính thực sự làm được, lại còn bị bóp méo theo sở thích cá nhân, nên thực tế là những codebase nơi cùng một việc được làm theo hàng chục cách khác nhau
  • Vài tuần đầu ở chỗ làm mới luôn trôi qua trong việc cố hiểu chương trình vận hành thế nào dù bạn biết mọi ngôn ngữ, framework và tiêu chuẩn liên quan, bởi vì tiêu chuẩn là kỳ lân

Luôn có bóng tối ở đó

  • Ẩn dụ cái tủ hồi nhỏ: bạn chui vào trong thì bức tường lùi ra sau thành cái kệ, rồi khi ngẩng lên lần nữa, bạn thấy khoảng trống crawlspace với sự hư vô tuyệt đối mà ánh sáng không chạm tới, và linh cảm rằng con quái vật bạn vẫn chặn lại mỗi đêm bằng đèn pin và búp bê đang sống ở đó
  • Việc học lập trình cũng y như vậy: bạn học một công cụ hữu ích, nhìn quanh thì thấy công cụ mới, và công cụ đó cho bạn thấy nỗi kinh hoàng không đáy vốn luôn nằm ngay cạnh giường bạn
  • Thực tế của một nhà phát triển web trung bình
    • Dù đã quen với 12 ngôn ngữ lập trình cùng vô số thư viện, tiêu chuẩn và giao thức, bạn vẫn phải học thêm một thứ mới mỗi tuần
    • Phải kiểm tra xem hàng trăm công cụ cũ có được cập nhật hay bị hỏng không, và cả xem cái bug mà bạn từng khéo léo tận dụng trong một cuối tuần say xỉn có bị sửa mất chưa
    • Tưởng mọi thứ đều đã cập nhật đầy đủ, rồi đột nhiên tất cả cùng hỏng
  • Ví dụ về nguyên nhân lỗi: ai đó quyết định dùng 1/0 như Infinity, rồi một người khác biến nó thành lỗi ở compiler mà không báo cho ai, kết quả là ngay cả chuyên gia cũng mất 6 tiếng để tìm ra nguyên nhân
  • Ngay cả chuyên môn trong lĩnh vực của mình cũng chỉ là một phần cực nhỏ của toàn bộ khoa học máy tính, và không có nổi một người hiểu được chiếc MacBook 5 năm tuổi hoạt động thế nào
  • Lý do người ta nói "thử tắt đi bật lại xem" là vì họ hoàn toàn không biết có gì sai, nên họ đưa máy tính vào trạng thái hôn mê rồi giao cho đội ngũ bác sĩ tự động tích hợp sẵn xử lý

Internet là một địa ngục đặc biệt của riêng nó

  • Ngay cả một website cỡ giỏ hàng mua sắm chỉ có 3 trang động cũng cần một đội trực 24/7 để bảo trì, vì mọi thứ luôn hỏng với mọi người ở mọi nơi
  • Ngay lúc này, nhân viên Facebook đang xử lý hàng chục nghìn thông báo lỗi, một đội nào đó trong văn phòng Google đã 3 ngày chưa ngủ, và một lập trình viên cơ sở dữ liệu ở đâu đó đang bị vây quanh bởi chai Mountain Dew rỗng đến mức tưởng chồng mình chết rồi
  • Nếu toàn bộ quản trị viên hệ thống cùng kéo nhau đi ăn trưa, thì trước khi họ kịp tới tiệm đồ nguội, họ đã phải đánh nhau với bầy dị nhân để giành đồ hộp rồi
  • Hàng nghìn tỷ đô la giá trị đang phụ thuộc vào những thỏa thuận ngầm và các đoạn mã viết từ 10 năm trước có chú thích "TODO: FIX THIS IT'S A REALLY DANGEROUS HACK"
  • Có những nhóm tấn công khắp Internet vì gián điệp, lợi nhuận hoặc buồn chán, và 4chan chỉ cần tâm trạng xấu trong một buổi chiều là có thể phá hủy đời sống và công việc của ai đó, nhưng chuyện đó còn chẳng đáng lo vì cũng như thêm một quả bom nữa vào mùa đông hạt nhân mà thôi
  • Trên Internet, chỉ cần bạn nói "hình như cái này đôi khi chạy được" là nó sẽ trở thành một phần của Internet, và chỉ với vài trăm đô la cùng một cái máy tính, ai cũng có thể đăng lên thứ mã hack khủng khiếp khiến toàn bộ hệ thống tệ hơn từng chút một
  • Quy tắc bí mật của Internet là: 5 phút sau khi mở trình duyệt lần đầu, một đứa trẻ Nga đã có số căn cước của bạn; vừa đăng ký là NSA bắt đầu theo dõi vị trí; gửi email xong thì địa chỉ của bạn xuất hiện trên một bảng quảng cáo ở Nigeria
  • Không phải vì ai cũng thờ ơ, mà vì mọi thứ đều hỏng và chẳng có mã tốt nào cả, nên ai cũng chỉ đang cố hết sức để làm cho nó tiếp tục chạy

Không phải chúng ta điên, mà là đang phát điên

  • ERROR: Attempted to parse HTML with regular expression; system returned Cthulhu — nếu bạn thấy câu này buồn cười thì vẫn còn ổn, nhưng nếu có người hỏi có phải là "arrayReverse" không mà bạn đáp bằng s/camel/_/, thì bạn đã bước vào giai đoạn nói bằng code rồi
  • Bộ não con người vốn không đặc biệt giỏi logic cơ bản, vậy mà lại có một nghề buộc ta phải làm logic cực kỳ phức tạp suốt cả ngày
  • Nếu bạn dành cả ngày lần theo những chuỗi dài khổng lồ của các điều kiện và yêu cầu trừu tượng để tìm ra thứ như dấu phẩy bị thiếu, thì đến mức nhìn vào mặt người khác bạn cũng chẳng biết họ nói xong chưa — vì thiếu dấu chấm phẩy
  • Ví dụ về ngôn ngữ lập trình kỳ quặc (esolang) để minh họa tác động hủy diệt lên bộ não
    • Có những chương trình cho ra đúng kết quả như "Hello World" trong C++ nhưng được viết bằng Brainfuck, Ook!, hay mã Perl biểu diễn số Maya bằng ASCII art xoay 90 độ
    • Chương trình số Maya đó còn đoạt giải trong một cuộc thi, và trong cái thế giới như thế này thì chẳng ai thắc mắc chuyện hút một bao thuốc mỗi ngày nữa
  • Mọi lập trình viên đều đang ép bộ não mình làm việc mà nó không được thiết kế để làm trong 10–15 giờ mỗi ngày, 5–7 ngày mỗi tuần, và tất cả đều đang từ từ phát điên
  • Kết luận: thay vì đi nâng một món đồ nặng 50 pound, bạn có được cơ hội phục vụ Quỷ Satan đang tỉa lông mình và ăn trên một hộp sọ đã mở toang, và cái giá đổi lại là một phần nào đó của Internet được chạy thêm vài ngày nữa

Chưa có bình luận nào.

Chưa có bình luận nào.