タグ

GoLangとdddに関するclavierのブックマーク (12)

  • DDDを実践するためのリポジトリ層の設計(Go言語による例)

    The Go gopher was designed by Renée French. Illustrations by tottie. はじめに この記事は、ドメイン駆動設計(DDD)の中核概念である「リポジトリ」についての理解を深めることを目的としています。リポジトリの基的な役割と重要性を確認し、Go言語での実装の例を紹介します。 前提 リレーショナルデータベースからデータを取得(更新)するアプリケーションを想定しています サンプルコードは Go 言語で書かれています リポジトリとは まずは、リポジトリの定義を確認してみましょう。 リポジトリパターンとは: リポジトリは、データベースから取得したデータを構造体にマッピングし、ドメインオブジェクトにアクセスするためのインターフェースを提供します。 これは、一般的なリポジトリの理解と相違ないですね。次に DDDの文脈で、より詳しい定義をみ

    DDDを実践するためのリポジトリ層の設計(Go言語による例)
  • 強い思想: Go を Web 開発に採用する上で

    Go は Web 開発に向いているか? 最も向いている領域は「CLI ツール」「ミドルウェア」「マイクロサービス」だと思っている。なぜならそれらはコードベースを比較的小さく抑えることを前提としているからだ。 Go は大きなコードベースを抱えやすい設計の言語になっていない。 ミドルウェアとマイクロサービスに関しては小さく作ることが正義。 CLI ツールに関しては単一責務なツールであれば小さくなるが,複数を束ねるツールであっても Web サービス開発に比べれば考えることは少なくて済む。 Web 業界における「一般的な Web 開発」,すなわちモノリスを基とした中規模以上の開発にははっきりと 向いていない と言うべきだろう。 フラットパッケージは正義か? 私が SNS で何度か言及した以下の記事がある。 フラットパッケージ戦略は,確かに Go文化圏においては一定の支持を集めている。Go

    強い思想: Go を Web 開発に採用する上で
  • DDDを意識しながらレイヤードアーキテクチャとGoでAPIサーバーを構築する - Qiita

    今の現場で初めてDDDに触れたので、よく採用されるアーキテクチャとしてレイヤードアーキテクチャを自分で0から実装してみました。 言語もよくセットで採用されているGoを採用してみました。 この記事の目的 0から実装して体系的にDDDとレイヤードアーキテクチャを学ぶ DDDに触れたことがない方にもわかりやすく説明する そもそもDDD(ドメイン駆動設計)とは 要約(引用)すると「ドメインの知識に焦点を当てた設計手法」です。 たとえば電子カルテのシステムを例に取ってみます。 電子カルテには患者情報や手術の予定、入院ベッドの空き具合などの概念があると考えられます。 医療関係者ではないソフトウェアエンジニアは実際につかうユーザー(医療関係者)が直面している問題やドメイン(領域)の概念、事象を理解することが必要です。 それらを理解し、ソフトウェアに落とし込む。落とし込み続けることを実践する開発手法です

    DDDを意識しながらレイヤードアーキテクチャとGoでAPIサーバーを構築する - Qiita
  • Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository

    Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository

    Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository
  • GitHub - hamakn/go_ddd_webapp: my Golang DDD webapp example

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

    GitHub - hamakn/go_ddd_webapp: my Golang DDD webapp example
  • Goでクリーンアーキテクチャを試す | POSTD

    依存がなく、テスト可能であり、クリーン。 Uncle Bobのクリーンアーキテクチャの概念を読んだので、これを私はGoで実装してみたいと思います。このアーキテクチャは、自分たちの会社である Kurio – App Berita Indonesia で使っていたものに似ていますが、少し違っています。大きな違いはなく、概念は一緒なのですが、フォルダ構造が違っています。 サンプルのプロジェクトとして、記事をCRUDで管理するリポジトリを https://github.com/bxcodec/go-clean-arch にpushしてあります。 * 免責条項 ここで使われているどのライブラリあるいはフレームワークも、利用を特別推奨しているものではありませんので、ご自身あるいはサードパーティによる同じ機能のものと入れ替えることが可能です。 基的な考え方 ご存知のように、クリーンアーキテクチャで設計

    Goでクリーンアーキテクチャを試す | POSTD
  • クラスター社のGo製WebAPIのパッケージ構成について - Qiita

    ちょうど二年前のアドベントカレンダーでこんな記事を書いていたようです。 現状はどうしてるのか当時を振り返りながらまとめようかなと思います vendoringについて 依存管理は、depを使ってます。(depが出るまではglide使ってました) 2年前にくらべると色々と便利になって普通に使っていけるようになりました。 当時はまだGo1.5とかでしたね... 主に使ってるライブラリ とりあえず以下使ってますという感じ goa gorm 詳細はこちら https://qiita.com/kyokomi/items/dcd8384a0a042d72d22d パッケージ構成とか もともとDDDに出てくるレイヤードアーキテクチャを意識してたんですが、いつの間にかオニオンアーキテクチャ風になっていたようです。 現時点では、この形が自分の中ではベストかなと思ってます。 ├── application ├

    クラスター社のGo製WebAPIのパッケージ構成について - Qiita
  • goddd とは何か? - pospomeのプログラミング日記

    これは Go Advent Calendar 2017 その2 6日目の記事です。 https://qiita.com/advent-calendar/2017/go2 みなさん、こんにちは。 pospome です。 普段は GAE/Go でサーバサイドの開発をしています。 twitter では 実装パターン, DDD, golang, GCP についてつぶやくことが多いので、 同じような分野に興味があれば、 フォローしてマサカリ投げてもらえると嬉しいです。 https://twitter.com/pospome ということで題に入ります。 golang.tokyo #9 で goddd という github リポジトリを知りました。 https://golangtokyo.connpass.com/event/65921/ ちょっと興味があったので、 goddd に対する自分の感想を書

    goddd とは何か? - pospomeのプログラミング日記
  • Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える

    Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える1. Goのサーバサイド実装における レイヤ設計とレイヤ内実装について 考える 2. 自己紹介 twitter pospome 読み方 ポスポメ 職種 サーバサイドエンジニア 興味 クラス設計全般, DDD ここら辺の技術に興味ある方は フォローしてくださると嬉しいです 3. 発表する前に ・基的にはレイヤ構造の話なのでDDDは関係ありませんが、 微妙にDDDに関する単語や概念が出てきます ・マサカリ歓迎です 「これは良い」「これは間違っている」などなど twitterでご意見いただければと思います ・後からスライド単体でも見直せるように文字多めです 4. 目次 レイヤとは? レイヤ設計について レイヤ内実装について 5. 目次 レイヤとは? レイヤ設計について レイヤ内実装について 6. コードを性質別にザックリと

    Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
  • Go APIサーバーの設計について、golang.tokyo#9で話しました。 - Gunosy Tech Blog

    どうも、Gunosyの新規事業開発室エンジニア、高橋(@__timakin__)です。 先日行われたgolang.tokyo#9にて、GoAPIサーバーの設計についてトークをする機会を頂いたので、いってきました。 スライドはこちらです。全編英語となっておりますが、ご覧頂けると幸いです。 speakerdeck.com 概要 アジェンダの前の序文にも書いてあるのですが、GoAPIが大企業で試験的に導入するというフェーズを超え、スタートアップなどでも「Goって最近トレンドだよね」という声が聞こえ、小規模のチームでも積極的に登用されるようになってきたように感じます。 あくまで個人の観測範囲での話なのでバイアスがあるとは思いますが、「試してみた」というトークが界隈でも最近少なくなったように思います。 そんな中、参考例となるGoAPIのOSSは非常に少ないため、新規に始めるハードルは、学習コス

    Go APIサーバーの設計について、golang.tokyo#9で話しました。 - Gunosy Tech Blog
  • GitHub - marcusolsson/goddd: Exploring DDD in Go

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - marcusolsson/goddd: Exploring DDD in Go
  • マイクロサービスとDDDをGo言語とScala+Akkaで比較したらEventSourcingの話にもなって面白かったまとめ - yoskhdia’s diary

    Reactive Messaging Patterns読書会のなかで、「マイクロサービスとAkkaとGo」な面白い話題が出たので代表でまとめる試みエントリです。(結構、色々な話題に飛んでいるので難度高い。) まとめ方としては、会話ログを転記して、最後にまとめる形をとっています。また、議論と私の考えが混ざらないように所感は分けておきます。 ddd-cqrs-es.connpass.com TL;DR 要素技術(どんな言語使うとか、どんなアーキテクチャにするとか)の前に、組織やプロダクトの性格を考えて戦略を決めましょう。 そして、その中で最適と思われる戦術をとれるような要素技術を採用しましょう。 Akka良いよ。 ログ(一部抜粋) Slackからの引用のためテキストベースです。 事の始まりは、荒木さん(以下、 @applideveloper )の発言でした。 (この記事絡みですね。 集合知で各

    マイクロサービスとDDDをGo言語とScala+Akkaで比較したらEventSourcingの話にもなって面白かったまとめ - yoskhdia’s diary
  • 1