株式会社ジェイテックジャパンさんのフィード

https://zenn.dev/jtechjapan

会社立ち上げ以来ずっと、.NET と Azure を基盤に開発をしています。ここ数年 DDD やサーバーレス技術に取り組んでおり、2023年12月にC#でCosmos DBやDynamo DBをイベントストアとするイベントソーシング・CQRSフレームワーク「Sekiban」をリリ

フィード

記事のアイキャッチ画像
Microsoft AI Tour Tokyo 2024に参加してきました
株式会社ジェイテックジャパンさんのフィード
はじめにジェイテックジャパンの大野です。2024/02/20行われた「Microsoft AI Tour Tokyo 2024」に参加してきました。僕はConnection Hubの各ミニシアターのセッションを中心に見てきました。その様子をまとめていきます。Connection Hubの様子、ランチ行列がすごいブレイクアウトセッションやワークショップなどの様子は、弊社川江の記事に掲載されています。↓行って良かった Microsoft AI Tour Tokyo Cloud Microsoft トランスフォーメーションと変革を推進する AI(キーノート)日...
3ヶ月前
記事のアイキャッチ画像
Vertical Slice Architecture に関する .NET Conf 2023 セッションのまとめ
株式会社ジェイテックジャパンさんのフィード
開発チームの川江です。最近、社内で Vertical Slice Architecture (VSA) が話題になっています。.NET Conf 2023 の以下のセッションでも取り上げられており、一般的にも注目を集めていることが伺えます。勉強のために、セッションの内容をまとめてみました。https://youtu.be/T-EwN9UqRwE?si=KiR5Kt_aD8LVrV40 Vertical Slice Architecture の基本の考え方このセッションによると、Vertical Slice Architecture には以下の基本的な考え方があります。同じ機...
4ヶ月前
記事のアイキャッチ画像
C#でインターフェースのプロパティをJSONにJsonDerivedTypeを使ってシリアライズ、デシリアライズする
株式会社ジェイテックジャパンさんのフィード
TL;DRC#でpublic record User(string Name, IUserEmail Email);のようなインタフェースプロパティがあるクラスをJSONシリアライズ/デシリアライズする場合、 JsonDerivedType属性を使うとできるようになります。(.NET 7以上) 背景:型で制限するプログラミングがしたい株式会社ジェイテックジャパン CTOの高丘 @tomohisaです。最近、ビジネスの要件を効率的にプログラミングする方法について色々考えています。関数型で行うドメインモデリングについて書かれた、 Domain Modeling Made Func...
8ヶ月前
記事のアイキャッチ画像
C#の単体テストにおいてILoggerのログをテスト出力に表示する方法
株式会社ジェイテックジャパンさんのフィード
株式会社ジェイテックジャパン CTOの高丘 @tomohisaです。今回は、ユニットテストを書いている際にちょっと困る問題を解決するdotnetのパッケージを紹介します。 テストにおけるログの問題C#のユニットテストのフレームワーク、xUnitを使用している際に、ログを表示する際に使うことのできる方法で、まず推奨されているものが、 ITestOutputHelperを使用する方法です。こちらを使用すると、各テストケースの実行ログに、ログが表示されます。ただ、これには問題があり、テストクラスではなくライブラリ内に残るコードにはITestOutputHelperをDIしたコードを残す...
10ヶ月前
記事のアイキャッチ画像
「関数型で表現するイベントソーシングの実装とその教育」について登壇しました
株式会社ジェイテックジャパンさんのフィード
株式会社ジェイテックジャパン CTOの高丘 @tomohisaです。2023年3月24日に第四回関数型プログラミング(仮)の会の5分間のLTに参加させていただきました。以下はその資料です。2023/12/17追記:ジェイテックジャパンで開発してきた、イベントソーシング・CQRSフレームワーク、「Sekiban」をリリースしました! www.sekiban.dev/jp/いかに画像を含めて、簡単に記事の内容を説明します。 イベントソーシング = 関数型?イベントソーシングの提唱者である、Greg Young (グレッグヤング)は、よくイベントソーシングと関数型プログラミングを...
1年前
記事のアイキャッチ画像
ChatGPTにイベントソーシングのフレームワークコードの使い方を教えたら日本語の指示文から動作するドメインコードを生成してしまった。
株式会社ジェイテックジャパンさんのフィード
GPT-4がリリースされましたね株式会社ジェイテックジャパン CTOの高丘 @tomohisaです。3/14にGPT-4がリリースされました。ChatGPTの段階ですでにプログラマーにとても役に立つツールとなってきましたが、GPT-4ではよりコンテキストを理解したコード生成ができるようになりました。この時問題になるのが、自分の使っているフレームワーク、プロジェクトにおいて正しいコードを生成するにはどうしたら良いかということです。もしかするとGPT-4だと仕様を伝えたら生成してくれるのではないかと思い、試してみました。ChatGPTがコードを生成させるためには、質問の仕様とルール...
1年前
記事のアイキャッチ画像
Azure FunctionsとChatGPT APIで作ったSlack Botをコンテキスト対応しました
株式会社ジェイテックジャパンさんのフィード
ChatGPT すごい株式会社ジェイテックジャパン CTOの高丘 @tomohisaです。3/1からChatGPT APIが使用可能になり、翌日の3/2に以下の記事に記したChatGPT Botを作成しました。https://zenn.dev/jtechjapan/articles/5eb5d879088c23この記事では先週作成した簡易のChatGptのボットを1週間でどのように改善したかに関して説明しています。 便利に使われている会社として、ChatGPTのAPIは学習には使われないものの、ログは残るため、個人情報を含む情報はChatGPTには送らないようにしています...
1年前
記事のアイキャッチ画像
約1時間でAzure FunctionsとChatGPT APIを使った簡易のBotを作成してみた
株式会社ジェイテックジャパンさんのフィード
AI時代の到来株式会社ジェイテックジャパン CTOの高丘 @tomohisaです。この半年、それもこの数ヶ月でAIによるクリエイティブな作業のアシストのための機能が多数リリースされています。その中でも文章やプログラムを作成するChatGPTは、直接私たちプログラマーに役立つツールとなっています。ChatGPTは他にも以下の点にも活用できそうです。アイデアの整理やブレーンストーミングの際やそれに関して定義を聞くメリット、デメリットを整理したりするhttps://openai.com/blog/introducing-chatgpt-and-whisper-apisこの記...
1年前
記事のアイキャッチ画像
「イベントソーシング」の「イベント」というワードチョイスは適切なのか?
株式会社ジェイテックジャパンさんのフィード
この記事を書くに至った背景株式会社ジェイテックジャパン CTOの高丘 @tomohisaです。昨日、イベントソーシングのイベントについて以下の記事を書きましたが、この記事はフォローアップ記事です。よろしければ元の記事もご覧ください。https://zenn.dev/jtechjapan/articles/08e1bc2f4cf4a82023/12/17追記:ジェイテックジャパンで開発してきた、イベントソーシング・CQRSフレームワーク、「Sekiban」をリリースしました! www.sekiban.dev/jp/こちらの記事にかとじゅんさんから適切なコメントをいただきました...
1年前
記事のアイキャッチ画像
イベントソーシングに保存するべきイベントとは?
株式会社ジェイテックジャパンさんのフィード
イベントソーシング開発に関して株式会社ジェイテックジャパン CTOの高丘 @tomohisaです。ブログは久しぶりになります。昨年ジェイテックジャパンで色々ビジネスアプリケーションのアーキテクチャについて考慮した結果、イベントソーシングに可能性を感じて、社内で使えるイベントソーシングフレームワークを開発してきました。すでに既存システムの一部の機能に使われたり、新規システムの開発にも使用中です。今年前半にできればオープンソース化をしたいと考えていて、現在準備中です。今回のプロジェクトで選択したプログラミング言語はC#です。また、データストアにはCosmosDBを利用しています。C#...
1年前
記事のアイキャッチ画像
Newtonsoft.Json から System.Text.Json へ移行したら JSON のデシリアライズが失敗した
株式会社ジェイテックジャパンさんのフィード
開発チームの川江です。Cosmos DB を多用する関係で、JSON のシリアライズ・デシリアライズを行うコードを近頃よく書いています。C# で JSON を扱う場合のライブラリは、以前は Newtonsoft.Json (Json.NET) が定番でしたが、今では .NET 標準の System.Text.Json 名前空間を使えるようになりました。しかし既存のコードを移行する場合、両者の振る舞いの違いに注意が必要です。実際の移行時に、Newtonsoft.Json だと問題なくデシリアライズできていたクラスが、System.Text.Json にしたら例外が出るようになった、という...
2年前
記事のアイキャッチ画像
C#の非同期なジェネリックメソッドをリフレクションで実行して結果を取得する
株式会社ジェイテックジャパンさんのフィード
CTOの高丘です。最近は継承を減らしてインターフェースとジェネリックを活用し、シンプルにプログラムをまとめるリファクタリングを行っています。C# には豊富なリフレクション機能が用意されていて、複雑な機能をリフレクションを使用して実行できます。リフレクションを使用することにより、多くのクラスやメソッドの機能を一箇所にまとめることができます。今回は備忘も兼ねて、今回直面した問題と対策を書いておきます。 TL;DRC#の非同期なジェネリックメソッドをリフレクションで実行して結果を取得したいときは、tldr.cs var result = await (dynamic)meth...
2年前
記事のアイキャッチ画像
HttpリクエストがトリガーのAzureFunctionを作成し、結果をSignalRでクライアントへ通知する
株式会社ジェイテックジャパンさんのフィード
概要開発チームの大野です。最近はAzure Functionsを利用した業務システムを開発しています。今回はAzure FunctionsとAzure SignalRサービスを利用したリアルタイム通信の実装方法を紹介します。Azure Functionsのうち、「Httpトリガー」、SignalRサービスの「入力バインド」「出力バインド」を利用します。 利用する技術.NET 6Azure FunctionsHttpトリガーAzure SignalRサービス入力バインド出力バインドVue.js(ver3)TypeScriptAzur...
2年前
記事のアイキャッチ画像
Cosmos DBエミュレーターの変更フィードをトリガーにしたAzure Functionsを作成する
株式会社ジェイテックジャパンさんのフィード
概要開発チームの川江です。弊社は長年 .NET と Azure を基盤としたシステム開発を行っており、現在はCosmos DB を用いたイベントソーシングに積極的に取り組んでいます。この記事では、Azure Cosmos DB の変更フィード(Change Feed)をトリガーとして実行する Azure Functions を Visual Studio 2022 で作成し、且つデバッグ実行目的で Azure にデプロイせずローカル環境だけで動かすためのステップを紹介します。https://docs.microsoft.com/ja-jp/azure/cosmos-db/cha...
2年前
記事のアイキャッチ画像
C#とCosmosDBによる自作イベントソーシングフレームワークの設計とコンセプト
株式会社ジェイテックジャパンさんのフィード
株式会社ジェイテックジャパン CTOの 高丘 です。最近私たちは社内のプロジェクト用に独自イベントソーシングフレームワーク『Sekiban』を設計開発しています。この記事では、どのような経緯でイベントソーシングを採用したのか、C#とCosmosDBを使用してフレームワークをどのように設計しているのかを書きたいと思います。2023/12/17追記:ジェイテックジャパンで開発してきた、イベントソーシング・CQRSフレームワーク、「Sekiban」をリリースしました! www.sekiban.dev/jp/ 前提今回の記事は、「イベントソーシングとは何か」などの基本的な話は含んでいま...
2年前
記事のアイキャッチ画像
株式会社ジェイテックジャパンの技術情報ブログを始めました。
株式会社ジェイテックジャパンさんのフィード
株式会社ジェイテックジャパンCTOの高丘です。ジェイテックジャパンはソフトウェア開発やシステムエンジニアリングサービスを提供しています。現在、ジェイテックジャパンは、公式ホームページおよび公式 note にて活動を紹介しています。この度、Zennで技術情報ブログ(テックブログ)を開設することにしました。公式 noteでは、プログラマーでない方でも読んで楽しめて、ジェイテックジャパンの活動について理解していただける記事を執筆しています。そのため、noteの記事の中にプログラマー向けの詳細の技術記事が混ざってしまうと、記事一覧を見たときに、プログラマー以外の方が興味を失ってしまうかもしれな...
2年前