2021年1月15日のブックマーク (4件)

  • Spring Data R2DBCでリアクティブにDBアクセスを行なう - Uzabase for Engineers

    はじめに こんにちは、SaaS Product Teamのヒロオカです。 SPEEDAではSpring Webfluxの採用が行われおり、一部リアクティブなシステムが動いています。 今回は、R2DBCという、リアクティブな非同期でRDBにするための仕様とSpring(Reactor Project) による実装およびサポートを利用して、APIの実装を試してみたいと思います。 はじめに R2DBとは リアクティブシステムにおけるJDBCの問題点 実際に使っていく 環境 事前準備 プロジェクトの作成 DBの起動 APIを実装していく 空ハンドラーの実装とルーティングの設定 リポジトリの実装 DBの諸々の設定 BDの初期化処理の記述 エンティティの作成 ReactiveCrudRepositoryを継承したリポジトリインターフェースを作成 ハンドラーの修正 終わりに 参考資料 R2DBとは 前述

    Spring Data R2DBCでリアクティブにDBアクセスを行なう - Uzabase for Engineers
    tanan55
    tanan55 2021/01/15
  • 開発チームに来て感じたこと - Uzabase for Engineers

    こんにちは。7月からSaaS Product Teamに参加している横山です。 Uzabaseにきて大体半年が経ちました。 SaaS Product Teamに来るまでは、比較的ウォーターフォールがメインの現場にいたのですが、 ここにきて驚いたことのうち3つを書いていきたいと思います。 SaaS Product Teamってどんな開発をしているのだろうというのが少しでも伝わればと思います。 仕様書のドキュメントがない 常にペアプロを行っている 触れる技術の幅が非常に広い 仕様書のドキュメントがない SaaS Product Teamでは、ドキュメントがほどんどありません。 アーキテクチャ図や、手順書のようなものはありますが、それもドキュメントの形式で残っているものではないです。 理由としては、ドキュメントを残さない理由として属人化を防ぐというのが挙げられます。 野口さんも以前書いてくださっ

    開発チームに来て感じたこと - Uzabase for Engineers
    tanan55
    tanan55 2021/01/15
  • Smalltalk かつ TDD で『オブジェクト指向設計実践ガイド』の「第5章 ダックタイピングでコストを削減する」をハンズオンしたら 9章も確認せざる得なかった - Uzabase for Engineers

    今日は。 SPEEDA を開発している濱口です。 前回の続きです。 以下の通り、今回も設計の段階的な進化に沿った忠実な写経ができたと思います。 ダックを見逃す 問題を悪化させる ダックを見つける 概要としては、依存関係でがんじがらめになった設計を、ダックタイプを使って柔軟性のあるものに変える、というものです。 ハイライトだけ抜粋します。 ↓これが、 "依存しまくりの恐ろしい分岐" Trip >> prepare: preparers [ preparers do: [ :preparer | preparer class == Mechanic ifTrue: [ preparer prepareBicycles: bicycles ]. preparer class == TripCoordinator ifTrue: [ preparer buyFood: customers ]. p

    Smalltalk かつ TDD で『オブジェクト指向設計実践ガイド』の「第5章 ダックタイピングでコストを削減する」をハンズオンしたら 9章も確認せざる得なかった - Uzabase for Engineers
    tanan55
    tanan55 2021/01/15
  • Rustでモックオブジェクトを自作してみる - Uzabase for Engineers

    こんにちは、SaaS Product Team の Ryo33 です。 この記事では Rust でモックオブジェクトを作ることを通してRefCellやMutex、Rc、Arcの使い方やSendやSyncについて学びます。 この記事を読むことで Rust でモックオブジェクトを自作できるようになります。 サンプルプログラム テストを書いてみる モックオブジェクトをつくる RefCell 非同期 複数の所有権 最後に 参考文献 サンプルプログラム まず書いていきたいコードとして以下のようなcreate_user_with_nameというユースケースを考えます。 もし、名前が空文字でなければUserPort.storeを呼ぶというコードです。 #[derive(PartialEq, Eq, Debug, Clone)] pub struct Name(pub String); impl Name

    Rustでモックオブジェクトを自作してみる - Uzabase for Engineers
    tanan55
    tanan55 2021/01/15