並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 727件

新着順 人気順

設計の検索結果241 - 280 件 / 727件

  • ADR を1年間書いてみた感想 - 一休.com Developers Blog

    宿泊開発チームでエンジニアをしている @kosuke1012 です。チームで ADR を書き始めて1年くらい経ったので、その感想を書いてみたいと思います。 この記事は 一休.comのカレンダー | Advent Calendar 2023 - Qiita の13日目の記事です。 ADRとは アーキテクチャ・ディシジョン・レコードの略で、アーキテクチャに関する意思決定を軽量なテキストドキュメントで記録していくものです。 出典はこちらで、 Documenting Architecture Decisions わかりやすい和訳は以下の記事が、 アーキテクチャ決定レコードの概要  |  Cloud アーキテクチャ センター  |  Google Cloud アーキテクチャ・デシジョン・レコードの勧め | 豆蔵デベロッパーサイト アーキテクチャの「なぜ?」を記録する!ADRってなんぞや? #設計 -

      ADR を1年間書いてみた感想 - 一休.com Developers Blog
    • 開発生産性を上げるために開発をする前に考えていること - Findy Tech Blog

      こんにちは。Findy Freelanceの開発チームでエンジニアをしている2boです。 この記事では私が開発生産性を上げるために開発をする前に考えていることについて書きます。 ここで「開発をする前」というのは次のようなタイミングを指します。 PdMなどから新規施策の仕様について相談を受けたとき 起票された開発Issueを最初に確認するとき 自分がIssueを作成するとき なぜこのタイミングで考えるかというと、開発を進める上での方向性を間違える可能性を減らし後から軌道修正をしやすくするためです。 なおこの記事においては、開発生産性を「開発成果物の提供価値を投入リソースで割ったもの」とします。 いくら頑張って開発をしても、そもそもやるべきことの方向性を大きく間違えると提供価値が0に近づくため開発生産性が低下します。 特に開発が高速なチームで方向性を誤ると高速に間違った方向へ進んでしまうことに

        開発生産性を上げるために開発をする前に考えていること - Findy Tech Blog
      • 失敗例から学ぶSOLID原則

        PHPカンファレンス北海道2024 https://fortee.jp/phpcon-hokkaido-2024/proposal/7d223fcd-ecc8-4cfb-92b2-4987749463d8 Lについての補足記事 https://asumikam.com/entry/2024/01/12/144338 Sについての補足記事 https://asumikam.com/entry/2024/01/13/152513

          失敗例から学ぶSOLID原則
        • 新人プログラマ アンチパターン:原理原則多すぎて脳みそOOMエラー - Qiita

          この記事で伝えたいこと(忙しい人向け) 新人ほど「保守していく」ことの感覚が腹落ちしにくいのではないか説 我々は保守しやすいコードを書くべきであり、保守しやすいコードを達成するための手段として原理原則やデザインパターンが存在している 保守ってなんで必要なんだっけ?という体系的な理解を持ったうえで、具体的なテクニックを学んでいくことが大事 // 追記(2023/12/9) なんとミノ駆動 さんにコメントいただけました。 もちろん良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方は読んで影響を受けてます。 とってもうれしい。 想定読者 新卒 ~ 2年目くらいまでのプログラミング初心者 Webアプリの保守開発をしているエンジニア 3ヶ月前くらいの自分(未経験からエンジニアになって1年くらい) こんなことないでしょうか 先輩などから原理原則の観点を共有してもらったり、

            新人プログラマ アンチパターン:原理原則多すぎて脳みそOOMエラー - Qiita
          • あなたのPHPアプリ、ログはでてますか?あるいはログをだしてますか? / Are you writing a log? Or just out a log?

            PHPカンファレンス福岡 2023 2023/06/24 uzulla

              あなたのPHPアプリ、ログはでてますか?あるいはログをだしてますか? / Are you writing a log? Or just out a log?
            • どのレイヤー(層)でトランザクションを実装すべきか

              このように、層ごとに関心事の分離を行うことで、保守性の高い(変更容易性や再利用性等)アプリケーションを実現できます。 しかし、「トランザクション」においてはどうでしょうか。 トランザクションはビジネス領域においても、技術領域においても関心事がある内容です。 そういう曖昧なものは「ひとまず usecase 層に入れてしまえ」という方針になりがちです。 ですが、DB 固有の知識を usecase 層の関心事にしてしまっては、関心事の分離をするメリットが得られません。 そのため、関心事の分離を実現しつつトランザクション実装をする方法を模索してみました。 前提 1. クリーンアーキテクチャを採用している(オニオンアーキテクチャやレイヤードアーキテクチャも含む) そもそもビジネス知識と技術知識を分離していないアーキテクチャを採用している場合、メリットは得られません。 そのため、オニオンアーキテクチャ

                どのレイヤー(層)でトランザクションを実装すべきか
              • UnrealEngine を使って注文住宅を建てたお話 - Qiita

                はじめに この記事はUnreal Engine (UE) Advent Calendar 2023の6日目の記事になります。 Unreal Engineを使用して注文住宅の建築を行う需要は、一般的にはあまり高くないかもしれませんがぜひ読んで頂けると幸いです。 また注文住宅とはなんやねんと思った方はこちらのリンクから見てみてください。 凄く簡単にいうと自分で自由にカスタマイズした家を建てる事です。 UnrealEngineを使用して家造りをしようと思ったきっかけ 注文住宅を建てるにはハウスメーカーと契約する必用があります。 契約したハウスメーカーにある程度の希望を出して仮で間取りや壁紙を選んでもらうと、The普通といった感じで量産型のようなものが提案されました。 やはり自分達で色々と考える必用があり、その中で提案もたくさんする必要があるんだなと実感し始めました。 そこで普段使用しているUnr

                  UnrealEngine を使って注文住宅を建てたお話 - Qiita
                • 日々の意思決定の積み重ねを記録するアーキテクチャ・デシジョン・レコード / Architectural Decision Records

                  2023年7月27日「Developers Summit 2023 Summer」にて 「日々の意思決定の積み重ねを記録するアーキテクチャ・デシジョン・レコード」というタイトルで「ADR」について発表した資料です

                    日々の意思決定の積み重ねを記録するアーキテクチャ・デシジョン・レコード / Architectural Decision Records
                  • ネットスラング「デザインの敗北」は「駄目なデザインをした結果」なので間違った日本語という指摘 「敗北のデザイン」がしっくり来るの声も

                    綾塚 祐二 @ayatsuka_yuji 念のため補足。「デザインの敗北」だと「『デザイン』は悪くない/良いのに、他の要素に負けた」と解釈する/される余地がありますが、これは「ここに(男性用)トイレがあることを示す」という本来果たすべき機能が弱く他の施策が必要になっているので、「デザイン(設計)がよくない」というべきなのです。 2023-09-27 00:03:11 綾塚 祐二 @ayatsuka_yuji さらに補足。例えば設計(デザイン)した蓋が(加工のミスなどでなく)きちんと締まらないものだったらそれは「設計ミス」と言われます。この(元の)トイレのサインも「機能として不十分」という点でそれに類するものです。それゆえ(婉曲的な表現でなく明確に)「デザインがよくない」と評価されるべきです 2023-09-27 10:46:45

                      ネットスラング「デザインの敗北」は「駄目なデザインをした結果」なので間違った日本語という指摘 「敗北のデザイン」がしっくり来るの声も
                    • 一休.comのアーキテクチャ変遷から考えるサービス分割の勘所

                      techplayの登壇資料です。 https://techplay.jp/event/908123 #ikyu_TP

                        一休.comのアーキテクチャ変遷から考えるサービス分割の勘所
                      • 単体テストを書かない技術 #phpcon_odawara

                        PHPカンファレンス小田原2024での発表資料です https://fortee.jp/phpconodawara-2024/proposal/4d39c7ef-058c-4648-b1d7-5510497e0d81

                          単体テストを書かない技術 #phpcon_odawara
                        • モジュラモノリスにおけるトランザクション設計の考え方 / transaction design on modular monolith

                          モジュラモノリスにおいてトランザクションはどうあるべきなのかについて整理している資料が少ない気付きがあったので「簡易的に」整理しました

                            モジュラモノリスにおけるトランザクション設計の考え方 / transaction design on modular monolith
                          • インフラマネージャー厳選!10年使える知識が身につくおすすめ書籍10選 - RAKUS Developers Blog | ラクス エンジニアブログ

                            ラクスでは多くのSaaSプロダクトを開発・運用しており、オンプレミスまたはクラウドを適切に選択してインフラ基盤を構築しています。 そのインフラを担うのが、ラクスのインフラ開発部です。 今回はインフラ開発部のマネージャーが厳選した、インフラエンジニアにおすすめの書籍10選をご紹介します。 それぞれの書籍に推薦コメントを記載していますので、是非ご参考になさってください。 選定基準は以下の通りで、今後インフラを深く理解し実力をつけていきたい方にも最適です。是非ご覧ください。 「すぐに役に立つがすぐに廃れる知識ではなく、10年以上使える書籍」 「分かりやすい本ではなく、難解ではあるがきちんと原理・原則を学べる書籍」 目次 目次 Operating Systemを理解しよう 詳解 Linuxカーネル 第3版 DNS & BIND 第5版 トラブルシューティングを理解しよう 詳解 システム・パフォーマ

                              インフラマネージャー厳選!10年使える知識が身につくおすすめ書籍10選 - RAKUS Developers Blog | ラクス エンジニアブログ
                            • 「VLC」に2,000円を寄付したらなんと200,000円も請求されてしまった!/詐欺? 乗っ取り? 真相は……多国通貨決済でときどきあるバグ【やじうまの杜】

                                「VLC」に2,000円を寄付したらなんと200,000円も請求されてしまった!/詐欺? 乗っ取り? 真相は……多国通貨決済でときどきあるバグ【やじうまの杜】
                              • 【ソフトウェア設計】モジュールをどう分割するのか?

                                はじめに 前々回や、前回に引き続き、ソフトウェア設計の指針に関する話をしたいと思います。 関数やクラス、そしてサービスなどシステムの塊の単位をモジュールと呼び、モジュールを作る事で、認知負荷を下げ複雑性と戦うという話をしてきました。では、モジュールは「いつ」分割するのが良いでしょうか? また、他にも共通モジュールを不用意に作ってしまって苦労した人も多いのでは無いでしょうか? 今回はそのあたりの話をしていきます。 TL;DR 以下があればモジュール設計を見直す 単純な要件/普段の利用に対して、タイプ量や約束事が多い 共通モジュールが「使われ方」に依存する モジュールの役割を一言で説明できない コード管理や性能/データ整合性など利用に際してのペナルティが高い 分割 is NOT 正義 - FizzBuzz Enterprise Edition 複雑性を排除するためにモジュール分割をすることは重

                                  【ソフトウェア設計】モジュールをどう分割するのか?
                                • フロントエンドのディレクトリ設計思想

                                  はじめに フロントエンドのディレクトリ構成、世の中に色んな「推し」が有って悩みますよね。 例えば、、、 さらに最近は、App Directoryの登場や、それに合わせたNext.js公式の「推し」構成がドキュメント化されたりと、さらに色々なパターンが出てきています。 本記事の趣旨 本記事では、具体的な構成そのものではなく、 様々ある構成を横串で見通して整理できる設計思想を紹介します。 新しい推し構成の紹介ではなく、構成を考えたり決めたりするときに役立つ抽象的・汎用的な指針を提供できればと考えています。 基本となる考え 分割の方向 一般的に、アーキテクチャにおける分割には2つの方向が有ります。 (出典も良書なのでリンクを貼っておきます: https://www.amazon.co.jp/dp/4873119820) これはディレクトリにおいても同じだと思っていて、筆者は分かりやすさのために

                                    フロントエンドのディレクトリ設計思想
                                  • Feature Flag Deep Dive

                                    チーム勉強会で Feature Flag とトランクベース開発の話をしました (追加訂正と書かれているスライドは、勉強会後議論した結果を反映したものです)

                                      Feature Flag Deep Dive
                                    • そりゃスパゲティーコードにもなるよな - orangeitems’s diary

                                      お気の毒に・・。 www.nikkei.com スパゲティコードになるプロセスはよーくわかる。 仕様変更に次ぐ仕様変更、当初の想定が間違っていたことのフォローアップ、一つ一つ丁寧に進めていきつつ、当初の見積工数を超えないようにこれまでの成果物をできるだけ活かしたら、最終的にできるのはスパゲティーになる。 スパゲティーを作る人が悪いんじゃなくて、オーダーした人がスパゲティーを望んだからだとしか言いようがない。スパゲティーを作って欲しいと言っている人に、スパゲティー以外を料理する方法が思いつかない。麺類なら許されるのか?。 大企業のプロジェクト運用体制に、1つ起因する問題もある。長期に運用するシステムの場合、同じ担当者がずっと担当し続けることが難しいことだ。人が入れ替わる前提だと、毎回引き継ぎのタイミングで過去の情報を振り返らないといけない。この時ほぼ情報は抜け漏れる。どんなに優秀な人が担当し

                                        そりゃスパゲティーコードにもなるよな - orangeitems’s diary
                                      • サブスクリプション機能制御の設計における勘所 - inSmartBank

                                        こんにちは、スマートバンクでアプリエンジニアをしている ロクネム です。 弊社では B/43という家計簿プリカアプリ を提供しており、つい先日サブスクリプションサービス「B/43プラス」をリリースしました。 このようなサブスクリプションを提供するサービスにおいては、そのサブスクリプションを利用しているユーザーのみが特定の “機能” を使用できるように “制御” する必要があるかと思います。 このサブスクリプションの機能制御を実装するにあたって、「サブスクリプションが有効ではない場合は機能を制限する」という設計では実は不十分で、その他にもさまざまな要件を考慮した上でより柔軟な設計を行う必要があります。 本記事では、このようなサブスクリプション機能制御の設計における勘所について、B/43プラスを例にご紹介します。 ※ 本記事は B/43 Tech Talk 〜 Fintech×サブスクリプショ

                                          サブスクリプション機能制御の設計における勘所 - inSmartBank
                                        • 新規サービスのバックエンド開発で3ヶ月経ったので、試した技術や取り組みをまとめてみた

                                          こんにちは、AIShift バックエンドエンジニアの石井(@sugar235711)です。 AIShiftでは去年の11月からAI Worker[1]という新しいサービスの開発が始まりました。(以下AI Worker) 本格的に開発が始まり3ヶ月弱経ったので、その間に試してきた技術やチームの取り組みについてまとめてみたいと思います。 はじめに この記事では、AI Workerのおおまかな概要・設計を説明し、それらのバックエンドを実現する上でどのような技術を試してきたのか、技術以外でのチームの取り組みについてまとめます。 少し分量が多いので、ライブラリについての情報を求めている方は、目次から気になる部分を読んでいただければと思います。 何を作っているのか ざっくりまとめると、Microsoft Teams/Web上で動くAIを活用した業務改善プラットフォームを作成しています。 GPTとRAG

                                            新規サービスのバックエンド開発で3ヶ月経ったので、試した技術や取り組みをまとめてみた
                                          • 子供の運動会で【マツケンサンバ玉入れ】という悪魔合体系のような競技があった「天才演出家現る」

                                            歩くCSS設計完全ガイド / HubSpot Tech Ninja @assialiholic 子の運動会に行ったら「マツケンサンバ玉入れ」なる悪魔合体系の競技があって、幼稚園の先生が中央で玉入れのカゴを背負ってひたすらマツケンサンバを踊り、園児は動くカゴを狙って玉を入れつつ、サビで玉入れを中断して園児もサンバを踊るというエンタメの鬼才が考えたとしか思えない内容で非常に良かった 2023-09-09 00:38:26 ぢべた @jibetaP これ、玉入れだけにすると幼稚園児の体力だと全然入れられなくて楽しくない!やだ!ってなるお子さんも相当数出るよね、という問題を解決することができるから、考案した人はよく考えてると思う。 twitter.com/assialiholic/s… 2023-09-09 08:31:10 🧙‍♂️やみ仙人かいぽん⚔️ぱぱら快刀🌻💙 @kenji_kaid

                                              子供の運動会で【マツケンサンバ玉入れ】という悪魔合体系のような競技があった「天才演出家現る」
                                            • 20231206_設計ドキュメント腐る問題、Git管理で運用してみた本当のところ

                                              設計ドキュメント腐る問題、 Git管理で運用してみた 本当のところ 2023.12.5 真野隼記 ドキュメント管理を制する 陳腐化を防ぐための実践事例 Lunch LT

                                                20231206_設計ドキュメント腐る問題、Git管理で運用してみた本当のところ
                                              • 和田 卓人さん(t_wadaさん)に「予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント」を社内で講演いただきました! | Wantedly Engineer Blog

                                                こんにちは、ウォンテッドリーDev Branch VPoE 室長の髙橋です。 ウォンテッドリーの開発組織であるDev Branchでは、外部から有識者を招いて勉強会を開催したり、技術顧問として知見を取り入れるなど、プロダクト開発により強い組織となるためにさまざまな施策を行っています。 今回、「テスト書いてないとかお前それ @t_wada の前でも同じ事言えんの」 でおなじみのt_wadaさん(和田 卓人さん、以下和田さん)に「予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント」をウォンテッドリー向けにカスタマイズして講演いただきました。 このストーリーでは、今回の講演の経緯から社内の反応・Q&Aまで、講演に関する詳細をご紹介いたします。 社内講演のきっかけ事の発端は、弊社のVPoEである要(X : @nory_kaname)より、外部エンジニアを招いて勉強会を開催する旨の問いかけ

                                                  和田 卓人さん(t_wadaさん)に「予防に勝る防御なし - 堅牢なコードを導く様々な設計のヒント」を社内で講演いただきました! | Wantedly Engineer Blog
                                                • dbtで見やすいER図を生成する - yasuhisa's blog

                                                  背景: dbtを使っていてもER図は欲しい! どうやってER図を生成するか どうやってER図を見やすくするか まとめ 背景: dbtを使っていてもER図は欲しい! dbtはモデル間のリネージなど可視化が得意なツールではありますが、万能なわけではありません。モデルの生成過程などはリネージで担保できますが、分析時に「どれとどのモデルがJOINできて、JOINする際のキーはこれを使って」というER図で扱うような可視化はディフォルトではできません。 DWHを作っている側からすると「このテーブルはあの辺のテーブルと一緒に使うと便利で、いつもあのキーでJOINして」というのが頭の中に入っていることが多いため、ER図がなくてもどうにかなることも多いでしょう。しかし、分析に慣れていない人や分析に慣れている人であっても、普段と異なるドメインのテーブルを触るときはER図が提供してくれる情報は有用です。ちなみに

                                                    dbtで見やすいER図を生成する - yasuhisa's blog
                                                  • 実践API設計: 柴田 芳樹 (Yoshiki Shibata)

                                                    4月に発売された「WEB+DB PRESS Vol.134」で特集1「実践API設計」を執筆していますが、そこから部分的に紹介します(目次は、こちらです)。 第1章「優れたAPI仕様とは何か --- よくある問題と記述すべき事柄」の冒頭で次のように述べています。 今日、多くの企業がWeb サービスとしてさまざまなサービスを提供しています。Webサービスは、iOS、Android、ブラウザといったフロントエンドと、それらに対して機能を提供するバックエンドサービスから構成されます。バックエンドサービスが提供するさまざまな機能はAPI (Application Programming Interface)として定義され、フロントエンドから呼び出されます。フロントエンドは、バックエンドサービスが提供する機能を使ってユーザーへ提供する機能を実現します。 定義されたAPI を介することで、フロントエン

                                                      実践API設計: 柴田 芳樹 (Yoshiki Shibata)
                                                    • SOLID原則を理解し、JavaScriptで実践するためのガイド - deve.K's Programming Primer - プログラミング初心者のための入門ブログ

                                                      ソフトウェア開発者にとって、堅牢でテスト可能で拡張性があり、保守性の高いオブジェクト指向のソフトウェアシステムを設計することは重要です。 そこで登場するのがSOLID原則です。 SOLIDは、ソフトウェア開発中に生じるかもしれない特定の問題を解決するために5つの設計原則が組み合わさったセットです。 この記事では、SOLID設計の原則について詳しく学んでいきます。 具体的には、SOLID原則が何を意味しているのか、各部分がそれぞれ何を表しているのか、また実際のプログラム例を挙げながら現役のプログラマーが説明します。 さらに、JavaScriptを使ってこれらの原則を実装する方法も紹介します。 SOLID設計原則とは? 単一責任原則 (SRP) Open/Closed原則 リスコフ置換原理 (LSP) インターフェース分離原則 (ISP) 依存関係逆転の原則 最後に SOLID設計原則とは?

                                                        SOLID原則を理解し、JavaScriptで実践するためのガイド - deve.K's Programming Primer - プログラミング初心者のための入門ブログ
                                                      • 【ソフトウェア設計】例外処理を考える

                                                        はじめに 最近書いてるソフトウェア設計シリーズです。今回は例外に関して。以前、以下のような記事を書いたのですが、もう少し深堀して書いてみました。 ちなみにソフトウェア設計シリーズは他には以下を書いています。 モジュールになぜ分けるのか? モジュール、依存、そしてカプセル化 モジュールをどう分割するのか? 簡潔さは力なり? 予測可能な振る舞いと簡潔さについて ドキュメントとしてのコメント TL;DR 例外は「原則」キャッチしない 業務例外や必ずハンドリングさせたい例外はOptionalなど戻り値の方が便利 だいたい以下の図が言いたい事のすべて 例外処理とは? 「例外処理(Exception Handling)」は言語に依らず普遍的な関心事です。端的に言えば例外処理は異常やシステムの動作に不備が発生した際の特別な分岐処理です。リカバリやリソースの解放、あるいはユーザへの通知などがありますね。

                                                          【ソフトウェア設計】例外処理を考える
                                                        • データ分析を始めるにあたり最低限知っておくべきこと|データ分析とインテリジェンス

                                                          まずやってみるのはいいけれども限度はあるはず。それはどこだサッカーに興味があるならば、ルールブックを熟読するよりも先にとにかくサッカーをやってみるのがいい、ということに反対する人はあまりいないと思う。 とはいえ全く何も知らないのではゲームが成立しなくなってしまうので、最低限知っておくべきことはあるはずだ。例えば、どうなったら得点になるのかは必須だろう。あとはゴールキーパー以外は手を使ってはいけないとか、範囲を出たらスローインになるとかだろうか。 では「データ分析」における「最低限知らないといけないこと」は何なのだろうか、と考えた内容をまとめた。 前提として、本記事の「データ分析」は「意思決定のための情報=インテリジェンスを作ること」に絞る。言い換えると、システムに組み込んで意思決定と行動を自動化するような「データ分析」は対象外とする。 インテリジェンスについての説明は「情報」には「データ」

                                                            データ分析を始めるにあたり最低限知っておくべきこと|データ分析とインテリジェンス
                                                          • オブジェクト指向の複雑性を軽減する、データ指向プログラミング入門

                                                            思った以上に反響をいただき嬉しく思っています。SNSやコメントで言及していただいている構造化プログラミングとの比較や現代的なOOP開発への適応記事を執筆予定です。記事が完成しましたら自分のSNSで共有いたしますので、もし良ければフォローしてお待ちいただけますと幸いです。(記事を書くのは思考が整理されて良いものですね。) TL;DR データ指向プログラミング(DOP) とは、データとコードを分割してアプリケーションを設計・実装するプログラミングパラダイムのこと。 DOPの実装は、以下の原則に従う。 コードとデータを分離する 汎用的なデータ構造でデータを表現する データをイミュータブルなものとして扱う データスキーマとデータ表現を分離する 個人的にDOPは、バックエンドを宣言的プログラミングっぽく書くための現実的な解だと捉えています。実装の詳細は翔泳社より出版されている「データ指向プログラミン

                                                              オブジェクト指向の複雑性を軽減する、データ指向プログラミング入門
                                                            • 「共通基盤」を超えよ! 今、Platform Engineeringに取り組むべき理由

                                                              OpenShift.Runで登壇した資料です。

                                                                「共通基盤」を超えよ! 今、Platform Engineeringに取り組むべき理由
                                                              • ServerlessDays Tokyo 2023が最高すぎた! - Qiita

                                                                はじめに 4年ぶりの開催となるServerlessDays Tokyoに参加してきました https://tokyo.serverlessdays.io/ 「もっとうまくやりたい、誰よりも上手にやりたい」 というメッセージとともに開催されたServerlessDays Tokyo 2023ですが、超豪華なスピーカー陣を国内外から集め、ここ数年のServerlessの成熟と未来をしっかりと味わえる濃いイベントです。 1日目がセッション、2日目がワークショップということで、熱力の高いうちに激熱なサービスを素早く学べる構成になっていて、とても充実した内容でした。 所感 4年前のServerless LambdaをはじめとするFaaSをいかに簡単にデプロイ、運用していくかというツール系の話と S3やSQS,SNSなどのFaaS以外のServerlessなサービスの組み合わせでLowOpsな仕組みを

                                                                  ServerlessDays Tokyo 2023が最高すぎた! - Qiita
                                                                • 空の配列に対するmaxは何を返すか - きしだのHatena

                                                                  ちょっと前に「配列中のすべての要素が条件を満たすかどうか判別する関数で、空の配列はTrueを返すべきかFalseを返すべきか」のような話が話題になってました。 まあこれは「Trueを返す」が答えなわけですが、では「配列中の最大値を返す関数で空の配列の場合は何を返すか」が気になりました。 「配列中のすべての要素が条件を満たすかどうか判別する関数」について言えば、簡単に言えばこんな感じ。 まず、配列のすべての要素が偶数であるかどうか判別する関数を考えます。 void main() { int[] data = { 23, 44, 12, 98, 5 }; System.out.println(allEven(data)); } boolean allEven(int[] data) { for (int n : data) { if (n % 2 != 0) return false; } r

                                                                    空の配列に対するmaxは何を返すか - きしだのHatena
                                                                  • 削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターンの紹介」

                                                                    この記事は 株式会社ログラス Productチーム Advent Calendar 2023 13日目の記事です。 はじめに 〇〇を削除できるかどうかのビジネス処理、皆さんはどう実装していますか? 同僚の話題になった記事でも削除の認可処理をどこに記述すべきか?は難しいと説明されています。今回はお題は認可っぽいもので書きますが広範に「削除ができるかどうか?」のビジネスロジックをドメイン層にどう閉じ込めるかの便利な実装パターンを紹介します。 削除処理のビジネスロジックの取り扱いは難しい 削除処理のビジネスロジックの実装はシンプルだけど更新処理や作成処理と比べて意外と難しいです。 それはなぜかというとドメインオブジェクト内の実装に削除処理を書くことができないからです。 例えば権限に管理者と一般ユーザーの二つの権限があるとします。

                                                                      削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターンの紹介」
                                                                    • ユーザーストーリーマッピング

                                                                      JaSST 23 Tohoku https://www.jasst.jp/symposium/jasst23tohoku.html

                                                                        ユーザーストーリーマッピング
                                                                      • 仕事を読み解くキーワード:納得感のある音を鳴らす|採用情報|任天堂

                                                                        ゲームの世界で鳴るさまざまな音は、サウンドデザイナーとサウンドプログラマーが協力して作り上げています。たとえば、オブジェクト同士が接触したときに材質や形状、衝撃の強さなどに応じて変化する音になるよう、サウンドデザイナーが音のデータを作成し、サウンドプログラマーがそのデータを鳴らします。『ゼルダの伝説 ティアーズ オブ ザ キングダム』では、私はサウンドプログラマーとして、サウンドデザイナーが作りだす多彩な音を、リアリティを感じられるように鳴らす役割を担いました。 このゲームには、さまざまな種類の材質や形をしたオブジェクトが登場します。プレイヤーはこれらを自由に動かせるだけでなく、複数のオブジェクトをくっつけることができるため、自由な発想で武器を作ることも、乗り物を作って動かすこともできます。そして高い自由度があることで、私たち開発者の想像を超える遊び方が生まれることもあります。 開発を進め

                                                                          仕事を読み解くキーワード:納得感のある音を鳴らす|採用情報|任天堂
                                                                        • DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁

                                                                          "Object-Oriented Conference 2024" の登壇資料です。 https://ooc.connpass.com/event/305241/

                                                                            DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
                                                                          • アーキテクチャの進化はドメインイベントが起点になる - KAKEHASHI Tech Blog

                                                                            こちらの記事はカケハシ Advent Calendar 2023 Part2の24日目の記事になります。 adventar.org はじめに 反復的な開発は、変更容易性の高いソフトウェアが不可欠です。ソフトウェア開発の経験がある方なら、デリバリ後の洞察や市場環境の変化から、新しい機能の追加やアーキテクチャの進化の必要性に直面したことが一度はあるでしょう。 私自身、要求分析手法やSOLID原則等の技法を取り入れ、変更容易性に対応する多くのプロジェクトに参加しました。しかし、どれだけ優れた手法や技法を持っていても、変更が難しい要求が出てくることは避けられません。その際、「過去の出来事」を正確に記録していれば、後から見返して問題解決が容易だったと感じることがよくあります。 ドメイン駆動設計(DDD)では、「過去に起こった出来事」を表現するドメインモデルを「ドメインイベント」と呼びます。変更容易性

                                                                              アーキテクチャの進化はドメインイベントが起点になる - KAKEHASHI Tech Blog
                                                                            • タイミーのRailsアプリをシニアなエンジニアが採点したらだいぶ辛口だった - Timee Product Team Blog

                                                                              この記事はTimee Advent Calendar 2023シリーズ 1の1日目の記事です。 はじめに こんにちは、タイミーでバックエンドエンジニアをしている須貝(@sugaishun)です。昨年は弊社でアドベントカレンダーに取り組んだか覚えていないのですが、今年はなぜかいきなり3トラックで臨むということで、非常に勢いがあるなと思いました。量と勢いで攻めていくところが弊社らしいなと感じています。全て完走できると良いですね。 さて私はその中のひとつのトップバッターということで、タイミーのRailsアプリケーションについて弊社のシニアなエンジニアたちと雑談した内容を座談会風にお伝えできればと思います。事の発端は弊社Slackのバックエンドエンジニアが集まるチャンネルで「タイミーのRailsアプリケーションの健康度はどのくらいなのか?」という会話をしたことでした。その時の私の感想は「人によって

                                                                                タイミーのRailsアプリをシニアなエンジニアが採点したらだいぶ辛口だった - Timee Product Team Blog
                                                                              • 設計の知識と技能で駆動するソフトウェア開発

                                                                                Object Oriented Conference 2024 登壇の機会をいただいたので、ここ数年、設計について考えていることを、言語化してみました。 はじめに 設計と開発プロセスの関係性 ソフトウェア設計の知識と技能 ① ソフトウェア設計の基礎知識 a. 基本課題 b. 解決のアプローチ c. モジュール化:基本となる4つの技法 ② モジュール化 a. モジュールの分類 b. オブジェクト指向プログラミングのモジュール化 c. ドメイン駆動設計のモジュール化 ③アプリケーションのモジュール構成(参照モデル) コア(中心) ポート(境界) アダプタ(周辺) ④モデル駆動設計 全体 事業活動、要件、アーキテクチャ コア(中央) 業務ロジック、ドメインモデル 業務機能、アプリケーションサービス アダプター(周辺) 記録モデル、データベーススキーマ 連係モデル、プロトコル設計 対話モデル、イン

                                                                                  設計の知識と技能で駆動するソフトウェア開発
                                                                                • DDDやってみたら 実装以前の領域での学びが深かった話

                                                                                  ふりかえりでふりかえることしかできなかったジュニアチームが、次の打ち手を出せるチームになるのにやったこと

                                                                                    DDDやってみたら 実装以前の領域での学びが深かった話