11月13日の学び

AWSIPアドレスに関して。Route53は明日。

AWSのプライベートIPアドレス

AWSグローバルIPアドレス

11月12日の学び

DBの用語のシーケンス・インデックス・ビューに関して。こういうDB用語の理解が進むとだんだん自信がついてきて大変よろしい!!

シーケンス

  • シーケンスは連番となる一意な整数を生成するデータベースのオブジェクト
  • 一般的にシーケンスは、ユーザIDや登録番号等の主キーを生成する際に利用

インデックス

  • DBの検索速度を向上させるためのデータ構造
  • デメリットとしてDB自体の肥大化

ビュー

  • 作成済みのSELECT文に名前を付けてデータベース上に保存しておける仕組み
  • ビューは実データを持たない
  • 雑な問合せを定義したビューを作成することで、ユーザーが複雑なSQL文を発行する必要がなくなる

11月11&12日の学び

プロセスの出力先

  • 各プロセスの出力先はプロセス毎に個別に存在する
  • 「/proc/PID/fd/数字」がファイルディスクリプタ
  • 各プロセスの入出力は「/proc/PID/fd/数字」から確認ができる
  • これを利用してバックグラウンドで実行しているプロセスの出力も確認可能
  • ファイルディスクリプタは、プロセスが生成されたときに親からコピーされる

各プロセスの入出力先

端末のbashから起動したコマンドでは、0〜2は端末に紐付いており3以降はクローズ。

teratail.com yudoufu.hatenablog.jp

11月10日の学び

まだまだ経験不足。UMLだけで全てが完結するわけではない。他にどんなツールがあるのだろうか。。。

UML

  • クラス全体の関係性が明瞭になるため、特定のクラスのみが肥大化するのを避けられる
  • 一方個別のメソッドの内部処理が不明のため、特定のメソッドの内部処理のみが肥大化する可能性がある
  • 条件分岐が多い処理(=役割の重要な処理)ほど肥大化する傾向がある
  • そのためUMLを作成する場合はクラス全体の関係性ではなく、メソッド内部まで意識をすること

11月9日の学び

論理削除と物理削除

  • 論理削除はフラグを設定するだけで削除は行わない。削除後の復元可能。
  • 物理削除は削除を行う。削除後の復元はできない。

2層コミット

www.ogis-ri.co.jp

11月7日の学び

プリミティブ型と参照型

  • プリミティブ型はObjectを継承していないが、参照型(オブジェクト型)はObjectを継承している
  • プリミティブ型はすべて小文字で始まるが、参照型(オブジェクト型)はすべて大文字で始まる。
  • プリミティブ型は値しかもたないが、参照型(オブジェクト型)は値とメソッドを持つ
  • プリミティブ型を参照型として扱うクラスとしてラッパクラスがある(int → Integer)
  • 参照型は初期値はnull
  • ループ処理などにおいてはプリミティブ型のほうが性能が高い

==演算子

  • プリミティブ型の場合は「値が等しいか」を確認
  • 参照型の場合は「参照に用いるアドレスが等しいか」を確認

equals演算子

  • 参照型の場合は「参照先の値が等しいか」を確認

「等値」と「等価」という概念

qiita.com tech.nikkeibp.co.jp

11月5&6日の学び

  • UMLで用いる用語の整理
  • 最近ようやくクラス図の偉大さがわかってきた
  • きちんと設計するって大切
  • 関連・汎化・集約の大きく3パターンあることをまずは抑える

関連

  • 線でつなぐ
  • 矢印の場合は方向性あり(ヘッダファイルのインクルードなど一方方向)

汎化

  • ようするに継承
  • 子から親に白抜き矢印線を引く
  • 親クラスがインタフェースや抽象クラスの場合を特に実現と呼ぶ

集約

  • 全体と部分という関係(has a の関係ではない)
  • 全体と部分を白抜き菱形実線でつなぐ(全体側に白抜き菱形あり)
  • 複数の全体インスタンスが一つの部分インスタンスを共有する場合を集約、一つの全体インスタンスが一つの部分インスタンスを専有する場合を合成と呼ぶ
  • 合成の場合は全体側を削除すると部分側も自動で削除される

qiita.com yohshiy.blog.fc2.com