Skip to main content

Script hay làm bằng tay?

Bình thường tớ sẽ luôn trả lời là script vì viết script rất vui :D

Nhưng khi cần thực hiện xong công việc càng nhanh càng tốt, ngồi viết script chưa hẳn đã là điều hay ho. Trước khi thò tay định viết scritp để thực hiện một công việc gì đó nhằm tự động hóa nó, mục đích chính là làm xong công việc nhanh hơn, chính xác hơn, hiệu quả hơn, bạn nên tự hỏi mình vài câu:

- Liệu bạn làm thủ công có nhanh hơn không?
Nếu câu trả lời là có, đừng viết! Nếu bạn không thạo việc viết scritp, bạn sẽ tốn thêm thời gian để debug, google cách làm, đọc document cách dùng thư viện... và kết quả là bạn làm tay sẽ nhanh hơn. Bởi vậy, cần thật thành thạo và chính xác thì mới mang lại hiệu quả. Ví dụ:
bạn cần đổi tên 10 thư mục, thêm vào mỗi tên 1 dòng chữ XXX. Nếu bạn biết viết 1 câu lệnh bash với for, if, mv, bạn sẽ hoàn thành công việc này sau khoảng 20 giây. Nhưng nếu không thạo cú pháp, bạn lại mất thời gian debug, google thì có thể mất đến 3 phút, làm tay còn nhanh hơn.

- Script này có được sử dụng lại không?

Một khái niệm phổ biến, script được dùng để "tự động hóa công việc lặp đi lặp lại nhiều lần". Bởi vậy hãy suy nghĩ kỹ xem việc viết script có đáng không.
Bạn có thể thành thạo phần nào đó của Python nhưng không chắc bạn thành thạo các thư viện cần thiết lúc viết script. Bash sẽ mang lại năng suất cao hơn khi phải thao tác với file, thư mục, sử dụng các chương trình CLI mà ít cần đến xử lý phức tạp nào khác.
Bạn viết 1 script để download khoảng 10 file và xử lý chúng, nếu script lỗi sau khi xử lý file thứ 3, có vẻ như bạn lại phải làm lại từ đầu ?!!!

- Có cần viết 1 script to làm toàn bộ công việc hay viết nhiều script nhỏ xử lý từng phần, kết hợp với làm bằng tay?
hãy làm những gì bạn thạo nhất. Với 2 file như thế này:
pkg-name-and-1.3.tar.bz2
another-pkg-name2-and-2.3.4.zip
bạn sẽ làm thế nào nếu phải convert chúng về định dạng .tar.gz và lấy tên từ version đổ đi? Tức bạn sẽ thu được 1.3.tar.gz và 2.3.4.tar.gz

việc rename là cực đơn giản với các những ai biết dùng regex, hoặc bạn chỉ cần 1 dòng python để cắt chuỗi ra rồi ghép lại.
Nếu bạn không biết cả 2, hãy làm bằng tay.
Việc convert giữa các định dạng có thể sẽ trở nên phức tạp khi bạn viết thành script. Hãy viết script những phần bạn thành thạo, và đơn giản. Hãy làm bằng tay những gì bạn không biết viết. Mục tiêu cuối cùng là hòan thành công việc sớm nhất có thể rồi còn về uống bia :v

Hết!
Kinh nghiệm đau thương sau nhiều ngày ngu dại :D

Comments

  1. một câu hỏi cùng chủ đề:
    http://programmers.stackexchange.com/questions/204684/when-should-we-stop-work-and-make-tool

    ReplyDelete

Post a Comment

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG