この記事はニフティグループ Advent Calendar 2019の14日目の記事です。 昨日は@mito1296さんの「Terraformで立てたec2インスタンスをAnsibleで管理してみる」でした。 同様の問題に以前悩まされたことがあったのでタグ付けは非常に綺麗な解決方法だなと感心しました。 機会があれば、うちのチームでも導入したいですね!! TD;LD Pythonは型安全で無いので大きめのプロジェクトになると心理的な安全が担保できないので敬遠していました。 しかし、Python3.5以降typingが導入されmypyと組み合わせることで、少し大きめのプロジェクトでもコーティングする際に心理的な安全を得ることができるようになったので中規模の開発に採用できるようになりました。 今回は、python3.8からtyping.Protocolが正式に追加されたようなので紹介してみます。
![PythonでProtocolを使って静的ダック・タイピング - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/c7e4f5d62161eb24a7001e3ad36e8f3080dee790/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-7940cd1c8db80a7ec40711d90f43539e.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UHl0aG9uJUUzJTgxJUE3UHJvdG9jb2wlRTMlODIlOTIlRTQlQkQlQkYlRTMlODElQTMlRTMlODElQTYlRTklOUQlOTklRTclOUElODQlRTMlODMlODAlRTMlODMlODMlRTMlODIlQUYlRTMlODMlQkIlRTMlODIlQkYlRTMlODIlQTQlRTMlODMlOTQlRTMlODMlQjMlRTMlODIlQjAmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTVhNGYzNjZhMjFkNzMzZjYwMWEyZTA4ZjAyYjQ3Y2Fk%26mark-x%3D120%26mark-y%3D96%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9OTcyJnR4dD0lNDBzcGljeV9sYWljaGkmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTYxNDVmYjMyYTI3MjE1ZTBhNGVmNTgxOTBhN2VjZTg0%26blend-x%3D120%26blend-y%3D500%26blend-mode%3Dnormal%26s%3D0b82890f4149277d3b414595975d1688)