1文字単位で注意して読み書きする
文章においても、プログラミングにおいても、「文字」はとても重要である。
- ファイルパスが1文字でも間違えば、正しいファイルは取得できない
- コーディング中にうっかり全角カッコでメソッドを定義したら、コンパイルエラーになる
- よく文字を見ずに「アッブロード」(「プ pu」ではなく「ブ bu」) と書いていたために、資料を「アップロード」で Grep した時に対象から外れてしまった
- 「要 件 定 義 資 料」のようにスペース文字で調整している例も物凄く邪悪。わざと検索避けしてるだろコレ
人に読んでもらうための文章においては、読み手の思考リソース・認知負荷を食う文章は避けたい。つまり、
- (あっちでは「サブフォルダ」と書いているが、こっちは「子ディレクトリ」と書いている、これらは別物か?同じ物なのか?)
- (数字が全角だったり半角だったりして統一感がなくて、モヤモヤするなぁ…)
- (英単語のつづり間違ってるじゃないか、この文章は本当に調査して正しいことを書いているのか?)
など、読み手が内容に集中できないような要素はできるだけ排除するべきだ。
だから、文章やコードを書く時は、1文字単位で「その文字が必要か」「その文字であるべきなのか」を考えたい。
同様に、文章を読む立場になった時は、「ディレクトリパスは \
(円マークやバックスラッシュ) で良いのか?このツールでは /
(スラッシュ) で渡す必要はないのだろうか?」といった、1文字単位で細かなところに注意を払いたい。
1文字単位で注意を払う能力は、「注意力を高める」のではなく、コンピュータにおける「文字」に関する技術知識を知っておくことが大事になる。主に文字コードに関する知識は学んでおきたい。
- 文字列のデータはバイトデータに変換して扱うが、その「エンコード」の方式が複数あること
- 読み取るエンコードの方式を間違えると「文字化け」したりする。「受信したデータが正常に読み取れない場合」などにエンコーディングを気にできると良い
- サロゲートペア文字 : (物凄く雑に) 半角英数字は1バイト、一般的な「全角文字」は2バイトの情報で1文字を表現するが、文字によっては3バイト・4バイト使って1文字を解釈することがある。だから「全角 = 必ず2バイト」という間違った概念を早めに取り去ること
- 「スペース文字」には似て非なる文字が複数ある
- 「制御文字」と呼ばれる、そのままでは画面に表示されない特殊な文字が存在する
- 書いたコードが上手く動かない時は、「カッコ記号の全角・半角を打ち間違えた」レベルの話から、「インデントに全角スペースが混じっている」「制御文字が混じっている」といった可能性も疑い、エディタの設定を利用して不正な文字が入っていないか確認すること
- CSV ファイルの文字データとして半角カンマが混じった時にどうなる?といったことに注意を払えるかどうか
- OS によってパスの区切り文字が異なる : 先程の
\
と/
のような違い。その OS やツール、環境において、そのデリミタ (区切り文字) で正しく解釈されるのかどうか、疑い、検証できるか
日本語や英語の文章を書く時も、常日頃何の疑問も持たずに書いている文字を、1文字ずつ疑おう。
- 「〜〜してください」の「ください」は、「下さい」と漢字で書くべきか? → ひらがなが正しい。1文字単位で気にかけて、検索しよう、辞書を引こう、という気になれれば気が付ける
- 「デベロッパー」のつづりは「developper」か? → 「developer」が正しい。「デベロッパー」という音だけで何となく記載せず、辞書を引いて確認すれば分かる
- 今日びそこまで気にしなくても良いが、メールで半角カタカナや「丸文字」を含む文章を書いて、相手方で文字化けしないか (エンコーディングの問題)
こうした知識を幅広く押さえた上で、「本当に打ち間違いがないか」「その文字で合っているか」といった校閲を丁寧に行うことで、打ち間違いによる初歩的なバグをさっさと見つけたり、簡潔で統一感のある文章が書けるようになるだろう。
- 関連ブログ記事 : 2016-12-14 エンジニア必須スキル : 1文字単位で文字に拘る
- 関連ブログ記事 : 2018-02-07 1文字間違えることの重さ