並び順

ブックマーク数

期間指定

  • から
  • まで

521 - 560 件 / 875件

新着順 人気順

設計の検索結果521 - 560 件 / 875件

  • 4年分の負債を解消するために React ディレクトリ構成について真剣に考えてみた - Qiita

    この記事は株式会社ビットキー Advent Calendar 2023 5日目の記事です。 はじめに この記事では React を用いたフロントエンドアプリケーションのディレクトリ構成について検討した内容を紹介します。 現在フロントエンド開発を行っていて、ディレクトリ構成にお悩みの方の参考になれば幸いです。 ※ State 管理についての良し悪しやその他 React 向けのフレームワークライブラリについては本記事では触れません。 今回対象とするプロダクト ビットキーのHome事業では、不動産管理会社向けのB2B2Cプロダクトを展開しています。 その中でも不動産管理会社の方が利用する管理画面について、リリース後から様々な機能や画面が実装されシステムが巨大化してきたので、ディレクトリ構成を見直す機会が訪れました。 参考値として、現在のプロダクトは100画面を超えており、ソースファイルも1500

      4年分の負債を解消するために React ディレクトリ構成について真剣に考えてみた - Qiita
    • 集約はイベントから考えると考えやすい|かとじゅん(j5ik2o)

      チュートリアルでDDD体験: ドメインモデルの成長を紹介 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」 僕もこのドメインで振る舞い中心のモデリングをしてみた。実装は可能なモデルを書いてみましたが、今回は細かい実装の話はありません。 イベントを抽出まずイベント(起こった事実)から考えました。日々の勤怠で何が起きるのだろう。出勤したり退勤したり休憩したりと打刻するのは間違いない。システムが何か命令(コマンド)を受理したらこういうイベントが発生するはず。 「出勤した」イベントには、誰がいつ出勤したかを説明する事実が記載されている。「退勤した」や「休憩を開始した」や「休憩を終了した」なども同じ。あと、打刻間違いの修正もあるので「打刻を修正した」もある。ちょっと荒削りだがこんな印象。 出勤した 退勤した 休憩を開始した 休憩を終了した 打刻を修正した ちなみに

        集約はイベントから考えると考えやすい|かとじゅん(j5ik2o)
      • IaC、あるいはインフラ抽象化レイヤー導入時に考えたらいいんじゃないかと思うことを雑多に書く - ださろぐ@はてな

        この記事はSRE Advent Calendar 2023の4日目の記事です。 qiita.com 3日目は@myu_mxさんのゆるやか成長スタートアップの小さなEnabling SRE的活動でした。 久々のアドカレ参加ですが、少し思いの丈に任せてみようということで経験と主観が強めの記事です。 この辺で語られていたよとかこれは賛同できないというポイントなどもっといい情報があればぜひお知らせください、という感じで雑多に書いて参ります。 TerraformやCloudformationあたりをよく触るのでそのあたりがどうしても頭にありますがなるべく固有の話はしない方向で。 色々書きつつ、基本的には長期的な運用を見越したソフトウェアの運用設計と同じ考えで良いとは思ってます。 最低限のインターフェースを公開し疎結合に設計する、モジュールは交換可能する、ライフサクルを考える、などなど。 ただIaCコ

          IaC、あるいはインフラ抽象化レイヤー導入時に考えたらいいんじゃないかと思うことを雑多に書く - ださろぐ@はてな
        • どうしてあなたの共通化は間違っているのか:第1章「単一責任原則の有用性」 - Qiita

          class DiscountManager { static int getDiscountPrice(int price, boolean isSummer) { if (isSummer) { int discountPrice = price - 300; if (discountPrice < 0) { discountPrice = 0; } return discountPrice; } return (int)(price * (1.00 - 0.04)); } } class DiscountManager { static int getDiscountPrice(int price, boolean isSummer) { if (isSummer) { return getSummerDiscount(price) } return getRegularDiscoun

            どうしてあなたの共通化は間違っているのか:第1章「単一責任原則の有用性」 - Qiita
          • ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody

            2. 私について • 東 聡志(AZUMA Satoshi) • a.k.a. @ytnobody – わいとん • 零細システム開発会社経営 • Y.pm LLC • バックエンドエンジニア25年生 • YAPC::Hakodate 2024実行委員

              ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
            • getとfindの使い分け - 日々常々

              メソッド名の getXXX と findXXX どっちがいいの?みたいな話になることがある。 この手の話ができるだけでもいい感じだと思います。名前が記号化していないってことなので。 世の中には名前に力を割くのが無駄な文脈もあって、そう言うのに晒されて続けると当然そこに力をかけなくなります。 その文脈では最適解だけど、私は名前が重要だと思っているし、その価値観を土台に他のものを積み上げていきたい。 ということで話を戻す。 「得る」と「探す」のようなものを意図して使い分けるとコードが読みやすくなります。 使い分け方によって読みやすさは変わりはするのですが、「意図して使い分けている」だけでも十分変わります。 その意図に共感できたり汲み取れたりすればさらに読みやすくなりますが、その前段階として意図の有無が重要だと思ってます。 私の基本的な使い分け getHoge(条件): Hoge findHog

                getとfindの使い分け - 日々常々
              • Fedora 41ではX.Orgセッションをデフォルトから削除へ ―加速するX.Orgからの脱却 | gihyo.jp

                Linux Daily Topics Fedora 41ではX.Orgセッションをデフォルトから削除へ ―加速するX.Orgからの脱却 GNOMEのウィンドウマネージャとしてWaylandコンポジタのMutterが普及するにしたがい、長くディスプレイサーバのデフォルトであったX.Orgが使われるケースは徐々に少なくなっている。2022年4月にリリースされた「Ubuntu 22.04 LTS」でWaylandがデフォルトとなってからはその流れがさらに加速しており、これまでWaylandとX.Orgの両方をサポートしていたディストリビューションも次々とWaylandオンリーにサポート方針を変更している。 2024年4月に「Fedora Linux 40」のリリースを予定しているFedoraプロジェクトもまた、X.Orgからの脱却をより進めていく姿勢を明らかにしている。Ferora Workst

                  Fedora 41ではX.Orgセッションをデフォルトから削除へ ―加速するX.Orgからの脱却 | gihyo.jp
                • 電卓を作らない|mri

                  LayerX バクラク事業部でプロダクトのデザインを担当しています森です。 バクラク事業部では、法人の支出管理にまつわる、アナログな業務を効率化するプロダクト群を提供しています。 そのサービスのコアとなる技術の一つがOCRで、請求書や領収書などの情報を読みとり、今まで目視で確認、手入力していた業務を自動化するなどしています。 OCRで読み取られた請求書の情報は、入力フォームに自動的に入力される。バクラクのOCRの精度はかなり高いものですが、100%とはいかないため、読み取った他の金額を入力候補として表示することで、簡単に訂正できるようにしています。 金額の入力フォームでは、OCRで読み取った他の金額を入力候補として選択することができる。また、他の金額入力フォームでも利用することができるので、仕訳作業においては手入力を極力減らしています。 この機能は好評だったのですが、「計算機能が欲しい」と

                    電卓を作らない|mri
                  • 【連載】データ分析基盤をdbt・Snowflakeに移行する【設計・実装編】 - Algoage Tech Blog

                    こんにちは、Ops-dataチームの上村(@contradiction29) です。以前、弊社内で運用されているデータ分析基盤を移行するにあたり、設計の方針を練る記事を投稿しました。 tech.algoage.dmm.com 今回はその続きとして、移行プロジェクトの実際の進行に焦点を当てて記事を書いていきたいと思います。 はじめに これまでのあらすじ:運用していく中でつらみがたまってきた弊社のデータ分析基盤。開発しづらいし、運用もつらいし、何よりこのまま運用を続ければ確実に停止してしてしまう。End of Service Life (EOSL) は目前に迫っています。移行するしかない状況です。 とはいっても、単純に移行するだけでは、現場のアナリストやエンジニア、社内ユーザー、そしてその先にあるクライアントのニーズに応え、事業価値に貢献することはできません。真の「価値」に貢献するためには「思

                      【連載】データ分析基盤をdbt・Snowflakeに移行する【設計・実装編】 - Algoage Tech Blog
                    • 徹底解説マイクロサービス 〜マイクロサービスのメリット、デメリット、なぜマイクロサービスを選択するのか〜 /why do you choose microservices architecture

                      JAWS UG 函館勉強会 Vol12 徹底解説マイクロサービス 〜マイクロサービスのメリット、デメリット、なぜマイクロサービスを選択するのか〜

                        徹底解説マイクロサービス 〜マイクロサービスのメリット、デメリット、なぜマイクロサービスを選択するのか〜 /why do you choose microservices architecture
                      • シフトレフトがなぜ効果的なのか「抽象度」から考える

                        この記事は 株式会社ログラス Productチーム Advent Calendar 2023 18日目の記事です。 はじめに ログラスの龍島(@hryushm)です。 ソフトウェア開発において、「シフトレフト」すなわち開発の早い段階でテスト計画を立て、実施していくことが全体的なコスト削減や価値提供の早期化につながるとよく言われています。 この記事では、シフトレフトによってもたらされる効果をログラスでの実例を用いて紹介した上で、なぜ効果が出るのか?を「抽象度」というキーワードから紐解いてみようと思います。 本記事ではスクラム開発においてPBIを完了させる中でシフトレフトしていくことを念頭に書いていきますが、ソフトウェア開発の任意のタイミングにおいて適用できる概念だと考えています。 テスト設計を実装前にやることの有用性 まずシフトレフトによって何が起こるのか?を考えます。PBIに書かれた受け入

                          シフトレフトがなぜ効果的なのか「抽象度」から考える
                        • Node.jsで作るモジュラモノリスの設計と技術選定

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

                            Node.jsで作るモジュラモノリスの設計と技術選定
                          • UIコンポーネントの大きさは外から制御しよう - Qiita

                            昨今のフロントエンド向けUIライブラリでは、コンポーネントの設計が重要です。この記事では、コンポーネントのスタイリング、その中でもとくにコンポーネントの大きさに関わるコンポーネント設計について考えます。 私の考える結論は、むやみに大きさを指定できるpropを生やさずに、CSSで外から大きさを制御できるようにしたほうがいいです。 コンポーネントの大きさを制御したい UIの一部分を再利用可能なコンポーネントとする場合、同じコンポーネントがさまざまな場面で使えるのが望ましいでしょう。コンポーネントが提供する機能にもよりますが、場面に応じてさまざまな大きさでコンポーネントを使用できたほうがよいこともあります。 具体例として、このようなコンポーネントを考えてみましょう。例はReactで示しますが、この記事の内容はReactとは関係ありません。 const Card: React.FC<React.P

                              UIコンポーネントの大きさは外から制御しよう - Qiita
                            • ゲーム開発に所謂なアプリケーション設計パターンを適用するのは難しい - hadashiA

                              ゲーム開発ひいてはクライアントサイドの開発において「クリーン」かどうかは正直けっこうどうでもよく、設計すべき一番のポイントは「制御フロー」にあります。 じゃあ具体的にどういう設計がいいのか、ていうのは、やはりjs界隈みたいにフレームワークになっていないとなかなか伝わらないようです。そういうのもそのうちつくってみたいなあと最近思ってます。 以下、以前ブログに書いたものの転載。 -- Unityで長らくゲーム開発をやっているけれど、Web界隈などで色々と発達しているアプリケーション設計パターンをおいそれと持ち込めば良いわけではないと感じているので、それについて考えてみようと思う。 ここでいう設計パターンていうのは、たとえばUIとかをつくるフレームワークの競争で発達してきた MVC派生 や ReactとかのElmアーキテクチャに影響を受けたものたち、はたまた、Webサーバ(HTTPサーバ) を書

                                ゲーム開発に所謂なアプリケーション設計パターンを適用するのは難しい - hadashiA
                              • 高速道路の出口案内のようなQAエンジニアでありたい ─自動テストより前にやるべきことがあると気づいた話 - Findy Engineer Lab

                                皆様こんにちは。QAエンジニアのブロッコリーこと風間裕也(@nihonbuson)と申します。私は本業で株式会社10XのQAエンジニアとして勤務する一方、副業としてB-Testingを開業し、さまざまな会社でQAに関する相談に乗ったり、登壇や執筆活動を行っています。 また社外活動として、WACATE(ソフトウェアテストの合宿型ワークショップ形式勉強会)の実行委員長や、ソフトウェアテスト技術振興協会(ASTER)の主催するJaSST Review(ソフトウェアレビューのシンポジウム)の実行委員長を務めています。 本記事では、私がどうしてQAエンジニアというキャリアを歩んでいるのか、そして品質保証(QA、Quality Assurance)という分野でどのように開発チームと協調しながら開発してきたのかをお話しします。 筆者近影 学術と企業のギャップに驚いてテストの浸透に動く テスト技術に磨きを

                                  高速道路の出口案内のようなQAエンジニアでありたい ─自動テストより前にやるべきことがあると気づいた話 - Findy Engineer Lab
                                • 生成AIを活用したサービス設計のススメ〜仮説構築編〜

                                  Building a mindful relationship with digital media for zillennials prone to anxiety

                                    生成AIを活用したサービス設計のススメ〜仮説構築編〜
                                  • クソコード動画『カプセル化 Mk-II』 で考える 上手くカプセル化できない理由 / encapsulation2

                                    オブジェクト指向カンファレンス2024 クソコード動画『カプセル化 Mk-II』 https://twitter.com/MinoDriven/status/1771763728234537310 下記セッションで用いたスライドです https://fortee.jp/oocon-202…

                                      クソコード動画『カプセル化 Mk-II』 で考える 上手くカプセル化できない理由 / encapsulation2
                                    • UIデザインで、小さいサイズでもはっきりと美しく見えるように設計されたMicroサイズのSVGアイコン -Heroicons Micro

                                      テキストの横にアイコンを配置すると、アイコンが少し大きすぎてバランスが悪いと感じることはありませんか? アイコンは通常のMiniサイズだと20x20ですが、それより一回り小さく高密度のUI向けに設計されたMicroサイズの16x16のSVGアイコンを紹介します。 Heroicons Micro Heroicons -GitHub Heroicons Microの特徴 Heroicons Microのダウンロード Heroicons Microのアイコン Heroicons Microの特徴 Microサイズのアイコンは、先日v2.1にアップデートされたHeroiconsに新しく加わったサイズです。 タイトで高密度のUI向けに設計されており、UIデザイン用に約300種類のアイコンが揃っています。MITライセンスで、商用プロジェクトでも無料で利用できます。 Heroicons 既存のアイコンを

                                        UIデザインで、小さいサイズでもはっきりと美しく見えるように設計されたMicroサイズのSVGアイコン -Heroicons Micro
                                      • 技術書典#16向けに 「The Cloud Run (Google Cloudコンテナ設計本)」を執筆しました - How elegant the tech world is...!

                                        はじめに お久しぶりです。iselegantです。 今日は技術書典#16向けに執筆した「The Cloud Run」本の紹介をさせてください。 今回のテーマは「Google Cloud」です! 特に、コンテナサービスとして代表的な「Cloud Run」のアーキテクチャ設計をテーマに執筆しました。 techbookfest.org これまで、「クラウドネイティブシリーズ」と称して3冊執筆してきましたが、その第4弾の位置付けになります。 いつもであれば、わりとゆるくかわいい感じの表紙でしたが、今回は「ちょっと本気でCloud Runに向きあって、読者のみなさまに価値を届けようか」とのコンセプトなので、本気度を表現するためにシリアスな表紙を作成いただきました。 今回の書籍のコンセプト 僕たちが今回の書籍を執筆する際、2つのコンセプトを大切にしています。 実務に通用する学びを届ける とにかく楽しく

                                          技術書典#16向けに 「The Cloud Run (Google Cloudコンテナ設計本)」を執筆しました - How elegant the tech world is...!
                                        • Goで実践 アクターモデル vol.1 Hello Actor - ytake blog

                                          Hello Actor 細かい機能の解説はあとの回として、 まずはアクターシステムを使ったプログラミングを体験してみましょう。 Goではアクターシステムが商用でも十分利用できるものは、 下記のProto Actorとergoがあります。 github.com github.com Proto.Actorは、Akka.NET のオリジナル作成者 Roger Johansson によって開発されているもので、 Akka/Pekko と基本の部分がある程度似た形になっています。 あくまで似ている程度で、現在のAkka/Pekkoほど強力なツールが揃っているわけではありませんが、 Proto Actorで概念や作り方を覚えると、少ない労力でAkk/Pekkoにも移行などもができるようになります。 細部は異なりますが、概念などはかなり似ていますのですんなり理解できるはずです。 ergoは Erlan

                                            Goで実践 アクターモデル vol.1 Hello Actor - ytake blog
                                          • コンテンツマーケティングの戦略設計

                                            コンテンツマーケティングの4つの戦略軸の重要性とその詳細、それらの評価や分析に関する資料です。コンテンツマーケティングは「オーディエンスを魅了して関係性を持つこと」を目指さなければいけません。 関連ページ(資料内容を解説したブログ記事各種あり) https://cinci.jp/docs/con…

                                              コンテンツマーケティングの戦略設計
                                            • Second-System Syndrome: A tale of power-assert

                                              Second-System Syndrome: A tale of power-assert #jsconfjp https://jsconf.jp/2023/

                                                Second-System Syndrome: A tale of power-assert
                                              • 『データモデリングでドメインを駆動する ――分散/疎結合な基幹系システムに向けて』”基幹システム”とは何か、どう作るのか、ということへの道標を示してくれる1冊 - Magnolia Tech

                                                データモデリングでドメインを駆動する──分散/疎結合な基幹系システムに向けて 作者:杉本 啓技術評論社Amazon 著者の杉本啓様より献本いただきました。 「基幹システム」……よく考えると最近だんだんと聞く機会の減ってきたキーワードです。たまにメインフレーム上で動くCOBOLで組まれた基幹システムが負債になっている、といった比較的後ろ向きな話題の文脈で出てきて、あまり「攻めた」話題の文脈では出てこないイメージがあります。 本書は、この「そもそも基幹システムとは何か?」、その基幹システムの中心にある「帳簿」とはどんな役割を果たすのか?それらを支える「データモデル」はどのようなもので、どのような設計になるのか?といったことが、長年経営管理システムを作ってきた経験に裏打ちされた知識をもとに分かりやすく解説されます。 この手の、業務システムの設計の考え方、「要件に沿って設計する」以上の解説がなかな

                                                  『データモデリングでドメインを駆動する ――分散/疎結合な基幹系システムに向けて』”基幹システム”とは何か、どう作るのか、ということへの道標を示してくれる1冊 - Magnolia Tech
                                                • 請求関連テーブルのスキーマ変更をした話 - Feedforce Developer Blog

                                                  以前に アプリケーションを停止させずにRDBのスキーマ変更する話 を書きました。 developer.feedforce.jp 今日は、その実践編というか、実例として EC Booster というサービスで請求関連テーブルのスキーマを変更した話をしようと思います。 はじまりのテーブル 元々、 EC Booster の請求を管理するテーブルは、このような形でした。 create_table "monthly_charges", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.uuid "shop_id", null: false t.integer "year", null: false t.integer "month", null: false t.datetime "created_at"

                                                    請求関連テーブルのスキーマ変更をした話 - Feedforce Developer Blog
                                                  • 新規サービス「FAANS」における、立ち上げからReact+TypeScriptのSPA開発を2年間運用した際に取り組んだ組織的・技術的な課題 - ZOZO TECH BLOG

                                                    こんにちは、ブランドソリューション開発本部フロントエンド部の田中です。 普段はFAANSのWebフロントエンドの開発を行なっています。 FAANSとは「Fashion Advisors are Neighbors」がサービス名の由来で、ショップスタッフの効率的な販売をサポートするショップスタッフ専用ツールです。 ショップスタッフ向けにコーデ投稿・成果確認などの機能が存在し、2022年8月に正式ローンチしました。詳しくは以下のプレスリリースをご覧ください。 corp.zozo.com 現在FAANSは立ち上げから2年経過し、Webフロントエンドの開発現場において様々な組織的・技術的課題がありました。 今回はその課題と取り組みについて紹介したいと思います。 目次 目次 前提 FAANSの組織の特徴 FAANSのWebのプロダクトの特徴 変化の多い環境下で遭遇し続ける課題 組織的・技術的課題とそ

                                                      新規サービス「FAANS」における、立ち上げからReact+TypeScriptのSPA開発を2年間運用した際に取り組んだ組織的・技術的な課題 - ZOZO TECH BLOG
                                                    • チームの機能と配備を考えるための7つのチーム責務定義ガイドライン - mtx2s’s blog

                                                      前回の記事ではチーム中心の組織づくりの設計原則について書いた。今回は、それらの原則に基づくチームをソフトウェアプロダクト組織内にどう配備し、どのような機能を持たせるかについて考える。これは言わば、チームの責務を定義することに他ならない。本記事ではこれを、7つのガイドラインとして書き出してみることにした。 前回の記事:『チーム中心の組織作りのための6つのチーム設計原則 - mtx2s’s blog』 mtx2s.hatenablog.com 1. ストリームアラインド 2. オーナーシップ制 3. バリエーション分割 4. 技術横断型 5. DevOps 6. 機能横断型 7. マルチスキル 組織設計とはアーキテクティングである 1. ストリームアラインド ソフトウェアプロダクト組織の開発フローは、ユーザーや市場の観察をもとにアイデアを生み出すことから始まる。そのアイデアを仮説として、それを

                                                        チームの機能と配備を考えるための7つのチーム責務定義ガイドライン - mtx2s’s blog
                                                      • APIでマイクロサービスを構築する実践的な手法を解説 『実践マイクロサービスAPI』発売

                                                        アプリケーション開発でマイクロサービスが用いられる際、APIで接続・統合する場合がほとんどですが、APIだけで成り立つようなマイクロサービスにおけるAPI設計の方法はあまり深掘りされてきませんでした。 本書では堅牢で運用・保守に適したマイクロサービスAPIを設計・実装するためのテクニックを解説しており、REST APIとGraphQL APIの両方を取り上げてどのように設計すればよいのかを説明しています。 例はPythonが使われていますが、どの言語でも機能する原則とパターンに従っているので、Python以外の言語を利用している方でも心配ありません。マイクロサービスAPIの構築手法に自信がない方や、どうすればよりよい構築ができるのかを知りたい方におすすめです。 目次 Part 1 マイクロサービスAPIの概要 第1章:マイクロサービスAPIとは何か 第2章:基本的なAPIの実装 第3章:マ

                                                          APIでマイクロサービスを構築する実践的な手法を解説 『実践マイクロサービスAPI』発売
                                                        • 【定石】業務システムの画面デザインサンプル7選!UIを改善するポイントも紹介  – Keeperz

                                                          「業務システムの画面デザインを作るときに参考になるサイトってある?」 「使いやすいUIにするにはどのようなポイントに注意したら良い?」 業務システムは操作性が命。システムの画面デザインが優れていないと、ユーザーが不便に感じてしまうかもしれません。使いやすいシステムを構築するには完成しているデザインやUIを参考にし、開発中の業務システムにうまく取り入れる必要があるでしょう。 そこで本記事ではデザイン・エンジニアリング両面からサービスの設計・開発を行っているFlowzが以下の内容について詳しく解説します。 業務システムの画面デザインサンプル7選 画面デザインにおける5つのポイント 改善すべき画面デザインの特徴 デザインのサンプルを探している方はもちろん、画面を設計する際に意識すべきポイントについても解説するので、ぜひ最後までお読みください! なおFlowzではデジタル領域でのサービス設計、プロ

                                                            【定石】業務システムの画面デザインサンプル7選!UIを改善するポイントも紹介  – Keeperz
                                                          • APIで使用するIDを人間が読めるものにする利点をStripeのエンジニアが解説

                                                            決済サービス企業「Stripe」のエンジニアであるポール・アジェス氏が、StripeのオブジェクトIDが人間にとって読みやすい形をしている理由をブログに投稿しています。 Designing APIs for humans: Object IDs - DEV Community https://dev.to/stripe/designing-apis-for-humans-object-ids-3o5a どんなビジネスを行う場合でも、顧客情報や注文状況などの重要なデータを保存するためのデータベースが必要です。データを一意に指定したり、保存したデータを素早く読み出したりするためにデータベースには主キーとも呼ばれるIDを設定します。 IDに関する最も単純なアプローチは連続する番号を割り当てるというもの。設定に手間がかからず、扱いやすいため良いアイデアに見えますが、悪意のある攻撃者が他のIDを推測

                                                              APIで使用するIDを人間が読めるものにする利点をStripeのエンジニアが解説
                                                            • プレミアムプランの状態管理と決済ハンドリングの難しさ|tsusowake

                                                              はじめにこんにちは、PIVOTでソフトウェアエンジニアをしている裾分です。PIVOTは2024年2月にアプリ・Webを本格始動しました。私はPIVOTにジョインして以降、サブスクリプション機能の開発をしてきたので設計の概要と決済プラットフォームが係る実装の難しさについてまとめてみました。 本題冒頭のリリースの通り、PIVOTはYouTubeからプロダクトに集中するにあたり、サブスクリプション機能をリリースしています。 サブスクリプションを実装するにあたり考慮すべき点として、以下の状態を考慮する必要があります。 自サービスで管理する状態 ユーザーのサブスクリプション ユーザーのプラン 他サービスで管理する状態 ユーザーへの課金を行うプラットフォームに登録されているサブスクリプションの状態 決済状態(成功 | 失敗 | …) PIVOTの場合では、決済プラットフォームとして App Store

                                                                プレミアムプランの状態管理と決済ハンドリングの難しさ|tsusowake
                                                              • ソフトウェア設計と生成AI

                                                                2024/7/30 「GenAI Playground Meetup #01 生成AI時代におけるアプリケーション設計と思想」 での発表資料 ①データの量と種類の爆発 ②大規模データを扱うモデル ③中央集権、完全分散、協調分散 ④大規模データ、機械学習、深層学習、生成AI ⑤設計の経…

                                                                  ソフトウェア設計と生成AI
                                                                • 社内利用浸透しきったLookerを1ヶ月でLookerStudioに移行した話

                                                                  こんにちは!ゲンシュンです。 Looker解約することになり、LookerStudioへの移行対応をした話を書きます! 背景 Lookerはプロダクト部ビジネス部も満遍なく利用しきっていますが、円安関連でコスト高騰してキツイな〜という状況でもありました。解約意思決定が自分に伝達されたのが6月下旬、移行対応に即アサインされ、そこから諸々準備し、8月頭でのLookerStudio利用開始までわずか1ヶ月という短期決戦プロジェクト開幕です。 各部門の業務フローにゴリゴリ組み込まれているぐらい利用浸透してて、DWH↔Lookerの設計周りもかなりいい感じに出来てて、こんなに愛した俺達のLookerがコスト理由だけで移行せざるを得ないのは、ぶっっっっちゃけモヤモヤが大きかったです。が、やりきればうんびゃくまん以上の凄まじいコスト改善が出来るので、これは凄い事業インパクトだ!やり切るしか無い!やろう!

                                                                    社内利用浸透しきったLookerを1ヶ月でLookerStudioに移行した話
                                                                  • 今年の汚れ、今年のうちに!MySQLで使っていないインデックスを削除しよう - クラウドワークス エンジニアブログ

                                                                    この記事は クラウドワークス Advent Calendar 2023 シリーズ2 2日目の記事です。 こんにちは。crowdworks.jp SRE チーム 田中(@kangaechu)です。 年末といえば大掃除ですね。 皆さんのデータベースにも使っていないインデックスが溜まっていませんか? お掃除してきれいな新年を迎えましょう。 手順 1. MySQLで使っていないインデックスの一覧を取得 未使用のインデックスは sys.unused_indexes ビューで確認できます。 dev.mysql.com しかし、このビューの元データである performance_schema テーブルは起動時から終了時までのデータしか保持していません。 Tables in the Performance Schema are in-memory tables that use no persistent

                                                                      今年の汚れ、今年のうちに!MySQLで使っていないインデックスを削除しよう - クラウドワークス エンジニアブログ
                                                                    • イベント駆動コンテンツ (a.k.a Webアプリケーションの効率を再定義するBEAR.Sundayの分散キャッシングフレームワーク)

                                                                      "BEAR.Sundayの分散キャッシングフレームワークは、クライアントサイドとサーバーサイドのキャッシュ管理を統合することで、Webアプリケーションの堅牢性とパフォーマンスを大幅に向上させます。このキャッシングフレームワークは、静的な情報APIと動的な計算APIの2つのタイプに基づいて、それぞれ異なる…

                                                                        イベント駆動コンテンツ (a.k.a Webアプリケーションの効率を再定義するBEAR.Sundayの分散キャッシングフレームワーク)
                                                                      • インボイス管理サービス「Bill One」の認証を内製認証基盤に置き換えて認証基盤のコストを削減した話 - Sansan Tech Blog

                                                                        Bill One Engineering Unit 共通認証基盤チームの樋口です。 Bill Oneでは昨年までAuth0を認証基盤として利用してきましたが、認証基盤を内製化することでコストを大幅に削減しました。 この認証基盤は、昨年12月に無事リリースされ、Bill Oneの認証を支えています。 今回は認証基盤の内製化に至った経緯と設計、移行プロセスについて紹介します。 Bill Oneについて 認証基盤に関する課題 解決方法の検討 IDaaS(Identity as a Service)について 設計とシステム構成について 認証基盤の設計 システム構成 アカウントの移行について メールアドレス・パスワードでのログインを利用しているユーザーの移行 SSO(Single Sign-On)の移行 振り返りと今後 ドメイン変更による問い合わせの増加 内製化によって体験の改善がスムーズに Bil

                                                                          インボイス管理サービス「Bill One」の認証を内製認証基盤に置き換えて認証基盤のコストを削減した話 - Sansan Tech Blog
                                                                        • 「レイヤードアーキテクチャパターン」の長所と短所

                                                                          コード構造を設計するときは、ソフトウェアスタック内で機能を分離する方法を検討すると役立つことがしばしばある。その方法の一つとして、アプリケーションのレイヤーをその上下に存在する他のレイヤーから抽象化することが挙げられる。これは、「レイヤードアーキテクチャパターン」と呼ばれることが多いアプローチだ。 レイヤードアーキテクチャパターンはどのように機能するのか レイヤードアーキテクチャの各レイヤーは、特定のアプリケーションまたはビジネス目標に合わせて設計される。そのため、レイヤーとレイヤーが管理する機能の間には、明確な抽象化が存在する。例えば、アプリケーションは、ユーザービューをレンダリングするレイヤー、Web APIへの応答を中継するレイヤーおよびファイルシステムまたはデータベースへのデータの保存を担当するレイヤーを維持しているかもしれない。 関連記事 開発者が注意すべき「マイクロサービスの問

                                                                            「レイヤードアーキテクチャパターン」の長所と短所
                                                                          • 拡張性に優れた React Aria のコンポーネント設計

                                                                            React Aria Components は Adobe によって提供されている Headless UI コンポーネントライブラリです。振る舞いや国際化に, アクセシビリティに関する機能を備えており、Button や Input, TextField, Label などのシンプルな要素から、DatePicker や ComboBox などの様々なコンポーネントが提供されています。 今回は React Aria Components の設計について紹介します。 React Aria Components のコンポーネントの設計 React Aria Components の API はコンポジションを中心に設計されています。これにより、パターン間で共通のコンポーネントを共有することも、個別に使用することも可能です。なお、コンポジションについては React Component Compos

                                                                              拡張性に優れた React Aria のコンポーネント設計
                                                                            • Google Cloud Operations Suite で実現する "頑張らないオブザーバビリティ" - KAYAC engineers' blog

                                                                              SRE チームの市川恭佑です。 先日、CloudNative Days Tokyo 2023 のプロポーザルを提出したのですが、残念ながら採択に至らなかったので、今回は宇宙最速の(?)供養エントリになります。 シェア・投票など、ご応援をくださった皆様にはこの場でお礼を申し上げます。ありがとうございました。 event.cloudnativedays.jp 背景とか、経緯とか 筆者は、カヤックの SRE チームにちょうど2年ほど在籍しています。とは言っても半年ぐらいは学生アルバイトだったので、正社員としては1年半ほどです。カヤックに入る前も、いくつかの会社で IT エンジニアとしてインターンやアルバイトをしていました。 という訳で、何だかんだ仕事で使うプログラムを書き始めてトータル4年半ほどになりますが、そのうち3年半ほどは全て Amazon Web Services(AWS)でホストされる

                                                                                Google Cloud Operations Suite で実現する "頑張らないオブザーバビリティ" - KAYAC engineers' blog
                                                                              • ミドルウェアとウェブフック

                                                                                長くパッケージソフトウェアとしてのミドルウェアを開発してきて、ミドルウェアとウェブフックの組み合わせがとても良いと感じているので、雑にまとめていこうと思います。 まとめ ミドルウェアとウェブフックの組み合わせはお勧め。 戦略 ミドルウェアに永続化情報を持たせない ミドルウェアから直接データベースを引く仕組みを持たせない ミドルウェアにプラグインの仕組みを持たせない データベースを直接引く仕組みを持たせない 自分がミドルウェアを開発したときは、ミドルウェアがデータベースを引く仕組みを持っているというのが一般的でした。 ただこれ、どのデータベースに対応するのかという問題がでてきます。 PostgreSQL や MySQL や Oracle や SQL Server などなど、対応するデータベースが多いと、ミドルウェアの開発者は大変です。 RDB だけでなく LDAP や Redis といったデ

                                                                                  ミドルウェアとウェブフック
                                                                                • 業務システムとオブジェクト指向 - Hot Heart, Cool Mind.

                                                                                  業務システムの設計・開発を職業とする人々の間で、オブジェクト指向はいまだに一般的なものと受け止められていないように思える。しかし実際にやってみると、オブジェクト指向は業務システムにうまく馴染むし、システムの品質とメンテナンス性の改善につながる。 ==== オブジェクト指向の適用例 具体的な例で見てみよう。仕訳を作成して記帳するという、会計システムのもっとも基本的な処理を、Javaでオブジェクトを使って書いてみる: /** * 7月度の「帳簿(book)」を取得する。 */ 1: Book book = application.getBook("2006/7"); /** * 仕訳(JournalSlip)」を生成し、項目を設定する。 **/ 2: JournalSlip slip = book.createJournalSlip(); //仕訳日 3: slip.setJournalDat

                                                                                    業務システムとオブジェクト指向 - Hot Heart, Cool Mind.