エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【思考メモ】『困ったら相談して』が通用しないとき【754日目】

心が折れまして。

ってことで、昨日お気づきの方が居たと思いますが、
私心が折れてました/(^o^)\

そこで気がついたのが『困ったら相談して』って有効ではあります。
ありがたいです。選択肢に入ります。

私も、困ったので相談を何人かにさせてもらいました。

が、最初それ出来なかったのです。なぜでしょうか。

元気になろうとする気力が湧かない

元気がない、元気になるためにどうしよう、頼ろう。
これが出来るときには、たしかに『困ったら相談して』が有効になります。

ですが、本当に重症になってくると、『相談する』が出来なくなります。

病気になりかけの人への薬のように、最初には有効な手ではありますが、
『元気になろうとする気力がわかない』まで来てると手が打てません。

そこで有効だったのはなにか。

ちょっと話す時間取らない?

もう、外から注入するしかないですね!
一定レベル関係性などが必要だったりするので、単純に有効な言葉というわけではないです。

ただ、時には有効な手でもあるとは思います。

どちらも選択肢の一つとして持っていて、有効に使いたいなと思った1日でしたφ(・

if ($x == 3 || $x == 7 ||... のような特定の値の条件分岐を短く書く【753日目】

特定の数値だけ条件分岐したい

if ($x === 3
    ||  $x === 5
    ||  $x === 10
    ||  $x === 12
    ||  $x === 17
    ||  $x === 21
    ||  $x === 22
    ||  $x === 28
) {

}

こんなふうに、特定の条件で分岐したい。

ただ、見づらい。配列使って書き換えてみる

in_arrayを使ってみる

$array = [3, 5, 10, 12, 17, 21, 22, 28];

if (in_array($x, $array, true)) {

}

少し見やすくなった。

速度は不明

ただ、速度とかは不明です。

正直、もっといいやり方もあるかもです。あったら、教えていただけると嬉しいです。

【phpunit】xdebugじゃ重いテストコードを、早くする【752日目】

テストコードが遅い

テストコードが重い、遅い、辛い(´・ω・`)

xdebugを使ってテストコードを走らせると、遅い、重いと感じるときがあります。

でも、カバレッジを取りたい。そんなとき

phpdbgを経由して動かす

(xdebugは切っても大丈夫です)

phpdbg -qrr vendor/bin/phpunit tests/Unit/App/Services/ --coverage-html coverage_html

これで、phpdbgを経由してテストコードを動かしてカバレッジが取れます。

難点:メモリ

難点としては、メモリをめっちゃ食います。

全テストを回すとかだと、メモリが圧迫して動かないときもあるので、少しのテストコードを回すとかに使うと良さそうです。

【一週間振り返り】個人的な活動が出来ていた一週間【751日目】

1.今週一週間の感想(ざっくり)

少しずつ、プライベートに重きを置けるようになってきた?

2.良かったこと(新規・特徴的なこと)

  1. 水面下で色んな人と交流が増えてきました

3.良かったこと(平時・生活的なところ)

  1. バーチャルキャスト楽しい
  2. BeatSaberがようやく出来るようになった
  3. いろいろ動画も作った

4.もっとこうしたかったこと

どうしようもなかったけど、ViveCosmosの操作設定って変えられないのね(´・ω・`)

5.新しく気づいたこと

意図的に仕事のことを考えないようにした結果、いろいろ出来ているのは間違いなさそうφ(・

とはいえ、これから私がどうしたいかは考える必要がありそう。

6.来週したいこと

これから自分がどうありたいかを考えること!

7.その他

めっちゃ体調崩してましたが、一応仕事は出来たのでセーフ・・・?

8.体重

98.7kg

現状維持はまずいので、ちょっと動こう、少し動く余裕が出てきた。

【phpunit】テストコードを書いていないクラスを特定する【750日目】

テストコードを新しく導入したい

テストコードを今まで書いてなかった。
なので、テストコードを少しずつ導入していった。

すると気になってくる。『どこまで書いたっけ』

なので、テストコードをどこまで書いたかを特定したい。

カバレッジ取る

単純にカバレッジを取ることで解決する。
コードを書いていないファイルは、0%と書かれているはずなので、特定出来ますね。

phpunit --coverage-html path/to/output

path/to/outputディレクトリの中にhtmlファイルやcss等がいっぱい生成される。

なので、好きなパスに変えて実行させてください。

注意点

1. 実行遅くなるよ
2. 動かしたテストコードの範囲だけで判定するよ
3. xdebug、pcov、phpdbgなどがないと動かないよ

ただ、一度確認するだけだから、遅いのはここぞというときに動かすという対応でいいと思いますφ(・

プログラミングで、elseを使う罠【749日目】

elseと使ったコード

if ($x == 1) {

} elseif ($y == 2) {

} elseif ($z == 3) {

} else {

}

動作的には、前の条件が正しくなかった場合、次の判定にいくわけですが、
各動作を可視化するために、あえてelseを使わずコードを変えると以下のような条件になります。
(上と下のコードは厳密には同じではありません。判定回数など動作は違います)

elseを使うとどんな判定する?

if ($x == 1) {

} 
if (!($x == 1) && $y == 2) {

}
if (!($x == 1) && !($y == 2) && $z == 3){

}
if (!($x == 1) && !($y == 2) && !($z == 3)) {

}

このように前の条件を引き継いでいると考えてif文を読む必要があります。

$xが1じゃないときにしか、判定が行われない
else文を続けると、
$xが1じゃないときにしか、2番目の判定が行われない
$xが1じゃなくて、さらに$yが2じゃないときにしか、3番目の判定が行われない
$xが1じゃなくて、さらに$yが2じゃなくて、$zが3じゃないと、3番目の判定が行われない
このように、下層に行くほど条件が複雑になっているというのを表現したかったので、こう書きました。 

そう考えると、if文たくさんや、elseが続いているコードの恐ろしさに気づけるかもしれません。
elseは便利だけど気をつけて使おうね!

【npm】古いnpmでも、package-lock.jsonを書き換えずに更新する(要調査)【748日目】

package.jsonが使われてしまう

www.nyamucoro.com

npm install を使うと、package.jsonを参照して最新のものを取得したりしちゃう。

package-lock.jsonを使って最新のものではなく、当時のものを使ってなんとかしたい。

(使えるなら)npm ci

v5.7.0以降ですが、 npm ciというものがあり、これを使うとlockを参照して更新が出来ます。

いくつか手順を省く都合から、速度が早いパターンもあるようです
(でも、インストールするもの少ないなら、あとで書くコマンドの時が早いこともあります。)

では、使えない時には。

npm install --no-save

これで、package-lock.jsonに書き込みをせずに実行が出来ます。

実行後、ファイルが書き換わっていないのが確認出来ると思います。

疑問点あり(´;ω;`)

    o --no-save:  Prevents  saving  to dependencies.  When using any of the above options to save dependencies to your package.json, there are two
         additional, optional flags:

保存をしないだけで、参照はするってことなのか?って思ってはいます。

が、それいうと npm ciもそうなので、どう違うかは調べている途中ですφ(・

ご存じの方いらっしゃれば教えてもらえると嬉しいです・・・!