技術とかの雑な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は便利だよ」という話かもしれないし、何もわからないので意見があれば教えてください。