Warning: Undefined array key "sns-tw-x" in /home/r1029599/public_html/engineer-log.net/wp-content/plugins/pz-linkcard/pz-linkcard.php on line 943
目次
JavaScript学習に役立つお話がありました。
「擬似コード」でロジックを書き出す練習について紹介されています。
JavaScriptに限らず、プログラミングの基本を学んだら何か動くモノ(プライベートプロジェクト)を作ってみたくなります。でも実際にどうやって進めたらいいのでしょうか?
現実には、プロジェクトは完璧なコードをガンガン書くことではなく、たくさんの試行錯誤とリファレンスを幾度も参照して少しずつできあがるものなのです。
アプリ作成の進め方として、以下の手順が紹介されています。
- 最初に基本を身に着けよう
- 計画を立てる
- コード無しで書いていく
- 小さな部分に分けて製作する
- 各パーツを結合する
- 実験とテスト
- 外部の助けを求める
- コードのリファクタリング(再構築)
擬似コードの活用
「コード無しで書いていく」って、どういうことでしょうか?
計画ができあがったら、詳細を考えます。
個人的に最良だと思う方法は、プロジェクトの各パートにおいてなにが求められるのかを具体的に書き出すことです。
このとき、まだコードを書かずに言葉だけで記述するのがカギです。
これはpseudocode(疑似コード)と呼ばれます。
pseudocodeなら構文を気にすることなく、プロジェクトの動作だけに思考を集中できます。
いったんロジックを書き出してしまえば、コードを書くのが格段に楽になります。
なぜなら、いきなり「カウントダウン時計を作れ」と言われて全コードを書くよりも、「終了時刻から現在時刻を引き算する」といった具体的な手順にしたがってコードを書くほうが簡単だからです。
擬似コード (pseudocode)とは、アルゴリズムなどを、架空の非常に高水準なプログラミング言語(擬似言語)で記述したものである。
プログラミング言語の構文と、自然言語に近い表現を組み合わせて記述することが多い。
if クレジットカード番号が有効 番号と注文で取引をする else エラーを表示する end if
擬似コードとは、実際のプログラミング言語の代わりに、人間の話し言葉で書いたコードのことです。
→ 買い物のメモ書きやToDoリストのように、必要なことを普通の言葉でズラズラ書いていけばOK!(意味が分かれば、書き方は自由w)
プログラミングに慣れていない段階では、いったん擬似コードでロジック(処理の流れ)を書いて、それから実際のプログラミング言語に置き換えると、コードが書きやすくなります。
文芸的プログラミングの応用
擬似コードは、けっこう具体的な内容になっていますが、もう少し抽象的な(適当な?)書き方として、「文芸的プログラミング」という方法もあります。
「プログラマーが書くのはプログラムではなく、ドキュメントである」という単純な考え方です。
文芸的プログラムは、ほとんど物語のように書かれています。そのコードは、人間が筋道をたどりながら容易に読むことができます。
「文芸的プログラミング」の考え方が提示されたのは1980年代です。結果的に、その処理系が普及することはありませんでした。しかし、プログラムが、その作品の意図を伝え、自己説明的でなければならない、という考え方は受け継がれています。
また、折衷案的ツールとして、特別な形式で記述されているコメントをソースコードから抽出することによって、ドキュメントを生成するツールは、JavaDocに代表されるように、広く使用されています。
話し言葉で先にコメントを書いてから、次に具体的なコードを書いていくと、いきなりコードを書くよりは多少楽ですね?
ドキュメントジェネレーター
各プログラミング言語には、コメントからドキュメント(仕様書、説明書)を作成するツールがたいてい用意されています。
ドキュメンテーションジェネレータ (documentation generator)は、特別なコメントが記述されたソースコードファイルの集合、または一部の例ではバイナリファイルの集合から、プログラマ(APIドキュメンテーション)やエンドユーザ(エンドユーザーガイド)またはその両方を対象としたドキュメンテーションを生成するプログラミングツールである。
ソフトウェアドキュメンテーション – Wikipedia – ソースコードからの文書生成ツール
- Doxygen – 各種言語向け(GPL)
- Javadoc – Java
- phpDocumentor – PHP(LGPL)
JavaScript用のドキュメントジェネレーターも、JSDocなどいろいろあります。
プログラムの設計や実装の練習でも、擬似コードやコメントを活用すれば、コードを書きやすくなると思います。
プログラミングを楽にするための工夫をいろいろ取り入れていきたいです。
[amazonjs asin=”4798046140″ locale=”JP” title=”プリンシプル オブ プログラミング3年目までに身につけたい一生役立つ101の原理原則”]
投稿日:April 8th 2017
元記事:http://jsstudy.hatenablog.com/entry/javascript-pseudocode