Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
nestjsの人気記事 54件 - はてなブックマーク
[go: Go Back, main page]

並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 54件

新着順 人気順

nestjsの検索結果1 - 40 件 / 54件

nestjsに関するエントリは54件あります。 TypeScriptNestJS開発 などが関連タグです。 人気エントリには 『いまNext.jsで新規サービスを立ち上げるときの観点(Router・CSS・認証・監視など/2023年末)』などがあります。
  • いまNext.jsで新規サービスを立ち上げるときの観点(Router・CSS・認証・監視など/2023年末)

    免責事項 社内向けに展開するように雑にまとめました Next.jsの知見が深くない人がリードしてPoCを立ち上げなきゃいけなくなったが、社内的にはNext.jsを推奨しているみたいな場面を想定しています なので自信ないところも多いですが割と断言するように心がけて書いています PoCの立ち上げ想定なので、jest/Storybookなど内部品質面についてあまり深く書くことを避けています ほぼ自分の知識だけで書いており私見も多いですし、そもそも自分自身がトップクラスの知識や視座を有しているわけでもないので、まずは以下の話を理解はした上で、踏襲するかどうかは別途他記事やGitHub、公式ドキュメントなどを漁って判断することを推奨 App RouterかPages Routerか 2023年末現在まだApp Routerは技術記事が足りてきている印象ではないため、社内でノウハウを積極的に貯めていく

      いまNext.jsで新規サービスを立ち上げるときの観点(Router・CSS・認証・監視など/2023年末)
    • はじめに - NestJSの強化書 βversion

      本書の目標は、本読者がNestJSをすぐに実務で利用できる(具体的に言えばNestJSで簡単なプロダクトを開発できる)ように、最短ルートに読者を導く一冊になることです。本書は、NestJSの網羅的なドキュメントではありません。取り扱う内容は頻出する機能に絞って、「実務でNestJSを扱うなら、最低限ここだけは理解しておこう」「これさえ押さえておけば実務でも安心できる」という観点で執筆しています。 本書はNestJSを中心に取り扱いますが、実務上、必要になる知識としてJavaScriptやTypeScriptの仕様やフロントエンドフレームワークのReactやVueについても扱います。

      • GraphQL スターターパック | Prisma + NestJS + Next.JS製 個人ブログサイトをCloud Runで運用しよう

        GraphQL スターターパック | Prisma + NestJS + Next.JS製 個人ブログサイトをCloud Runで運用しよう 「GraphQLの仕様はなんとなく知っているけど、それを使ってどうアプリを作るのかいまいちイメージがわかない」 この本はそんなスキマを埋めるべく書きました。 近年ではReactをはじめフロントエンドの選択肢が豊富になっており、フロントエンドとバックエンド間のやりとりにはより汎用的かつ効率的な方法が求められます。 GraphQLはその選択肢のひとつです。本書では NestJS で GraphQLバックエンドを実装し、それをNext.jsから利用して、個人ブログサイトを構築してみます。 GraphQL開発の流れを体験し、ご自身のアプリ開発に役立ててください。 v1.10 refactor github deploy

          GraphQL スターターパック | Prisma + NestJS + Next.JS製 個人ブログサイトをCloud Runで運用しよう
        • TypeScript でバックもやるって実際どう? 実運用で困ったこと3選

          ROSCA株式会社さん主催のイベント フロントからバックエンドまで、TypeScriptでシームレスな開発エクスペリエンスを で発表させていただいた際に使用したスライドです。

            TypeScript でバックもやるって実際どう? 実運用で困ったこと3選
          • jestでDBありのテストを高速化する

            課題link お手伝いしているシステムでNestJSを採用しているバックエンドのテストが遅いという課題があったので対処した。 前提link フレームワークDBテストランナーその他 テストの総数は700弱。 最終結果link 最終的には2段階の改修を経てローカルのテストが3倍速程度高速化した。 # before Test Suites: 145 passed, 145 total Tests: 2 skipped, 681 passed, 683 total Snapshots: 0 total Time: 925.063 s Ran all test suites. Done in 926.48s. # ts-jestを@swc/jestに置き換えた Test Suites: 145 passed, 145 total Tests: 2 skipped, 681 passed, 683 t

              jestでDBありのテストを高速化する
            • NestJSをゼロから学ぶ - TypeORMの活用などをREST APIの実装から身に付けよう【Node.jsフレームワークの基本】|ハイクラス転職・求人情報サイト アンビ(AMBI)

              このようにさまざまなデコレータが用意されていますが、今回はサンプルで利用するデコレータに絞って説明します。他のデコレータについては、NestJSの公式ドキュメントなどを参照してください。 依存性注入(DI) 依存性注入(DI、Dependency Injection)とは、クラスの依存関係を解決する仕組みです。NestJSでは、依存性注入を使ってクラスの依存関係を解決します。 クラスの依存関係とは、クラスが他のクラスに依存している関係のことです。例えば、次のようなクラスAがあったとします。このクラスは他のクラスに依存していません。@Injectable()デコレータを使って、サービスを定義します。 @Injectable() class A { constructor() {} } そして、次のようなクラスBがあったとします。このクラスは、@Inject()デコレータを使って依存性を注入し

                NestJSをゼロから学ぶ - TypeORMの活用などをREST APIの実装から身に付けよう【Node.jsフレームワークの基本】|ハイクラス転職・求人情報サイト アンビ(AMBI)
              • 技術で医療課題の解決を図るファストドクター。コロナ禍での負荷増大をスタートアップならではのスピード感で解決 - はてなニュース

                新型コロナウイルスの感染拡大により、急激に需要が高まったMedTech分野。注目度が高まる中、医療機関と提携し、夜間往診と24時間対応可能なオンライン診療のプラットフォームを提供しているのがファストドクター株式会社です。代表かつ医師である菊池 亮さんと、共同代表を務める水野敬志さんがForbes JAPANの「日本の起業家ランキング2023」で1位を獲得したことでも話題を集めています。 患者数が増大した2022年7月の新型コロナ第7波では、リアルタイムで業務負荷が高まっているシステムの問題提起から開発、リリースまでを1カ月以内に完了させるなど、スタートアップならではのスピード感で開発に取り組んできました。 また2022年12月にはRuby on Rails中心の開発から、Vue.jsとNestJSを組み合わた新しい技術スタックを採用。加えてテック部門の組織再編も行いフロントエンドとバックエ

                  技術で医療課題の解決を図るファストドクター。コロナ禍での負荷増大をスタートアップならではのスピード感で解決 - はてなニュース
                • なぜ Server Actions を使うのか

                  Next.js 14 の Server Actions の stable リリースに発表は大きな反響を呼びました。特に `<button>` の `formAction` 属性内で直接 SQL クエリを実行するコードは多くの人に衝撃を与えていました。Server Actions の是非について語る時、導入の背景にユーザー体験の向上があるという観点を忘れてはいけません。また、セキュリティ上の観点についてどのように考えるべきでしょうか? Next.js 14 の Server Actions の stable リリースに発表は大きな反響を呼びました。 特に <button> の formAction 属性内で直接 SQL クエリを実行するコードは多くの人に衝撃を与えていました。"use server;" の部分を PHP やバイナリに置き換えると行った多くのミームも生まれました。 functi

                    なぜ Server Actions を使うのか
                  • メルカリ Shops での NestJS を使った GraphQL Server の実装 | メルカリエンジニアリング

                    ソウゾウの Software Engineer をやっています、@mookjp です。 8/10 の記事「メルカリShopsの技術スタックと、その選定理由」では、メルカリ Shops のアーキテクチャについて、その全体像を紹介しました。 この記事では、そのうちの BFF(Backend for Frontend) レイヤとして用意した GraphQL サーバについて、NestJS を使った実装例を交えて紹介します。 GraphQL とは GraphQL サーバ周辺の構成 NestJS とは GraphQL Module NestJS で Code First なスキーマ定義をする Object types の定義 Query と Mutation の定義 GraphQL スキーマの生成 スキーマの Breaking Change (破壊的変更)を防ぐ DataLoader を使って Bat

                      メルカリ Shops での NestJS を使った GraphQL Server の実装 | メルカリエンジニアリング
                    • モバイルとの相性最強と言われるgRPCをFlutter x NestJSで実装し、Stream通信や認証、複数言語実装に使えるか試す

                      まとめ 相性バツグンといわれる、モバイル x gRPCは思ったよりずっと簡単に実装可能 複数言語間でもProtocol Buffersの恩恵により型変換を意識することなくスムーズに開発が進められる。 メソッド、引数の型、引数の返り値の型が自動生成されるのでとても良い RESTful APIにおけるheaderを、表現力の高いMetaDataとして利用し、認証認可等にも使えそう Streamをうまく使いこなせば、ユーザー体験をめっちゃ高くできそう。チャットやゲームなどの双方向通信が比較的楽に実装できるかも どんな人向きでない記事? NestJSの詳しい実装を知りたい方 Bidirectional streaming, Client streamの詳細実装を知りたい方 モバイル向け通信技術の本格的な選択肢、gRPCを実際に試してみたい 現在、私の働いているMinediaで開発しているサービス群

                        モバイルとの相性最強と言われるgRPCをFlutter x NestJSで実装し、Stream通信や認証、複数言語実装に使えるか試す
                      • Full-Stack TypeScriptの最終到達点、T3-Turboで新規開発した話

                        はじめに この記事はTSKaigi Advent Calendar 2024の記事です。(TSKaigiの運営メンバーとして最初の記事になりそうです。) みなさん、TypeScript書いてますか?最近、フロントエンドもバックエンドも(加えてインフラも)TypeScriptで統一する、Full-Stack TypeScriptを採用する事例が増えてきました。 Full-Stack TypeScriptの由来やメリットはこちらの記事から フロントもバックもTypeScriptだし、どうせならMonorepoで管理しようということで、TypeScript専用のMonorepo管理ツールであるTurborepoを導入し、T3-Turboというアーキテクチャを導入することになりました。 T3-Turboというアーキテクチャは、以前導入を考えた際に記事にしているので、こちらをご参照ください。 またT

                          Full-Stack TypeScriptの最終到達点、T3-Turboで新規開発した話
                        • NestJSでスケーラブルなBFFを構築。メルカリShopsエンジニアがGraphQL活用のリアルを語る【技術選定の裏側:GraphQL編 vol.2】 | IT/Webエンジニアの転職・求人サイトFindy – GitHubからスキル偏差値を算出

                          NestJSでスケーラブルなBFFを構築。メルカリShopsエンジニアがGraphQL活用のリアルを語る【技術選定の裏側:GraphQL編 vol.2】 モダンな技術の活用法に迫る、エンジニア座談会企画がスタート!第2弾は、前回に引き続き「GraphQL」の魅力に迫ります。 *** 誰でも簡単に売り買いが楽しめる日本最大のフリマアプリ「メルカリ」。2021年10月には、メルカリ内で個人・法を問わずに自身のお店を開くことができる「メルカリShops」がリリースされました。今回は、メルカリShopsの開発を手がけている株式会社ソウゾウより、CTOの名村さん、フロントエンドエンジニアの末田さん、バックエンドエンジニアの市原さんをお招きし、GraphQLの活用法や、実際に利用した上で感じたことをお伺いしました。 ■登場人物プロフィール 名村 卓 (Suguru Namura) / suguru 株

                            NestJSでスケーラブルなBFFを構築。メルカリShopsエンジニアがGraphQL活用のリアルを語る【技術選定の裏側:GraphQL編 vol.2】 | IT/Webエンジニアの転職・求人サイトFindy – GitHubからスキル偏差値を算出
                          • NestJS + Prisma + Cloud Run + Cloud SQLを試す

                            経緯 ここ6,7年くらいはバックエンドに関してはRails + EC2/ECSあたりのAWS環境を中心に過ごしてきたが、昨今はフロントエンドでReact/Vue + TypeScriptを書く機会も増えている。なのでこの際NestJS等でバックエンドを書けるようになれば言語のコンテキストスイッチの切り替えが容易になりそうと思った(ちなみにモバイルアプリはFlutterで書くのでDartだが、ではDartでバックエンドを書くかと言われると一人でそんな勇気はないわ...となるのでひとまず置いておく) 最近はinputとoutputを型注釈によって守れたりすることの主に開発体験方面への恩恵が個人的に大きくて、Rails以外で安住の地を見つけたいとは予々思っていた。なので先に挙げたNestJSに全ベットするわけではないにしろ何かしらフレームワークは試していきたい。 AppEngineは大昔に少し触

                              NestJS + Prisma + Cloud Run + Cloud SQLを試す
                            • Next.js に Service層 を導入する

                              本稿は、Next.js で「getServerSideProps や API Routes」を利用するアプリケーション向け内容になります。重厚な作りになるので、要件に適合する・しないはあると思いますので、あしからず。 Next.js は薄いフレームワーク Next.js は SPA 配信の最適化にフォーカスしており、Backend の機能面が十分とは言えません。pages の Page コンポーネントや API Routes は、controller としての機能を提供するのみです。ドキュメントを見てもわかるとおり、一連処理はあらかじめ middleware やラッパー関数を用意するのが常套手段かと思います。 NestJS にあるような Service 層が欲しい Node.js Backend フレームワークとして、NestJS は有力な候補かと思います。レイヤーやモジュール・DI の構

                                Next.js に Service層 を導入する
                              • Node.jsで作るモジュラモノリスの設計と技術選定

                                この記事はUbie Engineering Advent Calendar 2023の一日目です。よろしくお願いします。 背景 ユビーのシステムは言語が多様化してきたことにより、認知負荷の増加や運用負荷の増加、開発支援に仕組みづくりかけるコストの増加などの問題が発生していました。この課題を解決するためにNode.jsとGoに言語を絞っていくという意思決定をしたのが昨年です。これについては以下の記事で詳しく解説しています。 ちょうど去年のアドベントカレンダーの記事なのでこれから一年経ちました。ここでは以下のように述べられています。 Server-Side Kotlin などで書かれている既存サービスを、この技術選定の文脈でリプレイスすることは今のところ考えていません。 ただし、多くの既存サービスはドメインたくさん抱えすぎ問題があったり、色々とレガシーだったりして、徐々に別サービスに切り出して

                                  Node.jsで作るモジュラモノリスの設計と技術選定
                                • NestJSと戦術的DDDのいいとこどりをしてバックエンドTypescriptの設計をした話

                                  はじめに バックエンド開発にもTypeScriptを利用する事例、増えてますね。NestJSはTypescriptバックエンドの中でも、唯一のopinionatedなフレームワークとして採用しました(特に大規模な開発を目指している弊社では相性がいい)。しかし、実際にNestJSを使って開発を進めると「too much」と言われる前評判とは異なり、「not enough」という印象を受けました。特に、DDDの観点からすると、DTO(Data Transfer Object)やControllerなどプレゼンテーション層は整備されているものの、Service層にユースケース層、ドメイン層、インフラ層の役割を一括して詰め込んでしまい、結果として「Fat Service」になりがちです。 そこで、本記事ではNestJSの機能を活かしつつ、戦術的DDDのパターンを導入して、Service以下のコード

                                    NestJSと戦術的DDDのいいとこどりをしてバックエンドTypescriptの設計をした話
                                  • NestJS を使って最速リリースを目指している話 - ROBOT PAYMENT TECH-BLOG

                                    こんにちは。ROBOT PAYMENTでエンジニアをやっております 牧野です。 今回は新規プロダクトの立ち上げに伴い開発言語からインフラ設計まで0→1でサービスリリースするのに必要な技術選定を行いました。 その際の選定理由や、実際に開発を進めていて得た所感などを書いてみたいと思います。 私は主にバックエンド(フロントエンド以外)を中心に技術選定を行っためそちらを中心に書かせていただきます。 チーム規模 選定技術 TypeScript NestJS GraphQL PostgreSQL AWS App Runner まとめ チーム規模 バックエンドエンジニア2人 フロントエンドエンジニア1人 PM 1人 デザイナー1人 上記を1チームとして最短距離でリリースすべくスクラム開発を行なっています。 既存の請求管理ロボ開発においては、厳密ではないですがコンテナ運用や監視ツール、CICDなど機能開発

                                      NestJS を使って最速リリースを目指している話 - ROBOT PAYMENT TECH-BLOG
                                    • TypeScript の抽象構文木を用いた、数百を超える API の大規模リファクタリング戦略

                                      TSKaigi 2024 の発表資料です。 https://tskaigi.org/talks/yanaemon169 Demo 用コードはこちら https://github.com/yanaemon/nestjs-migration-example ミツモアはサービスの提供開始から、…

                                        TypeScript の抽象構文木を用いた、数百を超える API の大規模リファクタリング戦略
                                      • あらためてデコレーターを学ぶぞ

                                        はじめに NestJS入門してみようとしたら、アットマークから始まる記述を知らなかったので調べたことを簡単にまとめた記事です(デコレーターのことよくわかってなかった) デコレーターの仕様は、過去にいろいろと変わって現在に至っているようでしたが、ようやく最近 ECMAScript では Stage 3 になり、TypeScript では今も実験的なサポート experimentalDecorators を使えますが、バージョン 4.8 で TC39 の Decorators を実装することが検討されているようです! この記事は、TypeScriptのドキュメントのサンプルコードを動かしてみたり、あらためてNestJSのコード読んだりしてみた感想を書いてみました。 最近のデコレーターを追えてない、NestJSを動かしてみようとしたらデコレーターってなんぞや、となったかたの参考になれば幸いです。

                                          あらためてデコレーターを学ぶぞ
                                        • TypeScript CRUD Rest API, using Nest.js, TypeORM, Postgres, Docker and Docker Compose

                                          DEV Community Follow A space to discuss and keep up software development and manage your software career

                                            TypeScript CRUD Rest API, using Nest.js, TypeORM, Postgres, Docker and Docker Compose
                                          • マイクロサービスにおけるログ出力に役立つNode.jsのAsyncLocalStorage - EmotionTechテックブログ

                                            はじめに こんにちは、テックリードのかどたみです。 弊社では以前の記事でも紹介したとおりマイクロサービス開発にNestJSを利用しています。今回はNestJSでマイクロサービス開発をする際のログの出力についてご紹介します。 この記事はエモーションテック Advent Calendar 2022の6日目の記事です。 背景 マイクロサービスのメリットの一つとして、サービスごとに開発するドメインの範囲を狭め、機能追加や改修の影響範囲を最小限にできることが挙げられます。 しかし、いざ運用しようとするとユーザーからのアクセス一つにおいて複数のサービスで処理が走ることから、どのサービスで障害になっているのか、どのユーザーがどこまでアクセスできているのかなどバグ発生時の原因や影響範囲の特定に時間がかかることもあります。 そこで、マイクロサービス間でログに出力する内容を揃えることで分析をしやすくなるように

                                              マイクロサービスにおけるログ出力に役立つNode.jsのAsyncLocalStorage - EmotionTechテックブログ
                                            • マイクロサービス構成における NestJS での gRPC クライアントの運用戦略 - ドワンゴ教育サービス開発者ブログ

                                              はじめに はじめまして、バックエンドセクションの yukimochi です。 現在、N予備校ではバックエンドのアプリケーションの移行計画が進んでいます。 その一環で、一部のマイクロサービス間通信についても REST API + OpenAPI の現状から gRPC へと移行することになりました。 私の参画しているプロジェクトである教材入稿ツールでは TypeScript + NestJS を採用しており、結合している他マイクロサービスとの通信でgRPCを利用する際の gRPC クライアントと、そのスキーマ定義を担う proto の運用戦略、実現方法について記します。 proto ファイルと型定義パッケージの取り回しについて考える スキーマ定義である proto をどこに保存するか スキーマ定義である proto をどこに保存しておくかは、 proto のバージョン管理の観点で重要です。今回

                                                マイクロサービス構成における NestJS での gRPC クライアントの運用戦略 - ドワンゴ教育サービス開発者ブログ
                                              • 若手フロントエンドエンジニアのためのバックエンド入門(前編) - ICS MEDIA

                                                フロントエンド開発では、よくfetch()メソッドやaxios等でREST APIにリクエストを送る処理を書くことがあります。リクエストを送ったあとにサーバー側で動くのがバックエンドですが、仕組みをよく知らない方もいるのではないでしょうか? この記事では前後編に分けて、フロントエンド開発をはじめた若手エンジニアに向けてハンズオン形式でバックエンドの仕組みを解説します。 前編である今回は、「こんにちは!」という文字を返す簡単なREST APIを実装して画面から呼び出します。 バックエンドって? 一般的に、フロントエンドが「見た目・操作」を担当するなら、バックエンドは「データの保存・処理・提供」を担当します。 ECサイトを例にすると、以下のように役割が分かれていることが多いです。 フロントエンド:商品一覧やカート画面など、ユーザーが直接目にする部分を担当 バックエンド:商品情報、在庫、ユーザー

                                                  若手フロントエンドエンジニアのためのバックエンド入門(前編) - ICS MEDIA
                                                • ExpressoTS 入門

                                                  はじめに 今回の記事では、今年にリリースされたTypeScriptフレームワークであるExpressoTSの概要と、それを使った簡単なWebサーバを構築する手順を解説する。 対象とする読者 タイトルを読んで気になったひと 実務でTypeScriptを触っているひと TypeScriptでWebサーバを構築したいひと ExpressoTSとは ExpressoTSとは、NestJSと同様にTypeScriptで開発されたバックエンドフレームワークである。公式サイトのIntroductionには、以下のように説明されている。 ExpressoTS is a TypeScript lightweight framework for building scalable, readable and maintainable server-side applications. The framewor

                                                    ExpressoTS 入門
                                                  • NestJS 公式ドキュメントver7日本語訳

                                                    フルスタックサーバーサイドフレームワークNestのドキュメントの日本語訳です。DeepL翻訳を下敷きとして目標(~securityパート)達成したため完結です。githubにありますので、フォーク等お好きにどうぞ。 https://github.com/kisihara-c/nest-officialdoc-jp

                                                      NestJS 公式ドキュメントver7日本語訳
                                                    • なぜバックエンドTypeScriptか?技術選定背景と実践例を紹介します - KAKEHASHI Tech Blog

                                                      カケハシの医薬品発注管理最適化領域の新規事業の開発を担当している木村です。今回は新しいサービスを構築する上で行った技術選定と実践方法の話をします。 技術選定に関しては、インフラ関連やライブラリなど選定した技術は多岐にわたるのですが、その中でも「なぜバックエンドでTypeScriptを導入したか」を中心にお話します。2つのチームでの技術選定に関わり、どちらもTypeScriptを導入するに至りました。2022/03時点では社内の5つのサービスでバックエンドTypeScriptが採用されていることを観測しています。 実践方法に関しては、技術選定の過程で明らかになったシステム特性に対するアプローチを紹介します。 全社的な技術選定方法 カケハシではビジネスドメインで開発チームを分割し、開発チームが自走化できるように組織がデザインされています。技術選定についても開発チームに裁量があります。 技術選定

                                                        なぜバックエンドTypeScriptか?技術選定背景と実践例を紹介します - KAKEHASHI Tech Blog
                                                      • DI(Dependency Injection)のメリットを理解する

                                                        @Injectable() export class Test1Service { getName() { return { name: "john" }; } } @Controller("test1") export class Test1Controller { constructor(private readonly test1Service: Test1Service) {} @Get() getName() { return this.test1Service.getName(); } } Nest CLI でプロジェクトを作成したときに生成されるコードはこんな感じになっていると思います。 service での処理を controller で呼び出すことができているくらいにしか思いません。 このサービスは必ずしも、DI しないと使えないわけではなく、通常のクラスなので、インスタ

                                                          DI(Dependency Injection)のメリットを理解する
                                                        • お前らまだ簡単なCRUD処理を実装してるのか? 〜PostGraphileへの誘い〜

                                                          煽りタイトルみたいになってしまいましたが、最近の開発で使ってるPostGraphileがめちゃくちゃオススメなので、紹介記事です。 PostGraphileとは PostGraphileは、Node.jsベースのオープンソースのライブラリで、PostgreSQLデータベースをGraphQL APIに変換するツールです。PostGraphileは、GraphQLサーバーのセットアップやGraphQLスキーマの手動作成などを省略して、効率的にGraphQL APIを生成することができるため、開発をスピードアップできます。 主な特徴とメリット: 自動生成されたGraphQL API: データベースのスキーマを基にして、自動的にGraphQLスキーマとリゾルバーを生成します。これにより、データベースに対してGraphQLクエリを直接発行することができます。 安全性: PostGraphileはセキ

                                                            お前らまだ簡単なCRUD処理を実装してるのか? 〜PostGraphileへの誘い〜
                                                          • GitHub - Sairyss/domain-driven-hexagon: Learn Domain-Driven Design, software architecture, design patterns, best practices. Code examples included

                                                            Check out my other repositories: Backend best practices - Best practices, tools and guidelines for backend development. System Design Patterns - list of topics and resources related to distributed systems, system design, microservices, scalability and performance, etc. Full Stack starter template - template for full stack applications based on TypeScript, React, Vite, ChakraUI, tRPC, Fastify, Pris

                                                              GitHub - Sairyss/domain-driven-hexagon: Learn Domain-Driven Design, software architecture, design patterns, best practices. Code examples included
                                                            • コスパ最強アーキテクチャT3-Turboを紹介する

                                                              はじめに 個人開発ほど零細規模でもなく、モジュラモノリスやマイクロサービスを使うほど大規模でもないが、小〜中規模な開発の際にT3-Turboアーキテクチャを使うことでコスパよくシステム構築できます。名前の由来はT3-StackとTurborepoになります。個人開発としては素晴らしいT3-Stackですが、T3-Stackではデメリットとなった密結合や拡張性の問題を、monorepoツールやサーバサイドを採用することで解消し、より大きなチーム開発でも対応可能になっています。 技術要素 2023年5月に行われたVercel Shipの中で、Vercel社がフルスタックな開発環境を目指していることがわかりました。このT3-Turboアーキテクチャでは、Vercel社が出している技術を中心に、それらと相性の良い技術を組み合わせて採用しています。 Turborepo Vercel社によって開発され

                                                                コスパ最強アーキテクチャT3-Turboを紹介する
                                                              • NestJSのGraphQL Resolver関数を型安全にしたい

                                                                ユビーではNestJSでGraphQLのサーバー実装をおこなっています。今回は実践で得られた知見を元にNestJSでGraphQLのResolverに対してGraphQLのスキーマから生成したTypeScriptの型を適用する方法について解説します。 前提としてNestJSにはスキーマファーストとコードファーストがありますが、今回はスキーマファーストで書いたうえで、スキーマから型を生成するアプローチを紹介します。 NestJS組み込みの型生成を使う NestJSのスキーマファーストのアプローチではNestJSの組み込みの機能でスキーマからTypeScriptの型を生成することができます。 以下のように書くことで、 graphql.ts に型が生成されます。 GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, t

                                                                  NestJSのGraphQL Resolver関数を型安全にしたい
                                                                • NestJS Way より TS Way を意識したバックエンド設計事例と Tips - Mobile Factory Tech Blog

                                                                  こんにちは!BC チームでエンジニアをしている id:d-kimuson です。 最近、弊チームで構築した社内向け Web API のバックエンド設計をしたので事例として紹介しようと思います。 フレームワークとして NestJS を採用していますが、NestJS Way よりも TS Way を意識した設計をしており、このエントリの主題でもあるため、TS Backend の設計事例として読んでいただければと思います。 対象システムの概要 社内の他サービス向けの Web API で、他チームのサービスを経由してエンドユーザーに届く中間システム チーム内のサービスからもチーム外のサービスからも叩かれる想定 チーム外からも叩かれるため、なんらかのスキーマを共有したいというモチベーションがある → 2023 年現在で標準的な OpenAPI Specification (以後 OAS と呼びます)

                                                                    NestJS Way より TS Way を意識したバックエンド設計事例と Tips - Mobile Factory Tech Blog
                                                                  • PrismaのTransactionClientを引き回さない

                                                                    はじめに 本投稿で使用している環境 Node.js: 20.5.1 @nestjs/core: 10.1.3 (platformにはfastifyを使用) prisma: 5.7.0 @prisma/client: 5.7.0 Prisma Transactionの種類 PrismaでTransactionを実行する場合は大きく分けて以下の2つの書き方があります。 1. Nested writes 1発のPrismaClient操作で、リレーションのレコードも含めて操作する書き方です。 const newUser: User = await prisma.user.create({ data: { email: 'alice@prisma.io', posts: { create: [ { title: 'Join the Prisma Slack on https://slack.pri

                                                                      PrismaのTransactionClientを引き回さない
                                                                    • NestJSにざっくり入門してみる

                                                                      この記事では、 NestJSでの新規プロジェクトを始め方 NestJSで開発する際に押さえておきたい基本 について記載しています。 (勉強途中なので徐々に追記していければと思っています。) この記事は、Udemyの「NestJS入門 TypeScriptではじめるサーバーサイド開発」というコースを受講し、その忘備録として記載したものです。 非常にわかりやすい講座ですので、ぜひ受講してみてください! NestJSの概要 まずNestJSの概要について記載します。 わかりやすい説明が、下記の記事にあったのでそのまま引用させて頂きます🙇‍♂️ Nest (NestJS) は効率的でスケーラブルなNode.jsサーバーサイドアプリケーションを構築する為のフレームワーク。 最新のJavascriptで構築され、Typescriptを完全にサポートしており、にも関わらずピュアJavascriptでコ

                                                                        NestJSにざっくり入門してみる
                                                                      • NestJS + GraphQL + Prisma + MySQL でJWT認証をつくる

                                                                        NestJSでGraphQLとPrismaを使ってJWTを使った認証をつくってみます。 DBにはMySQLを使います。 できること GraphQLによるAPI DBのスキーマ定義からObject TypeやInput Typeなどの定義を自動生成 GraphQLのスキーマ定義の自動生成 ValidationPipeを使った自動的なバリデーション パスワードをハッシュ化して保存 メールアドレスとパスワードによる認証(NestJSのデフォルトはユーザ名とパスワード) JWTトークンを使った認証 開発環境構築 VS Codeの拡張機能Remote - Containersを使ってDocker上に開発環境をつくります。 ここではプロジェクトのディレクトリをnest-graphql-prismaとします。 プロジェクトのディレクトリをVS Codeで開き、直下に*.devcontainer*ディレク

                                                                          NestJS + GraphQL + Prisma + MySQL でJWT認証をつくる
                                                                        • 【NestJS 本格入門】API の作成からテストの作成・自動化までを網羅(TypeORM & JEST & GitHub Actions)

                                                                          【NestJS 本格入門】API の作成からテストの作成・自動化までを網羅(TypeORM & JEST & GitHub Actions) NestJS とは Node.js 上で動作する バックエンドフレームワーク です。 NestJS を採用することで「TypeScript を完全にサポートしており、型をつけることができる」、「テストフレームワークが標準で用意されている」といった大きなメリットを享受することができます。 本書籍では、そんな NestJS に本格入門するため、基本的な CRUD 処理を行う API の作成から、単体テスト・E2E テストをしっかりと書いていきます。 一緒に NestJS を学んでいきましょう。

                                                                            【NestJS 本格入門】API の作成からテストの作成・自動化までを網羅(TypeORM & JEST & GitHub Actions)
                                                                          • 【V.9対応】TypeScript +NestJSをプロジェクトで導入したら素晴らしかった件

                                                                            はじめに 昨年12月に投稿させていただいた記事でしたがNestJSのバージョンアップに伴いTypeORM系の処理が動かなくなっていることを発見しましたので記事を更新させていただきました レポジトリはこちら 環境について Windows環境での動作確認はしておりませんのでご了承ください NestJSとは? Nest (NestJS) は、効率的でスケーラブルなNode.jsサーバサイドアプリケーションを構築するためのフレームワークです。プログレッシブJavaScriptを採用し、TypeScriptを完全にサポートし、OOP(オブジェクト指向プログラミング)、FP(機能的プログラミング)、FRP(機能的反応プログラミング)の要素を兼ね備えています。 環境構築

                                                                              【V.9対応】TypeScript +NestJSをプロジェクトで導入したら素晴らしかった件
                                                                            • API開発の最高のDXを求めて - NestJS+Prisma+AWS Copilot

                                                                              最近、何度目かになる個人プロダクト開発をしようという思いつきからAPI開発をしてて、その際できるだけ低コストでDX(開発者体験)を追求してみようとやってみたら、結構いい感じにできて個人的にはまぁまぁ満足できました。 数年前から考えるとDX関連の進化はめざましく、ユニットテストやLint、フォーマッターなどがあるのはほぼ当たり前になってきました。ここからさらに数年後に見たときにまた大きく変化してるような気もするので、見比べるためにも備忘録がてら技術選定やツールの使い勝手について記録したいと思います。 技術選定 言語選定 DXってところを重視するとやはり静的型付は欲しい+多少なりとも使い慣れてる言語が良いなと思い、RustとTypescriptの2択にしました。 Rustは言語思想がめちゃくちゃ面白くて好きなので、今回もRustにしようかなぁとも思ったのですが、主流のORMのDiesleの型エ

                                                                                API開発の最高のDXを求めて - NestJS+Prisma+AWS Copilot
                                                                              • NestJS: Microservices with gRPC, API Gateway, and Authentication

                                                                                Today, I wanna introduce you to Microservices in NestJS (TypeScript) combined with Google’s gRPC framework, and API Gateway to handle incoming HTTP requests and authentication based on JWT. This article got very long, so I split it into 2 parts. Introduction, Preparation, Databases, Shared Proto ProjectAuthentication Microservice, Product Microservice, Order MicroserviceYou’ll find a link to each

                                                                                  NestJS: Microservices with gRPC, API Gateway, and Authentication
                                                                                • Next.js、NestJS で新規Webアプリケーション開発をしている話

                                                                                  武田 陽一郎 2012年新卒入社 先日娘の七五三がありました。娘が神社の方に「将来何になりたいの?」と言われ、祖父祖母の前で「孫になりたいです!」と答える姿に成長を感じました。

                                                                                    Next.js、NestJS で新規Webアプリケーション開発をしている話

                                                                                  新着記事