はじめに
自分がメモしたいなと思ったワードを書いていきます
(気が向いたら更新していくスタイル)
この記事は、新卒エンジニア(2024年時点)が書いています。
解釈違いがあるかもしれないので記事の内容を参考にする前にセカンドオピニオンは必須としてください。
記事内に貼り付けるソースコードは全てpythonとします。
アンチパターン系
ハードコーディング(Hard Coding)
ハードコーディングとは、本来分離して管理すべきデータや設定値を、ソースコード内に直接埋め込むことを指します。例えば、認証情報やAPIキー、データベース接続情報などをコードに直接書き込むケースです。こうした方法は一時的には便利ですが、コードの変更や管理が難しくなり、特に大規模なシステムでは管理が複雑化することがある。
参照元
QiitaTeam
https://teams.qiita.com/hard-coding-meaning-avoidance-beginner-guide/
アクション
envファイルを使用する
pip install python-dotenv
from dotenv import load_dotenv
import os
# .envファイルを読み込む
load_dotenv()
api_key = os.getenv("API_KEY")
if not api_key:
raise ValueError("APIキーが設定されていません")
Docker Secretsを利用する
クラウドサービスのSecrets Managerを利用する
原則法則系
この項目は自分用にチューニングしていることが多いと予測されるので参考にするのは非推奨
■原則の意味
一般の現象に共通な法則。特別の例外が起こり得ることを念頭において、一般に適用されるものとする基本的な考え方。
YAGNI(You Ain't Gonna Need It)の法則 (ヤグニのほうそく)
予測による実装が実際に役立つことは少ないという経験則から生まれた原則
- 関数に将来使いそうなオプションを実装するとか?
- プロジェクトの状況は刻一刻と変化するため、予測に基づく実装が修正なしに役立つことが少ない
- 優先順位や費用対効果意識って感じかな
- 業務なら、レビューやリーディングといった自分以外のアクションも想定しないとね
DRY (Don't Repeat Yoursel)原則
DRY原則を破るということは、同じ知識を2箇所以上に記述することです。この場合、片方を変更するのであれば、もう片方も変更しなければならない
- これ自体はごもっともと感じる
- じゃあ何でもかんでも思考停止して重複を消そうとすると問題が発生するのが難しいところ
■参考記事
■ 「コードに早まってDRY原則を適用しないこと」とGoogleが呼びかけ
- 異なる責務を持つ予定なのに、初期の段階では完全重複してるからと1つにまとめると変更を加えるときに大変になる
■ DRYかどうかの前に単一責務かどうかを考える
- 責務が違うのに安易に共通化すると最初は良くても後々負債になる