EJPスタッフブログ

ソフトウェアやボードゲームの開発を行うEJP株式会社のスタッフブログです。

ハンガリアン記法が不要になる現在

f:id:earleyjp:20200206091901j:plain

以前から、ハンガリアン記法は不要と唱えていたのですが。

blog.earley.jp

開発経験を重ねることで、少しずつ意識が変わってきました。

blog.earley.jp

そして、現在ではプログラミング言語によっては型を意識しない方が良いのではないかと感じています。

 

JavaScript がトレンドとなり

最近の開発案件ではJavaScriptによるプログラミングが増えてきました。

node.js をはじめとしたサーバーサイド環境でのJavaScript利用が一つの要因かと考えています。

 

クライアントサイドでのプログラミング経験者がサーバーサイドプログラミングに比較的容易にシフトできるようになったのではないでしょうか。

 

もちろん、サーバー側とクライアント側では扱える情報が異なり、必ずしもスムーズに行き来できるとは思いません。

 

しかし、文法が同じということはハードルが数段下がるのは間違いありません。

 

JavaScript の恩恵

個人的に感じるJavaScript の恩恵はやはり、スピーディな開発かと思います。

基本的にはコンパイル不要で環境によっては即座に動作確認が可能です。

 

また、明示的な型の定義が不要のため、柔軟なプログラミングも可能です。

しかし、逆にこれらが足かせとなる場合もあります。

そのため、見通しの良いプログラムを心がけることが不可欠かとも思います。

 

柔軟さや俊敏さは結果的に開発者による工夫によって、読みやすい見通しの良いプログラミングを考えさせる良い言語かとも感じています。

 

そこで、型がないことでハンガリアン記法によるプログラムの習慣もつくかもしれません。

この変数は文字列を格納して、〇〇の意図で利用されるといった情報を名称に含めておけばすぐに使い方が判明します。

 

しかし、これは一方でソースコード全体を見渡す必要がなくなってしまうかもしれません。

 

TypeScript の浸透

JavaScriptの拡張としてTypeScriptもよく見かけるようになりました。

JavaScriptの拡張でありますが、静的型付けが特徴です。

 

個人的にはJavaScriptにおけるスピーディさや柔軟さはTypeScriptによって否定されている印象です。

 

しかし、TypeScript によってやはり「型」を意識することは重要なのだと示唆しているように感じます。

 

当時、ハンガリアン記法を否定していた理由として、ソースコード全体を認識して小説を書くように文脈にそえば自ずと型や使い方を示す名称になっている必要はないと考えていたからです。

 

要するに小説に登場する人物が変数とした時に、彼らには役割を意味する名前はつけられていません

ジョンやマイケル、太郎は文脈の中で役割が決まるのです。

その様な感覚でソースコードを認識しなければ偏見によりバグを産むというのが個人的な考えです。

 

型の意識は必要なのか

ライブラリを作る人は型の意識は絶対に必要かと思います。

特に汎用的なライブラリの場合は、インターフェースを明確化するために型や使い方、取り得る値を使用者に明記する上でハンガリアン記法も必要になるかもしれません。

 

しかし、それらを使うアプリケーション開発者はライブラリをパーツと考え、それを使う状況は文章の様に理路整然とソースコードを組み立てることが理想と考えます。

 

アプリ開発においては、数年先にソースコードを見直した際、文章的に再認識できる様にすることが必要で変数名に捉われるのではなく、全体的な意味の明確さが必要と感じました。