IT ニュース&コラム 2019/ 8/26 通巻795号 技術版 ソフトウェアデザイン館 Sage Plaisir 21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ■■ POSIX の ls コマンドで表示される一覧の区切りの空白は2文字 ■■ ほとんどのコーディングルールやプログラミング言語の自動整形ツールを通した 結果、空白文字が並んでいると1文字の空白に圧縮されます。 たとえば、 int variable は、 int variable に自動的に整形されてしまうツールがよくあります。それが問題であることは、 以前、リーダブル・コード(36) IT ニュース&コラム 689号で説明しましたが、 もう一度振り返ってみましょう。 sample_type int_variable このコードをパッと見たときの区切りを | で表すと sample | type | int | variable または sample | type int | variable のように分かれているように見えてしまいます。 後者は、等幅フォントではない ときによく見られ、空白文字よりもアンダースコアの文字の方が幅が広いことが 原因です。 変数宣言をしている次のコードを見てください。 sample_type int_variable このコードの空白文字を1文字に圧縮すると、 sample_type int_variable のようになるのですが、明らかに前者のほうが区切りが明確ですね。 いやいや、アンダースコアを見れば区切りは明確ではないか、と思うかもしれません。 しかし、それが言えるのは、アンダースコアか空白かの違いについて注意を向けている 今だからこそ言えるのであって、特に意識しない普段はそうは見えません。 空白は 2文字必要なのです。 POSIX(Linux) ユーザーは気づいていないかもしれませんが、空白が2文字必要であることを 暗黙的に認めている証拠があります。 それが POSIX の ls コマンドの表示です。 bin src sample-data program-code ls コマンドを実行すると、ファイル名とファイル名の間は必ず空白2文字以上に なっています。 これこそ、区切りとしては空白が2文字必要であることを 認めているのです。 空白は1文字に圧縮しなければならないというルールがあるのであれば、 ls の表示を変えなければなりません。 POSIX ではファイル名に小文字と数字とハイフンしか認めないというルールのための ルールがありますが、ハイフンはアンダースコアよりもフォントの幅が狭いので、 相対的に空白は1文字に圧縮しても区切りが見やすくなるはずです。 しかし、ls の表示 において空白2文字で区切っているということは、ハイフンであっても空白1文字では 不十分という評価が ls の表示の仕様を決めている際に判断されたのでしょう。 空白文字が並んでいるときは1文字の空白に圧縮するべきだということがいかに 矛盾した主張であることが分かりましたね。 参考 連続した空白を1つにまとめるな - リーダブル・コード(36) IT ニュース&コラム 689号 ■■ 注目ニュース 一覧 ■■ ◇ AWS東京リージョンで障害、EC2やRDSに影響。 https://japan.cnet.com/article/35141677/ … 日本のいくつかのゲームやSNSが遊べなくなる事態に。原因は空調設備。 ◇ Amazonが売れ残り製品を慈善団体に寄付するプログラムを開始すると発表。 https://gigazine.net/news/20190815-fulfilled-by-amazon-donations-program/ … やっていることは素晴らしいが、いくらアマゾンが手数料で儲けているかが問題。 ◇ なぜGoogleと競合するのは不可能なのかを元ライバルサービスの運営者が赤裸々に告白。 https://gigazine.net/news/20190819-why-can-not-compete-google/ … 検索とネット広告を独占しているグーグルはライバル会社を簡単に抹殺できる。 ◇ Appleは間もなくオンライン上のトラッキングをセキュリティ上の脆弱性と同様に扱うようになる。 https://gigazine.net/news/20190820-apple-treat-online-tracking-security-vulnerability/ … ネットで買った商品の類似の広告が表示されてしまう気持ち悪さを回避。 ◇ Skypeでのやり取りはMicrosoftの従業員や請負業者が聞く可能性があるとMicrosoftがプライバシーポリシーに追加。 https://gigazine.net/news/20190816-microsoft-privacy-policy-skype/ … やはり Amazon だけではなかった。 ◇ 最悪のソフトウェアはマネージメントの問題、よいソフトウェアを作る方法を政府のソフト開発を行う技術者が語る。 https://gigazine.net/news/20190821-how-to-build-good-software/ … いかにシンプルで使いやすい仕様にするかがカギ。 ◇ Chromeのシークレットモードを検知できる手法、研究者が指摘。 https://japan.cnet.com/article/35141200/ … シークレットモードにこだわるグーグルの本心が分からない。 ◇ スマホカメラをさらなる高みに。サムスン、1億画素のモバイル向けイメージセンサーを発表。 https://japan.cnet.com/article/35141185/ … イメージセンサーも中韓へ渡るのか。 ◇ TwitterとFacebook、香港デモを批判する中国関与のアカウントを停止。 https://japan.cnet.com/article/35141457/ … 表現の自由を奪いあう報復合戦になってしまっていいのか。 ◇ クラファンで見出した歌声の価値。ソロCD制作で3000万円以上集めた声優の挑戦。 https://japan.cnet.com/article/35141174/ … 歌唱力に定評がある評価が確固たる方だからこそ、クラウドファンディングで成功した。 ■■ ソフトウェアデザイン館 Sage Plaisir 21 ■■ ホームページ >>> http://www.sage-p.com/ メルマガ >>> http://www.mag2.com/m/0000083983.html ブログ >>> http://blog.livedoor.jp/sage_p/ ツイッター >>> http://twitter.com/Ts_Neko ダウンロード >>> http://www.sage-p.com/freesoft.htm サポート掲示板 >>> http://www.sage-p.com/kg_ban09/z6037C8.cgi 東日本大震災 >>> http://www.sage-p.com/saigai.html メール >>> ts-neko◇sage-p.com ←◇を@に変えてください 緊急メールは件名に「うどんメール」を付けてください。 このメルマガの登録・解除 - http://www.mag2.com/m/0000083983.htm