タグ

設計に関するcpwのブックマーク (26)

  • ヨドバシの中の人が語る、開発中のヨドバシAPIが目指す機能、仕組み、そしてセキュリティ(前編)

    ヨドバシカメラは現在、お客様との接点をドメインとして設計する新たなAPIを開発中であることを、クリエーションラインが主催し10月27日に開催されたイベント「Actionable Insights Day 2023」で明らかにしました。 REST APIとして実装される予定のこのAPIについて同社は「ヨドバシスタッフの魂を注入する」としており、厳重なセキュリティやユーザーフレンドリーで高い利便性などが追求されています。 ヨドバシAPIがどのように設計され、開発、実装されていくのか。その中味が紹介されたセッションの内容を見ていきましょう。 記事は前編と後編の2の記事で構成されています。いまお読みの記事は前編です。 疎結合なのに一体感、ヨドバシAPIがつなぐ社会 株式会社ヨドバシカメラ 代表取締役社長 藤沢和則氏。 ヨドバシカメラの藤沢と申します。日はまずこの貴重な機会をいただきありがとう

    ヨドバシの中の人が語る、開発中のヨドバシAPIが目指す機能、仕組み、そしてセキュリティ(前編)
    cpw
    cpw 2023/12/04
    ヨドバシにあるものは信頼できるところがAmazonや楽天とは違うよね。信頼は簡単には手に入らないから大事にしてほしい。
  • DB に JSON を保存したいときに Protobuf を使うと便利 #LayerXテックアドカレ - LayerX エンジニアブログ

    こんにちは。バクラク事業部 Enabling チームの @izumin5210 です。最近「HUNTER×HUNTER」の既刊を全部読みました。 この記事はLayerXテックアドカレ2023の9日目の記事です。 前回「1人目データアナリストとしてデータチームに異動しました 」 次回「Slack × Zapier × MiroでKPTでの振り返りをラクにする」 RDB や KVS などのデータ保存先において、データを正規化せずにそのまま保存したいと思うことはありませんか? 8月にリリースされた「バクラク請求書発行」というプロダクトには「柔軟なレイアウトカスタマイズ」機能が搭載されています。リンク先の画面操作イメージを見ていただくと、この機能の雰囲気を理解していただけると思います。この機能が扱うレイアウトデータはまさに「関係の正規化をせずに保存したいデータ」でした。 bakuraku.jp こ

    DB に JSON を保存したいときに Protobuf を使うと便利 #LayerXテックアドカレ - LayerX エンジニアブログ
    cpw
    cpw 2023/11/17
    JSONにしておけばSQL使える。それをしないのであれば、どう格納してもいいけどそもそもRDBに保存する必要あるんだっけ?というところから考え直した方がいい。あまり独自の考え方を入れないほうが良い思う。
  • 1,000行で作るオペレーティングシステム

    「Writing an OS in 1,000 Lines」 というオンラインブックを書きました。ゼロから1,000行でOSを作るという内容です。 『自作OSで学ぶマイクロカーネルの設計と実装』 とは違い、最初の一歩の部分を重点的に解説しています。シンプルなモノリシックカーネル設計で、実装の解説だけでなくカーネルプログラミング特有の難しい部分、特に「カーネルをどうデバッグすれば良いか」をおさえた、初学者向きの内容になっています。 3日ほどあれば済むボリュームです。夏休みの自由研究がてら、ぜひチャレンジしてみてください。

    1,000行で作るオペレーティングシステム
  • アメリカの職場ではなぜドキュメントも無いのに人が去っても問題ないのだろう?|牛尾 剛

    アメリカの職場にいると、日にいるときよりも身近でレイオフだとか、職を変えるというのを頻繁に見かける。先日もそういう場面があったのだが昔日で働いていた時のことを思い出した。 ドキュメントを書く理由 日のソフトウェア企業にいたときは、「納品物であるから」という理由以外にも、「人がいなくなったときに会社が困るから」という理由でもドキュメントを書くことが推奨されていた。しかし、少なくとも今の職場ではそんな理由でドキュメントを書くのは推奨されていないのに、なぜ問題にならないのだろうとふと思った。 うちのマネージャは、バディ制ににして、みんな休暇できるようにしようとは言っているが、多分当に退職対策ではないと思う。 チームのメンバーが抜けたときも、「とても残念で、ワークロードをどうしようという問題はあるけど、彼女の門出を祝福しよう」言っていた。つまり、こちらでも「工数」は問題になるけど、「引継ぎ

    アメリカの職場ではなぜドキュメントも無いのに人が去っても問題ないのだろう?|牛尾 剛
    cpw
    cpw 2023/05/30
    コード読めば分かるし、ドキュメントとの乖離もないし良いことづくめ。分かりづらいところだけドキュメントあれば良い。ただこれが出来る人だけで構成されてる必要はある。
  • DB外の副作用をトランザクションから分離しよう / Isolate out-of-DB side effects from transactions

    gotanda.rb#52@オンライン "DB外の副作用をトランザクションから分離しよう"

    DB外の副作用をトランザクションから分離しよう / Isolate out-of-DB side effects from transactions
    cpw
    cpw 2023/04/21
    DBにメールを送るレコードを書き込むのがいいよ。同一トランザクションで扱えるようになる。んで、実際の処理を別ジョブで実施。責任範囲が分離されるからプログラムが劇的に書きやすくなるよ。
  • 雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発 - give IT a try

    (この話は最初Twitterに書こうと思ったけど、長くなるのでブログに書くことにしました) 僕はRSpecやMinitestでテストを書くのは得意ですが、常にテストファースト(TDD)で開発するとは限りません。 今業務でやってるタスクはこんなふうに進めてます。 雑に動くものを作る ↓ 見た目をきれいにする&機能を作り込む ↓ テストを書く ↓ リファクタリングする この順番で開発する理由を以下に述べます。 雑に動くものを最初に作る理由 最初は見た目とか、異常系とか、細かい仕様とかを無視して、正常系が一通り動くものを作ります。 これはこれから作ろうとしているものの認識が合っているかどうかをPO(プロダクトオーナー)に確認するためです。 実際に動く画面を見せると「こんな感じでOK」とか「ここはこういうふうにしたい」というフィードバックをもらうことができます。 また、開発者としてもコードを書きな

    雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発 - give IT a try
    cpw
    cpw 2023/02/16
    これ以外の手順でまともに作れる気がしない。要件の調整からやるからこうなるのだろうか。作るものが完全に決まっていればテストファーストできる。というかそういうものは最初にテスト書いてる気がする
  • ドメイン駆動設計(DDD)で開発されたシステムを5ヶ月保守開発した感想・学び - Qiita

    巷で、顧客の課題を解決しつつ、より良いシステムを作るための設計手法として、ドメイン駆動設計(DDD)が話題になっていると思います。 このドメイン駆動設計について、どのように実践するか、実際に実践してみてどう感じたか、という話はよく出ていますが、作られたシステムがその後どのようになったのか、保守開発した結果どう感じたのかの話はあまり聞かないな、と思ったので、自分の経験から「実際のところどうなんだ」というところを振り返ってみようかな、と思い、今回の記事を書きました。 目次 私が保守開発しているシステム 5ヶ月の間にやったこと 保守開発していて感じたこと よかったこと 改修時に修正箇所が特定しやすかった テストコードが書きやすく安心して保守することができた 成長できたという実感があった 難しかったこと、学び ドメイン知識は次第に流出していく 定期的なメンテナンスが大事 最後に おまけ エンジニア

    ドメイン駆動設計(DDD)で開発されたシステムを5ヶ月保守開発した感想・学び - Qiita
    cpw
    cpw 2022/12/03
    チーム5ヶ月で50チケット。ということは1ヶ月で10チケットか。毎回リリースしたと考えると2日に一回リリースくらいの頻度だ。
  • レイヤードアーキテクチャを振り返る - Sansan Tech Blog

    こんにちは、Sansanプロダクト開発部の清水です。 ある程度のアプリケーションの大きさだと当たり前に使われる事が多い「レイヤードアーキテクチャ」の自分が考える設計のポイントや、実際に運用する際のポイントについて書いてみようかと思います。 基的な話なので「今更かよ」って感じがしますが、実際に設計、運用する際には様々な考慮事項のあるものだと思うので、知ってる人にとっても復習にでもお役に立てればと思います。 そもそもレイヤードアーキテクチャって何? 概要 一言でいうと、アプリケーションを作る際にそれを構成する部品を、それぞれ責務が定義された論理的なグループにまとめて整理し、それぞれのグループ間のやり取りの仕方を決めておこうという事です。 このグループ間のやりとりにおいて、一方向かつ隣接するグループとしかやりとりを行えないようにする事が多く、層状になるのでレイヤードアーキテクチャと呼ばれます。

    レイヤードアーキテクチャを振り返る - Sansan Tech Blog
  • DDD本を読むためには前提知識が非常に多いよ - Qiita

    初めに きっかけ 新人研修中にDDDとか、PoEAAとかの話が少しだけ出ました。 ただ、イマイチわからないとの声が多数。 理由 なぜなら予備知識がたくさん必要だからです。(ほんとに多い) これはわからなくて当然。 そこで 独断と偏見で、予備知識となる用語を解説します。 偏見多いので、より正確な情報は、書籍やWebで調べてね。 この辺を説明します UML クラス図/シーケンス図 デザインパータン GoF/PoEAA 階層化アーキテクチャ DDDのサマリ 知らなきゃいけない知識が多くて面倒だね。 説明しないけど、オブジェクト指向やデータベースとかの知識も必要だよ。 説明前にDDDのページを見てみよう!!! DDDの最初のページ 「エリック・エヴァンスのドメイン駆動設計」より ??? よくわからないね さっきの図って何? 灰色の中心部分はソフトウェア設計のモデリングを表しています。 モデリ

    DDD本を読むためには前提知識が非常に多いよ - Qiita
    cpw
    cpw 2022/11/02
    DDDに関わると火傷するから近づかない方が良い思う。システムを作るためにDDDやるんじゃなくてDDDやるためにシステム作る感じになっちゃう。
  • Amazon VPCを「これでもか!」というくらい丁寧に解説 - Qiita

    はじめに AWS上で仮想ネットワークを構築できるAmazon VPCは、多くのAWSサービスが動作する基盤となる、非常に重要かつ多機能なサービスです。 多機能ゆえに公式ドキュメントやネット上の記事も断片的な機能の解説が多く、全体像を把握することが難しいサービスとも言えます。 そこで記事はVPCの全体像を理解できるよう、各機能のつながりや動作原理を丁寧に解説し、 「VPC界の百科事典」 (あくまで例えですが…笑) となるような記事を目指したいと思います。 【追記】 実践編の記事を追加しました VPCの実画面での構築方法は、以下の別記事にまとめました。「VPCを実際に触ってみたい!」という方は、こちらもご一読いただけると嬉しいです。 VPCとは 「Virtual Private Cloud」の略で、クラウド上に仮想的なネットワークを構築するためのサービスです。 例えば、オンプレ環境でWebア

    Amazon VPCを「これでもか!」というくらい丁寧に解説 - Qiita
    cpw
    cpw 2022/08/08
    フルスタックと謳う人でもネットワークまで理解してる人少ないよなー。特にレイヤー1,2,3あたり。なかなか難しい。
  • データモデルはドメインモデルに先行する - 設計者の発言

    関わっているあるプロジェクトで、Javaでのコンポーネントベース開発を進めるためのクラス図が出来上がりつつある。DDD(ドメイン駆動設計)に関心を持つ技術者にとってお手になるような端正なドメインモデルだ。それを眺めながら関係者がしみじみと感じていることがある。どんなに優秀なドメインエキスパートと組んだとしても、DDDにもとづいてこのモデルを「先に」生み出すことは不可能だっただろう。 どういうことか。我々はまず、泥臭い分析と設計を重ね、あるべきデータモデルを完成させた。そのうえで実装方式の専門家の協力を仰ぎ、クラス図が出来上がった。つまり、データモデルからドメインモデルが導かれたのであって、その逆ではない。じっさい、ドメインモデルからデータモデルを導くことが不可能であったことは、両者を並べたら一目瞭然なのであった。 これは重要な論点だ。データモデリングとドメインモデリングのどちらを先行させ

    データモデルはドメインモデルに先行する - 設計者の発言
    cpw
    cpw 2022/07/03
    最近はDBが軽視されることが多いように感じる。一番コアな部分なのにね。正直どんな言語でもFWでもDBがダメなら間違いなく最悪なシステムにしかならないのだからもっとDB設計を尊重すべき。
  • SPAはコストが高いのか | foo-x

    なぜ僕が「SPAはコストが高い」と考えているのか を読みました。 「反論お待ちしています」とのことなので、書いてみます。 結論としては、 コストが低いのは慣れているほうだよ。 どっちも使えるならSPAのほうが低いよ。 です。 前提 元記事で挙げられている前提をまとめます。 用語 SPAとは、クライアント側でビューを構築する方式を指す MPAとは、サーバ側でビューを構築する方式を指す 背景 エンジニアのスキルはあまり高くない 開発期間は1.5年未満 PMFを意識したフェーズであり、チャレンジを繰り返す ログイン機能が存在するサービスを作る コストの定義 エンジニアの採用のしやすさ サービス開発の 初速 サービス開発の 継続性 分業のしやすさ、手伝ってもらいやすさ web標準の挙動の実現のしやすさ セキュアなデータを流出する可能性の高低 バグがあった時の気づきやすさ / 対応のしやすさ ドキュ

    SPAはコストが高いのか | foo-x
    cpw
    cpw 2022/04/02
    必要な観点が抜けている。開発するアプリのサイズ、複雑度、特性、開発者の能力を考慮して決めないといけないと思う。極端な話時刻を表示するだけのアプリにSPAは使わないしね。あと、バージョンアップも考慮必要
  • 最近の海外DDDセミナーを聞いてみたら色々と常識が破壊された - Qiita

    TL;DR 最近の設計志向はイベント駆動がかなり中心になっている とくにDDD界隈がここまでイベント駆動一槍だとは思わなかった ストーリーを出発点にイベント駆動で設計を組み立てる「イベントストーミング」がかなり多くの場所で事例として取り上げられている はじめに 最近、洋書や動画の講演資料などいくつか海外の情報源に当たることがおおくなり、その中で「結構日でやられている取り組みとちがうなー」と考えることが多く、一旦そのあたりの差分をまとめておこうかと思いました。 ただの出羽守(あるいは鹿鳴館精神)ではなく、一つの潮流としてこんなのがあるってのを記述できればなと思います イベントが設計の基線となりつつある、、、のか? まず1つ目に驚いたのが、イベントが設計の中心になっている、そう感じる機会が多かったこと。 ここで言うイベントは、実践ドメイン駆動設計の中でも「ドメインイベント」として実装パタ

    最近の海外DDDセミナーを聞いてみたら色々と常識が破壊された - Qiita
    cpw
    cpw 2022/02/26
    イベント駆動はソースコードから呼び出し先が見えないんだよね。ソースコード外に仕様を記述するし、そのせいでIDEの機能は制限されるし、スタックトレースも途切れる。自分が設計するならそうしないかな。
  • なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita

    なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】UXUIDesignUIデザイン画面設計 1.はじめに エンジニアの私がデザインを気で勉強した結果、デザイナーとエンジニアはそもそも思考が大きく違っているということがわかりました。 今回は「それ」をデザインに苦手意識のあるエンジニア方にも理解してもらえたらと思い、わかりやすくまとめてみました。 2.アプリの画面デザインを考えてみよう まず、こんなアプリを考えてみてください。 フィットネストレーナーが使うアプリ トレーニングルームでお客様とお話しながら使う 端末はタブレット そして 会員の個人情報確認 前回までのトレーニング状況の確認 次回の予約受付 といったことをします。 使える情報としては、こんな感じです。 あなたならどう画面デザインをするか、もしお時間があったら考えてみてください。

    なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita
    cpw
    cpw 2021/12/10
    どんなリテラシーの人なのかタブレットはどのサイズか、そういっことも考えなきゃだし場合によってはAの方がいいってのも全然ある。どんな体制で開発していくかもある
  • 実はDDDってしっくりこないんです - タオルケット体操

    DDD失敗パターン集 DDDという方法論それ自体に対する僕の立場はあんま好きじゃない寄りのフラット(といいつつほぼ忘れかけている)なんですが、過去何度もDDDでプロジェクトが爆死するのをみたり、爆破してしまったり……というのを見てきたので供養したいとおもいます。 メンバーの大半がDDDを知らない 「えっ!? ドメイン駆動を知らずにDDDを?」 「出来らぁっ!」 DDDを知らずにDDDをする、という前提がすでに禅問答じみてる気がしますが、たぶん一番よく見かける失敗パターンなんじゃあないでしょうか。 どういうことかというと、オニオンとかレイヤードとかクリーンなアーキテクチャのモジュールの命名ルールと構造を採用(採用できているとは言っていない)しただけの状態です。 私見ですが、アーキテクチャというのはメンバー全員がそれを理解できていない限り*1即破綻します。 理解できない人はどこに処理を書いてい

    実はDDDってしっくりこないんです - タオルケット体操
    cpw
    cpw 2021/09/04
    DDDをやろうとするとこれはドメインだドメインじゃないとか考え方の違いでてきて対して効果がないところの議論が増える。複数人で開発するならどこに何を書くか明確になるレイヤー分けくらいが良いと考えてる。
  • DDD(ドメイン駆動設計)、理念に大賛成、実装に大反対。

    ※追記あり。最後の追記は 2021/04/25 21:40頃※ タイトルの通りのことを思っているけど、顕名のブログで書くと社内で干されるので、増田に書く。社内の心理的安全性がそんなに低い訳ではないけども、潮流が凄いので今は慎重に振る舞いたい。 この記事を見て「キミはDDDのことを誤解している」と思われた方はコメント等で優しく(易しく、ではない)ご指摘願いたい。 ※この記事では Web Application を前提とした話になっている。 DDDとは?https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E9%A7%86%E5%8B%95%E8%A8%AD%E8%A8%88 DDD、ここがイケてる ソフトウェア開発者は開発対象のドメインのことをほとんど知らない、という問題意識およびその提起。 俗に言う「ビジネスサ

    DDD(ドメイン駆動設計)、理念に大賛成、実装に大反対。
    cpw
    cpw 2021/04/25
    この処理をどこに書くべきという議論で数人が集まって話ししてるとあっという間に1、2時間経っちゃうし、それがそこまでお金を産む議論じゃなかったりもしてあまり良い傾向には思わない。程々がいいよね。
  • Microservices における認証と認可の設計パターン

    マイクロサービスにおける認証と認可の、一般論としての設計パターンを調べたところ、Web 上の複数の記事で似たようなパターンが登場していた。ここでは、まず認証と認可が実現したい一般的な要件と、そのマイクロサービスでの難しさを整理し、認証と認可に分けて調査したパターンをまとめた。 あくまで “一般論” なので、実際には個々のドメインにあわせてアレンジが必要 往々にしてこの “アレンジ” に価値が宿るものだが、まずはセオリーを知っておきたいというモチベーションで調査した Web 上の記事を読んでまとめただけなので、手を動かしての確認はしておらず、理解が甘い部分はご容赦ください 具体的な通信方式やサービス間通信のセキュリティといった具体論までは踏み込めていない。このへんはサービスメッシュやゼロトラストネットワークといったトピックが登場すると思われる これらは次回以降の Todo としています その

    Microservices における認証と認可の設計パターン
    cpw
    cpw 2020/12/29
    読んでおかないたほうが良さそう
  • テックリードになって気をつけていること - Qiita

    フューチャーアドベントカレンダー2020の24日目です。 はじめに フューチャーに入ってテックリード(社内だとアーキリーダーと呼ぶことも多い)のような役割をし始めて4,5年ほど経過しました。 いくつかの案件を回して自分なりに汎化・パターン化してきた部分も増えてきたので、気を付けていることをまとめました。 テックリードとは エンジニアのためのマネジメントキャリアパス――テックリードからCTOまでマネジメントスキル向上ガイド によると、以下のように説明されています。 テックリードはエンジニアの階層におけるランクのひとつではなく、シニアのレベルに達したエンジニアが担うことのできる職責群である 技術的なプロジェクトの管理者 部下に効率良く仕事を割り振って自身の負担を適宜軽減するよ う心がける チーム全体の生産性に照準を定め、しかるべき成果を上げるよう全力を尽くさなければならない 管理やリーダーシッ

    テックリードになって気をつけていること - Qiita
    cpw
    cpw 2020/12/25
    これはタメになる
  • カチッとスイッチを押すタイプの扇風機の「切」ボタン、単純なのに思わず「おぉ!」と感嘆が漏れる賢い仕様だった「驚いた」「天才」

    セキ技研@FAマシンメーカー @sekigiken ワクワク•ドキドキのメカトロニクスの世界をあなたに/800種以上のロボット搬送機や自動組立設備を開発してきたFAマシンメーカー/中小企業向けにDX情報も発信します⏩/集まれFA設計者&ITエンジニア/高専生応援企業/☺️📲詳しくはYouTubeへ/人にしかできない活動にもっと取り組める社会にする。 sekigiken.co.jp

    カチッとスイッチを押すタイプの扇風機の「切」ボタン、単純なのに思わず「おぉ!」と感嘆が漏れる賢い仕様だった「驚いた」「天才」
    cpw
    cpw 2020/07/08
    3dプリンタで作ってみようかな。
  • さよならアーキテクチャ議論|Seiji Takahashi@ベースマキナ

    ポエム。 つまり?予算やチームのリテラシーに合わせて最速で作れて、チーム内で「俺ら高凝集低結合だなー」と思えるなら、アーキテクチャはなんでもいいと思えてきました。 前提・まだ割と収益が安定してないプロジェクトでの話です。お金があるなら好きにやりましょう。Go Bold。 ・DDDやクリーンアーキテクチャがダメとは言ってないです。むしろ自分は直近そこまで厳格ではないクリーンアーキテクチャでAPI書いてます。 ・以前こういうポスト書くくらいにはアーキテクチャのこと試行錯誤してました。 アーキテクチャ導入議論への疲労以前僕は、DDDやクリーンアーキテクチャを導入するという話が出ると積極的に顔を出すようにしていました。でも、最近は「導入しましょう」「既に適用してあるのでキャッチアップしてください」などの議論をするのに少し疲れてしまい、足が重くなったように感じます。もうおじいちゃんなので体力がないん

    さよならアーキテクチャ議論|Seiji Takahashi@ベースマキナ
    cpw
    cpw 2020/06/29
    "しかも永遠に正解を議論"これはあるなぁ。で、どっちも正解!みたいなやつでも無駄な議論がすごく発生するイメージ。ドメインはこれがすごく発生するからあまり良くないと思ってる。