# 78: Lùi lại và để tự động hóa làm việc

Tôi đã làm việc với các lập trình viên mà khi được yêu cầu tạo một số dòng code trong một module đã dán các tệp vào một trình xử lý văn bản và sử dụng tính năng “đếm dòng” của nó. Và lần sau, lần sau nữa, họ lặp lại những hành động đó. Cách làm này quả thực không được khôn ngoan cho lắm.

Tôi đã làm việc với một dự án có quy trình triển khai phức tạp, liên quan đến code signing và chuyển kết quả đến một máy chủ, đòi hỏi nhiều thao tác khác nhau. Ai đó đã tự động hóa nó và chương trình đã chạy cực kỳ trơn tru trong lần thử nghiệm cuối cùng, thậm chí còn tốt hơn nhiều so với những gì chúng tôi mong đợi. Hiển nhiên điều đó thật tuyệt.

Vì vậy, tại sao mọi người lại làm cùng một nhiệm vụ nhiều lần thay vì dành thời gian để tự động hóa nó một lần và mãi mãi?

Quan điểm sai lầm phổ biến 1 : Tự động hóa chỉ dùng để thử nghiệm

Đương nhiên tự động hóa thử nghiệm là điều tuyệt vời, nhưng tại sao lại chỉ dừng ở đó? Các tác vụ lặp đi lặp lại xuất hiện rất nhiều trong bất kỳ dự án nào: kiểm soát phiên bản, biên dịch, xây dựng các tệp JAR, tạo tài liệu, triển khai và báo cáo… Đối với nhiều tác vụ trong số này, tập lệnh mạnh hơn chuột. Việc thực hiện những nhiệm vụ vốn tẻ nhạt đã trở nên nhanh chóng và đáng tin cậy hơn.

Quan điểm sai lầm phổ biến 2 : Đã có IDE thì không cần tự động hóa

Đã bao giờ bạn có một cuộc tranh luận kiểu Nhưng- nó- kiểm tra/ xây dựng/ vượt qua- các- test- trên- máy- của- tôi với đồng nghiệp? Các IDE hiện đại có hàng nghìn cài đặt khác nhau và về cơ bản thì việc đảm bảo tất cả thành viên trong nhóm có cấu hình giống hệt nhau là điều không thể. Xây dựng các hệ thống tự động hóa như Ant hay Autotools cho phép bạn kiểm soát và lặp lại nhiệm vụ khi cần.

Quan điểm sai lầm phổ biến 3 : Cần học các công cụ kỳ lạ để tự động hóa

Bạn có thể tiến rất xa với một shell language tốt (như bash hay PowerShell) và một hệ thống tự động hóa. Nếu bạn cần tương tác với các trang web, hãy sử dụng công cụ như iMacros hay Selenium.

Quan điểm sai lầm phổ biến 4 : Không thể xử lý các định dạng tệp nên không thể tự động hóa tác vụ

Nếu một phần trong quy trình yêu cầu tài liệu Word, bảng tính hay hình ảnh, thì thực sự khá khó khăn để tự động hóa nó. Nhưng liệu điều đó có thực sự cần thiết? Bạn có thể sử dụng văn bản đơn giản? Giá trị được phân tách bằng dấu phẩy? XML? Một công cụ tạo bản vẽ từ một tệp văn bản? Một tinh chỉnh nhỏ trong tiến trình có thể mang lại kết quả tốt và giảm thiểu đáng kể sự tẻ nhạt.

Quan điểm sai lầm phổ biến 5 : Không có thời gian để tìm hiểu

Bạn không cần phải học tất cả bash hay Ant để bắt đầu. Hãy học dần dần. Khi bạn có một nhiệm vụ mà bạn nghĩ có thể và nên được tự động hóa, hãy tìm hiểu vừa đủ về các công cụ mà bạn cần để thực hiện điều đó. Và hãy làm điều đó sớm ngay khi thời gian cho phép. Một khi bạn thành công, bạn (và sếp của bạn) sẽ nhận thấy việc đầu tư vào tự động hóa là hoàn toàn hợp lý.