Step Back and Automate, Automate, Automate
来源:互联网 发布:电信卡怎么设置4g网络 编辑:程序博客网 时间:2024/06/10 00:29
I worked with programmers who, when asked to produce a count of the lines of code in a module, pasted the files into a word processor and used its "line count" feature. And they did it again next week. And the week after. It was bad.
I worked on a project that had a cumbersome deployment process, involving code signing and moving the result to a server, requiring many mouse clicks. Someone automated it and the script ran hundreds of times during final testing, far more often than anticipated. It was good.
So, why do people do the same task over and over instead of stepping back and taking the time to automate it?
Common misconception #1: Automation is only for testing.
Sure, test automation is great, but why stop there? Repetitive tasks abound in any project: version control, compiling, building JAR files, documentation generation, deployment, and reporting. For many of these tasks, the script is mightier than the mouse. Executing tedious tasks becomes faster and more reliable.
Common misconception #2: I have an IDE, so I don't have to automate.
Did you ever have a "But it (checks out|builds|passes tests) on my machine?" argument with your teammates? Modern IDEs have thousands of potential settings, and it is essentially impossible to ensure that all team members have identical configurations. Build automation systems such as Ant or Autotools give you control and repeatability.
Common misconception #3: I need to learn exotic tools in order to automate.
You can go a long way with a decent shell language (such as bash or PowerShell) and a build automation system. If you need to interact with web sites, use a tool such as iMacros or Selenium.
Common misconception #4: I can't automate this task because I can't deal with these file formats.
If a part of your process requires Word documents, spreadsheets, or images, it may indeed be challenging to automate it. But is that really necessary? Can you use plain text? Comma-separated values? XML? A tool thatgenerates a drawing from a text file? Often, a slight tweak in the process can yield good results with a dramatic reduction in tediousness.
Common misconception #5: I don't have the time to figure it out.
You don't have to learn all of bash or Ant to get started. Learn as you go. When you have a task that you think can and should be automated, learn just enough about your tools to do it. And do it early in a project when time is usually easier to find. Once you have been successful, you (and your boss) will see that it makes sense to invest in automation.
By Cay Horstmann
This work is licensed under a Creative Commons Attribution 3
- Step Back and Automate, Automate, Automate
- Step Back and Automate, Automate, Automate
- Automate Test
- Automate SharePoint Solution Builds
- Automate Your Coding Standard
- Automate Your Coding Standard
- How to automate Excel using MFC and worksheet functions
- Automate your build process using Java and Ant
- UVa 11777 - Automate the Grades
- Using Visual C++ to Automate Office
- eBay Architecture(9)–Automate Everything
- Using Ant to Automate Building Android Applications
- below script to automate your stats job
- Robotium_Using Ant to Automate Building Android Applications
- CAL - ISPS automate V01 GR (ZRPP106B)
- Using cURL to automate HTTP jobs
- C# vs 2015 to automate ONE
- Using cURL to automate HTTP jobs
- Windows启动过程分析-预引导
- The Single Responsibility Principle
- 每一个有理想的程序员都应该读的一本书-《rework》
- Start from Yes
- leetcode 126: Word Ladder ll (uncompleted)
- Step Back and Automate, Automate, Automate
- java HttpClient Post实例
- JNI学习(5)(我是菜鸟)
- Take Advantage of Code Analysis Tools
- 俞敏洪一分钟励志演讲:
- Test for Required Behavior, not Incidental Behavior
- Android的permission大全
- 在交互细节上,Android 与 iOS 有哪些区别?
- PCB布板一些简易常用规则