プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • 【実装設計】入門
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【実装設計】入門

第1章 コーディング規則、リファクタリング

命名規則

  • 命名の基本的な考え方
  • 命名規則(Java)
  • 定数化

その他

  • コメント
  • バージョンの付け方

第2章 ライブラリの利用

  • ライセンスについて

第3章 オブジェクト指向

なぜオブジェクト指向で作るのか?

  • オブジェクト指向にたどり着くまでのプログラミングの歴史

オブジェクト指向の三大要素

  • クラスのメリット
  • 多様性(ポリモーフィズム)のメリット
  • 継承のメリット

基本

  • 抽象クラス、インターフェース
  • コンストラクタ、this
  • クラス変数
  • カプセル化
  • オブジェクト指向っぽく書くには?
  • クラス設計の基本
  • クラスの独立性を高める
  • DAO/DTO

UML

  • 種類、クラス図

SOLID原則

  • 概要
  • オープン・クローズドの原則

デザインパターン

  • デザインパターン基本

デザインパターンに慣れる

  • Adaptor(一皮被せて再利用)

サブクラスに任せる

  • Factory Method(インスタンスの作成をサブクラスに任せる)

インスタンスを作る

  • Builder(複雑なインスタンスを組み立てる)
  • Singleton(たった一つのインスタンス)
  • Abstract Factory(関連部品を組み合わせて製品を作る)

同一視

  • Decorator(飾り枠と中身の同一視)

シンプルにする

  • Facade(シンプルな窓口)

無駄をなくす

  • Flyweight(同じ物を共有して無駄をなくす)
  • Proxy(必要になってから作る)

例外設計

設計方針

  • ログレベル

例外の種類

  • バリデーション

言語別の実装方法

Java

  • 基本
  • 汎用例外
  • ログライブラリの比較

Ruby

  • Ruby
  • Rails
  • ログ設定

JavaScript

  • 基本

DDD

概要

  • 「ドメイン」と「境界づけられたコンテキスト」
  • コンテキストマップ

ドメイン駆動設計(戦術的設計)のパターン

基本的な考え方

  • 集約
  • DI(依存性の注入)を意識すること
  • CQRS

知識を表現するパターン(ドメインオブジェクト)

バリューオブジェクト
  • バリューオブジェクト、作成基準
エンティティ
  • エンティティ、仕様オブジェクト
ドメインサービス
  • ドメインサービス
ドメインイベント
  • ドメインイベント

アプリケーションを実現するためのパターン

リポジトリ
  • 基本
  • Infrastructure
  • CQRSの活用
アプリケーションサービス
  • アプリケーションサービス
  • コマンドオブジェクト
  • トランザクション処理
ファクトリ
  • 基本

アーキテクチャ

  • 概要

レイヤードアーキテクチャ

  • 三層+ドメインモデル

暗号技術

  • 共通鍵暗号方式、公開鍵暗号方式
  • ハッシュ関数
  • MAC(メッセージ認証コード)

SSL/TLS

  • 概要
  • 暗号スイート、SSLハンドシェイク
  • 証明書、証明書発行までの流れ
  • Let's Encrypt

クラッキング手法

  • ハッキングの流れ
  • 攻撃手法
  • マルウェアの種類

認証設計

基本

  • Webアプリ認証の種類

セッション認証(Webアプリ)

  • セッションの保存先

トークン認証(Webアプリ)

  • JWT

Auth0

  • 概要

インフラの認証

シングルサインオン

  • 基本、SAML

OAuth

  • トークン、エンドポイント、ロール
  • グランドタイプ
RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー