はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    WWDC25

『qiita.com』

  • 人気
  • 新着
  • すべて
  • 【Day 19】Repository の課題を QueryService で解決【じゃんけんアドカレ】 - Qiita

    6 users

    qiita.com/os1ma

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    • テクノロジー
    • 2022/09/07 23:55
    • 【Day 13】集約と Repository パターンの導入【じゃんけんアドカレ】 - Qiita

      3 users

      qiita.com/os1ma

      じゃんけんアドベントカレンダー の 13 日目です。 初回 ... 【Day 1】とりあえず 1 クラスに全部書く【じゃんけんアドカレ】 前回 ... 【Day 12】トランザクションスクリプトからドメインモデルへ【じゃんけんアドカレ】 前回トランザクションスクリプトからドメインモデルに移行する中で、いくつかの課題点が見つかりました。 今回はその中でも Janken と JankenDetail の整合性がアプリケーション層に依存していること モデルの他のクラスを参照で持つのか ID だけ持つのか統一されていないこと の 2 つについて検討しようと思います。 Janken と JankenDetail の整合性がアプリケーション層に依存していること まず、Janken と JankenDetail の整合性がアプリケーション層に依存していることについて、もう一度振り返ってみようと思います。

      • テクノロジー
      • 2021/03/30 00:07
      • 簡易 CQRS で「画面に ~~ も表示したいんだけど」に強い API を実装 - Qiita

        7 users

        qiita.com/os1ma

        はじめに x と y と z を JOIN して COUNT した値を画面に表示したいなど、画面が要請する値を DB からごにょごにょと集計して API で返したくなることがあります。1 そんなとき、DB のモデルをドメインモデルにマッピングし、ドメインモデルを API のインターフェースにマッピングして返すような実装をしていると、以下のような問題にぶつかります。 集計後の値を取得したいだけなのに、大量のオブジェクトをアプリケーションのメモリ上にロードすることになる ちょっと取得する値を追加・変更するだけでもドメインモデルに影響が出てしまう 使っている O / R マッパ によっては N + 1 問題が発生しやすい ドメインモデルを集約単位で扱っていると、アプリケーション上で JOIN の処理を実装することになる この記事では、簡易的な CQRS で上記の問題を解決してみます。 CQRS

        • テクノロジー
        • 2021/02/16 00:02
        • 「Controller にビジネスロジックを書くな」の対応パターン - Qiita

          9 users

          qiita.com/os1ma

          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 「Controller にビジネスロジックを書くな」と言われることがしばしばあると思います。 この記事では、そもそもそれは何がいけないのか、どうすればいいのかを整理しました。 具体的なコードまでは書いていないですが、各ケースを図で表現して、できるだけ分かりやすいようにまとめました。 「Controller に全部書く」とはどんな状態か 「Controller にビジネスロジックを書くな」の対応の前に、「Controller に全部書く」という状態について整理しようと思います。 この記事で言う**「Controller に全部書

          • テクノロジー
          • 2021/02/15 11:37
          • service
          • programming
          • 自分が現状気に入っているアプリケーションのパッケージ構成をさらす - Qiita

            7 users

            qiita.com/os1ma

            クリーンアーキテクチャや DDD の戦術的設計、CQRS などを勉強して、現状自分が気に入っているアプリケーションのパッケージ構成をさらします。 実際に Java (Spring Boot) 実装してみて、自分としてはある程度納得感を持てた構成になります。 全体像 パッケージ構成の全体像は下図の通りです。 ディレクトリで表現すると以下のようになります。 . ├── application │   ├── external │   ├── query │   │ └── user │ │   ├── UserQueryModel │ │   └── UserQueryService │   └── service │   └── user │    ├── UserApplicationService │    └── UserGetOutput ├── domain │   └── mod

            • テクノロジー
            • 2020/12/31 09:12
            • CQRS
            • architecture
            • E2E テスト自動化ツールをざっと調べたまとめ - Qiita

              4 users

              qiita.com/os1ma

              Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? E2E テストの自動化に挑戦するためにツールを調べた結果をまとめました。 「Selenium、Puppeteer くらいは聞いたことがあるけど、他にも良さそうなものがないか調べておこう」という軽い気持ちで調べ始めたところ、想像していた以上に色々ありました。。。 ※ Web フロントエンドの E2E テストが主な対象です。それ以外は、調べて出てきたことだけまとめています。モバイルは調査対象外です ※ E2E テストに詳しくなく、いろいろ間違いがあるかもしれません。お気付きの方はご指摘お願いします。 ざっくりググると ... Seleniu

              • テクノロジー
              • 2020/10/18 06:53
              • 「ビジネスロジック」とは何か、どう実装するのか - Qiita

                488 users

                qiita.com/os1ma

                アプリケーション開発で、「ビジネスロジックは分離しろ」だとか「Controller にビジネスロジックを書くな」といったことをよく言われると思います。 しかし、ビジネスロジックという言葉の意味を聞いたり調べたりしてみても、「システムのコアの部分」とか「システムの目的になる処理をするところ」みたいなことを言われたりして、よく分かりませんでした。 そんな中、クリーンアーキテクチャや DDD の戦術的設計について学ぶことで、「ビジネスロジックとは何か」、「ビジネスロジックはどう実装するか」について、自分なりの考えが整理されてきたので、この記事ではそれをまとめます。 ※ 曖昧な言葉を自分としてどう使っているかという話になります。違う意味で使う方もいると思うので、ご注意ください ビジネスロジックとは何か 「システムのコアの部分」とか「システムの目的になる処理をするところ」といった説明も正しいとは思い

                • テクノロジー
                • 2020/06/28 20:28
                • ビジネスロジック
                • あとで読む
                • 設計
                • DDD
                • プログラミング
                • アーキテクチャ
                • 開発
                • qiita
                • programming
                • architecture
                • GCP の Cloud IAM に登場する基本概念まとめ + AWS IAM との対応 - Qiita

                  5 users

                  qiita.com/os1ma

                  AWS を使うことが多かった自分が GCP をさわったところ、Cloud IAM に登場する用語が AWS の IAM と違うことで非常に混乱しました。 そこで、過去に AWS の IAM1 や Kubernetes の RBAC2 についてまとめたのと同じように、GCP の Cloud IAM に登場する基本概念をまとめました。 ※ 基本を理解するための記事なので、厳密ではない表現をしている箇所があります ※ Cloud IAM 初心者のため、間違いがあるかもしれません。見つけた方はご指摘ください Cloud IAM に登場する基本概念の全体像 整理した概念の全体像は以下の通りです。 AWS と比べながら順に説明していきます。 各概念の説明 メンバー GCP では IAM によって権限を付与できる対象を「メンバー」と言います。 「メンバー」には、 Google アカウント サービスアカウ

                  • テクノロジー
                  • 2020/06/14 16:16
                  • IAM
                  • GCP
                  • REST API 自動テストツールまとめ - Qiita

                    9 users

                    qiita.com/os1ma

                    REST API のテストを自動化するためのツールを調査した結果のまとめです。 前提として、無料で使用可能なツールのみを対象としています。 分類 一口に REST API のテスト自動化といっても、様々な種類のツールがあります。 今回は独自に分類した以下の 4 種類を順に紹介していきます。 OpenAPI (Swagger) 連携系 GUI 系 CLI 系 CDC testing 系 OpenAPI (Swagger) 連携系 REST API の管理として OpenAPI (Swagger) で仕様を記述することは少なくないでしょう。 OpenAPI 連携系の API 自動テストツールでは、OpenAPI の仕様書をもとに自動テストが実施可能です。 Dredd GitHub - Dredd Star 3.2K もともと API Blueprint のテストツールだったようですが、Open

                    • テクノロジー
                    • 2020/02/11 10:26
                    • rest
                    • testing
                    • テスト
                    • test
                    • API
                    • qiita
                    • 参考
                    • github
                    • iOS アプリの View 実装方法の関係 (SwiftUI、Storyboard、Xib、UIKit) - Qiita

                      5 users

                      qiita.com/os1ma

                      以下でそれぞれ説明していきます。 SwiftUI vs SwiftUI 登場以前 まず大きな分類として、Swift UI と Swift UI 登場以前の 2 種類の実装方法があります。 Xcode の最近のバージョンで新規プロジェクトを作成しようとすると、User Interface の選択肢に SwiftUI と Storyboard が並んでいます。 この選択肢は、SwiftUI を使うか、それ以前の実装方法を使うかを選ぶのとかなり近いです。 SwiftUI 2019 年に登場した、iOS 13 以降でのみ利用可能な新しい UI 実装方法です。 コードで UI を実装することになります。 ざっくり言うと、Flutter での UI 実装と似ていると言われています。 現時点では細かい UI の再現は苦手な場合もあるようです。 なお、SwiftUI と SwiftUI 登場以前の実装方法

                      • テクノロジー
                      • 2020/01/08 08:22
                      • Swift
                      • ui
                      • ios
                      • development
                      • 「集約」でデータアクセスの 3 つの課題に立ち向かう ~ 大量の Repository・整合性のないオブジェクトのロード・N + 1 問題 ~ - Qiita

                        10 users

                        qiita.com/os1ma

                        はじめに 書籍『実践ドメイン駆動設計』や『.NET のエンタープライズアプリケーションアーキテクチャパターン』などにおいて、「集約」という概念が非常に重要とは言われていますが、その理由はあまり詳しく解説されていません。 (少なくとも、私は書籍を読んだだけでは分かりませんでした) しかし、ある時データアクセスの実装について考えていたところ、「集約」が様々な課題を解決してくれる重要な概念だということに気付きました。 データアクセスの課題 アプリケーションを実装していると、データアクセスに関するコードで以下のような課題に突き当たることが多々あるのではないでしょうか。 サービスクラスに大量の Repository をインジェクションすることになる オブジェクトの一部だけをロードして、子要素が NULL の状態が生じる データアクセスの設定や記述方法によって N + 1 問題が発生する これは、ある

                        • テクノロジー
                        • 2019/12/26 11:42
                        • Android
                        • MVC、3 層アーキテクチャから設計を学び始めるための基礎知識 - Qiita

                          17 users

                          qiita.com/os1ma

                          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに アプケーション・アーキテクチャについて学ぶと「MVC」や「3 層アーキテクチャ」といった言葉にたどり着きます。 さらに勉強を進めると「MVVM」、「ドメインモデル」、「クリーンアーキテクチャ」など、よく分からない言葉がどんどん増えていきます。 また、「オブジェクト指向」を勉強しても、実際のアプリケーションでの使いどころが分からなかったりします。 この記事では、これらの用語の非常に分かりにくい関係を整理しました。 3 層アーキテクチャ 2 種類の 3 層 伝統的な Web アプリケーションは、以下のように 3 種類のサーバから成

                          • テクノロジー
                          • 2019/09/25 12:42
                          • Clean Architecture
                          • MVC
                          • アーキテクチャ
                          • 設計
                          • architecture
                          • web制作
                          • kubectl に統合された Kustomize をさわってみた - Qiita

                            5 users

                            qiita.com/os1ma

                            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                            • テクノロジー
                            • 2019/05/18 16:57
                            • Kubernetes
                            • Pocket
                            • Testcontainers で Spring Boot + MyBatis のテスト実行中だけ MySQL のコンテナを起動 - Qiita

                              4 users

                              qiita.com/os1ma

                              はじめに Testcontainers を使用すると、JUnit のテスト中だけ MySQL のコンテナを起動することができます。 SimpleMySQLTest.java というサンプルコードを見ると結構簡単に使えそうですが、Spring Boot + MyBatis で試してみたら結構苦労したので、どうすれば動くかまとめておきます。 まずは普通に Spring Boot + MyBatis を動かす Testcontainers でテストを試す前に、動くコードを書いておきます。 MyBatis のコードを作成 UserRepositoryImpl.java、UserMapper.java、UserMapper.xml の 3 ファイルを作成します。 package springdockerexample.infrastructure.user; import org.springfra

                              • テクノロジー
                              • 2019/04/06 23:17
                              • Docker
                              • Java コンテナ化ツール「Jib」はどのくらい Docker のベストプラクティスを満たしているのか - Qiita

                                5 users

                                qiita.com/os1ma

                                はじめに Java アプリケーションをコンテナ化するツールに jib があります。 GitHub の README には、Docker のベストプラクティスを知らなくても最適な Docker イメージを作ってくれると書かれています。 Jib builds optimized Docker and OCI images for your Java applications without a Docker daemon - and without deep mastery of Docker best-practices. そんな Jib がどのくらい Docker イメージのベストプラクティスを満たしているのか調査してみました。 準備 検証には、Spring Initializr で作成した Maven プロジェクトを使います。 jib-maven-plugin の README の通り、

                                • テクノロジー
                                • 2019/03/26 11:15
                                • docker
                                • ツール
                                • Dockerコンテナ内のファイルをコンテナにログインせずに操作してみた - Qiita

                                  3 users

                                  qiita.com/os1ma

                                  ulgeekアドベントカレンダーの11日目です。 何をする記事なのか docker execコマンドなどでコンテナにログインすることなく、ホストからDockerコンテナ内のファイルを操作してみます。 なぜこんなことをしてみようと思ったのか Dockerコンテナ内で見えるファイルは、実際にホスト上のどこかにあるはずです。具体的にどこにあるのか、ホストからどう見えるのか、ホストでの操作がコンテナ内に反映されるのか、確認したい気持ちが湧いてきます。 ということで、実際に確かめてみます。 実行環境 Amazon LinuxにDockerをインストールして検証します。 バージョン Amazon Linux AMI 2017.09 Docker version 17.06.2-ce Dockerインストール手順 $ sudo yum install -y docker $ sudo service d

                                  • テクノロジー
                                  • 2019/03/18 11:16
                                  • t2.micro 1台でEKSを起動してみた - Qiita

                                    18 users

                                    qiita.com/os1ma

                                    AWSの無料枠といえばt2.microです。 ということで、EKSをWorkerがt2.micro 1台という構成で構築してみました。1 (2018/06/12) CloudFormationテンプレートのMaxPodsの設定が影響している可能性を考慮していなかったため、追記しました。 結論 EKSのWorkerは、t2.microでも特に問題なく構築でき、Podの起動も可能でした。 ただし、IPアドレス数の制限により、Podは2つ以上起動できませんでした。 IPアドレスが枯渇するとWorkerもPodもスケールできなくなると思われるので、IPアドレス数の制限には注意が必要そうです。 インスタンスタイプごとに、IPアドレス数の制限と、MaxPodsによる制限と、他にも何らかの制限があり、Podの起動数が制限されているようです。 スケールを考えるうえで、Podの起動数の制限には注意が必要そう

                                    • テクノロジー
                                    • 2019/03/08 12:02
                                    • Kubernetes
                                    • aws
                                    • あとで読む
                                    • 概念モデル + AWS IAM との対比で Kubernetes の RBAC を理解する - Qiita

                                      14 users

                                      qiita.com/os1ma

                                      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                      • テクノロジー
                                      • 2019/02/19 10:19
                                      • Kubernetes
                                      • aws
                                      • あとで読む
                                      • SESのトラッキングデータをKinesis経由でS3に保存するまでをTerraformで実施 - Qiita

                                        5 users

                                        qiita.com/os1ma

                                        概要 SESでの開封・クリックのトラッキングについてはいくつか記事がありますが、それをTerraformで実現したという情報はあまり見当たらないのでまとめました。 SESはトラッキングデータをCloudWatch、Kinesis Firehose、SNSに送ることができます。 今回はKinesis Firehose経由でS3に保存します。 SESでの開封・クリックの取得の仕組み 開封・クリックのトラッキングには、HTMLメールを使用する必要があります。 開封のトラッキングは、HTMLメールの末尾に画像が添付されることで実現されます。 クリックのトラッキングは、メール内のリンクがSESによって自動的に書き換えられ、あるURLを経由したリダイレクトとなることで実現されます。 variable.tfの記述 variables.tfに変数を定義します。

                                        • テクノロジー
                                        • 2019/02/14 17:03
                                        • aws
                                        • あとで読む
                                        • AWS IAMの基本概念を概念モデルで整理した - Qiita

                                          3 users

                                          qiita.com/os1ma

                                          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? AWS IAMに登場する概念はややこしく、初学者が理解するのは難しいと思います。 そこで、概念モデルを作成して、AWS IAMの基本概念を整理しました。 ※ 一部の概念はTerraformのリソース名を参考に命名しています。 全体像 AWS IAMに登場する基本概念は、以下のように整理できました。 それでは、以下の3つに分けてややこしい点を説明していきます。 IAM Policy IAM Policy Attachment IAM Role IAM Policy IAM Policyとは、どの「リソース」へのどの「アクション」を許可 (

                                          • テクノロジー
                                          • 2019/01/27 13:56
                                          • aws
                                          • Docker / Kubernetesのセキュリティ調査メモ - Qiita

                                            6 users

                                            qiita.com/os1ma

                                            Webや書籍をざっとあさり、Docker / Kubernetesのセキュリティについて調査したメモ。 ※この他にも多数ありましたが、まずはこのあたりからかな?というものを書き出しています。 Dockerのセキュリティ ベースイメージ 公式イメージを利用する alpineなど、小さなイメージを利用する Docker Content Trustで署名チェックする Dockerfile rootユーザを使わず、実行ユーザを使う 外部のファイルを追加する場合はチェックサムを検証する 機密情報は環境変数など外部から取得する構成にする CI Quay.ioなどでイメージのセキュリティスキャンを行う Docker Bench for Securityで実行環境も含めたベストプラクティスをチェックする ホスト Container-Optimized OSなど、コンテナのホストとして適切なセキュリティ原則

                                            • テクノロジー
                                            • 2018/10/30 07:34
                                            • docker
                                            • security

                                            このページはまだ
                                            ブックマークされていません

                                            このページを最初にブックマークしてみませんか?

                                            『qiita.com』の新着エントリーを見る

                                            キーボードショートカット一覧

                                            j次のブックマーク

                                            k前のブックマーク

                                            lあとで読む

                                            eコメント一覧を開く

                                            oページを開く

                                            はてなブックマーク

                                            • 総合
                                            • 一般
                                            • 世の中
                                            • 政治と経済
                                            • 暮らし
                                            • 学び
                                            • テクノロジー
                                            • エンタメ
                                            • アニメとゲーム
                                            • おもしろ
                                            • アプリ・拡張機能
                                            • 開発ブログ
                                            • ヘルプ
                                            • お問い合わせ
                                            • ガイドライン
                                            • 利用規約
                                            • プライバシーポリシー
                                            • 利用者情報の外部送信について
                                            • ガイドライン
                                            • 利用規約
                                            • プライバシーポリシー
                                            • 利用者情報の外部送信について

                                            公式Twitter

                                            • 公式アカウント
                                            • ホットエントリー

                                            はてなのサービス

                                            • はてなブログ
                                            • はてなブログPro
                                            • 人力検索はてな
                                            • はてなブログ タグ
                                            • はてなニュース
                                            • ソレドコ
                                            • App Storeからダウンロード
                                            • Google Playで手に入れよう
                                            Copyright © 2005-2025 Hatena. All Rights Reserved.
                                            設定を変更しましたx