之前在上海的時候,我曾見過一個項目中有一個繁瑣的處理過程,涉及到幾乎相同代碼的複用問題,而且發生在不同的時段,偶爾還在同一屏幕像素位置的需要許多次的鼠標點擊。
有人試著做一個自動化的方式,並且這個腳本中一個流程下來最終測試跑了好幾十次,次數遠遠多於預期。
但是,那麼,為什麼大多數的我們只做退一步地重複著相同的任務一遍又一遍,而不是與採取自動化的思想來提高個人工作效率呢?
工具/原料
一臺電腦 + 一項不是特別小的工程(代碼還可以再進行壓縮的那種)
一個善於發現的腦袋
減少代碼複用
常見的誤解①:自動化是僅用於測試
當然,自動化測試的思想是偉大的,但為什麼要停滯於此呢?重複性的任務比比皆是:
在任何項目中都會遇到諸如版本控制,編譯,構建JAR文件,文檔生成,部署和報告。對於許多這些任務,則腳本是比鼠標更有力。執行繁瑣的任務變得更快和更可靠。
退一步再說,測試難道和開發一點關係都沒有麼?
常見的誤解②:我有一個IDE,所以我沒有實現自動化
你有沒有想過開發一個適用於你公司業務的Eclipse的Plugin?
現代的IDE有好多種,各種插件也比比皆是。某個插件的使用者大都是相同的配置。在構建自動化系統過程中,你有做過類似如Ant或其他自動化工具來給你控制管理和檢測代碼的重複性嗎?
常見的誤解3:我需要學習自動化工具,花費時間
做同一件事情來達到你要的結果,你可能會走很長的路。如果有一個很合適的shell語言(如bash或PowerShell中)寫的腳本來構建自動化系統。
你願意去嘗試嗎?
常見的誤解4:我不能完成這個任務,因為我沒有處理過這類文件的格式
如果你係統的某進程的某一部分,需要Word文檔,電子表格,或視頻流,它可能確實是具有挑戰性的自動化。但真的有必要嗎?
如果單純只為了花哨,那麼在此過程中完全可以進行輕微的調整,可以產生良好的結果的話又何樂而不為呢?
常見的誤解#5:我沒有弄明白的時候,儘量還是做本分的事吧
“我不認為老闆會同意把錢花在對員工的突發奇想上,穩定為先。”可是,問題是,你是老闆嗎?不是的話,你提出你的改良型建議了嗎?
當你有,你認為可以而且應該實現自動化任務,學習剛剛足夠了解可以涵蓋你業務的工具時候,再來做到這一點。和早期不進行學習完成這個項目來比較的時候呢,時間通常花費要少很多。而且,一旦你已經成功了,你(和你的老闆)會看到,節省的不僅僅是開發的時間,魚和漁的道理應該誰都懂。