設計とsoftware engineeringに関するminodrivenのブックマーク (10)

  • 「良いコードとは何か」で消耗するのはもうやめよう - DMM Developers Blog

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

    「良いコードとは何か」で消耗するのはもうやめよう - DMM Developers Blog
  • ドメイン駆動設計は何を解決する手法なのか - stmn tech blog

    こんにちは、リファクタリング大好きなミノ駆動です。 株式会社スタメンでは、企業エンゲージメント構築サービスTUNAG(ツナグ)の技術的負債解消と今後の持続的成長のため、ドメイン駆動設計(DDD)の導入を検討しています。 ところでDDDはとかく理解しづらく、何のためのDDDなんだという議論になりがちです。この記事では、DDDの真の主人公コアドメインを中心に、DDDが何を解決するものなのか、全体像を改めて整理します。 この記事で扱う内容 DDDが解決したい課題と解決方法の全体像。 この記事では扱わない内容 設計パターンの実例などの実装詳細。 大事な前提 〜利益を得るためのサービス開発 会社でのサービス開発は、趣味や道楽でやるものでしょうか。違いますね。ビジネスとして、企業活動としてサービス開発しています。当たり前の話ですが、利益を得られるように開発しなければなりません。 ドメイン駆動設計は、継

    ドメイン駆動設計は何を解決する手法なのか - stmn tech blog
    minodriven
    minodriven 2023/09/27
    記事を書きました。「DDDってなんだろう?どう役立つんだろう?」と感じている方にオススメです。
  • スタメンの技術的負債解消戦略 - stmn tech blog

    1. これはなに こんにちは、リファクタリング大好きなミノ駆動です。2023年7月より株式会社スタメンにジョインしました。 この記事は、今後スタメンにおいてサービスの技術的負債を解消する設計戦略についてまとめたものです。 2. 背景、課題 株式会社スタメンは2016年創業。主要サービスであるTUNAG(ツナグ)は、企業のエンゲージメントの構築、つまりお互いを知って理解し、信頼し合う組織を作るための社内コミュニケーションを活性化させるプロダクトです。TUNAGのバックエンドはRuby on Railsで開発され、ローンチから7年をむかえつつあります。 これまでTUNAGは、プロダクトをいかに伸ばすかに注力してきた一方、内部品質や開発効率など「開発者体験」に関する課題が後手に回っていました。来プロダクトチームはユーザーにとっての質的な価値にのみフォーカスできる状況が理想ですし、開発者体験が

    スタメンの技術的負債解消戦略 - stmn tech blog
  • 不幸を再生産しないための設計に対する向き合い方

    「オープンセミナー岡山2022」のイベント登壇で用いた資料です。 https://okayama.open-seminar.org/

    不幸を再生産しないための設計に対する向き合い方
  • DDDの腐敗防止層を用いた変更容易性向上 - READYFOR Tech Blog

    こんにちは、リファクタリング大好きなミノ駆動です。 リファクタリングを主任務とするアプリケーションアーキテクトとして、弊社READYFORのエンジニアリングを推進しています。 ドメイン駆動設計に登場する 腐敗防止層 を用いたリファクタリングで、システムの変更容易性を向上したお話を解説します。 記事の概要 イビツな構造を隔離する腐敗防止層を用いて技術的負債を解消 ふたつの橋作戦でリファクタリングの安全性を向上 設計技術書 『良いコード/悪いコードで学ぶ設計入門』 出版のお知らせ 背景 弊社READYFORのシステムは、モノリシックなRuby on Railsのサービスとして実装されています。 システムが解決したいドメイン(業務活動)にはさまざまなセグメントがあり、その中に審査オペレーションがあります。 審査オペレーションとは、クラウドファンディング実行者さんが申し込みを提出してからプロジェ

    DDDの腐敗防止層を用いた変更容易性向上 - READYFOR Tech Blog
  • 『良いコード/悪いコードで学ぶ設計入門 』を出版します|ミノ駆動

    こんにちは、リファクタリングが大好きなミノ駆動です。 これは、私が執筆した『良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方』について紹介する記事です。 2022年4月30日発売です(ほぼ同日に電子書籍版も出ます)。 AmazonなどECサイトで、すでに多くの予約が入っており、ヨドバシ.comでは一時期予約終了になったほどです。おかげさまで初版部数が2倍になりました。 ■どんな?皆さんはプログラミングでバグを埋め込みたいですか?ロジック修正が上手くいかず、ヒィヒィ言いながら長時間残業したいですか?イヤに決まってますよね。ところが現実には、 何度もバグを埋め込んでしまう ロジックを読み解くのに時間がかかる やっとロジック修正しても、全然違う箇所がバグ化してしまう ……ほとんど誰もが体験しているのではないでしょうか。 でも、こうした状況をなんとかしたいと思って

    『良いコード/悪いコードで学ぶ設計入門 』を出版します|ミノ駆動
  • リファクタリング自爆奥義集 - Qiita

    こんにちは、リファクタリングが大好きなミノ駆動です。 この記事は READYFORアドベントカレンダー2021 、13日目の記事です。 これはなに? コードが複雑化し、技術的負債が蓄積していくと、コードの変更が難しくなり、開発生産性が低下していきます。技術的負債の解消にはリファクタリングが必要です。 しかし、リファクタリングの実施には数々の罠やハードルがあります。 下手すると逆に負債を作り込んでしまうといった、自爆技をやりかねません。 この記事は、リファクタリングのアンチパターンと、その対策をまとめたものです。 この記事のゴール リファクタリングには様々なアンチパターンがあることを知る。 アンチパターンにハマらないためのアプローチを知る。 リファクタリングの効果を高めるにあたり、何のために実施するのか意義を理解する。 前提知識 なぜ自爆技となるのか、自爆だと理解するのに必要な前提知識を挙げ

    リファクタリング自爆奥義集 - Qiita
  • Kaigi on Rails 2021 オンラインブースで工夫したら結構集客できた話 - READYFOR Tech Blog

    こんにちは、リファクタリング大好きなミノ駆動です。 2021年10月22日、23日に開催されたKaigi on Rails 2021にて、弊社READYFORはGoldスポンサーとしてスポンサーブースに参画しました。 オンラインブースで来場者を呼び集めるために各社試行錯誤している中、弊社のブースにかなり来場者が集まったので、どのような工夫をしたのか記事に記していきます。 会場はオンライン コロナ感染の懸念から、Kaigi on Rails 2021はオンライン開催となりました。 企業ブースもオンライン会場サービスreBakoを用いたものになりました。 reBakoのオンラインイベント会場 会場にログインすると、参加者がアイコン表示されます。 reBakoは、アイコンを動かしてバーチャル会場を見て回ったり、席に着座すると同席者とビデオチャットできたり、近くに行くと聞き耳を立てることができま

    Kaigi on Rails 2021 オンラインブースで工夫したら結構集客できた話 - READYFOR Tech Blog
  • モデリングの仕方がUserクラスの負債化をまねく 分割設計で爆死しないための2つの考え方

    「“開発者体験”で世界をエンパワメントする1日。」と題し、チームや組織の課題に日々取り組む方々に向けて開催された「Developer eXperience Day CTO/VPoE Conference 2021」。ここで、READYFOR株式会社の仙塲氏が「『Userクラス』で考える技術的負債解消の観点」をテーマに登壇。次にUserクラスの問題と、その解決方法を紹介します。前回の記事はこちらから。 Userクラスが抱える問題 ここでやっとUserクラスが抱える問題。Userクラスを今のモデリング観点と照らし合わせてみると、個人顧客と法人顧客の関心事の異なる問題を、たった1つのUserクラスで取り扱ってしまっています。つまり、複数の問題解決のために、Userクラスが流用されている構造です。特定の問題解決を意図した構造になっていないんです。 このユーザーというのは、個人でも法人でもどうとでも

    モデリングの仕方がUserクラスの負債化をまねく 分割設計で爆死しないための2つの考え方
  • 単一責任原則で無責任な多目的クラスを爆殺する - Qiita

    この記事は クラウドワークスアドベントカレンダー2020 8日目の記事です。 概要 こんにちは、クソコードを爆殺リファクタリングするのが大好きなミノ駆動です。 今回は単一責任原則の話です。 単一責任原則はSOLID原則のひとつとして有名で、2020年のオブジェクト指向カンファレンスのアンケートでも、SOLID原則の中で最も人気がありました。 皆さんは単一責任原則を遵守した設計をしていますか。 どんな構造が単一責任設計で、一方どんな構造が単一責任でない設計か、明確に意識していますか。説明できますでしょうか。 ところで「単一責任原則とはなんぞや」について、少なくとも私の観測範囲では、概念的な話にとどまっているものが多く、コードレベルで具体的に説明しているものは少ないように感じます。 そうした状況からか、単一責任原則の解釈が人によって違っていたりしているように感じます。 記事は、今一度単一責任

    単一責任原則で無責任な多目的クラスを爆殺する - Qiita
  • 1