【问题标题】:How to decide when to script something rather than do it manually?如何决定何时编写脚本而不是手动编写?
【发布时间】:2010-12-11 09:55:08
【问题描述】:

有时我发现自己需要做一些可以自动化或手动的事情。例如。我只运行了一个特定的脚本 8 次,在每次运行之间进行了一些小的更改。我当然可以编写一个脚本来自动执行此操作,但在这种情况下,我决定每次手动运行它会更快。

但有时我在投入大量时间手动执行某项操作后意识到,我最好首先将其自动化。

任何经验法则的建议可以帮助我在开始一些重复的过程之前决定是否值得花时间编写脚本来自动化它?

澄清一下:我所说的是系统管理员类型的东西,比如移动文件、重命名等等,以及 DBA 类型的东西,比如运行 SQL 脚本来导入某些数据(这就是我今天在做)。请注意,我是开发人员,而不是系统管理员或 DBA。

【问题讨论】:

    标签: scripting automation estimation task-management


    【解决方案1】:

    我是“Three Strikes and you Automate”规则的粉丝,如该链接所述。

    【讨论】:

    • 太棒了。准确地描述了我的心情。它现在就在我的桌子上。
    • +1 我一直遵循这个规则,没想到有人把它封装得这么好
    【解决方案2】:

    我编写脚本的原因包括

    时间:

    • 你做第二次

    • 变成不止一步

    • 容易出错

    • 很容易忘记如何手动操作

    【讨论】:

      【解决方案3】:

      不要只考虑在自动化过程中可能会或可能不会看到的时间节省。还要考虑手动运行进程可能导致错误的可能性。

      如果操作得当,自动化流程应该可以最大限度地减少出错的机会。这可能会导致您实现自动化,即使它不会节省净时间。

      当然,另一方面,如果一个进程是自动运行的,请务必密切关注它以确保它没有偏离轨道。

      【讨论】:

        【解决方案4】:

        除了显而易见之外,编写脚本的一个原因是因为编写脚本的行为比完成任务更有趣——而且您可能会在此过程中学到一些东西。

        对于许多极客来说,做一些聪明、有趣和有趣的事情胜过其他任何好处;所以在这种情况下,自动化任务很可能满足这些标准,即使花费的时间比手动执行任务要长!

        【讨论】:

          【解决方案5】:

          如果有一个系统管理 真理,就是这样:没有简单的系统管理员 任务很有趣两次以上。如果你 发现自己在做一个简单乏味的任务 超过两次,自动化它。

          -- http://www.ibm.com/developerworks/linux/library/l-punix.html

          【讨论】:

            【解决方案6】:

            如果您总是重复执行同一组操作,自动化会减少错误来源。

            几年前,当我开始我的一个 (asp.net) 项目时,我有一个手动发布过程,涵盖了 3 个书面页面。我一步一步地将该工作迁移到构建批处理文件中(使用命令行选项等来选择单个操作或所有内容)。

            脚本完成后,它完美无瑕地执行,每次运行都为我节省了一个小时的手动工作。

            有时,这只是编写脚本的乐趣;)

            【讨论】:

              【解决方案7】:

              这是一个面向开发者的网站。

              如果您认为您可能需要再次执行相同的操作,请立即将其自动化。但不要忘记像 YAGNI(你不需要它)这样的法律,并避免在自动化上花费太多时间。现在只需稍加哄骗,就可以得到适合你的东西。

              下一次,重构和改进它,但只是一点点。记住 YAGNI。

              第三次,尝试将它放入一个漂亮的小包中,您可以在其中给它一些输入,它会运行到完成,在错误条件下执行明智的操作并记录错误。

              希望您使用的不是 shell 脚本,而是一种真正的脚本语言,例如 Python一次调用数千台服务器。

              【讨论】:

                【解决方案8】:

                我的经验法则:

                • 如果感觉乏味,请花点时间思考一下如何实现自动化、需要多少工作量以及它可以为您节省多少工作量。
                • 如果自动化非常容易或显然可以节省大量工作,请立即开始自动化
                • 如果您决定不自动化并且手动操作会变得痛苦,或者如果您决定自动化但遇到困难,请三思而后行。

                【讨论】:

                  【解决方案9】:

                  我的规则很简单:从长远来看,我会节省手动操作或编写脚本的时间吗?

                  如果您只需要执行几次特定任务,然后就再也不需要了,那么编写脚本可能不值得。但是,如果您需要重复执行该任务,只需进行微小的更改,编写脚本将节省您的时间。

                  【讨论】:

                    【解决方案10】:

                    优秀的程序员往往很懒惰,因为他们试图用最少的精力和时间做事。因此,如果它可以节省总时间的精力,那可能是值得的。

                    【讨论】:

                      【解决方案11】:

                      我的规则是:当它变成你不再需要考虑的事情时,编写它。如果你还在认真地做这件事,还在学习过程中的一些东西,或者仍然对结果特别感兴趣,那就不要编写脚本。但是,如果它变成了你必须做的事情才能完成某件事,而这样做是一件苦差事,那就把它写出来吧。

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 2013-09-08
                        • 2011-06-24
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2021-10-11
                        • 2021-08-25
                        • 1970-01-01
                        相关资源
                        最近更新 更多