自動更新

並べ替え:新着順

ベストポスト
メニューを開く

名前設計時の注意すべきリスクについて。目的駆動名前設計の考え方は「名前に注意し、名前とロジックを対応付けること」が前提。命名が重要であり、名前とロジックが対応する前提であること、名前がプログラム構造を大きく左右することを、チームで約束する。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

疎結合高凝集になっているか、目的以外のロジックが混入していないか確認する。また、他のクラスとの関連付けの数を確認し、多いと感じるなら名前変更や分解を検討する。関連個数が少ないほど、影響範囲が低減し望ましい。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

違う名前に置き換えられないか検討する。意味を狭くできないか、違和感がないかなど。例えば宿泊予約システムでの「顧客」。法人客なのか個人客なのか。宿泊する人と支払者が同じなのかどうか。 そのクラス等での目的により、より具体的に考える必要がある。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

該当サービス等の利用規約を読んでみる。利用規約にはルール等が極めて厳密な言い回しで書かれており、特化した名前の参考になる。利用規約が変更された際、クラスなどの変更点があれば正確に素早く変更もできる。 この発想は無かったが、確かに! #良いコード/悪いコードで学ぶ設計入門

メニューを開く

命名時、声に出して話してみる。誰かに説明すると自ら原因に気づいて自己解決することもある。目的や意図の認識を合わせるために会話してフィードバックをもらったり、ドキュメントやメソッド名などで共通して使うことで意図の減衰を防止するのにも役立つ。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

ビジネス目的に特化した命名をするために、ソフトウェアが対象とする目的や事柄を分析する。ECサイトなら出品、注文、発送、キャンペーンなど。登場人物や事柄を列挙したり、関係性を整理したりしてみるとよい。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

目的に特化していない「ユーザー」や「住所」といった存在ベースの名前は、意味が多重になりがち。このため、具体的な目的が明確な目的ベースの名前にする。ユーザー名であれば「アカウント名、表示名、本名、法人名」、住所であれば「配送元、配送先」等。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

目的達成に特化した名前にすることで、以下の効果が生まれる。 ・無関係なロジックを排除できる ・クラスが小さくなる ・関係クラスが減り、疎結合になる ・仕様変更時の考慮範囲が減る ・修正箇所がすぐ分かる ・開発生産性が向上する #良いコード/悪いコードで学ぶ設計入門

メニューを開く

<名前設計のポイント列挙> ・具体的で意味範囲が狭い、特化した名前を選ぶ ・存在ベースではなく目的ベースで考える ・どんな関心事があるか分析する ・声に出して話す ・利用規約を読む ・違う名前に置き換えを検討する ・疎結合高凝集かを点検する #良いコード/悪いコードで学ぶ設計入門

メニューを開く

名前設計。プログラミングにおける名前の役割は、可読性を高めることだけではない。目的に沿った名前を付与することは、疎結合高凝集を実現するうえで重要。目的や意図を、名前から読み取れるようにする。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

「目的不明オブジェクト」。開発初期に決めた名前は、大雑把であることが多い。広い意味をもつ名前のままだと、目的が不明なため、あっという間に巨大化する。これを防ぐため、関心の分離を意識した名前を設計するのが望ましい。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

例えばある商品についてのクラスを考えるとき、予約、在庫、発送、支払いなど全て1つのクラスで扱おうとすると巨大化し密結合となる。これを分割するため、同じ「商品」であっても、予約品、在庫品、発送品、注文品と捉えてクラスを分割すれば良い。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

命名の前提となるクラスにて、影響範囲が広すぎて密結合になると開発生産性が低下する。「関心の分離」、つまり目的や役割ごとに分離するというソフトウェア工学の考え方に基づいて、クラス分割を行うことが重要。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

クラスやメソッドの命名も重要なポイント。本章全体に共通する考え方の基本は、「目的駆動名前設計」。ソフトウェアで達成したい目的をベースい名前を設計する。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

【備忘】ここから第10章 名前設計 -あるべき構造を見破る名前- #良いコード/悪いコードで学ぶ設計入門

メニューを開く

【自分用備忘】9.8 メタプログラミング~ 第9章の終わりまで、現時点で理解が及ばないため、いったんスキップ。後日、理解を深めてから改めて確認したい。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

例外の握り潰しを避けるためにも、不正状態に対して寛容になるべきではない。例外をキャッチした際、通知や記録、場合によってはリカバリ処理を実行する。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

「例外の握りつぶし」。try-catchで例外をキャッチしてもなんの処理もしない状態。外から検知できず正常に動いているように見えてしまう望ましくないロジック。どのコードが原因で不正状態になったかわからないため、開発者の時間を浪費させてしまう。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

null問題。nullが入り込む前提だと、至るところでnullチェックが必要。未設定状態をnullとするのではなく、nullを返さない/渡さない設計にする。具体的には、未設定状態を示すインスタンス変数EMPTYを設定など、常にインスタンスが存在する状況すると良い。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

「文字列型執着」。CSVからデータを取り出すという用途でもなく、String変数に複数の値をカンマ区切りで格納するケースもある。ロジックが複雑化し、可読性も著しく低下する。意味の異なる値は、それぞれ別の変数に格納すること。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

ロジック内に直接書き込まれている数値を「マジックナンバー」と呼ぶ。ほぼ実装者本人にしか理解できないことに加え、複数個所で実装されがち。また、変更の際にはすべての数値を修正する必要もある。このような事態を避けるため、定数として定義すること。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

