並び順

ブックマーク数

期間指定

  • から
  • まで

361 - 400 件 / 773件

新着順 人気順

設計の検索結果361 - 400 件 / 773件

  • 『ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法』を読んだ - Magnolia Tech

    ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法 作者:Vlad KhononovオライリージャパンAmazon 訳者の増田亨様より献本いただきました ありがとうございます さっそく読んでみました システムは、なぜ必要とされるか?という「why」が有り、次に何を作るべきか?という「what」が有り、それを受けての「how」が有る。 (たまに突然「what」だけが有ったり、なぜか「how」の議論だけが先行する事例も聞くけど、それは順番が間違っているだけなので、その問題はここでは触れない) この「why」と「what」と「how」が上手く繋がった状態を作り上げていくために、過去にさまざまな開発方法論が考案され、語られてきた。 「ドメイン駆動設計」は、開発方法論として「名前がついて、生き残ってきた手法」の一つであり、昨今複数の解説書が発行されている唯一の手法と言え

      『ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法』を読んだ - Magnolia Tech
    • 初めてDDDを使ってみて悩んだところ

      研修でDDDを使ったサービスを作ってみることになったが、DDDを使うのが初めてなので同じような状況の人向けに悩んだところをメモしておこうと思う。 DDDとは DDD(Domain-Driven Design)とはドメイン駆動設計と呼ばれる設計方法の一種で、複雑なビジネスの要件をソフトウェアで上手く扱うためのアプローチとなっている。(DDDの詳しい説明などは以下を参照) DDDはドメイン(業界領域)の複雑さにフォーカスを当て、ドメインに精通しているドメインエキスパートと呼ぶ人の協力を得てシステム開発を行ってい行く。また、DDDではクリーンアーキテクチャ、ヘキサゴナルアーキテクチャなどのアーキテクチャと共に用いられることが多い。(今回作っているサービスではクリーンアーキテクチャを採用しているつもりだが、他のアーキテクチャとの違いが正直良く分かっていない) サービスの概要 ざっくりと説明すると、

        初めてDDDを使ってみて悩んだところ
      • 開発生産性の観点から考える自動テスト(2024/06版) / Automated Test Knowledge from Savanna 202406 Findy dev-prod-con edition

        2024年6月29日 Findy 開発生産性カンファレンス2024 Closing Keynote https://dev-productivity-con.findy-code.io/2024

          開発生産性の観点から考える自動テスト(2024/06版) / Automated Test Knowledge from Savanna 202406 Findy dev-prod-con edition
        • 【Amazon Bedrock】AWSサービスのみを使ったシンプル構成のRAGアプリを作ってみた - NRIネットコムBlog

          はじめに RAGとは 構成図 作成リソース Lambda 1. PDFから文書抽出&Embedding取得Lambda 2. 回答作成用Lambda AWS SAM テンプレート Streamlit 動作確認 まとめ はじめに こんにちは堤です。 Amazon BedrockがGAとなり、AWS内で完結してLLMアプリケーションを構築できるようになりました。 試しにRAGアプリケーションを作成してみようと思いましたが、現状AWSでRetrievalするデータソースを作成しようとすると、Amazon OpenSearch Serverless やAmazon Kendraを使用するしかありません。これらのサービスを使うのはコストもそれなりにかかり少しハードルが高いなーと思っていたら以下のブログを見つけました。 aws.amazon.com 構成図を見ると分かるように、S3にembedding

            【Amazon Bedrock】AWSサービスのみを使ったシンプル構成のRAGアプリを作ってみた - NRIネットコムBlog
          • シャープの「フクロウ」サーキュレーターに大満足! 部屋干しにもエアコン補助にも【家電ラボの徹底「本音」レビュー】

              シャープの「フクロウ」サーキュレーターに大満足! 部屋干しにもエアコン補助にも【家電ラボの徹底「本音」レビュー】
            • 生成AIイラストとかのあれ、要は「絵なんてどうでもいい」というジャンル。全ての創作のクオリティや魅力の根幹には「好き」があって

              青木潤太朗(ロリババアが好き @aokijuntarou アナスタシア 瀬名詩織 四条貴音 担当 ご連絡はDMあるいはaoki9876543210juntarou☆live.jpへお願いします。 ツイートの転載等は基本すべてNG amazon.jp/hz/wishlist/ls… 青木潤太朗(ロリババアが好き @aokijuntarou 生成AIイラストとかのあれ、個人的な見解としましては、良いとか悪いとか以前にしばらくはシンプルに 「創作には使い物にならない」 が続くと思う。敢えていうと需要はあると思うんです、要は「絵なんてどうでもいい」というジャンル。性風俗店の看板とか、詐欺チラシに挟まってるゴミ漫画とか・・・ 2024-03-01 07:13:51 青木潤太朗(ロリババアが好き @aokijuntarou これは意外でかつ素晴らしいことだと思っているんですが、全ての創作のクオリティや

                生成AIイラストとかのあれ、要は「絵なんてどうでもいい」というジャンル。全ての創作のクオリティや魅力の根幹には「好き」があって
              • 建築では多重下請けでやれてるのに業務システムでだめなのはなぜ? - きしだのHatena

                建築では多重下請けでやれてるのに業務システムでだめなのはなぜ?という質問がブコメであって、似たような話もいくつか見かけたのですが、建築などの施工図面に相当するのはソースコードで、建築現場で多重下請けでやってる作業は、ソフトウェアだと(でも?)ビルドです。なのでソフトウェアでは自動化されています。 もしも業務システムの納品物が、バベッジの階差機関のような歯車を組み合わせた機械式の計算機で、ビル一棟分に歯車をつめこんで組み立てて納品するというようなことになれば、多重下請けで分業してビルドするのが最もよい方法ということになると思います。 追記 「継続的デリバリーのソフトウェア工学」では、「ソフトウェア開発を選んだ私たちがバカでない限り、私たちにとっての製造とは、ビルドボタンのクリックです」とあります。橋梁建設を例に、物理的な製造・生産との違いが説明されています。 継続的デリバリーのソフトウェア工

                  建築では多重下請けでやれてるのに業務システムでだめなのはなぜ? - きしだのHatena
                • 技術的負債が生まれる背景を理解して,アーリーからレイター向けの根本的なアプローチを考える

                  ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design

                    技術的負債が生まれる背景を理解して,アーリーからレイター向けの根本的なアプローチを考える
                  • 私とテストと自動化と - あどけない話

                    何度か講演でこの話をしたのだが、気が向いたのでエッセンスを書き下しておこうと思う。 テスト駆動という言葉が流行る前にプログラマとなった私は、当初どのようにテストを書いてよいのか分からなかった。そんなとき、(当時はオーム社で現在はラムダノートの)鹿野さんから「ビューティフルコード」を献本していただいた。分厚い本なので、興味ある章から読んでいった。その一つがアルベルト・サボイア氏が書いた7章「ビューティフル・テスト」だ。 ビューティフルコード (THEORY/IN/PRACTICE) 作者:Brian Kernighan,Jon Bentley,まつもとゆきひろオライリージャパンAmazon この章では、例として二分探索が取り上げられる。二分探索のアイディアが出されたのは1946年だが、バグのない実装ができたのは12年後だという。実際に実装してみると分かるが、ソートされた配列の中に目的の要素が

                      私とテストと自動化と - あどけない話
                    • ひろみつ氏の、ダイソーで販売されていたスマホ連携リモコン送信機を分析した経緯

                      ひろみつ @bakueikozo 二児の父 。非納税王国民。 エンジニアリングよろず。 Youtubeチャンネル youtube.com/@bakueikozo nanaでピアノ弾いたり歌ったり nana-music.com/users/10349269 #ドラレコ 動画の転載、使用に許諾は不要 honeylab.hatenablog.jp ひろみつ @bakueikozo ダイソーで売ってたスマホ連携リモコン送信機を買ってみた。しかしELPAのやつで、普通はダイソーに売ってるようなものではなかったものなのではないかと思われる。スマホ連携リモコンなんていくらでもあるじゃんと思われるかもしれんが、これはローカル専用なのでインターネットに依存していないのだ pic.twitter.com/6avd4pNSGv 2024-04-10 01:39:17

                        ひろみつ氏の、ダイソーで販売されていたスマホ連携リモコン送信機を分析した経緯
                      • ヨドバシの中の人が語る、開発中のヨドバシAPIが目指す機能、仕組み、そしてセキュリティ(後編)

                        ヨドバシカメラは現在、お客様との接点をドメインとして設計する新たなAPIを開発中であることを、クリエーションラインが主催し10月27日に開催されたイベント「Actionable Insights Day 2023」で明らかにしました。 REST APIとして実装される予定のこのAPIについて同社は「ヨドバシスタッフの魂を注入する」としており、厳重なセキュリティやユーザーフレンドリーで高い利便性などが追求されています。 ヨドバシAPIがどのように設計され、開発、実装されていくのか。その中味が紹介されたセッションの内容を見ていきましょう。 本記事は前編と後編の2本の記事で構成されています。いまお読みの記事は後編です。 認証強度のレベルダウンを最小限にするための方法 ただ、我々はお客様の情報を大切に守ろうとしておりますので、レベルダウンを最小限にしようとあがいておりまして、そこで採用しましたのが

                          ヨドバシの中の人が語る、開発中のヨドバシAPIが目指す機能、仕組み、そしてセキュリティ(後編)
                        • すべての Web サービス設計者に捧ぐ「RESTful って結局なんなんだ」

                          誰もがその戦いの背景にある歴史の深淵と人々の覚悟を見誤っていた。開戦初日に決着が付くと高を括って鼻歌混じりに筆を取った私は、気が付けば夏休みの8割を喪失し、すべての指が腱鞘炎で悲鳴を上げる中で参考文献の海に這いつくばっていた。 —— Josh Nobus —— ぜんぜんわからない 俺たちは雰囲気で REST をやっている 何度調べてもなんだかよく分からない概念ランキングの個人的 Top5 に入る言葉。 それが「REST」だ。 いろんな Web サービスの REST API はよく使わせてもらっているし、REST API が何かと聞かれれば「その Web サービスの機能を HTTP リクエストで呼び出せる API エンドポイントのことだよ」みたいにそれっぽくお茶を濁すことはできると思うが、じゃあ自分で RESTful なサービスを作ってみろと言われたら私は作れない。作れなかった。 だってどん

                            すべての Web サービス設計者に捧ぐ「RESTful って結局なんなんだ」
                          • チュートリアルでDDD体験: ドメインモデルの成長を紹介 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

                            プロダクト技術本部の川口です。 3年間、ビッグローブ光といった固定回線のインフラ部門に所属していましたが、今年の4月に BIGLOBE の基幹システムのリニューアルを推進していく部署に異動することになりました。 所属するチームでは、ドメイン駆動設計(DDD)で開発しています。 チームにジョインすると開発チュートリアルをやることになっており、そこで IntelliJ や Spring Boot での開発の仕方を学んだり、チュートリアルを通して DDD を学んだりします。 今回は、DDD のチュートリアルで実際に作成したドメインモデルがどういう風に成長していったかについて紹介します。 勤怠管理アプリ チュートリアル 初期ドメインモデル 中期ドメインモデル 後期ドメインモデル 学んだこと、感想 勤怠管理アプリ チュートリアル お題は GitHub のパブリックリポジトリに公開されています。 ht

                              チュートリアルでDDD体験: ドメインモデルの成長を紹介 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
                            • ソシャゲサーバー開発するとき始めに考慮しておかないと死ぬポイント備忘録

                              事前知識編 システム開発するプログラマも読んでおいたほうがいい資料とか。 今時のシステムならまず仕様や運用に反映される。されてなかったらむしろこっちから確認取りに行った方がいい。 JOGAガイドライン 昔ガチャとかが問題になったときに出てきた協会のガイドライン。 オンラインゲーム安心安全宣言 オンラインゲームにおけるビジネスモデルの企画設計および運用ガイドライン ランダム型アイテム提供方式を利用したアイテム販売における表示および運営ガイドライン オンラインゲームガイドライン 開発環境編 GitHubみたいなPullRequestを出せる環境 GitだけじゃなくてGitHub。必然的に規模が大きくなるのでプルリク出して進めることになります。 CIまで設定をする 最初のうちにCircleCIのようなテストの自動実行する仕組みまで揃えてしまっておいたほうが良いです。後からだとそもそも対応できなく

                                ソシャゲサーバー開発するとき始めに考慮しておかないと死ぬポイント備忘録
                              • PostgreSQLのPub/Sub機能とJavaのクライアント実装 | フューチャー技術ブログ

                                本記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を改訂したものです。 はじめにPub/Sub型のメッセージングアーキテクチャを採用するにあたっては、kafkaなどのブローカーミドルウェアや、Amazon SNS、Google Cloud Pub/Subなどのマネージドサービスを利用するケースが多いかと思います。ところでPostgreSQLでも実はPub/Subができます。 すでに業務でPostgreSQLを使っていれば、新たにPub/Subブローカーを構築しなくても、疎結合なシステム間通信を簡易的に実現できます。 本記事ではこの機能の紹介と、Pub/SubクライアントをJavaで実装する場合の選択肢、考慮点を示しています。 ※実行環境はPostgreSQL 16.2とJava 21です ※データベースの文字コードはUTF-8としてい

                                  PostgreSQLのPub/Sub機能とJavaのクライアント実装 | フューチャー技術ブログ
                                • 見えないものに着目すると上手くいく、モデリングの勘所 / invisible-driven-design

                                  こちらのイベントの登壇発表資料です。 アーキテクチャを突き詰める Online Conference https://findy.connpass.com/event/314782/

                                    見えないものに着目すると上手くいく、モデリングの勘所 / invisible-driven-design
                                  • 誰が作成しても1つの構造になるモデリング作成技術、Theory of Models⁠ に夢を見る

                                    builderscon 2024 で発表した資料です。以下、トーク概要です。 Webアプリケーションを開発・運用していく中で、1つのテーブルに日時カラムが増えていったり、巨大なテーブルが爆誕した、という経験はありませんか。また、これがプログラムの複雑さに繋がることもあると思います。このような事態を…

                                      誰が作成しても1つの構造になるモデリング作成技術、Theory of Models⁠ に夢を見る
                                    • 非同期ジョブをユーザーアクションに組み込まない

                                      (勤務先に投稿した社内ブログの焼き直しです) ある日同僚から ActiveJob の perform_later で Barbeque にキューした非同期ジョブの起動が遅いと言われた。が、非同期ジョブの使い所について個人的な考えを書いてみることにする。 相談は「非同期ジョブの結果をユーザーに返しているため、高速になって欲しい。現状、最大で数分の時間を要す旨のメッセージを表示している」という内容でした。具体的には {内部 API} が重く、一部の処理を非同期ジョブにしていてユーザー体験の悪化につながっているとのこと。 盲目的に非同期にしても嬉しいことはない 結論としては、非同期にするのであれば丁寧にやれば良いけど、そもそも同期的でよくない? と考えて欲しいと返した。 まず、個人的にはユーザーアクション起因かつユーザーへフィードバックする必要のある処理を非同期ジョブにするのは本当に長時間かかる

                                      • DWHにおけるデータモデリングで大事にしている考え方

                                        こんにちは。データエンジニアリングの支援を行っているstable株式会社の代表の宮﨑(@ikki_mz)です。弊社では、クライアント社内のデータウェアハウス(DWH)におけるデータモデリングをサポート...

                                          DWHにおけるデータモデリングで大事にしている考え方 
                                        • EC2における「管理用VPC」設置の是非について

                                          こんにちは、SCSKの木澤です。 先日、VPCにおける大きなアップデートが発表されました。 Multi-VPC ENI Attachmentsaws.amazon.com EC2から複数のVPCに対してENIを接続できるようになったよ、という話です。 オンプレミスのネットワーク設計経験者であれば、この話を聞いて「管理用VPCが作れるようになったな」と感じることでしょう。 実際私自身もAWS初心者の頃は管理用のネットワークが構成できないことが気になっていました。 ですが、AWSにおいては安易に管理用VPCを設置すべきではないと考えています。 その理由を下にまとめたいと思います。 オンプレミスネットワーク設計のセオリー オンプレミスにおけるネットワーク設計経験が無い方もいらっしゃると思いますので、丁寧に解説したいと思います。 今回は下図のような一般的なWeb3層のシステムのネットワークを設計す

                                            EC2における「管理用VPC」設置の是非について
                                          • Four Keysを用いた改善活動のアンチパターンと、本質的な改善のために必要な「なぜ?」 - Agile Journey

                                            Agile Journeyをご覧のみなさん、はじめまして。株式会社リンクアンドモチベーションの川津(@KawatsuYusuke)です。こちらの記事では主に私たちがFour Keys メトリクスを元に、開発生産性向上を目指した活動に関する話題についてお伝えします。 と言っても、『LeanとDevOpsの科学』をはじめ、Four Keysの運用に関するトピックはすでに多く語られています。また、Four Keysは便利なメトリクスであるがゆえに、ときに「Four Keysを改善する」という手段が目的化してしまうことがあります。本稿では主にこれから開発生産性向上に取り組もうとしている方に向けて、私たちの取り組みと、体験したアンチパターンをもとに、「Four Keys改善の取り組みには "なぜ?" が大事」についてお伝えします。 私たちの開発生産性向上のはじまりと、目指すべき状態の設定 Four

                                              Four Keysを用いた改善活動のアンチパターンと、本質的な改善のために必要な「なぜ?」 - Agile Journey
                                            • 実装する前にきちんとドキュメントを読んだ方が良い、という話 - Qiita

                                              どうも、初めまして。 tokeと申します。 今回は自分の失敗談を話したい、と思います。 実装する前にドキュメントを読まないと、最後になってゴールに辿り着けない可能性がある そういう経験をしたのでご紹介します。 例えば、自社で集めた顧客のデータを活用し、Marketoにデータ連携したいとします。 marketoのAPIドキュメントを調べると、顧客の情報を登録する手段では以下の2パターンがあります。 POST /rest/v1/leads.jsonを使うパターン 以下のドキュメントにあるPOST /rest/v1/leads.jsonを使って、顧客のデータを送信し、連携する事ができます。 https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/lead-database/leads [※Marketoで

                                                実装する前にきちんとドキュメントを読んだ方が良い、という話 - Qiita
                                              • 止まらないLinuxシステムを構築する_高信頼性クラスタ入門

                                                止まらないLinuxシステムを構築する!高信頼性クラスタ入門 クラウド、オンプレどちらの環境でも障害は不意にやってきます。 そんなときもサービスを継続提供するためのHAクラスタ。 今回は高信頼性を実現するクラスタの考え方の基本から、具体的にLinuxクラスタを設計/構築するコツについて解説します! こんな方にオススメ ・Linux初心者の方 ・Linuxが好きな方 ・高信頼性、高可用性クラスタに興味ある方

                                                  止まらないLinuxシステムを構築する_高信頼性クラスタ入門
                                                • なぜDependency Injectionなのか? ~関心の分離と疎結合~

                                                  本稿は「アーキテクチャを突き詰める Online Conference」における発表「なぜDependency Injectionなのか? ~関心の分離と疎結合~」の登壇原稿となります。 発表時の動画アーカイブは後日公開されたタイミングでリンクを追加いたします。 また、本稿のサンプルコードとPower PointはGitHubで公開しています。 「CC BY-SA 4.0」で公開していますので、気に入っていただけたら営利目的含め、ライセンスの範囲で自由に利用していただいて問題ありません。 https://github.com/nuitsjp/WhyDependencyInjection というわけで、本稿の目指すゴールはこちら。 今日は、この場にいる皆さんが「なぜDependency Injectionを利用するのか?」ということを、理解いただくのが本日のゴールとなります。 というわけで本

                                                    なぜDependency Injectionなのか? ~関心の分離と疎結合~
                                                  • 設計書を書かない設計で開発効率を向上させた話 - Tabelog Tech Blog

                                                    この記事は 食べログアドベントカレンダー2023 の23日目の記事です🎅🎄 こんにちは。食べログシステム本部 技術部 仕入チームの@shohei-yです。 今回は、新規事業の「食べログ仕入」プロダクト開発において所謂「設計書」を書かない設計に挑戦して開発効率を向上させた話を書きます。 (結局「書くの?書かないの?どっちなんだい!」と感じた人は、ぜひ読み進めてください。) 所属している仕入チームについてはこちらの記事をご覧ください。 目次 なぜ設計書を書かない設計に挑戦したのか 設計書を書かないチーム 設計書を書かないことによる問題 1. チーム協力の課題 2. ソースコードの複雑化 3. チーム変動に関わる問題 設計工程導入のきっかけ 設計書を書かない挑戦の背景 設計書を書かない設計 フロントエンド・バックエンドのインターフェースの明確化 ソースコードのスリム化対策 設計のレビュー方法

                                                      設計書を書かない設計で開発効率を向上させた話 - Tabelog Tech Blog
                                                    • Your API Shouldn't Redirect HTTP to HTTPS

                                                      TL;DR: Instead of redirecting API calls from HTTP to HTTPS, make the failure visible. Either disable the HTTP interface altogether, or return a clear HTTP error response and revoke API keys sent over the unencrypted connection. Unfortunately, many well-known API providers don't currently do so. Updated 2024-05-24: Added the Google Bug Hunter Team response to the report that the VirusTotal API resp

                                                        Your API Shouldn't Redirect HTTP to HTTPS
                                                      • イベント駆動アーキテクチャ導入の手引きと共通の落とし穴 / Guide to Implementing Event-Driven Architecture and Common Pitfalls

                                                        イベント駆動アーキテクチャにおける落とし穴についてお話しています。 こちらは JJUG CCC 2024 Spring の講演用資料です。 Code: https://github.com/nrslib/pubsubdoc # URL YouTube: https://www.youtu…

                                                          イベント駆動アーキテクチャ導入の手引きと共通の落とし穴 / Guide to Implementing Event-Driven Architecture and Common Pitfalls
                                                        • Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

                                                          A new tool that blends your everyday work apps into one. It's the all-in-one workspace for you and your team

                                                            Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
                                                          • RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応)

                                                            結論 お手軽モノリスならAutoIncrementが効率的だしこれでいいよ アプリケーション側で主キーを生成したい場合はLUIDを作る必要があるよ。GUIDで大は小を兼ねよう 主キーでGUIDを使うならULIDよりもUUIDv7がおすすめだよ ただし分散されているエンジンによってはUUIDv4の方が効率的になる場合もあるよ 主キーは原則公開しない方がいいよ UUIDv7やULIDはユニーク性を持ったInstant(timestamp)としても使えるよ 分散されたシステムでは厳密な時系列性を担保することはできないよ、あきらめてロックをかけつつ連番を一か所で生成しよう RDBのPrimary Key(主キー)とは? MySQL、PostgresQLなどのRDBでは各レコードを識別するために一意な値を必要とします。これをPrimary Key(主キー)と呼びます。別のカラムにUNIQUEなInd

                                                              RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応)
                                                            • Golang開発者のためのクリーンアーキテクチャ

                                                              はじめに クリーンアーキテクチャは、ソフトウェア設計の分野で非常に重要な概念です。 しかし、その理解は容易ではなく、明確な正解が存在するわけではありません。 多くの人が異なる解釈を持ち、他の設計思想と混在していることもあります。 この記事では、自分なりの視点からクリーンアーキテクチャを解釈し、その整理した内容を共有します。 このアーキテクチャの目的は、システムの各層を独立させ、変更に強く、テストしやすい設計を実現することです。 この記事では、クリーンアーキテクチャの基本概念、Golangでの実装方法、およびディレクトリ構成について詳しく説明します。 なお、この記事では個人的な見解を述べており、必ずしも正解を書いているわけではありません。もし誤りがあれば、ぜひご指摘いただけると幸いです。 クリーンアーキテクチャの基本概念 クリーンアーキテクチャの元となったのは、ロバート・C・マーチン(通称「

                                                                Golang開発者のためのクリーンアーキテクチャ
                                                              • TypeScript開発にRailway Orientedを持ち込み、より型安全なエラーハンドリングへ - Sansan Tech Blog

                                                                Digitization部 Bill One Entry*1グループの秋山です。 はじめに Domain Modeling Made Functionalというスゴ本 補講:Make Illegal States Unrepresentable バックエンドの処理を抽象化する 手続き型プログラミングの典型例 課題1:制約のないエラーハンドリング 課題2:低い可読性 課題3:エラーハンドリングの低い網羅性 Railway Oriented Programming TypeScriptで型安全にエラーハンドリングする ステップ1:サブ関数の出力はResult型で表現する ステップ2:サブ関数にResult型を入力できるようにする ステップ3:サブ関数を連結する ステップ4:網羅的にエラーハンドリングする おわりに 付録 TypeScriptの全文サンプル はじめに エラーハンドリングは重要な処

                                                                  TypeScript開発にRailway Orientedを持ち込み、より型安全なエラーハンドリングへ - Sansan Tech Blog
                                                                • フルリノベーションしたマンションに住む私が、いくつもの障壁を乗り越えて理想をかなえるまで - マンションと暮せば by SUUMO

                                                                  写真:関拓弥こんにちは、mihozonoと申します。普段は会社員として、サービス企画の仕事をしています。 2023年、念願のフルリノベーションをしました! 完成までにはいくつもの壁と長い道のりがあったため、これからリノベーションをする方の参考になればと思い、私の体験談を紹介します。 すてきな友人宅を訪れて、リノベ熱が高まる 私は以前から「リノベーション」という考え方や文化が好きで、台湾のリノベーション建築を巡る旅をしたり、リノベーションスクールに参加したこともありました。元の物件を活かすことで唯一無二の空間が出来上がったり、昔の面影やストーリーを感じられるところに新築にはない魅力を感じます。 そんな私が自分でもリノベーションをしてみたいと思い始めたきっかけは、フルリノベーションした友人宅を訪れたことでした。自分の暮らしに合わせて自由に設計をしているのを見て、賃貸に自分の暮らしを合わせるので

                                                                    フルリノベーションしたマンションに住む私が、いくつもの障壁を乗り越えて理想をかなえるまで - マンションと暮せば by SUUMO
                                                                  • 顧客に「要望を聞いて」機能開発してしまっていた過去 解像度を高めて“評価される開発”になるための3つの取り組み

                                                                    顧客に「要望を聞いて」機能開発してしまっていた過去 解像度を高めて“評価される開発”になるための3つの取り組み 新PdM組織での顧客解像度の上げ方 植木氏の自己紹介 植木遼太氏:私からは「新PdM組織で実践した顧客解像度の上げ方」というテーマで発表します。簡単に自己紹介をしてから本題に移らせてください。 私は植木遼太と申します。先ほどの紹介にあったように、今現在は「楽楽精算」のPdMをしています。約2年前に入社しています。キャリアとしては2010年に新卒からインフラエンジニアとしてスタートして、その後、プロジェクトマネージャー、プロダクトマネージャーと役割を変遷させていったかたちのキャリアを歩んできました。 顧客解像度向上のための取り組みBefore/After では本題に移ります。先ほどのテーマにあったように、「顧客解像度の向上って」という話があります。発表の流れとしては、「そもそもこの

                                                                      顧客に「要望を聞いて」機能開発してしまっていた過去 解像度を高めて“評価される開発”になるための3つの取り組み
                                                                    • コンポーネント設計って何だろう | ドクセル

                                                                      マーチン・ファウラー モジュールとは、明確に定義された一部のサブセットを 理解するだけでシステムを変更できるようにソフトウェ アシステムを分割したものと定義します。 コンポーネントはモジュールの一形態であり、独立して 置換できるという追加の特性を備えています。 出典 martinFowler.com “Software Component” より筆者抄訳 https://www.martinfowler.com/bliki/SoftwareComponent.html https://www.martinfowler.com/bliki/SoftwareComponent.html

                                                                        コンポーネント設計って何だろう | ドクセル
                                                                      • AWS Transit Gateway を用いて NAT Gateway を集約し、コストを最適化するための経路設計 - サーバーワークスエンジニアブログ

                                                                        マネージドサービス部 佐竹です。 以前 NAT Gateway 集約のためのネットワーク設計においてトラブルを発生させてしまったことがあり、その再発防止のためのブログを記載します。 はじめに 各 VPC ごとに NAT Gateway を構築した場合 NAT Gateway の利用料 AWS Transit Gateway を用いて集約する NAT Gateway 集約と経路設計 Transit Gateway を構築する Transit Gateway Attachment (Type VPC) を各 VPC で作成する 「VPC A」と「VPC C」の Subnet の経路を修正し、 NAT Gateway を削除する 一度ここで経路確認を行ってみる Transit Gateway のルートテーブルに「0.0.0.0/0」を追加する Reachability Analyzer での動作

                                                                          AWS Transit Gateway を用いて NAT Gateway を集約し、コストを最適化するための経路設計 - サーバーワークスエンジニアブログ
                                                                        • チームトポロジーを読んだ感想

                                                                          はじめに 最近、チームってどんな構成にするのがいいんだろうか?と考えたことがあって、参考になる情報がほしかったのでこの本を読んでみた。この本は組織設計について書かれた本で、次のようなことが書かれてる。 どうチームを構成するか? チーム間のコミュニケーション(インタラクション)をどう設計するか? 定義したチーム構成やコミュニケーションの設計をどう変化させていくべきか? チームファースト、コンウェイの法則などの考え方をベースにこういった問いに答えており、具体的な事例も紹介されつつ説明されていたので、わかりやすかった。 個人的に特に知りたかったことが、1つのチーム内で複数のプロダクトを扱うときのアプローチ方法だった。この本はコンウェイの法則推しなので、境界線をみつけてチームを分けた方が良さそうだと思いつつ、よく読んでみると組織のサイズやソフトウェアの規模が小さい場合は、必ずしもこの法則に従わなく

                                                                            チームトポロジーを読んだ感想
                                                                          • DDDを実践するための手引き(ドメインイベント編)

                                                                            ドメインイベントを扱う実装は様々な流派があり、本記事ではなるべく一般的なものを取り上げたいと思っていますが、あくまで一例です。 実装例は Kotlin を使っていますが、他の言語でも同様の実装が可能です。 ドメインイベントとは イベントとは「過去に発生した出来事」であり、ドメインイベントは「ビジネスドメイン上で発生した重要な出来事を表すメッセージ」です。 (例: チケットが割り当てられた、注文がキャンセルされた) ドメインイベントはシステム内の状態の変化(=集約の状態の変化)を表現するものであり、通常は集約がドメインイベントの発生源となります。 用途 ドメインイベントは主に次のような目的で使用されます。 1. イベントの発生を起点に、別の処理をトリガーする ドメインイベントは、システムの異なる部分間を連携させるために使用されます。 ドメイン上の要件として「...したら...する」のようなフ

                                                                              DDDを実践するための手引き(ドメインイベント編)
                                                                            • Terraformを採用する前に知っておくべき6つの課題

                                                                              こんにちは、株式会社FIXER@名古屋オフィスの村上です。 クラウドインフラのシステム基盤構築にTerraformを採用している組織は多いですね。村上自身は特別な要件がない限り、”どのクラウドを使う場合でも” システム基盤構築にはTerraformを使いたいと考えているインフラエンジニアです。 私は、Terraformを3年間使用する中で、6つの課題に直面してきました。 このブログでは、実際の開発現場でどのような問題が起こったのか、またその問題をどのように回避、あるいは対策すべきだったのかについて、綴ってみました。 【課題1】プロジェクト始動直後にTerraform開発を開始したため、後工程で改修タスクが多発 SI案件では、クライアントが提案する調達要件RFPをもとに、ITベンダーがヒアリングを行いながら要件定義を進めていきます。 要件定義の一例として以下のようなものがあります。 クラウド

                                                                                Terraformを採用する前に知っておくべき6つの課題
                                                                              • 「コードがむずかしい」からの脱却

                                                                                コード品質向上のいろは - 先達に学ぶ実践例 Lunch LT https://findy.connpass.com/event/300912/

                                                                                  「コードがむずかしい」からの脱却
                                                                                • Modular Monolith はどの辺りから考え始めるものなのか - id:onk のはてなブログ

                                                                                  モノリスでは大変なので、マイクロサービスやモジュラーモノリスにして認知負荷を減らしたり、生産性の劣化に抗いたいという考え方がある。 モジュラーモノリスとは モジュラーモノリスについては、だいたい infoq.com のモノリスシリーズ(?)を読めば良いんじゃないか。 有名なのは Shopify のヤツ。 モノリスとマイクロサービスの中間にある、1 アプリケーションなんだけどモノリスでは無い、アプリ内でモジュール分けされているアーキテクチャのこと。app/ の直下に MVC を置くんじゃなくて、COMPONENTS (例えば billing)/app/ の下に MVC を置く、ようなイメージ。 モジュラーに移行するタイミング 僕の感覚だと、数百モデルは全然モノリスで扱えると思っている。少なくとも 300 models 程度でモジュラーにしていく必要はまったく感じない。 世の中で見つけたモデル

                                                                                    Modular Monolith はどの辺りから考え始めるものなのか - id:onk のはてなブログ