forget for get

覚えるために忘れる

SpringBoot入門:DBから値を取得

気軽に試せるH2データベースを使えるようにする src/main/resources/application.properties spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE spring.datasource.driverClassName=org.h2.Driver spring.datasource.user…

SpringBoot入門:環境構築

参考書はこちらを選択(Kindle Unlimitedで無料で読めるので)Spring 解体新書 環境構築 IDESpring Tools 4 for Eclipsehttps://spring.io/tools/windows版をダウンロード、任意の場所に配置して「java -jar spring-tool-suite-xxx.jar」sts-x.x.x.RELEASEの…

Java入門

筆者はPHPを習得しているので環境構築くらいしか書くことがない。 (言語の違いで気づいたことがあれば追記していく) JavaDriveでJava入門https://www.javadrive.jp/start/ JDKのインストールhttps://jdk.java.net/Ready for use: JDK XXをクリックBuildsか…

Compositeパターン

容器と中身の同一視。ファイルシステムでは、ディレクトリとファイルが入れ子になっている。ディレクトリとファイルは異なるものですが、「ディレクトリに入るもの」とみなしている。 Leaf(葉):MyFile中身Composite(複合体):MyDirectory容器Component:En…

Mementoパターン

状態を保存しておいて、復元できるようにしておく。undo,redo,history,snapshot 復元するためにインスタンスの内部情報を公開すると、カプセル化の破壊になるので、インタフェースを使い分ける。 Originator(作成者):Gamer自分の現在の状態を保存したいと…

Strategyパターン

