2023-05-01から1ヶ月間の記事一覧
はじめに if文が多重にネストした構造 アンチパターン例 問題点 改善例: 早期リターン else句を早期returnに置き換え アンチパターン例 改善例 参考 続く… コメント はじめに 本記事では「良いコード 悪いコードで学ぶ設計入門」で学んだ内容と別途気になっ…
はじめに メソッドチェーン メソッドチェーンとは アンチパターン例 問題点 デメテルの法則 デメテルの法則 - 違反例 デメテルの法則 - 改善例 尋ねるな、命じろ 先程のコードをリファクタリング 参考 続く… コメント はじめに 本記事では「良いコード 悪い…
はじめに プリミティブ型執着 コード例 (アンチパターン) 問題点 コード例 (アンチパターン) 改善例 - ハッシュやオブジェクトを使用する 改善例 - 具体的なクラスとして設計する 参考 続く… コメント はじめに 本記事では「良いコード 悪いコードで学ぶ…
はじめに 多すぎる引数 例 - 仕様 例 - コード 問題点 改善例 参考 続く… コメント はじめに 本記事では「良いコード 悪いコードで学ぶ設計入門」で学んだ内容と別途気になって調べた内容や知識も含めアウトプットしています。 書籍に記載されている内容を順…
はじめに 出力引数 - アンチパターン 低凝集を引き起こす 全く同じメソッドが別のクラスに実装される例 補足 - 出力引数 引数が破壊的に変更される内容が外部からわからない 改善例: 引数を変更しない構造にする - 割引の実装例 改善例: 引数を変更しない構…
はじめに 共通処理クラス(Common・Util) 例: 共通処理クラス 無関係な共通処理が雑多に置かれるアンチパターン 改善例: 専用のクラスを作成する 横断的関心事 概要 例 横断的関心事は静的メソッドとして設計しても良い 参考 続く… コメント はじめに 本記…
はじめに 手続き型言語の設計 初期化ロジックの分散 GiftPointクラス 初期化のケースによっては発生する課題 ファクトリメソッド ファクトリメソッドとは ファクトリメソッドを用いた改善例 ファクトリメソッドの使用例 参考 続く… コメント はじめに 本記事…
はじめに 可変と不変 適切な設計がされていないとどうなるか 再代入 アンチパターン例 改善例 不変にして再代入を防ぐ freezeメソッド 不変にするメリット 定数を定義したらfreezeを使う JavaScriptではconstを使用すれば良いだけ 参考 続く… コメント はじ…
はじめに デザインパターン(設計パターン) デザインパターン例 完全コンストラクタ どんな問題解決を解消するか 生焼けの解決方法 値オブジェクト どんな問題解決を解消するか 解決方法 例 参考 続く… コメント はじめに 本記事では「良いコード 悪いコー…
はじめに クラスベースのオブジェクト指向設計 クラス単体で正常に動作するよう設計する 適切な初期化ロジック 正常な値のルールを定義 ガード節 参考 続く… コメント はじめに 本記事では「良いコード 悪いコードで学ぶ設計入門」で学んだ内容と別途気にな…
はじめに クラス モデルクラス コントローラークラス サービスクラス 適切な設計 HP管理に関するコード アンチパターン 改善例 damageメソッド recoverメソッド validate_valueメソッド (バリデーション) 参考 続く… コメント はじめに 本記事では「良いコー…
はじめに 低凝集 (アンチパターン) 主な原因 弊害 重複コード 修正漏れ 可読性の低下 低凝集を解消する モジュールやクラスの設計を見直す データと計算ロジックを統一的なインターフェースで結びつける ドメイン駆動設計の原則を適用する Railsにおける簡単…
はじめに Cloud9 機能 ブラウザのみで開発に必要な機能が統括されている(IDE) ペアプロがしやすい仕組み 料金 続く… コメント はじめに インフラの勉強で軽く調べた内容を書き留めておきたいと思いました。 本記事では、主にCloud9に関して調べた内容をまと…
背景 Cognito (こぐにーと) 概要 提供機能 - ユーザー認証 ユーザープール フェデレーション カスタマイズ可能な UI 多要素認証 (MFA) アダプティブ認証 提供機能 - セキュリティ ボット検出 セキュリティ侵害を受けた認証情報の保護 Cognitoによる認証・認…
背景 CloudTrail 概要 具体的に使える場面 始め方 料金 イベント履歴のログ記録 追跡の作成 無料枠でも受けられる恩恵 参考 続く… コメント 背景 インフラの勉強で軽く調べた内容を書き留めておきたいと思いました。 本記事では、主に監査ログに関して調べた…
背景 Constantsとは 課題 - 定数管理がまとめて管理されていないと可読性が悪い 使用方法 スタイルにも活用できる React以外でも一般的に使用される おわりに コメント プログラミングスクールのご紹介 (卒業生より) 背景 フロントのリファクタリングを行っ…
背景 監査ログ 監査ログの使用用途について 監査トレイルの確保 リアルタイムのモニタリング コンプライアンスの遵守 CloudWatch (AWS) CloudWatch Logs - ログの管理 導入方法 ログからどのような情報が得られるか エラーと障害の詳細 パフォーマンスの監視…
背景 Array.prototype.some() 概要 構文 戻り値 簡単な例 実用例 - some 要件 hasPlanContentsを定義 - /hooks/hoge/userPlan.ts someの解説 hasDashboardPlanContentsを定義 - /pages/home/Dashboard.tsx 続く… コメント 背景 フロントのリファクタリングを…
背景 Array.prototype.flatMap() 概要 多次元配列 構文 - flatMap Array.prototype.map() 概要 構文 - map flatMap()とmap()の違い 続く… コメント 背景 フロントのリファクタリングを行った際に軽く調べた内容を書き留めておきたいと思いました。 本記事で…
背景 概要 解説 - group_byでグループ化 group_byで得られる結果値 実用例 実現するUI おわりに コメント プログラミングスクールのご紹介 (卒業生より) 背景 バックエンドの実装を行った際にgroup_byメソッドについて色々調べたため内容を書き留めておきた…
はじめに Rails APIでJSONを返す JSONの構築 jbuilder 拡張子 コード例 app/controllers/api/v1/users_controller.rb app/views/api/v1/users/index.json.jbuilder 部分テンプレート app/views/api/v1/users/_user.json.jbuilder app/views/api/v1/users/ind…
はじめに クレジットカード決済機能 手数料 決済プラットフォーム Pay.jp 利用方法 実装の想定 - Pay.jp 続く… コメント はじめに 本記事では「パーフェクト Ruby on Rails」で学んだ内容と別途気になって調べた内容や知識も含めアウトプットしています。 書…
はじめに 例外設計 異常系のエラーを分類する 業務エラー システムエラー システムエラーのハンドリング 業務エラーの場合 実装時の注意点 システムエラーの場合 実装時の注意点 途中でエラーが発生しても続行したいケース 共通処理をメソッド化 参考 続く… …
はじめに rescue_from rescue_fromとは resucue_fromを用いたエラーハンドリングの仕方 application_controller.rb app/views/layouts/errors.html.erb 参考 続く… コメント はじめに 本記事では「パーフェクト Ruby on Rails」で学んだ内容と別途気になって…
はじめに resourcesのネスト 通常のresources resourcesをネストする resourcesをネストする - メリット resourcesをネストする - デメリット member collection 使い分け - collectionとmember 続く… コメント プログラミングスクールのご紹介 (卒業生より)…
はじめに Docker環境のPostgreSQLにアクセスする手順 $ docker ps (DBコンテナのNAMESを確認) $ docker exec -it DB名 bash (Docker環境のDBにアクセス) -itオプション - インタラクティブに接続する $ psql -U postgres -l (DBをリスト表示) $ psql -U post…
はじめに docker-compose.ymlとは Dockerコンテナの操作に使用される主要なコマンド Docker ComposeとDockerコマンドの違い Dockerの構築する際の参考 docker-compose.yml - 記述例と解説 Dockerfileとは Dockerの起動の流れ frontendコンテナのDockerfile -…
はじめに 1. 初期ファイルの準備 シェルスクリプトを作成し実行 2. docker-compose.ymlに記述を加える 3. frontend/Dockerfileに記述を加える 4. backend/Dockerfileに記述を加える Gemfileにも記述を追加 5. Next.jsアプリケーションを作成する package.jso…
はじめに ActiveRecord::Relation 概要 - ActiveRecord::Relation 動作について - ActiveRecord::Relation Scope 概要 - scope 使用例 - scope 注意点: nilとなる場合に正しくnilが返されない - scope 多対多の関係 throughオプションによって使えるようにな…
背景 DBのバックアップを取る herokuに接続 バックアップ バックアップ - 拡張子をSQLファイルに変換 おわりに コメント プログラミングスクールのご紹介 (卒業生より) 背景 Twitter APIの有料化に伴い、個人開発したサービスの運用を変えることにしました。…