Tin tức mới

Thợ lành nghề #25: Kiểm soát đồ bảo hộ

Thợ lành nghề

Con tàu đưa chúng tôi đi trên cuộc hành trình này có bán kính 22km, và di chuyển với vận tốc 53km một giây khi nó đâm xuống biển Thái Bình Dương. Chúng tôi khởi hành từ hai tháng trước và có quỹ đạo tạm dừng 60० trước Trái Đất, chờ đợi chuyện tất yếu. Chúng tôi biết rằng cú va chạm sẽ tạo ra nhiều mảnh vụn nên chúng tôi không muốn ở phần không gian gần Trái Đất. Tôi đoán họ tính để cho 1AU được an toàn.

Tôi đã xem bản thu của cú va chạm. Tôi không muốn bàn về chúng. Giao tiếp với các vùng trên Trái Đất diễn ra trong vài tuần, nhưng từ từ giảm dần và ngưng hẳn. Tôi đoán cũng chẳng vui khi ở dưới đó.

Đó là từ 43 năm trực quan trước, vào năm 1959. Từ đó chúng tôi luôn di chuyển giữa các vì sao; tìm kiếm một ngôi nhà phù hợp. Mười hệ ngân hà đầu tiên chúng tôi đến không có gì hứa hẹn. Có rất nhiều hành tinh, nhưng ngoài mấy cái lỗ thải amoniac ở Centauri 5, chúng tôi không thấy có gì gần giống với hệ sinh quyển.

Giờ chúng tôi chuẩn bị đâm qua một đám mây phân tử hydro ở gần C, và để bảo vệ nhưng kỹ sư bảo trì phía bên ngoài chúng tôi phải viết lại hệ thống Giám Sát Liều Lượng cũ mà Jerry và Jasper từng tham gia vài năm trước.

Tôi đi đến phòng máy tầng 44 trước 0800. Carole và Jerry đã ở đấy sẵn rồi. Jerry nhìn có vẻ đã chấp thuận và đang nói chuyện với Carole về thứ gì đó khá xấu hổ về hắn. Cuộc trò chuyện của họ kết thúc trước khi tôi kịp đến gần để tham gia. Một vài phút sau, Jasper, Avery và Jean bước vào cùng nhau. Avery gật đầu với tôi và cười như chưa có chuyện gì xảy ra. Có lẽ chẳng có gì thật.

Tôi muốn nói chuyện với hắn nhưng Carole bắt đầu cuộc họp trước khi tôi kịp ra đấy. Tất cả bắt đầu di chuyển đến bàn họp ở cuối phòng máy. Tôi lấy một cái ghế, và Avery chọn cái bên cạnh tôi. Hắn gật đầu láu cá, ngay khi Carole bắt đầu nói.

“Jean và tôi đã viết ra một số story đầu tiên của hệ thống Giám Sát Liều Lượng mới. Nhân tiện, chúng ta sẽ gọi nó là ‘DTrack’. Tôi sẽ nói sâu vào các story, và mọi người có thể hỏi mọi câu hỏi mọi người muốn. Story đầu tiên là ‘Kiểm soát đồ bảo hộ’.”

Carol đặt một tấm thẻ tiêu đề lên trên bàn với chữ “Kiểm soát đồ bảo hộ” viết trên đó.

“Hệ thống của chúng ta giám sát lượng phóng xạ nhận vào bởi công nhân bảo trì bên ngoài bằng cách tích hợp liều lượng nhận vào bộ đồ phi hành gia mà họ mặc. Mỗi bộ đồ sẽ có một liều kế tích hợp vào trong hệ thống. Khi một bộ đồ được đăng ký sử dụng, liều kế sẽ được kiểm tra trước khi đưa cho công nhân. Khi bộ đồ được trả lại thì liều kế lại được kiểm tra một lần nữa. Hiệu số sẽ được thêm vào tổng liều lượng của công nhân đó.

Vậy thứ đầu tiên ta cần là một kho đồ phi hành gia. Một bộ đồ sẽ được đưa vào hệ thống với story này.”

Jerry lên tiếng. “Tôi nghĩ chúng ta sẽ sử dụng miếng mã vạch được khâu vào bộ đồ để nhận dạng chúng?”

