日本語プログラムコードをグローバーライズする

業界システム開発で変数名やら関数名を日本語にしたら

専門業界のシステム開発では、英語がどんなに得意でも大学で該当業種の英語の論文を読む経験をしない限り「設計書」から「プログラムコード」に落とすには専門の和英辞書が欠かせない。現実にはローマ字でそのまま日本語を表現しているコードも多い。バブル期には「24時間働けますか」を合い言葉にせっせとデータベースにプログラムで使いたい専門用語を辞書登録する金融システム開発フェーズもあった。

名前が正しいかをレビューする

「24時間働けますか」が「社畜」「ブラック企業」「やり甲斐詐欺」などの言葉で駆逐され「あたりまえ」を見直さなければならない現代。クライアントが外資系ならともかく外注プログラマーが業界専門和英辞書をせっせと調べる時間はなくすべき。「日本語で書いちゃえ」という発想は誰でも考えること。ところが未だにその風潮が見えないのは「誤字脱字誤用」問題である。プラグラムは正常に動作するけどコードに書かれている名前が間違っていると指摘されるのを嫌忌していることが想像できる。それでも僕はプログラムの品質やメンテナンス性を考慮するとクライアントと共にコードレビューでコード内の誤字脱字をレビューするべきだと考えている。

オープンソースは日本語NG

個人的に作ったプログラムソースをGITなどで管理するときに特に隠したいこともなく見たければ誰でも見ていいよと考えている。実は自慢したいという気持ちもある。とはいえ外国の人に日本語を見せるのは不親切だとも思う。僕自身もプログラムコードにアラビア語がでてきたら手も足も出ない。そこでコーディングでは処理対象の名前を日本語で書いてサクッと書き上げ完成品が自慢できそうだったら英語に直して公開することにした。そしてそのためのプログラムを作成した。

日本語プログラムコードを英語にする

速攻で「日本語プログラムコードを英語にするプログラム」を作った。そして公開するためにそれ自身を英語にしてみた。その結果が以下のコード。日本語が何処にもなく何かしらの部品群であることはわかるものの、それぞれの意味機能については開目と言ったところだろう。

これらの部品を使って基点ディレクトリからすべてのプログラムファイルを英語化できるようにアプリを組んでみた。だだこれをオンラインサービス公開しても上がってきたプログラムコードのプライバシーを担保しきれないので画面にプログラムコードをコピペして英語化を試すオンラインサービスを作成した。これなら実務で使えそうもないので安心。文末にURLを貼っておくので試してみてもらえるとありがたい。

辞書化作業の折り合いについて

このオンラインサービスは、日本語で書かれたプログラムコードから日本語名を抜き出して一覧を表示する。そして「英語名を自分で入力しろ」と言ってくる。コレはコレで面倒。とはいえオープンソースにする以上は正しい英語で書いた方が自慢にもなる。アルゴリズムを考えるときにスペルを気にしながらコーディングするかと思えば後でやったほうがイイのは間違いない。

自分の変換辞書を育てる機能について(グローバライズ辞書)

とはいえ毎回毎回同じ作業を繰り返すのはストレスこの上ない。そこで辞書を再利用できるようにした。
下が返還後に出てくる辞書データ。サービスページでは「グローバライズ辞書」と呼んでいる。これをオンラインサービス画面の「グローバライズ辞書」にコピペすれば同じ日本語については入力しなくてもよくなる。そして最新の辞書が再び画面に出てくるのでメモ帳などに保存して再利用すれば辞書が育っていく。

オリジナルの日本語プログラムコードがコレ

下が自分が打ち込んだプログラムコード。そしてサーバで動いている。英語のコードは動作確認だけした。名前の打ち込みミスは日本語なので見てすぐわかる。「ファイル検索」という関数は某PHPサイトから中身をコピペしたので日本語は入っていない。「日本語文字が含まれている」という関数も名前のセンスが悪い上に引数に$strなどと日和った変数名を使ってしまい後悔至極。このコードと「グローバライズ辞書」を文末に記したオンラインサービスページにコピペすれば英語化する作業を簡単に試すことができるので是非試してみてほしい。

日本語でプログラムを書いて思うこと

同じ意味なのに微妙に違った言葉を使っていることに気づくこと。気づくと動きは変わらないのになおしたくなってしまうこと。結果プログラムコードが言葉として洗練されていくことが実感できたことが嬉しい。「プログラム言語」という言葉があるぐらいプログラムは言語に近い存在なのだから言葉遣いが自然によくなるのもありがたい。

日本語プログラムコードをグローバライズするオンラインサービスはこちら

コメントを残す 0

Your email address will not be published. Required fields are marked *