アルゴリズムをごっそり切り替える Strategy(戦略):Strategyインタフェースを規定ConcreteStrategy(具体的戦略):WinningStrategy、ProbStrategyContext(文脈):PlayerStrategyを利用。ConcreteStrategyのインスタンスを保持。 Hand.php class Hand { co…

Bridgeパターン

機能の階層と実装の階層を分ける 機能(メソッド)を追加したいとき、サブクラス(子クラス、派生クラス、拡張クラス)をつくるさらに機能を追加する場合、さらに階層が深くなる Something SomethingGood SomethingBetter 抽象クラスでインタフェース(API)…

Abstract Factoryパターン

抽象的な工場では、抽象的な部品を組み合わせて抽象的な製品をつくる具体的な実装には注目せず、インタフェースだけを使って、部品を組み立て、製品にまとめる 具体的な工場を新たに追加するのは簡単部品を新たに追加するのは困難(すべての具体的な工場に追…

Template Methodパターン

スーパークラスで抽象メソッドの呼び出しの流れを定め、サブクラスで具体的な処理を実装ロジックが共通化できる AbstractDisplay.php abstract class AbstractDisplay { abstract function open(); abstract function print(); abstract function close(); f…

値オブジェクトの配列から値の配列を取り出す

クリーンアーキテクチャだと$itemIdがintではなく、ItemIdクラスみたいな値オブジェクト(ValueObject)になっている。 例えば、検索クエリに指定したいときはこんな感じに書く。 Item::where('item_id', $itemId->itemId)->get(); では、$itemIdListのとき…

PhpStormメモ

矩形選択:Alt+Shift+ドラッグ メソッドの呼び出し元へジャンプ:Alt+F7 右クリック→生成→テスト

PHPの列挙型(Enum)

test.php name; // Spades test2.php

Observerパターン

観察対象の状態が変化すると、通知する Subject(被験者):NumberGenerator Observerを登録・削除するメソッド、現在の状態を取得するメソッドをもつ具体的なSubject:RandomNumberGenerator 状態が変化したらObserverに伝えるObserver(観察者):Observer…

Vue CLIチュートリアル

https://cli.vuejs.org/guide/prototyping.html Docker環境構築 https://cli.vuejs.org/guide/prototyping.html を参考に Dockerfile FROM node:16 #ENV http_proxy http://xxx:3128/ #ENV https_proxy http://xxx:3128/ WORKDIR /app docker-compose.yml※co…

プロキシ下でのVagrant,Docker環境構築で色々ハマる

Vagrantfile if Vagrant.has_plugin?("vagrant-proxyconf") config.proxy.http = "http://xxx:3128" config.proxy.https = "http://xxx:3128" config.proxy.no_proxy = "localhost,127.0.0.1,aaa,bbb" end プロキシ設定するプラグインを入れてからvagrant up…

LaravelMixチュートリアル Vue.js導入まで

LaravelMixを使ってみようとしたけど、Laravel公式のドキュメントだと全然わからず、、 https://readouble.com/laravel/8.x/ja/mix.html LaravelMix公式のドキュメントを見ることに。 https://readouble.com/laravel/8.x/ja/mix.html 事前準備 Laravel + Doc…

docker-composeでLaravel環境構築(PHP/nginx/MySQL)

これを参考に 【超入門】20分でLaravel開発環境を爆速構築するDockerハンズオン https://qiita.com/ucan-lab/items/56c9dc3cf2e6762672f4 ディレクトリ・ファイルを作成 ディレクトリ構成 laravel_docker/ docker-compose.yml docker/ php/ Dockerfile php.i…

Vue.js axiosを使ったサンプル

配列を更新するとき、 app.gachaResult = response.data では表示が更新されなくて、 app.gachaResult.splice(0, app.gachaResult.length, ...response.data) 配列のメソッドで更新しないとリアクティブに更新されない。 <html><head><meta charset="utf-8"/></meta></head></html>

VueRouterチュートリアル

https://router.vuejs.org/ja/guide/ VueRouterの「基本的な使い方」を見ながらサンプルをつくってみた。 <html><head><meta charset="utf-8"/></meta></head></html>

Vue.jsチュートリアル

https://jp.vuejs.org/v2/guide/index.html Vue.jsの「はじめに」を見ながらサンプルをつくってみた。v-ifとv-on:clickで表示切替、キャラ一覧はv-forとcomponentの2パターンで試してみた。 <html><head></head></html>

DockerでPHPからMySQLに接続してみる

Dockerfile FROM php:7.4-apache RUN docker-php-ext-install pdo_mysql COPY src/ /var/www/html/ src/my.php '; try { $dbh = new PDO('mysql:host=mysql_1;dbname=test', 'root', 'root123'); foreach($dbh->query('select * from users') as $row) { ech…

GitExtensionsでリモートリポジトリのパス変更

サーバー移行でリモートリポジトリのURL(ドメイン、パス)が変更になった場合のGitExtensionsの設定変更 メニュー>リポジトリ>リモートリポジトリ>URL

Dockerチュートリアル

Dockerチュートリアル https://docs.docker.jp/get-started/part2.html サンプル Dockerfile # 親イメージとして公式イメージを使う FROM node:current-slim # 作業用(working)ディレクトリを指定 WORKDIR /usr/src/app # ホスト上のファイルを現在の場所…

dockerコンテナが起動しない

WARNING: Host is already in use by another container ERROR: for api Cannot start service api: driver failed programming external connectivity on endpoint docker_api_1 (e819fe...): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind…

.vimrcでエラー E254: Cannot allocate color 7

いつものように~/.vimrcを編集してvimを起動したらエラーが出た E254: Cannot allocate color 7 バージョンによっては7なんて色はないらしい。LightGrayに変更して解決。 ~/.vimrc highlight SpecialKey cterm=NONE ctermfg=7 guifg=7 highlight JpSpace cte…

foreachで参照渡しで値を変更するとバグる

foreachで参照渡しで値を変更するとバグる $vals = [1,2,3]; foreach ($vals as &$val) { $val *= 2; } echo json_encode($vals); //[2,4,6] foreach ($vals as $val) { echo $val . ','; } //2,4,4, 何が起こっているか $vals = [1,2,3]; foreach ($vals as…

Dockerまとめ

公式ドキュメント https://docs.docker.com/ https://docs.docker.jp/ (日本語版) インストール CentOS8 Docker/Docker Composeインストール https://qiita.com/chenglin/items/8e13e7ad45cc9bae264a 記事リスト docker-composeでLaravel環境構築(PHP/nginx/…

WinMergeでワード、エクセル、パワーポイントの差分を見る

WinMergeでOfficeファイルのテキスト差分を見る gitやsvnでWord, Excel, PowerPointなどのOfficeファイルを管理していると、変更があっても、どこが変更されたのかわからず、確認が面倒。 WinMergeのプラグインを使うと、Word, Excel, PowerPointなどからテ…

よく使うLinuxコマンドまとめ

pwd cd cd /var/www/html cd ../../Models ls-l: 詳細 -a: 隠しファイルも表示 -t: 更新時間で並べ替え ls -alt mkdir mkdir new_dir cp-a: 所有者、パーミッション、更新時刻などなるべくそのままコピー cp -a aaa.php bbb.php mv mv aaa.php bbb.php mv aa…

GitExtensionsで削除されたリモートブランチが消えずに残ってる

結論:GitExtensionsの設定で「フェッチと共にリモートブランチをプルーン」を適用すると解決。(設定>Git>高度な設定) GitExtensionsでブランチ切り替えするとき、リモートブランチ一覧に削除されたリモートブランチが消えずに残ってる。JIRAでブランチを…