トップ «前の日記(2009-11-22) 最新 次の日記(2009-11-24)» 編集

日々の破片

著作一覧

2009-11-23

_ 読みやすいソースコードとは

きむら(K)さんの日記読んでて、はて、確かにおれも読んだのだが、まったくどこだかわからんぞ、と気になってさがした。

ソースコードのコメントよりも空白行のほうが理解を助けるという研究結果

元のペーパーはRaymond P.L. Buse and Westley R. Weimer: Learning a Metric for Code Readabilityらしいけど、www.computer.orgがDNSで引けないのでまったく読めない。

で、名人がクリーンだとかビューティフルとか言う世界ではなく、いよいよソースコードそのものの読みやすさについて定量的な分析が行われるようになったのだなぁという感慨というか来ちゃったなぁ感というかがある。

次に来るのは、多数が読みやすく書きやすい言語ってものの設計と実装が来るのだろう。(でも、多数の人間ではなく、機械生成しやすいというほうが重要ではないだろうか)

この分野の研究がおもしろいなぁと傍目で感じるのは、自然言語にも適用できるのか? という点だ。

読みやすい日本語、書きやすい日本語、発音しやすい日本語、理解しやすい日本語、というようなものはたぶん、存在する。でも今は違うはず。というのは、アナウンサーはカツゼツの練習を早口言葉でしたりとかっていうのは聞くけど、発音(発声)しやすい日本語をニュースのスクリプターが書くというのは聞かないからだ(もちろん、おれが無知なだけの可能性は高い。NHKとかには、聞いて一発、発音もしやすい、というニューススクリプトラインティング実習とか記者にさせているかも知れないし、もし存在するならそういったノウハウを国語教育にフィードバックして欲しいよな。国営なんだから)

たとえば7・5調というのは発音しやすい(詠みやすい)日本語の探求結果から生まれたと考えられるけど、そういうものを科学として成立させるということだ。

というのは、MSのサポート情報の機械翻訳の質がばりばり向上しているのだが、それは単に翻訳エンジンの質と辞書が向上しただけではなく、翻訳しやすい原文というライティングに関するノウハウの蓄積の結果ではないかと推測しているからだ。まったくおれ個人の印象論だが、むちゃくちゃな翻訳の原文と、それなりの翻訳の原文を比べてみると後者のほうが読みやすい。(観察対象への事前知識が必要――つまり、それなりの翻訳をあらかじめ読んでいるからだという可能性はある)

Clean Code アジャイルソフトウェア達人の技(Robert C. Martin)

リスト5-1を見てみてください。パッケージ宣言、インポート宣言、そしてすべての関数が空行で分けられています。それぞれの空行は、新しい別の概念の開始の合図となるのです。リストを下へとながめるとき、視線は空行に続く行に引きつけられるのです。

これらの空行を、リスト5-2のように取り払うと、コードの読みやすさがかなり低下することがわかるでしょう。

-P.118

こういった本が、書きにくく読みにくいコードが自然に書けてしまう人間工学を無視したかす言語時代の遺物として葬り去られる未来、というのは来るかな? いや、来させるべきじゃないか?


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|

ジェズイットを見習え