タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

programmingとqiitaと設計に関するyuki_2021のブックマーク (6)

  • API設計まとめ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 自分は2021年に新卒でWeb系の開発会社にフロントエンジニアとして入社し2022年で2年目になります。 実務ではReact×TypeScriptを利用したフロント周りとNode.js(Nest)やRailsを用いたバックエンド(API)の開発をしています。 その中で使っていたAPI設計について改めて学び直したのでまとめて行きます。 この記事の対象者 エンジニア初心者から中級者 APIについて学びを深めたい人 この記事の目標 APIについて学ぶ 我流ではなく正しいAPI設計について学ぶ この記事でやらないこと 具体的にコードを

    API設計まとめ - Qiita
  • リファクタリング自爆奥義集 - Qiita

    【対策】必ず課題と効果を確認すること リファクタリング対象のコードに、どんな課題があるか確認しましょう。 課題に相応しいデザインパターンがあるならば、適用して良いでしょう。 デザインパターンを適用した場合、期待通りの効果が発揮されたかどうかを確認してください。 たとえばStrategyパターンは、条件分岐のコピペコードを削減する効果があります。 Strategyパターン適用後、分岐コピペがあまり減らなかったのであれば、設計を見直しましょう。 ◆奥義3 : 共通化しちゃいけない箇所を共通化 重複コードがあると、仕様変更時に重複箇所を全て修正しなければならなくなります。修正漏れがあるとバグ化します。 重複解消のため、処理を共通化することがよくあります。 しかし共通化してはいけないものがあります。 そうしたコードを無理に共通化すると密結合に陥り、逆に変更容易性が低下します。 私が制作した動画「共

    リファクタリング自爆奥義集 - Qiita
  • 設計を歪める認知バイアス - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こんにちは、リファクタリングが大好きなミノ駆動です。 この記事は READYFORアドベントカレンダー2021 、5日目の記事です。 これはなに? ソフトウェア開発において、設計をないがしろにすると、低凝集密結合な構造に陥り、変更容易性が低下してしまいます。 設計スキルを高め、あるべき構造を設計する……これで解決できるに越したことはありません。 しかし、認知バイアスと呼ばれる心理効果により判断を誤り、良くない設計をしてしまうことが往々にしてあります。 記事は、設計を歪めてしまう認知バイアスを理解し、設計判断の精度向上を促すことを目的と

    設計を歪める認知バイアス - Qiita
  • プログラムの依存関係とモジュール構成のこと - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? みなさん、メンテナンスしやすいプログラムにするための設計に苦労してませんか? 次々と現れるフレームワークやデザインパターンに振り回されてませんか!? プログラムの設計については、パターン周りを中心に長い間多くの人を悩ませているように見えます。例えば MVC などは 1980 年代からあるものなのに、未だに定期的に議論に上がったり改善されたパターンなどが提案されたり、それを元にしたフレームワークが現れたりします。 僕もそういった設計に悩んだ(でる)一人なのですが、最近は新しいパターンも大事とは思いつつも単純に依存関係をきちんとコントロール

    プログラムの依存関係とモジュール構成のこと - Qiita
  • スケールする要求を支える仕様の「意図」と「直交性」 - Qiita

    このような要求があった場合、一般的なエンジニアはメールアドレスと電話番号を持つクラスを定義し、どちらもオプショナルな値(必須ではない)にするような設計をするかと思います。そして、作成時・追加時・編集時にどちらもなければエラーにするというバリデーションを実装することでしょう。つまり、要求をそのままに実装に落としていくという意味です。要求自体はかなり具体的に書いてありますから、そのまま実装に落とすこと自体が悪いとは言い難いでしょう。 一方、なぜメールアドレスと電話番号の2つを利用アカウントが持っているのかという「意図」をよりはっきりと記述してもらった次のような要求を見てみましょう。 要求を発する側の意図としては、ただ単にメールアドレスや電話番号が独立して欲しいと考えていたのではなくて、利用アカウントごとに1つは「連絡先」が欲しい。ひいては、何らかの手段で連絡できるといいなと考えていたことがわか

    スケールする要求を支える仕様の「意図」と「直交性」 - Qiita
  • 「ビジネスロジック」とは何か、どう実装するのか - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? アプリケーション開発で、「ビジネスロジックは分離しろ」だとか「Controller にビジネスロジックを書くな」といったことをよく言われると思います。 しかし、ビジネスロジックという言葉の意味を聞いたり調べたりしてみても、「システムのコアの部分」とか「システムの目的になる処理をするところ」みたいなことを言われたりして、よく分かりませんでした。 そんな中、クリーンアーキテクチャや DDD の戦術的設計について学ぶことで、「ビジネスロジックとは何か」、「ビジネスロジックはどう実装するか」について、自分なりの考えが整理されてきたので、この記事

    「ビジネスロジック」とは何か、どう実装するのか - Qiita
  • 1