タグ

設計に関するsatoshieのブックマーク (136)

  • ADRのレビューのスタンスはあまり研究されていない気がする - hitode909の日記

    ADRは書く機会より読む機会のほうが多いのだけど、読んでいて、冗長だったり、長いと感じると、もっと小さくならないの?って聞きたくなる。 それと同時に、失礼なことをしてないかハラハラする。 これがコードだったら、文のレベルと振る舞いのレベルは切り離されているので、振る舞いを変えずにリファクタリングして小さくできることは明らか。 文章の場合は、削ると、文章が働く役割は自明でないことから、せっかく書いたんですけど、みたいな気分になるような気がする。 文章を扱うときには、問題vs私達になりにくくて、容易に人vs人になってしまう。 普段、編集提案機能のないツールでADRを書いていて、議論のコーナーを作って自然文でやり取りしているのだけど、これではツールの支援が足りなくて、めんどくさい。 レビュワーという立場でファシリテーションしに行くか、意見だけ書いて著者にファシリテーションしてもらうかなど、どの強

    ADRのレビューのスタンスはあまり研究されていない気がする - hitode909の日記
  • データ分析で用いるSQLクエリの設計方法

    STEP2. アウトプットを実現するために必要なデータソースを書き出す アウトプットの整理ができたら、今度はインプットとなるデータソースの整理を行いましょう。 必要なデータソースは要件から読み解くことができます。 今回は「10代のユーザーの月間視聴数(性別 / 動画カテゴリごと)の推移をグラフで見たい」という要件です。 ここから、この分析に必要なエンティティ(実体)とその属性、集計値を抽出しましょう。 エンティティと属性 ユーザー 性別 年代 動画 カテゴリ 集計値 視聴数 これらのデータを管理するテーブルを、調査やヒアリングを実施して探します。 今回は以下のテーブルを使用することとします。 user:ユーザー登録に必須な入力項目を管理するテーブル user_profile:ユーザーが登録後に設定できる任意の入力項目を管理するテーブル video:ユーザーが投稿した動画を管理するテーブル

    データ分析で用いるSQLクエリの設計方法
  • 「良いコードとは何か」で消耗するのはもうやめよう - DMM Developers Blog

    これはなに? こんにちは、DMM.comのミノ駆動です。 プラットフォーム開発部 Developer Productivity Group 横断チームにて、 プラットフォームの設計品質向上に取り組んでいます。 さて、ネット上ではソフトウェア開発における「良いコードとは何か」をめぐって、 いろんな意見が交錯したり、 ときには激論を呼んだりします。 収拾がつかないこともしばしばです。 この記事は、良いコードを考えるうえでの要素を整理し、 建設的な議論を助けることを目的とします。 これはなに? この記事の理解目標 良いコードをめぐる議論 議論1: 何をもって良いコードなのか 議論2: 良いコードはどうやったら書けるのか 議論3: 「綺麗なコード(良いコード) vs 動くコード」問題 議論改善のために提案します 提案1: ソフトウェア品質特性の観点でコードの良し悪しを判断しよう 提案2: 原理原

    「良いコードとは何か」で消耗するのはもうやめよう - DMM Developers Blog
  • オブジェクト指向は業務システムで本当に不要なのか? - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 主旨 以前はシステムの状態をオブジェクト指向でカプセル化し、オブジェクト同士の通信でシステムの制御をしようとしていた しかし、Webアプリケーションのように状態をメモリ上に保持し続けるのが難しい環境が増えると、上記のことがやりにくくなった(ORMのインピーダンスミスマッチの影響が大きくなった) 現在では、システム全体の状態を管理するためにオブジェクト指向を用いるシーンは減っているが、要所要所でシステムを抽象化する道具の一つとして用いるシーンはあり、適材適所で使い続ければ良い はじめに 一時期あれだけもてはやされた「オブジェクト指向」です

    オブジェクト指向は業務システムで本当に不要なのか? - Qiita
  • オブジェクト指向プログラミングは終わった - Qiita

    追記: 振り返りを書いてみました~ -- ここから元記事 別題: 抽象化って言葉もう。。 社内の記事にて、オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES) | アラン・シャロウェイ, ジェームズ・R・トロット, 村上 雅章 | | 通販 | Amazonを紹介してもらいました。 取り上げられた、共通性/可変性分析の解説を見て、はっと思うことがありポエムを仕立てました。 共通性/可変性分析 共通性/可変性分析については、書籍を読むかググって頂けると良いですが、社内記事が良かったので引用させて頂きます。 問題領域にある概念を見つける(共通性の分析) その流動的要素を洗い出す(可変性の分析) 流動的要素を見ながら、その概念が持つ責務を果たすための抽象的側面(≒インタフェース)を導く 各流動的要素の実装上の観点から、インタフェースが適切かどうかを見極め、補正する オ

    オブジェクト指向プログラミングは終わった - Qiita
  • 隈研吾の建築が「青カビと腐食でボロボロ」「建築家の仕事とは思えない」…!地元住民も首をかしげる名建築家の「致命的なトラブル」(現代ビジネス) - Yahoo!ニュース

    建築家・隈研吾は数々の名声を轟かせる一方で、その仕事に実害を受けた人や眉をひそめる専門家は多い。那須の美術館で起きたトラブルを機に、全国各地で問題が火を噴きそうな事態となっている。 【写真】事故物件紹介サイト「成仏不動産」が見た「リアルな事故物件」 その建物は、年季の入った牛舎かと見間違うほどだった。屋根の一部は朽ち果て、青カビも生えている。とても、世界的建築家が手がけた建物とは思えない――。 栃木県那須郡にある那珂川町馬頭広重美術館は、主に江戸時代の浮世絵師・歌川広重の作品などを展示した美術館である。'00年にオープンした当時は、細い角材が簾のごとく大量に使われた建物の庇が好評を博し、公共建築賞特別賞や日建築学会作品選奨など数々の名誉ある賞に輝いている。 この馬頭広重美術館を設計したのは隈研吾氏(70歳)。高いデザイン性と木材などの自然素材を使う「環境に溶け込む建築」を得意とし、新国立

    隈研吾の建築が「青カビと腐食でボロボロ」「建築家の仕事とは思えない」…!地元住民も首をかしげる名建築家の「致命的なトラブル」(現代ビジネス) - Yahoo!ニュース
  • 📗 なぜ依存を注入するのか DIの原理・原則とパターンを読んだ感想 | Happy developing

    なぜ依存を注入するのか DIの原理・原則とパターン 著者: Steven van Deursen, Mark Seemann 訳者: 須田智之 表紙には.NETやC#の文字はないのですが、前の版は"Dependency Injection in .NET"で.NETを前提したのようでした。 ただ、はじめにで 書では、.NETとC#を用いて、依存注入に関する用語や指針を包括的に紹介し、描写しているのですが、書の価値が.NETの外の世界にも届くことを望んでいます。 とありました。 RustのDIでなにか活かせる教えを期待して、読んでみました。 第1部 依存注入 (Dependency Injection: DI) の役割第1章 依存注入 (Dependency Injection: DI) の基: 依存注入とは何なのか? なぜ使うのか? どのように使うのか?まず、保守容易性(maint

    📗 なぜ依存を注入するのか DIの原理・原則とパターンを読んだ感想 | Happy developing
  • オーバーエンジニアリングしないために心がけていること - $shibayu36->blog;

    オーバーエンジニアリングしてしまうという悩みがあって困っている、そのうち必要になるのではないかという気持ちになって無駄に抽象化して頑健にしてしまう。じゃあ素朴にやればいいのかというと、例えばDBスキーマみたいな要素は素朴になってはならないという難しさもある— Windymelt💀(めるくん)🚀❤️‍🔥 (@windymelt) 2024年9月12日 上のツイートを見かけたので、自分は何を心がけているか書いてみる。 結論 プロダクト方針的に起こりそうな未来を想像する 想像した未来が起こったとして、どのような実装になりうるかをざっくり考える その上で、その未来が起こったときに「詰む」ことがなさそうな一番シンプルな設計にする 前提: あらゆる未来の変更に強い抽象化はない 設計を考えていて複数案を出すと、結局トレードオフが存在することがわかる。案Aを選択すると、こっちの未来には対応しやすいが

    オーバーエンジニアリングしないために心がけていること - $shibayu36->blog;
  • 隈研吾氏設計の美術館が劣化でボロボロに…改修費3億円に住民衝撃 ふるさと納税で修繕計画も賛否|FNNプライムオンライン

    4日、取材班が向かったのは栃木・那珂川町。 豊かな自然に溶け込むように建てられた「那珂川町馬頭広重美術館」は、県外からも多くの人が訪れる人気の観光スポットです。 しかし、近づいてみるとある異変を発見。 黒ずみ、腐した屋根。 ところどころ木材が折れ曲がり、激しく傷んでいるのが分かります。 完成して、24年の美術館。 老朽化が進み、3億円にも及ぶ大規模改修工事の必要に迫られていたのです。 多額の費用に、町民からは「無駄ですね。撤去してもらいたい」「えー!?3億円!?大丈夫ですかね…」などと、驚きの声が広がっています。 那珂川町馬頭広重美術館を設計したのは、世界的に有名な建築家・隈研吾氏。 木材を使った日的な建築を手掛けることで知られ、国立競技場のデザインも担当しました。 老朽化が進む那珂川町馬頭広重美術館では、地元産の八溝杉(やみぞすぎ)を細く加工し格子状に並べていました。 屋根や壁に使わ

    隈研吾氏設計の美術館が劣化でボロボロに…改修費3億円に住民衝撃 ふるさと納税で修繕計画も賛否|FNNプライムオンライン
  • 実践データベース設計

    2024年度リクルート エンジニアコース新人研修の講義資料です

    実践データベース設計
  • データベース中心の設計になってしまう問題と闘う - laiso

    『手を動かしてわかるクリーンアーキテクチャ 』の第二章の冒頭に登場する話題に共感したので紹介。 従来の多層アーキテクチャでは、データベースを中心にアプリケーションの 開発が行なわれます。この場合、Web 層はドメイン層に依存し、ドメイン層は 永続化層、つまり、データベースに依存することになります。そうなると、す べてのものは永続化層上に構築されることになり、その結果、いくつかの要因 が絡まり合って、問題が起きやすくなります。 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発 20p 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発 作者:Tom Hombergs,須田 智之インプレスAmazon 著者によれば、機能開発をデータベース中心に設計すると、ドメイン層と永続化層の密結合が

    データベース中心の設計になってしまう問題と闘う - laiso
  • スタートアップにおける組織設計とスクラムの長期戦略 / Scrum Fest Kanazawa 2024

    エンジニア組織30人の壁を超えるための 評価システムとマネジメントのスケール / Scaling evaluation system and management

    スタートアップにおける組織設計とスクラムの長期戦略 / Scrum Fest Kanazawa 2024
  • 技術的負債を抱えたレガシーコード。変なメソッド名と入り組んだロジック、リファクタリングするならどちらが先?(前編)

    技術的負債を抱えたレガシーコード。変なメソッド名と入り組んだロジック、リファクタリングするならどちらが先?(前編) ソフトウェアの品質をテーマに研究をしている名古屋大学 森崎研究室は、ソフトウェアの技術的負債をなんらかの形で数値化する手法の研究の一環として、コードの読みにくさの原因となる要因などを分析した研究結果を発表するイベントをオンラインで開催しました。 今回発表された研究では、技術的負債を抱えたレガシーコードのリファクタリングで取り除かれた問題の90%以上が、メソッド名と実際の関数の動作が一致していない、あるいは関数名とコメントが矛盾しているなどの「命名的問題」、もしくは複雑で読みにくい多数の条件分岐や深いネストなどを抱えた「構造的問題」のいずれかであるという先行研究があることを踏まえ、どちらを優先してリファクタリングすると保守性や可読性が高くなるかを調査しています。 具体的には、命

    技術的負債を抱えたレガシーコード。変なメソッド名と入り組んだロジック、リファクタリングするならどちらが先?(前編)
  • 『ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法』が出版されます - Magnolia Tech

    ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法 作者:Vlad KhononovオライリージャパンAmazon 2021年にO'Reilly Media, Inc.から出版された「Learning Domain-Driven Design」の待望の日語訳『ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法』がついに出版されます。 www.oreilly.com 訳者は、増田 亨さん!! 2020年代に、ドメイン駆動設計を学ぶための最初の入り口としてどのを読めば良いかは、かなり悩ましい...というのはよく言われるのですが(元祖のエバンスはさすがにだいぶ古くなってきたし、回りくどい表現も多いし...)、そんな時におすすめできる1冊です。 2021年に原著が出版された時に買ってざっと読んでいたのですが、パート1で戦略的DDD(

    『ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法』が出版されます - Magnolia Tech
  • QAエンジニアから見た『データモデリングでドメインを駆動する』書評 - ブロッコリーのブログ

    はじめに 記事は、今年発売された書籍『データモデリングでドメインを駆動する――分散/疎結合な基幹系システムに向けて』を読んだ感想と、QAエンジニアである私*1が日々の業務で役立ちそう(既に役立った)部分を紹介します。今のところ、書籍は2024年のベストバイな気がします。 gihyo.jp 記事で一番伝えたいこと データモデリングについての考えが深まるぞ 開発者が読むともっと役立てることができると思うぞ QAエンジニアである私が読んでも役立つぞ 読み始めてすぐに「良い買い物だった」と思って思わずポストしている様子 目次 はじめに 記事で一番伝えたいこと 目次 書籍で良かったこと:データモデリングをするにあたっての整理と用語の提案がすごい SoAとSoMという整理 「残」という概念 データベース設計とは違う「データモデリング」という考え方 QAエンジニアとして、業務に役立てそうなこと

    QAエンジニアから見た『データモデリングでドメインを駆動する』書評 - ブロッコリーのブログ
  • デザインにセンスは必要ない、大切なのは「情報を整理」する力 Udemyの人気講師が教える、UI/UXデザインの基礎 | ログミーBusiness

    UI/UXデザイナーが教えるデザインの基濱野将氏:それでは、僕からは「ビジネスを実現する『デザイン』の基」をお話しさせていただきます。よろしくお願いします。 今日のアジェンダはこんな感じです。「デザインの必要性」「デザイナーだけがデザインする時代はもう古い」「UI/UXについて」。今回はAIがテーマなので「AIを使ったプロジェクトの進め方」も少し紹介させていただきたいなと思っております。 簡単に自己紹介をさせてください。株式会社IMAKE代表の濱野と申します。職業はUI/UXデザイナーで、講師もさせていただいております。「IMAGE×MAKE. 想像を創造する」をテーマに、IMAGEとMAKEを掛け合わせた「IMAKE」という造語がそのまま会社名になっております。 やっていることとしては、デザインの制作事業やデザイナーの教育事業。あとは生まれが宮城県の女川町というところなんですが、そこ

    デザインにセンスは必要ない、大切なのは「情報を整理」する力 Udemyの人気講師が教える、UI/UXデザインの基礎 | ログミーBusiness
  • キャッシュと向き合う、キャッシュと共に生きる / cache pattern

    PHPerKaigi 2024の登壇資料です。 https://phperkaigi.jp/2024/ - https://speakerdeck.com/moznion/pattern-and-strategy-of-web-application-caching - https://sou…

    キャッシュと向き合う、キャッシュと共に生きる / cache pattern
  • staticメソッドの使いみちがイマイチわからないのでまとめてみた - Qiita

    記事は未完成 です。 まだ自分の中に落とし込めていないのですが、他の人の役に立つこともあるかと思い、投稿します。 誤っている箇所がありましたら、遠慮なくマサカリを投げてください。 「staticメソッド」とは? 直訳すると「静的メソッド」です。「クラスメソッド」ともいいます。 対義語は「インスタンスメソッド」です。 staticメソッドのメリット ①インスタンスを生成せずに呼び出せる インスタンスを生成せずに呼び出せるのが一番のメリットです。インスタンス生成にかかるオーバーヘッドがなくなるので、 インスタンス生成に時間がかかるクラスに有効 です。 そのため、頻繁に呼び出されるユーティリティメソッドはよくstaticメソッドとして実装されます。 また、自クラスのファクトリメソッドのように、 インスタンスの生成前に実行すべきメソッド はstaticにするしかありません。 ②インスタンスご

    staticメソッドの使いみちがイマイチわからないのでまとめてみた - Qiita
  • 継承はなんでダメ? - まめめも

    「オブジェクト指向の継承を使うな」という主張が広まっているようです。なんでダメになったんでしょうか。 インターネットで見かけた「継承はダメ」という主張をいくつか眺めて、友人と議論しつつ、考えてみました。 「コードが読みにくくなる」 継承があると、メソッド呼び出しが実際にどのメソッド定義を呼び出すのか字面でわからない。 デバッガを使って、親クラスのメソッドに飛んだり、子クラスに飛んだりするのを追いかけないと行けない。 つらい。という主張。 めっちゃわかる。わかるんですが、これは「高度に共通化されたコードは読みにくい」という一般的な側面がかなり大きいような。 たとえば継承の代わりに高階関数を使うと、関数呼び出しがどのクロージャに飛ぶか字面でわからなくなる。 ひどいとコールバック地獄になって何が何やらになります。 継承がことさらにまずい理由を想像すると、すべてのメソッド呼び出しがポリモーフィック

    継承はなんでダメ? - まめめも
  • やさしいクリーンアーキテクチャ

    SREホールディングス株式会社の松です。 プロダクトはリリースしてからが始まりで開発し続けることが当たり前の時代、ソフトウェアは変更や拡張に強く設計しなければなりません。クリーンアーキテクチャはそんな設計を実現する方法の1つですが、名前は聞いたことはあるけど実践したことはない、なんだか複雑で難しそう、という印象を持っている人が多いのではないでしょうか。 クリーンアーキテクチャを詳細に説明している記事は数多くありますので、記事ではクリーンアーキテクチャを触ったことがない方に良さが伝わるように、やさしく噛み砕いて説明してみようと思います。 対象読者 クリーンアーキテクチャをこれから学びたい方 クリーンアーキテクチャとは 機能を実現しているコアな部分をフレームワークやDBなどに依存しない状態(関心事の分離)にすることで、他が変わってもコアな部分への影響をなくし、変更や拡張に強くすることができ

    やさしいクリーンアーキテクチャ