YAGNI原則=「You aren’t going to need it.」の略で、「実際に必要になったときにのみ実装せよ」の意。「こんなこともあろうかと」の予備機能は不要なばかりかバグの原因になる。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

どんな条件でも実行されないコードを「デッドコード」または「到達不能コード」と呼ぶ。可読性低下、読み手の混乱、将来的なバグの原因になったりする。発見次第、すぐに削除すること。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

【備忘】ここから第9章 設計の健全性をそこなう様々な悪魔たち #良いコード/悪いコードで学ぶ設計入門

メニューを開く

【自分用備忘】7.3 コレクション処理~ 第8章の密結合まで、class等のテーマにて現時点で理解が及ばないため、いったんスキップ。後日、理解を深めてから改めて確認したい。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

早期continueと同様に、早期breakも有効な方法。条件分岐の中にbreakを挟むのではなく、処理の冒頭でbreakさせるとよい。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

条件ネストの解消には、早期continueで解決可能。ループ処理の冒頭で、条件を満たさない場合に次の処理に移る。continueは一度で判定するのではなく、各条件を列挙してよい。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

フラグ引数付きメソッドは望ましくない。メソッドは単機能になるように設計する。 一般論として頭では分かっていても、コードを書き始めると複数機能を入れてしまいたくなります。自制せねば・・! #良いコード/悪いコードで学ぶ設計入門

メニューを開く

ゴールデンウィークはこれを読む!! #エンジニア #良いコード #悪いコード pic.twitter.com/poVDLArxWg

Takashi@Shopifyフロントエンジニア@takashi_gw

メニューを開く

メソッドの機能を切り替えるboolean型引数を「フラグ引数」と呼ぶ。フラグ引数付きメソッドは、何が起こるか内部を見る必要があり、可読性低下、開発生産性低下を招く。boolean型だけでなく、その他の引数で機能を切り替えるのも同様の弊害あり。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

【自分用備忘】スマートにswitch文重複を解消する仕組みとしてJavaなどの「interface」の仕組みが紹介されているが、今回はスキップする。難易度が高くて理解しきれないのと、GASで直接使える仕組みではないため(疑似的な再現はできるようだが、今回は断念) #良いコード/悪いコードで学ぶ設計入門

メニューを開く

switch文の重複コード解消には、「単一責任選択の原則」の考え方が重要。端的に言うと、同じ条件式の条件分岐とその処理を、複数個所で書かずに一箇所にまとめることを指す。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

switch-case文はバグや可読性低下を招きやすい制御構文。初期の数個の分岐なら問題なくとも、分岐やその後の処理が増加していくと、対応しきれないケースがでてくる。 #良いコード/悪いコードで学ぶ設計入門

メニューを開く

早期returnのもう一つの利点は、条件ロジックと実行ロジックを分岐できること。実行しない条件を前半にまとめられるので、実行ロジックは後半の修正を行えば良い。これはガード節の考え方が元になっている。ロジック理解にはロジックの見通しの良さが重要。 #良いコード/悪いコードで学ぶ設計入門

トレンド15:16更新

  1. 1

    アニメ・ゲーム

    花ざかりの君たちへ

    • 中条先生
    • 実写ドラマ化
    • ドラマ化
    • アニメ化決定
    • 2007年
    • アニメ化
    • 花ざかりの君たちへ アニメ
    • 花ざかりの君たち
    • 桑島法子
    • 実写ドラマ
    • アニメ声優
  2. 2

    エンタメ

    ロッキン

    • 結束バンド
    • ずっと真夜中でいいのに。
    • LiSA
    • ひたちなか
    • ずとまよ
    • サカナクション
    • SPYAIR
    • KANA-BOON
    • Kroi
    • ラブシャ
    • サマソニ
  3. 3

    ROCK IN JAPAN FESTIVAL 2024

    • 鈴代紗弓
    • ROCK IN JAPAN FESTIVAL
    • ROCK IN JAPAN
    • 長谷川育美
    • ロックインジャパン
    • 星野源が
    • RIJF
    • おいしくるメロンパン
    • 星野源
    • スポーツ
  4. 4

    スポーツ

    巨人・坂本勇人

    • 修正に応じず
    • 高級クラブ
    • 必要経費
    • 1億円申告漏れ
    • けつあな確定
    • 申告漏れ
    • 確定申告
    • 巨人坂本
    • 坂本勇人
    • 給料明細
    • デイリー新潮
    • 坂本勇人選手
    • 週刊新潮
    • ライブドアニュース
  5. 5

    PayPay障害

    • paypay 障害
    • シャンクス
    • 楽天ペイ
    • ヤフーニュース
  6. 6

    エンタメ

    トイレの場所

    • レギュラー番組
    • テレビ局
  7. 7

    paypay使えない

    • PayPay通信障害
    • PayPayが使えない
    • 現金ない
    • バーコード決済
    • PayPayチャージ
  8. 8

    アニメ・ゲーム

    事前ダウンロード

    • サービス開始
    • もうしばらくお待ちください
  9. 9

    ITビジネス

    Outfit3

    • outfit
    • AKI
    • SHOP
    • キャラクター
  10. 10

    午後0時

    • paypayで
    • 決済できない
    • 大規模障害
    • サーバー落ち
20位まで見る
よく使う路線を登録すると遅延情報をお知らせ Yahoo!リアルタイム検索アプリ
Yahoo!リアルタイム検索アプリ