okihara6
@okihara6 (selecao)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

個人でのプログラム作成に資料の作成をしていますか?

Q&A

Closed

個人でpython3で試行錯誤しながらプログラムを作成しています。
題材はあり、いろいろ試行錯誤しながら作成していますが、
大小関係なくプログラムを作成している方は、題材があった場合には
メモ帳にしろエクセルにしろ、自作にしても設計書やメソッドの定義など
の情報を整理してプログラムを作成されていますか?

それとも、勢いでプログラムを作成されていますか?

0

1Answer

個人的な回答ですが、答えはYesでありNoです。

勢いでプログラムを作っていますが、情報整理はしています。

設計書やメソッドの定義などの情報

これは、主にコメントとして残しています。
正確には、ドキュメントコメント(PythonであればDocstringに相当)として、モジュールの使い方やメソッドの引数の説明などを書きます。

また、テストコードを書くこともあります。
テストコードにも使い方は記載できるため、そこで頭の整理はできるかなと思います。

決してExcel書きたくないマンではありません。


言語によっては、ドキュメントコメントの使用例コードも動作テストますし、コメントもテストコードもプログラムの一部という認識です。
この認識から、「勢いてプログラムを作って」いますし、「情報整理をして」います、という回答になります。

1Like

Comments

  1. @okihara6

    Questioner

    回答をありがとうございます。
    参考になりました。
  2. @okihara6

    Questioner

    お忙しいところすいませんが、もうひとつ質問させてください。
    テストで仕様として引数が正の数のみだった場合、負の数の引数も
    個人でのプログラム作成で入れられますか?
    前に「あるわけない引数が来た場合は、渡してくる方が悪い。
    こちらの責任ではない」と言われて納得はできますが、
    個人でのプログラム作成で入れるかどうか。。
  3. 「個人のプログラム」とのことですが、その作成するプログラムの利用者はどなたでしょうか?
    もし、他人が使うようなものであれば、念には念をと考えて入れておくかもしれません。
    完全に個人が使うだけのものであれば、入れないこともあるかもしれません。

    前者の場合は、さらにPCに詳しいか否かで、入れるか入れないかを考えることもあると思います。
    こちらは、具体的なユースケース(使い方)と実装を比較して、入れておいた方が安心なら入れておくと良いかと。

    後者の場合ですが、勉強のために作成するシステムというものは、最終的には自己満足の世界だと考えています。
    入れたければ入れてもいいし、入れることで時間がかかる(他の機能を入れる時間が減る)なら入れなくてもいいと思います。

    また別の側面として、そのプログラムを使うのが自分であるという発想で考えると、果たして「数年後の自分」は負の数の引数を入れて関数を使ってしまわないのか?という考え方もありそうです。
    将来、引数として負の数を入れてしまい、かつバグにも気づかないままリリースしてしまうと、そのバグ潰しをするのは自分ですよね。
    その時に、「負の数が入ってきたらエラーを投げるようにしておけば良かったー」と後悔する可能性があるなら、入れておいた方がいいかもしれません。

    ---

    >「あるわけない引数が来た場合は、渡してくる方が悪い。こちらの責任ではない」

    こちらは、賛否両論あると思いますが、個人的には違和感があります。

    1つは、あるわけない引数が来た場合に困るのは、ユーザーだけとは限らない、という点です。
    「あるわけない引数」の中には、実装者も考えてなかった脆弱性が含まれる可能性もあります。
    そのような脆弱性を突かれた時(いわゆる、攻撃された時)、対処できなければ、困るのは自分ですよね。
    防げるものを防がないのは、試験前に勉強しないのと同じで、製品に(作成するプログラムに)本気になっていないのと同義だと思います。
    本気で作らなかったシステムを、私は使いたいとは思いません。

    もう1つは、ユーザーに優しくない、という点です。
    例えば、口座番号の入力欄に、負の数を入れて「エラー」とだけ表示されるのと、「申し訳ありません、負の数を口座番号に入れることはできません。もう一度お試しください」と表示されるシステム、どちらが使い勝手が良さそうか?というと、私は後者の方が良いです。
    これは責任問題の話ではなく、品質的な話ですので、興味がありましたら ISO25000 などで調べてみてください。
    今時のソフトウェア品質には、使いやすいか(快適性)や使っていて楽しいか(快感性)といった観点も含まれているので、プログラム作成時には、そういった観点で実装してみるのも楽しいですよ。
    もちろん、ユーザーというのは実装者自身も含まれていることをお忘れなく。

    長文、失礼いたしました。
  4. @okihara6

    Questioner

    プログラムは現時点では私が使うものになります。
    この度は、お時間をとって長文の回答の作成を頂きありがとうございました。
    非常に参考になりました。
    また、何かありましたらよろしくお願いいたします。

Your answer might help someone💌