“Đúng rồi, Jerry yêu mến.” Jean nói. “Tôi chắc mọi người đều nhớ là mã vạch chứa chuỗi sáu ký tự bao gồm cả chữ và số để nhận dạng mỗi bộ đồ.”

Jerry chộp lấy tấm thẻ và ghi vào ‘Miếng Mã Vạch: X(6).

Jasper chọc vào sườn Jerry và nói: “Đừng có viết ngôn ngữ COBOL lên thẻ, Jerry.”

“Tao quen rồi.” Hắn trả lời. “Đó là cách tao dùng để nghĩ.”

Tôi hỏi: “Vậy khi một bộ đồ mới được chế tạo, nó được gán một miếng mã vạch mới và đăng ký vào hệ thống? Quá trình đăng ký sẽ diễn ra như nào?”

Jerry nói: “Đúng rồi Alphonse. Bộ đồ mới sẽ được đánh dấu và nhập vào trong hệ thống bằng máy đọc mã vạch.”

Carole thêm vào: “Bộ đồ mới sẽ được cầm ra phòng Bảo Trì Bên Ngoài bằng tay. Nhân viên quầy sẽ chọn chức năng ”Đăng Ký Đồ Mới” trên màn hình và quét mã vạch. Làm thế sẽ đưa bộ đồ mới vào hệ thống DTrack, và gửi tin nhắn về cho bộ phận sản xuất báo là bộ đồ đã được đếm.”

Jasper lấy tấm thẻ và viết ‘Chức năng Đăng Ký Đồ Mới: trên màn hình. Gửi xác nhận cho nsx.’

“Tôi không hiểu sao chúng ta không xây một căn phòng làm sạch đồ.” Jerry nói. “Chẳng có cớ gì bên bảo trì lại phải nói lại với nhà sản xuất như thế.”

“Để sau, Jerry, để sau.” Carole nói. “Tôi biết cậu nghĩ gì về vấn đề này, và tôi đồng ý. Nhưng đám mây H2 chỉ còn cách hai tháng và chúng ta phải sẵn sàng đối mặt nó. Nếu không thì cậu sẽ phải dành ca của mình để vá lại lỗi cơ sở dữ liệu ở trong cái hệ thống COBOL cũ rích của cậu, và tôi cũng sẽ phải làm cùng – và đó không phải thứ tôi muốn làm trong vòng sáu đến tám tháng tiếp theo.” 

Jerry nhăn mặt, nhưng gật đầu đồng ý.

“Đó có phải kích cỡ của đám mây không; tốn đến tám tháng?” Avery hỏi.

“Đó là dự đoán gần nhất của đội thiên văn học kể từ tối qua.” Carole trả lời.

“Tại sao bên sản xuất lại cần phải biết bộ đồ được đưa vào DTrack?” Tôi hỏi.

Jean trả lời: “Alphonse, cháu yêu, chúng ta sẽ giám sát tất cả các bộ đồ từ khâu sản xuất đến sử dụng và tiêu hủy. Khi một bộ phận đưa ra bộ đồ thì một bộ phận khác đăng ký nó và cả hai trao đổi tin nhắn để cả có thể biết chuyện gì xảy ra với nó. Theo cách đó chúng ta luôn biết bộ đồ ở đâu. Cháu có tưởng tượng được sẽ tệ như nào nếu như mấy người tội nghiệp phải sử dụng bộ đồ khi không biết nó cũ như nào, được sửa như nào, cùng với mức độ phơi nhiễm phóng xạ của chúng? Ôi, tôi còn không muốn nghĩ về nó.”

“Nếu như bên sử dụng không nhận ra bộ đồ đang được đăng ký thì sao?” Avery hỏi.

“Bên sử dụng sẽ gửi tin nhắn từ chối, và DTrack sẽ không chấp nhận đăng ký.” Carole trả lời.

Tôi lấy tấm thẻ và ghi “Từ chối đăng ký nếu không được chấp nhận”. Có vẻ không ai quan tâm.

“Thế bên sử dụng sẽ gửi tin nhắn chấp nhận nếu như họ nhận ra bộ đồ?”

“Đúng rồi cháu yêu.” Jean trả lời.

Avery chen vào: “Nếu như không có phản hồi từ bên sử dụng?”

