技術とかの雑なToday I Learnedメモ

プログラミングの原理原則のスライド、トレイリングスラッシュの件の回答、classがいるかどうか分からない問題

プログラミングの原理原則のスライド

今日のタブ記事

知ると楽しくなるプログラミングの原理原則

有名なプログラミングの原理原則を分かりやすく図解したスライド。

序盤の「プログラミングの楽しさってどこから? => こう書いたら、もっと良くなる!と気づいたときの楽しさ」に、分かる……と深く頷いた。

DRY、単一責任の原則、命名の重要さの 3 つを図解で理解するという内容で、実際読んでてわかりやすかったしひとまず今回の内容は覚えられた(といっても全て元から知って吐いたものだけど)

こういう原理原則、一度覚えてもすぐ忘れて「名前は知ってるんだけどどんなのだっけ……」とかよくなる。KISS とか SOLID とか。一度まとめてみたい。

昨日のトレイリングスラッシュの件で回答をもらいました

昨日「トレイリングスラッシュがないことでセキュリティの問題がある理由がわからない」ということを書いたら、複数人の方から回答をもらえました。(回答してくださった皆さんありがとうございました:bow:)

トレイリングスラッシュのある/なしで直接セキュリティリスクがあるというわけではなく、「トレイリングスラッシュがあることでドメインがそこで終わることが確定する = その後にドメインが続いてない」ことが保証されるので、変なサブドメインがあとに続いている可能性がないということらしい。なるほど……。

使い方が合ってるかわからないけど、Apex ドメインと呼ばれる部分に該当することが確定するから、みたいな話ですかね?いやでも Apex ドメインって hoge.example.com の「example.com」部分とことだから違うか。

あとに続く変なドメイン(aeon.co.jp.hogefugapiyo.comみたいの)があって、トレイリングスラッシュがないことでこういうドメインが存在することが信じられてしまう可能性があるっていう話、ということっぽい。

class がいるか分からない問題

普段 Vue(Nuxt)を使って仕事をしているが、これは Vue に限ったことでなくて、例えばutils/modules/みたいなディレクトリに便利関数集とかを置いたりすると思うんだけど、そういうファイル内に class で定義されているものがあったりして、あれそれ class である必要ある?みたいな気持ちになったりしたけど実際正解がどうなのか分からないので書いてみた。

自分は JavaScript の class って極力使わないほうがいいんじゃないのかなと思っていて、というのも class は状態と振る舞いの両方を持っているのでその class の中だけで状態の管理をする必要があり、使う側は状態を気にして使わなきゃいけないから、という感じなんだけど、でもそれってあなたの感想ですよね?と言われたらそうなんですよね〜となってしまうので悩んでいる。

逆に class じゃなきゃいけない or class を使うことで他の手法よりも明らかに便利に書ける、という場合を考えたほうがいいんだろうか。

それが思いついたらすぐ解決するんだけど、それができたらこの話はここに書いていない気もする。

使う側で class に定義された振る舞いを呼び出して、その呼出した結果の変数を利用したい、とか……?でもそれなら変数は使う側で呼び出してしまえばいい気もする。

全然分からない……。「そもそも class を使うこと自体普通だし考えすぎだし class は便利だよ」という話かもしれないし、何もわからないので意見があれば教えてください。