2021年05月22日(土曜日)
プログラミング言語やフレームワークなど、選定する際のポイントについて勉強会を開催しました。
■概要
技術選定の観点から、CakePHP、Laravel、Node.js、Goを中心に解説
■Go言語について
Googleが開発したオープンソースのプログラミング言語
★Go言語のメリット
・文法がシンプルである
・高速な処理が可能
・並列処理が得意
・メモリの安全性が高い
→Cだとメモリーリークを起さない様にする必要がある
★Go言語のデメリット
・「継承」ができない
・3項演算子がない
・genericsがない
・例外処理ができない
・普通のスクリプト言語と勝手が違い、失敗するプロジェクトもあるので、
よく理解して導入する必要がある
■Node.jsについて
JavaScript実行環境の1つで、
ウェブブラウザの中で実行されるのではなく、サーバサイドJavaScriptの一種
WebSocket通信機能が使える他、実行速度が高速という特徴もある
JSベースで使えるが使い方が少々特殊
■CakePHPについて
PHPで書かれたオープンソースのWebアプリケーションフレームワーク
運用案件が多い
ORMのクエリービルダーにより簡単にクエリーを作り、 実行することができる。
Laravelなどはテストに優れている面があり奪われてしまっている
■Laravelについて
PHPで書かれたオープンソースのWebアプリケーションフレームワーク
スクリプト言語のフルスタックフレームワーク代表
日本語のマニュアルが優れており、ドキュメントも充実している
何でもできるが処理が速いわけではない
■言語、フレームワークを選定する際の観点
★マイクロサービス (microservices) とは
・アプリケーション開発の手法またはアーキテクチャ
・アプリケーションの構成要素を独立したサービス群 (マイクロサービス) へと分け、
連携させる手法で、アプリケーションに導入可能な部品すべてが、
アプリケーション内に含まれている状態
・モノリシックな手法の課題を解消し、開発と対応を促進するのに役立つ
・連携分遅くなる可能性があるため、それに配慮して作る必要がある
■フルスタックフレームワークサービス・マイクロサービスのメリット・デメリット
rails、laravelなどのフルスタックフレームワークを利用すれば、手軽にWebサービスの構築できる。
しかし、3年あるいはそれ以上続くWebサービスを構築する際は、フルスタックフレームワークを採用するかどうかは慎重に検討する必要がある。
ケースバイケースではあるが、マイクロサービスの考え方をフレームワーク・ライブラリ構成に応用するとメリットがある可能性があります。
★フルスタックフレームワークのデメリット
・ロックインされる(一番大きなデメリット)
フレームワークのメジャーバージョンアップがあった場合、
それに追随するならば、サービス自体に手を入れる必要がある
・オールインワンである
作ろうとしているサービスが、簡素なものである場合、
その構成自体が「大きすぎる」可能性がある
・学習コストが高い
■概要
技術選定の観点から、CakePHP、Laravel、Node.js、Goを中心に解説
■Go言語について
Googleが開発したオープンソースのプログラミング言語
★Go言語のメリット
・文法がシンプルである
・高速な処理が可能
・並列処理が得意
・メモリの安全性が高い
→Cだとメモリーリークを起さない様にする必要がある
★Go言語のデメリット
・「継承」ができない
・3項演算子がない
・genericsがない
・例外処理ができない
・普通のスクリプト言語と勝手が違い、失敗するプロジェクトもあるので、
よく理解して導入する必要がある
■Node.jsについて
JavaScript実行環境の1つで、
ウェブブラウザの中で実行されるのではなく、サーバサイドJavaScriptの一種
WebSocket通信機能が使える他、実行速度が高速という特徴もある
JSベースで使えるが使い方が少々特殊
■CakePHPについて
PHPで書かれたオープンソースのWebアプリケーションフレームワーク
運用案件が多い
ORMのクエリービルダーにより簡単にクエリーを作り、 実行することができる。
Laravelなどはテストに優れている面があり奪われてしまっている
■Laravelについて
PHPで書かれたオープンソースのWebアプリケーションフレームワーク
スクリプト言語のフルスタックフレームワーク代表
日本語のマニュアルが優れており、ドキュメントも充実している
何でもできるが処理が速いわけではない
■言語、フレームワークを選定する際の観点
★マイクロサービス (microservices) とは
・アプリケーション開発の手法またはアーキテクチャ
・アプリケーションの構成要素を独立したサービス群 (マイクロサービス) へと分け、
連携させる手法で、アプリケーションに導入可能な部品すべてが、
アプリケーション内に含まれている状態
・モノリシックな手法の課題を解消し、開発と対応を促進するのに役立つ
・連携分遅くなる可能性があるため、それに配慮して作る必要がある
■フルスタックフレームワークサービス・マイクロサービスのメリット・デメリット
rails、laravelなどのフルスタックフレームワークを利用すれば、手軽にWebサービスの構築できる。
しかし、3年あるいはそれ以上続くWebサービスを構築する際は、フルスタックフレームワークを採用するかどうかは慎重に検討する必要がある。
ケースバイケースではあるが、マイクロサービスの考え方をフレームワーク・ライブラリ構成に応用するとメリットがある可能性があります。
★フルスタックフレームワークのデメリット
・ロックインされる(一番大きなデメリット)
フレームワークのメジャーバージョンアップがあった場合、
それに追随するならば、サービス自体に手を入れる必要がある
・オールインワンである
作ろうとしているサービスが、簡素なものである場合、
その構成自体が「大きすぎる」可能性がある
・学習コストが高い