需要うんぬんはよくわかりませんが・・・(というか需要で決めるならJavaかPHP?)
Goのアプリケーションを成立させているコードはほぼGoで書かれたコードです。
なのであらゆる機能の裏側を読むことができます。
TCP/HTTPの仕組みやTLS、証明書の扱いなど、包み隠さず追うことができます。
GoでWebアプリケーションを作ると「小さな責任を持った機能」を組み合わせて
アプリケーションを構築している様子が隠されることなく見て取ることができます。
(このおかげでどうやってサーバーとクライアントがお互いの証明書を検証するのかとかTLSのハンドシェークの理解も深まったし、HTTPに対する理解も深まりました。)
フレームワークの利用はこれらを隠し、「フレームワークの流儀にいかに乗るか」が求められます。
その裏側にはあまり触れることなく一般的なアプリを実装することができてしまいます。
フレームワークはレールに乗っているうちは裏側のことを知らなくても問題はありませんし、
細かいことはフレームワークが気を利かせて決めうちの処理を持っていて気にしなくてもいい。
ところがそのレールから外れるようなことが要求された途端、
フレームワークの裏側の仕組みの理解が必要になります。
そうしてフレームワークを追っていくとそこにはアプリケーションとは異なる言語で書かれた外部ライブラリを利用していて挙動を追うのは困難といったことがあったりします。そしてフレームワークがリッチであればあるほどその挙動の把握は困難になります。
私はかつてPythonでDjangoやその他のフレームワークを使ってWebアプリを作っていましたが、今はGoで書いてばかりになりました。とっつきはGoでWebアプリ書くのは若干面倒に感じる(特にDB周りは面倒に感じる)のですが、Goの方がストレートに処理を追いやすくてメンテしやすいと感じるからです。
また、PythonとGoとでWebアプリの構築で大きく異なる特徴があります。
- Pythonでは静的コンテンツを効率的にサーブできないので本番サーバーでは前段に高スループットなプロキシーサーバーを置くのが一般的です。
- Goでは高スループットなプロキシーサーバーの役割を自身でまかなえるのでデプロイ先の構成はシンプルになります。
またGoに比べてPythonは柔軟なテンプレートでHTML生成が得意ではあるんですが、サーバー側の動的なHTML生成の需要はどんどん減っているように思います。静的コンテンツとVue.jsやReactによってブラウザ側に処理をオフロードしてサーバー側でHTMLやDOMを扱わない構造が主流になりつつあると思います。
「Webアプリ実装」=「APIサーバーとフロントエンドの実装」になってきています。
これから新規にWebアプリをつくりつつ、ブラウザとWebアプリケーションサーバー間の仕組みに関する知識を掘り下げたいのであればGoはオススメです。一度掘り下げておくと、どんなフレームワークを使うことになってもフレームワークの裏側の理解が早くなると思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/02 12:08
2019/12/02 14:34
2019/12/02 15:04
2019/12/02 23:29
2019/12/03 15:42