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

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

アプリで開く

はてなブックマーク

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

はてなブックマーク

トップへ戻る

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

    WWDC25

『zenn.dev』

  • 人気
  • 新着
  • すべて
  • Rustでの 抽象化 3パターンについて

    79 users

    zenn.dev/j5ik2o

    ※この記事は全然入門記事ではないです。Javaなどのオブジェクト指向言語とRustをある程度理解している前提での記事です。あと、メモ程度に雑に書いています。 今回は抽象化がテーマです。オブジェクト指向の多態相当のことをRustでどうのように解決すればいいのでしょうか。個々の実装型の都合によらず、呼び出し側は統一的なインターフェイスで操作するケースはRustでもあるはずです。 オブジェクト指向言語の設計に慣れていると、Rustで設計するときにどうしたらいいかわからないことがあります。なぜならRustには継承がないからです…。まぁJavaと比べるとだいぶ違うので頭を切り替える必要があります。今回はそういう感じの記事です。 では、早速デザインパターンを題材にして考えてみましょう。 抽象化について 簡単なコマンドパターンから考えます。 ここでは単純に渡した文字列を標準出力するコマンドを考えます。以

    • テクノロジー
    • 2022/03/13 10:45
    • Rust
    • あとで読む
    • 関数型はプログラミングスタイル

      65 users

      zenn.dev/j5ik2o

      「関数型プログラミングは関数型言語じゃないとできないんでしょ?」という質問をたまに受けます。答えは「いいえ」です。もちろん、言語のサポートはあれば越したことはないです。 そもそも命令型及び関数型はプログラミングスタイルです。そして、命令型と関数型の間は0/1ではなく、グラデーションがあります。 なので、関数型プログラミングは関数型言語以外でも使えますし、プログラムをよい設計へ導く考え方ですよ、というのがこの記事の主張です。コード例も交えて説明してみます。 関数型へのアプローチ ロジックを書くとき 可変の変数(var)を使わず、不変の変数(val)を使う 可変のオブジェクト(mutable)を使わず、不変のオブジェクト(immutable)を使う voidやUnitなどの戻り値のない関数は使わず、戻り値を返す(高階)関数を使う 関数を定義するとき 参照透明な関数を定義する 必ず意味のある戻り

      • テクノロジー
      • 2021/11/29 07:28
      • プログラミング
      • 関数
      • あとで読む
      • programming
      • アクターモデルのサポート状況について

        4 users

        zenn.dev/j5ik2o

        アクターモデルのサポート状況について、簡単にまとめます。 アクターモデルの定義 これに従う。 広義の立場では、アクター=チャネル+非同期タスクと解釈すれば、GoやRustは組込のアクターモデルと持っていると考えてもよいですが、ここではいちいち取り上げません。狭義の立場では、アクターの位置透過性やスーパービジョンのような機能も概念に含まれてくるが、必須のものとはしないことにします。 アクターモデルが使えるツール(ライブラリ/フレームワーク) やはりこの分野ではakkaが最強ですが、Virtual Actorsをサポートしている、Dapr, Orleans, proto.actorあたりも注目に値します。Rustにも実装が増えてきています。 ツール名 言語/プラットフォーム URL github stars actor distributed persistence event sourcin

        • テクノロジー
        • 2021/09/28 11:10
        • web
        • わかる!?Rustの所有権システム

          9 users

          zenn.dev/j5ik2o

          「Rustの所有権が難しい」という話しがときどきありますが、所有権システムの理解を助ける記事にしてみたいと思います。 所有権とはリソースを開放する権利のこと 所有権とは関数がリソース(資源)を開放する権利のことです。所有するというより消費されてしまうイメージに近いです。 以下のように変数の束縛での解説が多いですが、たぶんつまずくのは関数のほうかなと。 let a = String::from("abc"); let b = a; println!("{}", a); // bに所有権が移動するのでコンパイルエラー let c: u32 = 1; let d: u32 = c; println!("c = {}, d = {}", c, d); // 基本データ型はCopyトレイトを実装しているのでコンパイル可能 というわけで、ここから関数の例で解説します…。 以下のfoo関数はb: Bar

          • テクノロジー
          • 2021/09/10 09:47
          • Rust
          • Rustでドメイン固有型を作る際のコツ

            41 users

            zenn.dev/j5ik2o

            ドメイン固有型である、ドメインオブジェクトをRustで実装する際のコツみたいなものを簡単にまとめました。まぁ「ドメイン固有型」というと大袈裟なので、「独自に型を作る」を想定してもらえばよいと思います。OOPに慣れている人がハマりやすい点も簡単に言及しています。ご参考までに。 アドレス帳型を作る アドレス帳型を例にします。 先にコードを以下に示します。コード全体はGitHubリポジトリを参照してください。 #[derive(Debug, Clone)] pub struct AddressBook { name: String, entries: Vec<AddressEntry>, } impl Default for AddressBook { fn default() -> Self { Self { name: String::default(), entries: Vec::def

            • テクノロジー
            • 2021/09/07 13:40
            • Rust
            • 型
            • DDD
            • ドメイン
            • あとで読む
            • programming
            • DynamoDBを使ったCQRS/Event Sourcingシステムの構築方法(言語・F/W非依存)

              15 users

              zenn.dev/j5ik2o

              CQRS/Event SourcingといえばAkka/Scalaがオススメと言い続けてきたけど、言語やフレームワーク非依存というか、そういう縛りが緩い方法を考えた(実際に検証したわけではないですが、実装できるつもりで書いてます)ので、以下にまとめます。 前提 クラウド環境はAWS。コマンド側DBをDynamoDB。DynamoDBにそれなりに詳しい人向けに基礎的な部分の解説も省いてます。クエリ側DBは要件に応じて選択してください。とりあえずAuroraのつもりで書きます。 コマンド側で発生したイベントをクエリ側に伝搬させるために、DynamoDB Streamsを利用します。クエリ側のRead APIはRead DBを読むだけなので解説は省きます。 ドメインはショッピングカートです。 アプリケーションは伝統的なステートレスウェブアプリケーションを想定します。アプリケーションの最新状態(S

              • テクノロジー
              • 2021/05/24 08:43
              • cqrs
              • architecture
              • Error, Defect, Fault, Failureの定義と解釈

                36 users

                zenn.dev/j5ik2o

                ソフトウェア設計を行う場合、必ずエラーや障害などの用語が飛び交うことがあるが認識がずれていることが多いので、以下に簡単にまとめてみた。 ソフトウェアの非正常を表す概念 ソフトウェアのエラーや障害などの非正常を表す概念の定義をいくつかピックアップしてみた。 JIS X 0014:1999の定義 出典: ソフトウェア品質知識体系ガイド -SQuBOK Guide-(第2版) 誤差・誤り(error) 計算,観測もしくは測定された値または状態と,真の,指定されたもしくは理論的に正しい値または状態との間の相違。 障害(fault) 要求された機能を遂行する機能単位の能力の,縮退または喪失を引き起こす,異常な状態。 故障(failure) 要求された機能を遂行する,機能単位の能力がなくなること。 JIS X 0014では、意図しない結果を引き起こす人間の行為は、「間違い、人的過誤(mistake,

                • テクノロジー
                • 2021/04/07 11:57
                • エラー
                • 開発
                • プログラミング
                • システム
                • あとで読む
                • Rustを実践的に学ぶには

                  129 users

                  zenn.dev/j5ik2o

                  Stack Overflowの愛され言語ランキングでここ最近ずっと一位のRustを、2020年の年末から本気を出して学んでます。ようやくまともに書けるようになったので、どんなやり方で学んだかを簡単にまとめたいと思います。 著名なRust関連の書籍は買いそろえて学習していたのですが、実際にモノ作ったほうが早いよねということで、ULID生成器を実装してみました。ちょっと前にScalaでも同様に作っていたので、ちょうどいい習作課題でした。 実際の実装は以下。 学習の進め方 書籍などの情報は、以下を中心に読みました。というか、一通りの概念を把握するという感じです。すでに何かしらのプログラミング言語を扱える人なら(Rustを第一言語にする人少なそうですが…)、どういった機能があるか、浅く理解しておくとよいと思います。そのうえで、実装の際に具体的な知識が必要ならば、「あ、このあたりはあの書籍に書いてあ

                  • テクノロジー
                  • 2021/01/04 09:53
                  • rust
                  • あとで読む
                  • プログラミング
                  • 言語
                  • techfeed
                  • 勉強
                  • *あとで読む
                  • Akkaによるリアクティブシステム開発ガイド

                    3 users

                    zenn.dev/j5ik2o

                    元kubll(旧Chatwork)(2014-2023)テックリード。業界歴25年以上。大規模メッセージングシステムの設計・開発を担当。現在はIDEO;PLUSにて技術顧問・開発支援を行い、DDD/CQRS導入支援やアーキテクチャ設計の指導を提供中。

                    • テクノロジー
                    • 2020/10/28 08:13
                    • ID生成方法についてあれこれ

                      267 users

                      zenn.dev/j5ik2o

                      ID生成について聞かれることが多いので、独自の観点でまとめてみます。タイトルは適当です…。 DBはMySQL(InnoDB)を想定しています。あしからず。 ID生成を知りたいなら ID生成に関しては以下の記事がよくまとまっているので参考にしてみてください。値形式など詳しく書かれています。 ID生成大全 Facebook, Twitter, Instagram等がどうやってIDを生成しているのか まとめ ID生成方法 以下のID生成方法は、お手軽に採用しやすいもの順で列挙します。 DB採番/連番型 AUTO_INCREMENT DBのAUTO_INCREMENTで採番する方法。 Pros 数値型で扱える 普通は64ビットの整数型を採用することが多い 単調増加する連番ですので、ソート可能でかつインデックスの空間効率がよい 単調増加するので、キャパシティを予測しやすい 64ビットあればあまり気に

                      • テクノロジー
                      • 2020/10/11 14:23
                      • db
                      • ID
                      • あとで読む
                      • mysql
                      • 開発
                      • データベース
                      • database
                      • 設計
                      • uuid
                      • architecture
                      • ドメインもしくはドメインモデルという概念が登場する書籍一覧

                        7 users

                        zenn.dev/j5ik2o

                        ドメイン、ドメインモデル、ドメインオブジェクトという概念が登場する書籍一覧です。原書の発刊年でソートしています。 書籍名 著者 初版 発行 ドメインモデルの表記 備考

                        • テクノロジー
                        • 2020/09/28 17:44
                        • book
                        • CQRS/Event Sourcingを学ぶための教材(2020年版)

                          11 users

                          zenn.dev/j5ik2o

                          この記事の更新版です。 僕がCQRSに入門したの2016年でした。すでに海外のDDDコミュニティではCQRS/Event Sourcing(以下, ES)に関する議論は盛んにされていました。 2020年になってようやく日本でも話題になることが多くなった印象なので、教材となりそうな書籍などの情報を簡単に紹介します。 前提となる教材 前提としてはEvans本を読んでいるということにさせてください。 さらにDDD本には ES の基礎となる ドメインイベント の解説が含まれていません。そのドメインイベントの概要を掴みたければ、実践ドメイン駆動設計に記載があります。 基礎教材 考案者であるGregさんのドキュメントです。 CQRS Documents by Greg Young 和訳版はこちら。CQRS Documents by Greg Young 和訳版 概念を把握するならこれが以外にないです。

                          • テクノロジー
                          • 2020/09/24 10:02

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

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

                          『zenn.dev』の新着エントリーを見る

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

                          j次のブックマーク

                          k前のブックマーク

                          lあとで読む

                          eコメント一覧を開く

                          oページを開く

                          はてなブックマーク

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

                          公式Twitter

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

                          はてなのサービス

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