はじめに Shopify から面白そうな gem がオープンソースとして公開されました。 Shopify/packwerk: Good things come in small packages ドキュメントを読みながら動かしたところ、結構便利に思えたので紹介します。 課題と Packwerk による解決方法 理想的なコードの条件として、一般的に高凝集 (high cohesion) と疎結合 (loose coupling) が挙げられます。 こちらは Packwerk のリポジトリにあった図で、視覚的にとても分かりやすいと思ったので転載しました。 (※ここでの package とは、オートロードされたコードを含むフォルダー) a) は package 内が high cohesion (高凝集) で、package 間は public な api を使って loose coupling