【なぜ?】Go言語でフレームワークを使わない開発:その理由とメリットについて
こんにちは!たけのこです。
Go言語には、様々なフレームワークが用意されていて色んなシステムや機能が実現できるようにされていますよね~
ですが、フレームワークをあえて使用せず、システム開発を行なうプロジェクトがあったりします。
わざわざ便利なフレームワークを利用しないのは何でですかね…?
というわけで今回、なぜフレームワークをあえて利用しないのか。といったところに焦点を当てて解説していきます!
フレームワークをあえて利用しない理由について
では、早速フレームワークをあえて利用しない理由について、いくつか解説していきます。
また、この記事は
- システム開発中、フレームワークを積みすぎて不安になっている方
- 参画しているプロジェクトでフレームワークを使用しないことに不満を持っている方
にオススメの記事内容となっています。
シンプルな設計の維持
まず、Go言語の基本的な設計としては「シンプルであること」を重要視しています。
この基本設計をプロジェクトにも適応することで
- コードの可読性
- システムの保守性
といった2つの向上に繋がってきます。
しかし、フレームワークを導入すると抽象化層が生まれてしまい、システムが複雑化していってしまいます。
フレームワークをどんどん入れていくと、その管理も大変になっていきますし。。。
なので、「便利だから…」という理由だけでフレームワークをどんどん導入するといったことを避けているプロジェクトもあるみたいですね~
外部依存性の削減
フレームワークを導入したシステム開発では、外部のライブラリやツールに依存することになりますので、
導入したフレームワークの数だけアップデートの対応やセキュリティのリスクを抱えることになります。
また、Go言語の標準ライブラリは充実しているのでフレームワークに頼らなくても、じゅうぶんカバーすることができます。
なので、長期的な運用を考えているシステムでは、なるべくフレームワークに依存しない方向で進めているところもあるみたいですね!
パフォーマンスの最適化
Go言語は、ご存じの方もいるかもしれませんが
- 実行効率
- 平行処理能力
の2点が非常に優秀で、これらを活かしたシステム開発によく用いられています。
特に、リアルタイム性が求められる金融市場データを処理するシステムや、チャットアプリケーションの開発などに用いられていますね~
ですが、そんな実行効率の高いGo言語システムにフレームワークを導入すると、ややレスポンス能力や処理能力が低下してしまいます。
なので、パフォーマンスを低下させないためにもフレームワークを導入せずにGo言語独自のライブラリでカバーし、実装するプロジェクトも多いみたいです!
柔軟性の向上
フレームワークを導入するとリファレンスに沿った処理しか実装できず、プロジェクトごとの要件にそった柔軟な対応ができなくなってしまいます。
例えば、「データの登録と更新を1つのトランザクションで実行したい」と思っていたのに、導入したフレームワークでは「登録と更新は1つにまとめられない!」というような、フレームワーク利用の縛りに縛られる場合があります。。。
そんなフレームワークの構造や設計に縛られず、自由にシステム開発がしたい場合にあえて
「フレームワークを導入しない!」
という選択を取る場合もあるようです。
まとめ
ということで、フレームワークを使わない理由について、いくつか解説しました。
どんな機能の実装もカンタンにしてくれるフレームワークですが、単にメリットだけではなく、デメリットに働く場合もあるみたいですね…
この記事がGo言語開発時の参考になれば幸いです!
ということで、今回はこの辺りで!ありがとうございました!