“Đợi 10 giây rồi từ chối đăng ký.” Carole nói.

Avery lấy tấm thẻ và viết: ‘10 giây hết giờ & từ chối’.

“Nếu như bộ đồ được đăng ký rồi thì sao?” Tôi hỏi. 

“Từ chối đăng ký và không gửi tin nhắn xác minh cho bên sử dụng.” Carole trả lời.

Tôi với lấy tấm thẻ nhưng Avery đang viết rồi: ‘Nếu đã đăng ký, từ chối đăng ký & không gửi xác nhận cho bên sử dụng.’

“Được rồi, điều cuối cùng.” Carole nói. “Một khi đã đăng ký, bộ đồ sẽ được lên lịch kiểm tra. Nó sẽ được đánh dấu trong bản ghi cơ sở dữ liệu để ngăn việc đưa bộ đồ ra sử dụng trước khi nó được kiểm tra.”

Avery vẫn cầm tấm thẻ, như thể nó là của hắn. Hắn viết nguệch ngoạc: “Lên lịch kiểm tra” lên tấm thẻ và cứ giữ nó một cách độc quyền.

“Còn câu hỏi nào về story này không?” Carole hỏi. Tất cả im lặng.

Jerry nói: “Được rồi, thử tính xem. Jasper, Alphonse, Avery, story này có chút yếu tố phức tạp, nhưng nhìn chung khá đơn giản. Tôi ước tính sẽ là bốn.”

Jasper gật đầu, nhưng tôi hơi bối rối. “Bốn gì?” Tôi hỏi. “Giờ nhân lực?”

“Không, chỉ bốn thôi.” Jerry trả lời. Chúng ta không cho đại lượng vào trong các ước tính này; chúng ta sẽ chỉ dùng nó để so sánh giữa các story. Vậy một story khó gấp đôi sẽ là tám. Khó bằng nửa sẽ là hai.”

Jasper với tấm thẻ, và có chút lúng túng khi Avery không có vẻ muốn buông. Nhưng rồi, với một cái nhăn mặt thấy rõ, hắn đưa tấm thẻ cho Jasper. Ở góc trên cùng bên phải của tấm thẻ, Jasper viết số bốn và khoanh vòng nó. Rồi hắn đặt tấm thẻ lại lên bàn. Avery định lấy nó nhưng nghĩ lại rồi thôi.

Carole nói: “Được rồi, giờ ta sẽ test cái này như nào?”

“Test nó? Ý cô là gì?” Tôi hỏi.

Carole nhìn đầy ý tứ về phía Jerry và nói: “Cậu có muốn giải thích cho học trò của mình không, Jerry?”

Jerry thở dài và nhìn tôi miễn cưỡng. “Alphonse, Avery, cho tới giờ các cậu mới chỉ làm việc với các hệ thống vô cùng đơn giản với mục đích đào tạo hơn là đưa vào sử dụng. DTrack là hệ thống làm việc, và luật lệ có hơi khác. Khi qua bài test chấp thuận, thì yêu cầu mới hoàn thành.”

“Bài test chấp thuận có giống unit test không?” Tôi hỏi.

“Không, không hề. Bài test chấp thuận giống như yêu cầu. Chúng có thể được bởi những bên liên quan và các sĩ quan. Ai cũng sẽ viết được chúng. Thâm chí Carol cũng viết được.” Jerry ném một cái nhìn tinh quái sang phía Carole và nhận được phản hồi. “Chúng được viết trên hệ thống gọi là FitNesse, nó cho phép mọi người với quyền phù hợp được đọc, viết, thay đổi và kể cả thực hiện nó.”

“Sao nó lại giống y như yêu cầu được?” Avery hỏi, hứng thú một cách thành thật.

Carole nói vào: “Cậu chuẩn bị được biết rồi đấy. Jerry, hãy viết vài bài test chấp thuận cho Kiểm Soát Đồ Bảo Hộ”. Và cả hai người bọn họ ngồi xuống máy bắt đầu gõ.

Tác giả: Robert C. Martin

Đăng ký nhận bộ tài liệu kỹ năng dành cho lập trình viên (video hướng dẫn + slide) tại đây

Đọc thêm về Tạp chí lập trình Vol.4 tại đây


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Leave a Reply

Your email address will not be published. Required fields are marked *