Open3

typescript Mapの変数名に悩む

jlmn1026jlmn1026

最近参画している案件で別の方が書いたソースでかなり長い変数名に出会いました
だいたい40文字から60文字くらいでしょうか。

その時の変数名をそのまま書きますと案件詳細がバレてしまいますので別の例で示します。
アニメ会社別のアニメキャラクターを扱うみたいな話として以下のようなMap変数です。

const animationCharacterByAnimationStudioId = new Map<string, AnimationCharacterModel>()

この例だとanimeだったり、単にcharacterやstudioと略せるますが、略せないということでお願いします。

jlmn1026jlmn1026

40文字程度ならまだ許容範囲かもと思いますが、「国別」みたいにMapが入れ子になるケースもありました。これはさすがに長いかなと思います。

const animationCharacterByAnimationStudioIdByCountryId = new Map<string, Map<string, AnimationCharacterModel>>()

コーディング時はIDEの恩恵を受けられますけど、変数名が長過ぎれば可読性が落ちます。
可能な限り短いものを目指したいです。

jlmn1026jlmn1026

typescriptなので型で表現するのが良いかなと思いました。
そもそも入れ子になったMapだと、キーが何なのかぱっと見で不明だったこともあり、その点を型で読み取れるようにすべきというのもあります。


type CountryId = string;
type AnimationStudioId = string;
const animationCharacters = new Map<CountryId, Map<AnimationStudioId, AnimationCharacterModel>>();

ただし、スコープは限られます。
同スコープで何別のアニメキャラか識別する必要がある場合はByを変数名につける必要があるでしょう。