Skip to content

Instantly share code, notes, and snippets.

@terassyi
Last active September 24, 2019 16:52
Show Gist options
  • Save terassyi/a959c9890b44113ec727bf948600a405 to your computer and use it in GitHub Desktop.
Save terassyi/a959c9890b44113ec727bf948600a405 to your computer and use it in GitHub Desktop.
読書録

ダークウェブの教科書

ダークウェブの基礎知識

webの改装

  • Surface Web
  • Deep Web
  • Dark Web

Torの仕組み

世界中に存在するTorサーバーを経由して発信元を秘匿する。AliceとBobの通信において、複数のTorノードを経由することで通信相手を秘匿する。 AliceがBob以外のJaneと通信する際は別のノードを使用して通信路を構築するため秘匿できる。通信内容は相手の直前までは暗号化されていて、直前のノード間では暗号化されない。 より匿名性を高めるために、10分ごとに経路を更新、ガードノード(最初に接続するサーバー)を2〜3ヶ月変更しないなどの対策が取られる。

第二部

第4章

2019-07-30

ユーザインターフェース・アプリケーション層・ドメイン層(核)・インフラ層 各層は分離されているべき。ドメインを隔離するメリットは、それ以外のものを取り去って、ドメインの設計に集中できること。

第5章

2019-07-30

モデルを表現する3パターンの要素

  • エンティティ
    • 状態が異なったり、別々の実装を跨いだりしたとしても追跡されるような、連続性と一意性を持ったものを表現
  • 値オブジェクト
    • 他の何かの状態を記述する属性
  • サービス
    • 要求に応じてクライアントのために行われる操作

関連:モデルにおいて辿ることのできる関連それぞれに対応して、ソフトウェアにおいても同じ特性を持つ仕組みが存在する

2019-07-31

  • エンティティ(参照オブジェクト): 同一性(区別すべき)を持つオブジェクト

  • エンティティにとって最も基本的な責務は、振る舞いが明確で予測可能になるように、連続性を確立すること。

  • 値オブジェクト:ドメインにおける記述的な側面を表現し、概念的な同一性を持たないオブジェクト。その属性しか関心の対象とならないのであれば値オブジェクト。

  • 関連

    • 少ない方がいい
  • サービス:モデルにおいて独立したインターフェースとして提供される操作。純粋にクライアントに対して何が実行できるかという観点から定義される。

    • 優れたサービスの特徴
      1. 操作がドメインの概念に関係しており、その概念がエンティティや値オブジェクトの自然な一部でない
      2. ドメインモデルの他の要素の観点からインターフェースが定義されている
      3. 操作に状態がない
  • モジュール(パッケージ)

第5章

2019-08-01

リポジトリ

  • クライアント側はDBを直接いじるのではなくて、インフラ層を介して触る
  • データベースクエリを自由に行うと、実はドメインやデータベースと集約のカプセル化に違反しかねない。インフラやデータベースアクセスを露呈させてしまうと、クライアントが複雑になり、モデル駆動設計が不明瞭になる。
  • リポジトリの利点
    1. クライアントに対して、永続化されたオブジェクトを取得し、そのライフサイクルを管理するためのシンプルなモデルを与える
    2. アプリケーションとドメインの設計を、永続化技術や複数のデータベース戦略、さらには複数のデータソースからも分離する
    3. オブジェクトアクセスに関する設計上の決定を下す
    4. テストで使用するために、ダミーの実装で置き換えるのが容易になる

2019-08-07

モデリングパラダイム

パラダイムを混在させるときはモデル駆動開発設計に忠実であれ

第6章 ドメインオブジェクトのライフサイクル

オブジェクトにはライフサイクルがあり、誕生した後は様々な状態を経て、最終的には死ぬ。(削除orアーカイブ)

2019-08-29

  • 集約 関連するオブジェクトの集まり。データを変更するための単位。集約メンバの中で、外部のオブジェクトが参照を保持していいのはルートだけ。

