Help us understand the problem. What is going on with this article?

テクニカルな書き方とは何かの説明。

まず初めに、「テクニカルな書き方とは何か」について説明しておきたいと思います。

記念すべき初投稿になります。

そもそも

テクニカルな書き方(コード)とは何でしょうか。

私は、

  • 簡潔さ
  • イメージしやすさ
  • 処理性能の高さ
  • メンテナンスのしやすさ

だと思っています。

例えば、以下のようなコードを見たときの第一印象はどうでしょうか。
私は、やたら長く、書くのが面倒くさそうな、何をやってるのかイメージしにくいコードだと思いました。

test.c
int fact(int a) {
...
if (a == 0)
   return 1;
else if (a == 1)
   return 1;
else if (a == 2)
   return 2;
else if (a == 3)
   return 6;
else if (a == 4)
...
}

if文の代わりに、switch文で書き直してみましょう。
どうでしょうか。
あいかわらず、長ったらしく、書くのも面倒くさそうではありますが、
簡潔さ、イメージのしやすさという点では少しばかり「改善」しているように感じます。

test2.c
int fact(int a) {
...
   switch(a) {
      case 0:
         return 1; break;
      case 1:
         return 1; break;
      case 2:
         return 2; break;
      case 3:
         return 6; break;
      case 4:
      ...
   }
}

以上は、単にif文をswitch文に置き換えただけの例ですが、

テクニカルな書き方とは、これら「選択」の積み重ねのうえに生まれる至高の書き方とも言えます。

if文とswitch文どちらを選択するかは、書き手の「センス」と「経験」によると言えるでしょう。

さらに

テクニカルなコードを記述するためには、「言語仕様の理解」も欠かせません。

先の例では、if文をswitch文に置き換えるといった構文的な変更の例でしたが、
例えば、ポリモーフィズム(多相性)的な書き方を許す言語であれば、条件分岐そのものを取り外すことができるのでよりスッキリさせることが出来ます。

その点で、テクニカルな書き方の可否は言語仕様に依存しているとも言えます。

関連するものとして

コードの改善を試みるための技術「リファクタリング」や、コードに対する感性「コードの臭い」などが挙げられます。
参考にしていただければ幸いです。

tk-solo
プログラミングに関すること全般を扱っていきます。テクニカルな書き方(実装)をテーマに、第一級のプログラミング作法を紹介していきたいです。最近、スマホアプリ開発始めました!
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした