有时我发现自己需要做一些可以自动化或手动操作的事情。例如。我刚刚运行了一个特定的脚本8次,每次运行之间做了一个小的改动。我当然可以编写一个可以自动执行此操作的脚本,但在这种情况下,我决定每次都手动运行它会更快。
但有时我意识到在我花了很多时间手动做某事之后,我最好先把它自动化。
任何关于经验法则的建议,在我开始重复流程之前,是否值得花时间编写脚本来自动化它?
澄清:我正在谈论的事情是sysadmin类型的东西,如移动文件,重命名等等,以及DBA类型的东西,如运行SQL脚本导入某些数据(这就是我今天在做什么)。请注意,我是开发人员,而不是系统管理员或DBA。
答案 0 :(得分:8)
我是“Three Strikes and you Automate”规则的粉丝,如该链接所述。
答案 1 :(得分:4)
我有脚本编写的原因包括
当:
你第二次这样做
它变得不止一步
很容易出错
很容易忘记如何手动执行
答案 2 :(得分:4)
不要只考虑在自动化过程中可能会或可能不会看到的节省时间。还要考虑手动运行流程可能导致错误的可能性。
正确完成后,自动化流程应尽量减少出错的可能性。这可能会导致您自动化,即使它不会节省净时间。
当然,另一方面,如果一个进程自动运行,请务必密切关注它以确保它没有偏离轨道。
答案 3 :(得分:2)
除了显而易见的,编写脚本的一个原因是因为编写脚本的行为甚至比执行任务更有趣 - 并且您可以在此过程中学到一些东西。
对于许多极客来说,做一些聪明,有趣和有趣的事情超过了任何其他好处;所以在这种情况下,即使花费的时间比手动完成任务要长,自动化任务也可能符合这些标准!
答案 4 :(得分:1)
如果有一个系统管理 老实说,就是这样:没有简单的系统管理员 任务很有趣两次以上。如果你 发现自己做了一个简单的沉闷任务 超过两次,自动化。
- http://www.ibm.com/developerworks/linux/library/l-punix.html
答案 5 :(得分:1)
如果错误始终与您重复执行的操作集相同,则自动化会减少错误源。
几年前,当我开始使用我的一个(asp.net)项目时,我有一个手动发布过程,涵盖了3个书面页面。我一步一步地将该工作迁移到构建批处理文件(使用命令行选项等来选择单个操作或所有内容)。
脚本完成后,它完美无瑕地运行,每次运行都节省了一个小时的手动工作。
有时,这只是编写脚本的乐趣;)
答案 6 :(得分:1)
这是开发者的网站。
如果您认为可能需要再次执行相同的操作,请立即自动执行此操作。但是不要忘记像YAGNI(你不需要它)这样的法律,并避免在自动化上花费太多时间。只需要一点点哄骗就可以获得适合你的东西。
下一次,重构并改进它,但只是一点点。记住YAGNI。
第三次尝试将它放在一个漂亮的小包装中,你可以给它一些输入,它会在错误条件下运行完成并做出明智的事情并记录错误。
希望你没有使用shell脚本,而是使用像Python这样的真正的脚本语言,你可以随时调整代码并改进代码,直到它成为一个能够远程运行和管理的完整自动化框架。一次调用就有数千台服务器。
答案 7 :(得分:1)
我的经验法则:
答案 8 :(得分:0)
我的规则很简单:从长远来看,我是否可以节省手动操作或编写脚本的时间。
如果您只需要执行几次特定任务,然后再不执行任务,则可能不值得编写脚本。但是如果您只需要进行微小的更改就需要重复执行任务,那么编写脚本会节省您的时间。
答案 9 :(得分:0)
优秀的程序员往往是懒惰的,因为他们试图以最少的努力和时间来做事。因此,如果它能节省总时间,那么它可能是值得的。
答案 10 :(得分:0)
我的规则就是这样:当它变成你不再需要思考的东西时编写脚本。如果您仍在谨慎地进行操作,仍然需要了解有关该过程的内容,或者仍然对结果特别感兴趣,请不要编写脚本。但是,如果它成为你必须做的事情才能完成某件事,并且做这件事是一件苦差事,那就完全没有脚本。