エンティティと値オブジェクトを集約の中にまとめ、各集約の周囲に境界を定義すること。各集約に対してルートとなるエンティティを1つ選び、境界内部に存在するオブジェクトへのアクセスはそのルートを経由して制御する。外部オブジェクトが参照を保持できるのはルートのみとする。内部のメンバに対する一時的な参照を渡して良いのは、単一の操作で使用するときだけ。

  • ファクトリ オブジェクトや集約全体を生成するのが複雑になったり、内部構造をさらけ出しすぎていたりする場合、ファクトリによってカプセル化が実現される。

2019-08-30

ファクトリは生成物と非常に緊密に結合するので、ファクトリを所属させるのは、その生成物に対して密接で自然な関係を持つオブジェクトだけにするべき。 何か隠蔽したいものがあるのに、自然な置き場所がないときは専用のファクトリオブジェクトかサービスを定義する。

インターフェースを設計する

  1. *各操作はアトミックでなければならない。*完全な生成物を生成するのに必要なものは、ファクトリとのやりとり1回で全て渡さなければならない。
  2. *ファクトリはその引数と結合する.*入力パラメータを慎重に定義しないと、入り組んだ依存関係を作り出しかねない。

ファクトリは生成するオブジェクトや集約に関する不変条件が、全て満たされていることを保証する責務を負う。

格納したオブジェクトを再構成する

  1. *再構成に使用されるエンティティファクトリでは、新しい追跡IDを割り当てることができない。*識別用の属性は、格納されているオブジェクトを再構成するファクトリに対する入力パラメータの一部でなければならない。
  2. オブジェクトを再構成するファクトリは、不変条件の違反を違う形で制御する。
  • リポジトリ メリット
  1. クライアントに対して、永続化されたオブジェクトを取得し、そのライフサイクルを管理するためのシンプルなモデルを与える。
  2. アプリケーションとドメイン設計を、永続化技術や複数のデータベース戦略や複数のデータソースからも分離する。
  3. オブジェクトアクセスに関する設計上の決定を伝える。
  4. テストのためのダミーに置き換えるのが簡単.

リポジトリは基底にあるデータストアをカプセル化する

  1. 型を抽象化する
  2. クライアントから切り離す利点を活かすこと
  3. トランザクション制御をクライアントに委ねること

2019-09-03

ファクトリとの関係

ファクトリは、オブジェクトのライフサイクルに置ける始まりを処理し、リポジトリは中期から終わりを管理するのを助ける。ファクトリは新しいオブジェクトを生成し、リポジトリは古いオブジェクトを見つけ出す。

関係データベースに合わせてオブジェクトを設計する

  • データベースをオブジェクトの格納先としてみる場合、マッピングツールの能力に関わらず、データモデルとオブジェクトモデルをかけ離れたものにしてはならない。
  • オブジェクトシステムの外部にあるプロセスからは、そうしたオブジェクトの格納先にアクセスしてはいけない。

第7章 言語を使用する:応用例

  • ドメインを隔離する:アプリケーションの導入 ドメインの責務が他の部分と混ざらないようにレイヤー化アーキテクチャを適用してドメイン層を区切る。
  • エンティティと値オブジェクトを区別する
  • ドメインの関連を設計する
  • 集約の境界
  • オブジェクトの生成

機械学習のための特徴量エンジニアリング

2.4 スケーリングと正規化

2.4.2 Min-Maxスケジューリング

0~1になるよ!

2.4.2 標準化(分散スケジューリング)

  • mean(x) -> xの平均
  • var(x) ->xの分散

2.4.3 l^2正規化

  • l^2ノルム(ユークリッドノルム) <-大きさみたいなやつ l^1ノルムが絶対値

特徴量スケーリングはどの手法も特徴量を定数で除算する この定数は正規化定数と言うよ

2.5 交互作用特徴量

複数の特徴量を組み合わせて新たな特徴量を作成する 特徴量と特徴量の掛け算 <-論理積的な

2.6 特徴選択

有用でない特徴量を取り除くことでモデルの複雑さを軽減する ←計算量を減らしたい!

  • フィルタ法 閾値を使って除去
  • ラッパー法 実際に特徴量の一部を使用して判断
  • 組み込み法 モデルの学習プロセスに特徴選択が組み込まれていること スパースとは→ 行列にたくさん0がある

2.7 まとめ

キーワード

  • 二値化
  • 離散化
  • スケーリング
  • 対数変換
  • 交互作用特徴量
  • 特徴選択
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment