勉強日記

チラ裏

2018-01-01から1年間の記事一覧

GoF本 Memento

ねらい AKA モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン ねらい カプセル化を違反することなく、オブジェクトの内部状態を外部に書き出し、後で再度読み込む AKA Token モチベー…

GoF本 Mediator

ねらい モチベーション つかいどころ 構造 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン ねらい オブジェクトの相互作用をカプセル化するためのオブジェクトを定義する オブジェクトどうしを疎結合にする モチ…

GoF本 Iterator

ねらい AKA モチベーション つかいどころ 構造 登場人物 クライアントコードからの利用 実装にあたり考えるべきこと Iteratorの分類 -- External/Internal TODO 走査アルゴリズムをどのクラスに定義するか どれだけ堅牢にするか 走査のメソッドの追加 Iterat…

laradock環境でstorybook for vueを導入し、HMRの設定をした話

環境 やったこと つまりどころ アプリケーションのHMR on dockerの設定 laradockのポート設定 参考 ポート設定を別ファイルに分割 ポート設定用yamlファイルを作成・ポート設定 コンテナ再起動 Laravel Mixの設定 使用ポートとポーリング間隔の設定 Storyboo…

GoF本 Interpreter

ねらい モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと Compositeとどうちがうの 関連するパターン よくわかんなかったやつ ねらい 言語の文法をクラスの木構造で表現する 抽象構文木(AST: Abstract S…

達人に学ぶSQL徹底指南書 第2版 Chapter10 SQLで数列を扱う

www.shoeisha.co.jp の輪読会資料 まとめ はじめに 連番を作ろう 00から99までの100個の数の中には、0,1,2,......9の各数字はそれぞれ何個含まれるか 0-99の連番を作る 1-542の連番を作る シーケンスビューを作る シーケンスビューから1-100まで取得 【補】0…

GoF本 Command

ねらい AKA モチベーション つかいどころ 登場人物 【補】具体例 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン ねらい リクエストをオブジェクトとしてカプセル化 クライアントを異なるリクエストでパラメタライズできる…

GoF本 Chain of Responsibility

ねらい モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン ねらい リクエストの送信者と受信者との密結合をほぐす 1つ以上のオブジェクトにリクエストの処理の機会を与える モチベーシ…

GoF本 Discussions of Structural Patterns

構造のパターンの類似性 AdapterとBridge 共通点 相違点 AdapterとFacade CompositeとDecorator 共通点 相違点 併用 DecoratorとProxy 共通点 相違点 英語 構造のパターンの類似性 登場人物と、クライアントコードからの利用が類似している が、ねらいが全然…

GoF本 Proxy

ねらい AKA モチベーション つかいどころ Remote Proxy Virtual Proxy Protection Proxy Smart Reference 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 言語の機能を使うと幸せになれることも 演算子オーバーロード マジックメソ…

GoF本 Flyweight

ねらい モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン 英語 ねらい 小さなオブジェクトを大量に利用する際、オブジェクトを共用することで空間を節約する モチベーション クラスの…

GoF本 Facade

ねらい モチベーション つかいどころ 登場人物 結果 実装にあたり考えるべきこと 【補強】用例 関連するパターン 英語 ねらい 複数クラスからなるサブシステムに窓口を設け、簡単に使えるようにする モチベーション システムをサブシステムに小分けにするこ…

GoF本 Decorator

ねらい AKA モチベーション つかいどころ 構造 登場人物 クライアントコードからの利用 功罪 功 罪 実装にあたり考えるべきこと Strategyパターンとの対比 関連するパターン 英語 ねらい オブジェクトに責務を動的に追加する AKA Wrapper AdapterもWrapperで…

GoF本 Composite

ねらい モチベーション つかいどころ 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン 英語 ねらい オブジェクトを木構造にし、木全体も部分木も葉も一様に扱えるようにする モチベーション 例えばお絵かきソフト …

閃乱カグラのデータで勉強するSQL 3 -- 自己結合・自己相関サブクエリ

senrankagura.marv.jp りんごとかバナナとかで練習しても一つも面白くないので、 閃乱カグラのキャラクターのスリーサイズ等、現実的なデータで練習をしていく SQL置き場 非順序対をつくる -- 勢力ごとに、学年が異なる者でペアを組む 部分的に不一致なデー…

閃乱カグラのデータで勉強するSQL 1 -- Case式

senrankagura.marv.jp りんごとかバナナとかで練習しても一つも面白くないので、 閃乱カグラのキャラクターのスリーサイズ等、現実的なデータで練習をしていく SQL置き場 マスタデータ 既存のコード体系を新しい体系に変換する 異なる条件の集計を1つのクエ…

GoF本 Bridge

ねらい 別名 モチベーション つかいどころ 構造 登場人物 クライアントコードからの利用 結果 実装にあたり考えるべきこと 関連するパターン 英語 ねらい 種類に関する継承ツリー(Abstraction)と実装に関する継承ツリー(Implementor)を分離する 種類に関する…

GoF本 Adapter

ねらい 別名 モチベーション つかいどころ 構造 登場人物 クライアントコードからの利用 功罪 継承方式と集約方式とのトレードオフ ほか、考えるべきこと 実装 他のStructural Patternとの対比 英語 ねらい 既存クラスのインタフェースを変える 別名 Wrapper…

GoF本 Discussion of Creational Patterns

生成のパターンの分類 継承 集約 比較検討 -- シンプルなオブジェクトを生成する場合 Factory Method AbstractFactory Prototype 選択 生成のパターンの分類 2つに大別 継承 Factory Method 集約 Abstract Factory Builder Prototype 比較検討 -- シンプルな…

達人に学ぶSQL徹底指南書 第2版 Chapter5 WIP

序文 SQLを支える基礎理論は2つ 集合論 述語論理(predicate logic) SQLで使う述語論理は、「一階述語論理」...行の集合 = テーブルを対象とする 0階: 行対象 二階: 行の集合の集合 = テーブルの集合を対象とする EXISTSは「量化」(quantification)を実現する…

GoF本 Singleton

まとめ モチベーション つかいどころ 功罪 実装面 用例 関連するパターン まとめ クラスから生成されるオブジェクトを1つに絞る モチベーション オブジェクトがただ1つであることが重要なケースがある 例 ファイルシステム ウィンドウ 「ただ一つのオブジェ…

GoF本 Prototype

まとめ モチベーション 登場人物 つかいどころ 功罪 実装 関連するパターン まとめ newとかするのではなく、作り置きしたオブジェクトをClone()する モチベーション AbstractFactoryやFactoryMethodを導入すると、 AbstractFactoryやCreatorのサブクラスを大…

GoF本 FactoryMethod

まとめ オブジェクトを生成・返却するメソッドのインタフェースを定義する 実際にどのクラスを生成するかはサブクラスの実装|overrideに委ねる 別名 Virtual Constructor モチベーション 世の中のプログラムフレームワークは抽象クラスを扱う フレームワーク…

GoF本 Builder

モチベーション 登場人物 全体像 クライアントコードからの利用 功罪 実装面で考えるべきこと Builderクラスの構築処理のインタフェース Productは汎化しない 基底のBuilderのメソッドは空の処理 用例 関連するパターン BuilderとAbstarctFactoryとのちがい …

GoF本 AbstractFactory

まとめ 別名 登場人物 全体像 つかいどころ 功罪 実装面 Singleton ふつうの実装 Familyが多い場合・Family間の差分が少ない場合の実装 Productが増えても大変にならない実装 型安全 関連するパターン まとめ 一式のオブジェクト群を生成するクラス 関連があ…

Docker for Windowsを使っていてCドライブが枯渇したときの対処

サマリー dockerにCドライブを食い尽くされた Hyper-Vの設定変更で解決 Virutal hard disksをDドライブに移した サマリー 環境 現象 原因 やったこと Virtual Hard DiskをDドライブに移す 結果 APPENDIX 環境 Windows 10 PRO Docker for Windows Hyper-V上で…

【ごちうさ駆動開発】Puppeteer + Dockerでスクレイピングした話

この世の終わり 「今度見よ~っと」 そう言って積んでいたPrime Videoのごちうさが2018年11月くらいから見られなくなっていた ぼくは泣き崩れた ↓ Puppeteerを用いてごちうさのページを監視し、復活していたらメールを送信する環境を構築した せっかくなので…

Laravelの依存性自動注入を解き明かす(WIP)

2019/03/21追記 結論 自動注入? 例 実装を追う プログラム実行時に、プログラム自身を解析する ... Reflection Illuminate\Container\BoundMethod protected static function callClass public static function call() protected static function getMethod…

達人に学ぶSQL徹底指南書 第2版 Chapter4

www.shoeisha.co.jp 4. 3値論理とNULL 4. 3値論理とNULL 序文 本題に入る前に 理論編 NULLについて NULLを2つに分類 by E.F.コッド 2つのNULLをひとまとめに なぜ「= NULL」ではなく「IS NULL」と書かなければならないのか? unknown、第三の真理値 注意 真…

達人に学ぶSQL徹底指南書 第2版 Chapter3

www.shoeisha.co.jp 3. 自己結合の使い方 3. 自己結合の使い方 序文 キーフレーズ 自己結合(self join)とは 重複順列・順列・組み合わせ 「対」の種類 対をつくる: 自己CROSS JOIN 気になった点 重複を許して、順列(順序対)をつくる 重複を除いて、順列(順序…