アプリケーションの開発業務を行っているのであれば、面倒な作業などは自動化させて楽をする考え方を持つことはとても重要です。

開発の工程は本当に本当に長い道のりなので、どれくらい自動化ができているかで開発速度に大きな影響を与えると考えています。

自動化について、僕なりに考えていることをシェアしていきたいと思います。

自動化できそうなタスク

自動化しておきたいタスクといえば、例えば以下のようなものがあります。

  • テスト
  • コードレビュー
  • バックアップ など

自動化のメリット

常に正常な動作を保証できる

例えば、アプリケーションに対してテストコードを書かずにいると、バグが潜んだ状態で開発を進めることになります。

アプリケーションの動作の検証を自動化させることで、バグが出ている箇所があると通知されるようになり、その都度修正していくことができるのでアプリケーションの品質を保ち続けることが可能となります。

忘れずに実行できる

開発者は人間ですので、開発者自身が手動でタスクを実行する流れだと、どこかのタイミングで実行し忘れることがあります。

自動化して実行したいタスクを登録しておけば、設定した期間にタスクを実行してくれるので実行し忘れることを防ぐ事ができます。

実行する手間を省ける

自分でタスクを実行するとなると、その動作が加わるので手間が掛かります。

実行する頻度が低ければ良いのですが、頻繁に実行するものなのであれば段々手間だと感じてきてしまいます。

自動化の仕組みを取り入れる作業自体一手間が掛かってしまいますが、組み込んだ後は自動化されるので後々のことを考えると楽になります。

自動化のデメリット

強制的にタスクが実行される

任意のタイミングでのみの実行ができなくなります。

例えばアプリケーションの検証を自動化し、不具合が検知された場合は気が乗らない場合でも修正せざるを得ない状況となります。

ですが、こういった開発スタイルの方が本来の姿だと思うので、やはりこういった仕組みは取入れるべきですね。

毎回実行するので、処理待ちが発生

動作が軽いタスクであれば問題無いかもしれませんが、動作が重いタスクを自動化されていると、処理が終わるまで待たなければいけないこともあります。

ただ、タスクを実行するか選択できるような仕組みを取入れたり、バックグラウンドで実行する仕組みが取入れられていれば殆ど問題はないように思います。

自動化の方法

タスクを実行させたい場合には色々方法があると思いますが、分かる範囲で思いつくもので以下のような方法があります。

特定のイベント発生時に実行させる

何かしらのアクションを起こしたタイミングでタスクを実行させる方法。

例えば、Gitのコミット時にテストコードを実行させたりとかですかね。

CIを利用

CI(継続的インテグレーション)を実現させるツールを利用して、特定のイベント時にタスクを実行させたり、定期的に実行させる方法です。

例えば、JenkinsやCircleCIといったサービスを利用して実現できます。

まとめ

自動化は構築するのに一手間掛かりますが、それ以上の恩恵を受けられるので総合的に見れば取入れる価値は大きいと思います。

開発の効率が上がるので、積極的に自動化を取入れるようにしましょう。

更新日 : 2020年5月8日

投稿者: TWEI

趣味はプログラミング。 以前は仕事でプログラミングをやっていました。現在はWebエンジニアを目指して勉強中。 勉強で得た知識などをブログで発信していく予定です。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA