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

Entity Repository Service の役割について

記事中の経験談は、Spring Frameworkの実務経験によるものです。 Entityの役割 任意にテーブルデータを組み合わせたカスタムエンティティ(ユーザー定義エンティティ)を作成することも可能しかし、自分の経験上、カスタムエンティティを簡単に認めると、好…

Reactで条件付きレンダリング

Reactで条件付きレンダリング 私は普段Vue.jsを書いているのですが、Vueでいうv-ifが、Reactだとどうなるのか調べました。 方法1 JSXに{}で式を埋め込む 中括弧{}で式を埋め込む return ( <div> <h1>Hello!</h1> {name && <h2> {name}があれば表示される </h2> } </div> ); この場合、左辺…

Docker for WindowsでなぜLinuxがWindows上で動くのか気になったので調べてみた

はじめに Dockerは仮想マシンと違い、ホストOSにゲストOSは載っておらず、あくまでアプリやミドルウェアがコンテナとして搭載されるもの、と理解していました。 https://knowledge.sakura.ad.jp/13265/ から引用 しかし、Docker for WindowsはWindows10 Pro…

v-ifとv-showの違いと使い方の注意について

Vue

レンダリングの違い v-ifはfalseの場合は何もレンダリングされない v-showは条件に関わらずレンダリングされて、シンプルな CSS ベースの切り替えとして保存される そのため、例えば値を取得してから描画しないとエラーになる場合などは、v-ifで値をチェック…

computedは非同期処理をサポートしていないため、watchを使用する

Vue

computedは非同期処理をサポートしていない 公式サイトより watch オプションを利用することで、非同期処理( API のアクセス)の実行や、処理をどのくらいの頻度で実行するかを制御したり、最終的な answer が取得できるまでは中間の状態にしておく、といった…

b-form-groupのlabelにhtmlを使用する

b-form-groupのlabelはXSS対策でhtmlをエスケープするため効かない。 改行や空白文字などでhtmlを効かせたいなら、slotを使用する。 <b-form-group > <template slot="label">&nbsp;Username</template> <b-form-input v-model="username" type="text"></b-form-input> </b-form-group> https://github.com/bootstrap-vue/bootstrap-vue/issues/2811

Vue.jsで親コンポーネントから子コンポーネントの要素にスタイルを適用させる方法と注意点

親コンポーネントから子コンポーネントの要素にスタイルを適用させる方法 ディープセレクタ>>>を使用する <style scoped> .a >>> .b { /* ... */ } </style>` 注意 Sassなどでは上記のディープセレクタが効かない場合がある。 その場合は/deep/か::v-deepを使う。 参考 vue-loader.…

JavaScriptのNumber() 関数で文字列やnullを数値に変換した結果

JavaScriptのNumber() 関数とは プリミティブ型オブジェクトのNumberを生成する 変換した結果 console.log(Number('123')) // 123 console.log(Number('12.3')) // 12.3 console.log(Number('12.00')) // 12 console.log(Number('123e-1')) // 12.3 console.…

php.iniのファイルパスを調べる方法

PHP

echo phpinfo(); 参考: qiita.com

Google Apps Script(GAS)のV8 runtimeでES5に対応

2020年2月5日からV8 runtimeでES5に対応したようです。 これにより、letやconst, テンプレート構文が使えるようになったようです。 2020年4月現在は、GASではテンプレート構文が使えないという古い情報ばかり検索で出ますが、現在は使えます。 developers.go…

Google Apps Script(GAS)で文字列を区切って配列に格納する

一つのセル内に、カンマ区切りや改行で複数のデータが入っているときに有用かと思います。 let array = 文字列.split(区切り文字); // 例えば改行なら区切り文字は '\n' // 文字列は取得したセルの文字列等 splitメソッドはJavaScriptのsplitメソッドです。 …

Chromeでオートコンプリートのとき、背景色を変更させない

Chromeが勝手に背景色を付与するので困った時のメモ。 そもそもオートコンプリートで勝手に背景色が付くことを知らなかった。 以下のリンクを参考にCSSを上書きした。 qiita.com オートコンプリート無効化の方法 ちなみにブラウザのオートコンプリート機能自…

insert文のvaluesで副問い合わせを使う書き方メモ

SQL

テーブル名などは適当です。 このSQLの場合、anyというカラムにvaluesにある副問い合わせの結果がinsertされます。 insert into table1( any ) values ( ( select id from table2 where id = 5 ) );

phpのemptyの仕様についてメモ

PHP

emptyとは 公式曰く、変数が空であるかどうかを検査する 空であると判断される基準 var が存在し、かつその値が空や0でなければ FALSE を返します。 それ以外の場合は TRUE を返します。 次のような値は空であるとみなされます。 "" (空文字列) 0 (整数 の 0…

JavaScriptのArray.forEachは他のfor文とbreak, continue, returnの挙動が異なる

Array.forEachの中でreturn等をして処理を完了してfor文を抜けることは基本出来ない。 break, continue, returnを使いたい場合、別のfor文を使用するのがベター。 qiita.com www.deep-rain.com

CallBackのネスト地獄をasync/await でリファクタリングするメモ

リファクタリング対象コード anyMethoid(){ this.returnPromiseMethod1().then(result1 => { if (result1.data) { // result1を取得してからしたい何かの処理... this.returnPromiseMethod2().then(result2 => { if (result2.data) { // result1とresult2を…

Google Apps ScriptでLogger.logを確認するショートカットキー

環境:Windows10 Ctrl + Enter ログについて詳しく記載いただいている参考リンク https://tanuhack.com/gas-log/#Loggerlogdata

hard-source-webpack-pluginでCould not freezeが出た時の解消メモ

バージョン version:0.13.1 エラー内容 [hardsource:xxxxxxxx] Could not freeze ./node_modules ..... 解決方法 キャッシュの削除 rm -rf node_modules/.cache 参考 github.com

システムの仕様決めについて思うこと

依頼者からの要求をそのまま仕様に落とし込むのではなく、依頼者が要求した内容をよく吟味して、依頼者が何をしたいのか、目的は何かよく考える必要があると思います。 例えば、ある入力フォームの高さと幅を広げて欲しいという要求があったとき、二つ返事で…

JavaScriptで"" == 0 の結果

コンソールで "" == 0 true と出て驚きました。 JavaScriptのnull, undefined, 0, 空文字の判定はかなり注意しないと意図しない判定が多いです。 以下のリンクで判定について確認できます。 qiita.com

副問い合わせの結果をJoinするSQLメモ

SQL

table名等は適当です。 select * from nTable left join ( select * from leftTable inner join anyTable on leftTable.id = anyTable.leftTableId ) leftResult on nTable.any = leftResult.any

Vueでグローバル定数ファイルを定義するベストプラクティスが議論されていたのでメモ

Vue

stackoverflow.com 自分は上記記事を参考にして以下のようにしました 。 外部から変更できない変数を宣言してexport し、使う側でimport する方法です。 constフォルダ等(定数と分かるフォルダ名)を用意して各定数ファイルを用意すると、一目で定数ファイ…

Vueで外部JavaScriptファイルを読み込む方法

Vue

コード例 outside.js const VALUE = 1 export default Object.freeze({ VALUE: VALUE }); any.Vue <script> import outside from 'path/to/outside' // .js(拡張子の指定)は必要ない ... mounted() { // importしたjsの変数 console.log(outside.VALUE) // 1 }, 補…

computedでネストしたObjectの値変更を検知する

Vue

computedは基本ネストしたObjectの値までは検知しない。 検知するためには、Vue.setを使用する。 Vue.set(object, propertyName, value) https://jp.vuejs.org/v2/guide/reactivity.html

Python初心者がマルコフ連鎖で吾輩は猫であるをマルコフ連鎖で出力してみる

環境 Windows10 Python 3.8.1 使用したライブラリ Janomeというライブラリを使わせて頂きました。 MeCabというライブラリもお勧めらしいのですが、Windowsに入れようとすると色々乗り越えなければいけない壁が多いのでこちらのライブラリにしました。 $ pip …

Python3のopenでUnicodeDecodeError: 'cp932' codec can't decode byte 0x85 in position : illegal multibyte sequenceが出たときの覚書

環境 Windows10 Python 3.8.1 コード # テキストファイルを読み込む src = open(filename, "r", ).read() エラー内容 UnicodeDecodeError: 'cp932' codec can't decode byte 0x85 in position : illegal multibyte sequence python3の文字エンコーディングは…

JQueryで開始就業時間や休憩時間を自動入力するスクリプト

JQueryのリハビリでいけてないスクリプトを書きました。 例えば以下のような入力フォームがあったとして、開始と休憩は大抵は一緒なので、あまり手打ちしたくありません。 なので土日以外は自動で入力するように… $.each($('input[ref="start_time"]'), func…