エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

2021/05/24週 気づきと振り返り 「throw e」でなんでトレース情報が消えるねん!!

業務こなしての問題・気づき

c#

「throw e」と「throw」 違い

トレース情報がリセットされるかされないか。

リセットされるのは、「throw e」
なぜリセットする言語仕様なのかは分からない。。。
基本的に、リセットしたいときってないと思うのだが。。。

このせいで、直さねばならないところが大量にあることに気づいてしまった。。。

ソース管理

問題が起こると、胃が痛い。。。
原因を特定し、

コミット単位がおかしい

プルリクは、自分が回収したもの以外が入っていることを確認して出すのだと思っているが、複数対応が跨ってプルリクされることがある。
レビューする側はかなりきつい。
跨ってプルリクしてくるやつ、公開処刑にしてやろうかとも思ったが、優しい僕は、そこまではできなかった。

そういう文化が根付かないように対応したいのだが、どうやって誘導するべきだろうか?

やっぱり、公開処刑が一番楽だろうか?
迷いどころではある。

一回、関係ない修正を取り込んでしまったせいで、デグレが発生し、火消しで1日が終わってしまったことがある。。。
マジで辛いから、git使ってる人は、マジで辞めて。
これ以上ストレスかけられちゃうと、ハゲちゃうー

プログラミングで思うこと

switch文

case内でifが出てくると、もう無理。
関心事とネストが不一致になることが多く、かなり難読化しやすい。
やっぱり、switch文は好きになれない。

グローバル変数が大チュキ

よく分からんのだが、なぜかグローバル変数を多用する人が結構な割合でいる。

レビューしていて感じたが、なぜグローバル変数を使いたがるのだろうか?
汎用性だけに眼が行っている気がする。
デメリットの方が強いことを認識してないのが原因な気がする。

マジでバグの温床だから、辞めたほうがいいと思うんだよね。
レビューでしつこいくらい指摘してやったから、もう同じミスは侵さないと思いたい。

業務外

趣味で開発したことで学んだことをまとめておく

electron

preload.js

公式ドキュメントに、nodeIntegration: true,は非推奨ですみたいな記述を見つけて、preload.jsで対応するように切り替えた。
理由は、XSS攻撃があるためってあった。
業務で使うことも考えて、preload.jsで実装することを試した。

やり方としては、preloadだとnode.jsの機能が使えるので、利用したいnode.jsの機能を先読みさせて、renderer.jsで使うようにしていた。

例(一部抜粋)

const fs = require('fs');
process.once('loaded', () => {
  global.fs = fs;
});
let fs = window.fs;

面倒くさいのは、renderer.jsで入力補完が聞かないところ。
もしかしたら、何か回避方法があるのかも知れない。
ちなみに、使っているのはvs code

思ったより、簡単に導入はできた。
入力補完が聞かないのがネック。。。

typescriptなら回避できるのだろうか?
環境準備が面倒くさい&JSでも十分開発できるから、このままでもいいかと思っている。

参考サイト

electron-forgeでpreload.ts - Qiita

その他雑記

スマホを落とした

スマホを落としてしまって、画面にヒビが入ったかと思って絶望したが、強化ガラスフィルムだったので、本体は無傷だった。
強化ガラスフィルムにヒビが入ったけど、そのおかげで本体への衝撃が緩和されて、ひび割れにならなかった。
マジでありがたかったから、新しい強化ガラスフィルムを張り替えた。
3000円くらいするけど、それで本体が守られるんだから、安い買い物だと感じてた。

Java Gold SE11

そろそろ移行を考えて、勉強を始めようと思っているが、時間がとれない。。。

最近、やりたいことがいっぱいあって、勉強に割く時間が後回しになっているんだよね。。。
どうにかして時間を捻出したい。