0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【未完】Javaエンジニアがcosmosdb-chatgptを読むのに苦闘している その1(さらっと読んでみる編)

Last updated at Posted at 2023-06-19

はじめに

はじめまして。
SPA, JavaEE, Tomcat, Wildfly, PostgreSQL……という世界で生きてきたのですが、MicrosoftによるChatGPTアプリのサンプルを動かさねばならないことになりました。
タイトルにある、Azure-Samples/cosmosdb-chatgptです。
なにしろMicrosoftの言語やらプラットフォームやらは、ここ20年くらい触っていないし、業務で触ったことは(ほぼ)皆無です。
そこそこ色々見てきているので、まったくできないことはないだろう、と思ってはいるのですが……

ということで、Java屋がASP.NETの(わりかし新しめな)コードを読むとこうなる、という記録を残しておくことにしました。

注意

以下、「~です。」のように言い切っている箇所がありますが、これらはあくまでも私の理解です。
間違い等ある可能性があります。
(華麗にスルーor気が向いたらコメントなどいただけると嬉しいです)

アーキテクチャの概要

# サンプルの方式 Javaのスタックの似てるやつ ここは判らない
言語 C# Java
フレームワーク Blazor Server JSF プレゼンテーション層だけではない?
DI Microsoft.Extensions.DependencyInjection CDI
実行環境 ASP.NET App Service AWS Elastic Beanstalk EC2しか使ったことがないので、知識で判断
DB ASP.NET Cosmos DB AWS DocumentDB(MongoDB) RDSしか使ったことがないので、知識で判断

Blazor Serverについて

UIを構築するためのフレームワークです。
同じBlazorでも、Blazor WebAssemblyを使うと、ブラウザのWebAssemblyランタイムで実行されるコードになります。
WebAssemblyとは、(ここは割と不勉強なのですが)ブラウザに内蔵されているバイトコード実行環境で、JavaScriptインタプリタと併置されるイメージです。

まず読んだコード

Pages/*.razor

JSFでいうところの*.xhtmlです。
中身を見てもJSFっぽいですが、ソースの下の方にBacking Beanに該当するハンドラが書かれています。
(これは個人的にわかりやすくて好きです)

Services/*.cs

画面から使われるチャットサービス、チャットサービスから使われるDBアクセス、OpenAIアクセスのサービスがあります。
DDDでいうところのアプリケーションサービスでしょうか。

Models/*.cs

ドメインモデル(エンティティ)です。

Options/*.cs

そろそろ判らなくなってきました。DI設定ファイル?の型?

感想

さらっと読んで、大体の構造を掴むのであれば、Javaと類推できる部分は多いかも。
ですが、こいつをどうデプロイして……というMicrosoftのエコシステムの話になると、簡単ではない気配。
続く……と思う!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?