自明なソフトウェアと自明でないソフトウェアを区別する方法 [閉まっている]


11

それでは、プログラムを本当に簡単にするものは何でしょうか?

「些細なソフトウェア」がプログラミングの議論で頻繁に使用されていない限り。「何かが重要なソフトウェアであるために重要なのか」または「何かが非常に重要になったために重要なソフトウェアであるのか」を本当に理解できないという意味で、私はそれを非常にあいまいにしています。

たとえば、ユニットテストの問題については、「ユニットテストが必要な場合を除いて」とよく耳にします。


9
私が一緒に仕事をしたプログラマの何人かから判断すると、彼らにとっての区別は「あなたのコードは些​​細なものであり、私のコードはそうではない」ということになったと思います。
PSU

この引用が使用されているのを見たプログラミングの議論を提供できますか?回答にはさまざまな解釈があるようです。
スティーブンジュリス

更新された質問を確認してください。
NVM

回答:


12

私はここで四肢に出かけ、言うつもりです:

些細なプログラムは、ビジネスに直接影響を与えないものです。

製造会社は会計ソフトウェアを些細なものと見なしますが、沸騰する鋼を動かすロボットアームを制御するソフトウェアは重要です。前者のバグと低いサポートのターンアラウンドに対処できますが、後者には対処できません。問題がある場合は、すぐに修正する必要があります


別の答えにはもっとポイントがありますが、この答えが一番好きです。私がしている仕事が些細なことであるかどうか完全にはわからないので、私は質問をしました、そして、これはそれが「ビジネス」によって些細であると考えられるかどうかを確かめる確実な方法です。例えば 些細なソフトウェアは単体テストなしで逃げることができ、コード行や複雑さに本当に依存しません。重要なのは、ビジネスにとって重要かどうかです。
NVM

+1、良い点。企業の大君主は、「些細な」ものとして数えるものについて非常に異なる考えを時々持っています。これを反映するために、回答にいくつか追加しました。
FrustratedWithFormsDesigner

+1-この回答は、質問に適用される用語のコンテキストを最もよく表していると思います。他の「より高いポイントの答え」は正確ですが、一般的なコンテキストでのみです。これが考慮されるので、これはアップ投票でそれを上回ると確信しています。
ジョエルイーサートン

2
ソフトウェア開発者が些細なことを言うとき、彼らは通常、ビジネスへの影響ではなく、ソフトウェアの複雑さについて言及します。一部のファイルをAからBにコピーするスクリプトは簡単ですが、機能しない場合はビジネスに直接影響を与える可能性があります。
ジャックB

16

私は、その声明の最も一般的な意図は、プログラムが次の特徴を持つことだと考えています。

  • それは小さい。
  • 短い寿命。
  • さらに拡張する必要はありません。
  • 開発者は1人だけです。

2
+1、これらはすべて重要です。残念ながら、刻々と変化する要件のある世界では、自然な寿命を超えて「些細な」ソフトウェアを拡張しなければならない場合があります。
l0b0

1
LOCの点で小さく、コンパイルされたバイナリサイズの点で小さく、開発にかかる時間の点で小さいですか?また、短い寿命は些細なことを意味せず、些細なことは短い寿命を意味しないと主張します。わずか6か月のリフトアップのソフトウェアが少なくとも2倍の期間開発中であり、重要なブリッジシステムであるケースを見てきました。一度だけ使用されたデータ変換システムを見てきましたが、1年以上開発されており、決して些細なことではありませんでした。そして、掃海艇のような些細なプログラムは、非常に長い寿命を持っているようです。
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner:100x100pxの当然のように小さい。; pつまり、書かなければならないコードの行のように小さく、開発にかかる時間に比例します。寿命は必須ではありません、あなたは正しいですが、多くの場合、より高度なアプローチと単純なアプローチを議論する際の特徴です。
スティーブンジュリス

LOCが低いことはつまらないことを常に意味するということには同意しません。プログラムの最も複雑な部分、最も困難な部分、最もトリッキーなアルゴリズムが、20行未満のコードに収まる場合があります。そして、ほとんど何百行もの自動生成されたゲッター/セッターであるプログラム-それは、それを作成するための開発者さえ必要としないとしても、それから重要なことですか?
-FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner:質問の解釈は私とは違うと思います。私の答えは、単純な解決策と複雑な解決策のどちらを選ぶかという事実に関連しています。あなたの答えは、「難しい」対「簡単に」解決する問題に関連しています。おそらく、OPの質問を少し明確にする必要があります。
スティーブンジュリス

14

完全に捨てることで、バイナリとソース。誰かが気づいた場合、それは簡単ではありませんでした。


6
+1それは私を笑わせ、それも理にかなっています。
NVM

8

些細なことは...

  • 既に存在するものを、なぜ車輪を再発明するのですか?
  • 他のいくつかのプログラムを一緒にスクリプト化するか、実行する必要がある既存のライブラリを多用する小さなコードを記述することで簡単に構築できるもの。
  • 普通のCS学部生は、小規模から中規模の宿題をすることができます。
  • カクテルナプキンに簡単に収まる詳細な要件が含まれているもの。
  • 4分または5分のチャンクの気晴らし/酔っぱらい/暇なときにコーディングできるもの。
  • シンプルなコード生成ツールで作成できるもの。

企業環境では、これらを追加します。

  • ビジネスユーザーが修正をしばらく待つのを気にしないもの。
  • 内部的に使用され、ITからの公式サポートがないもの。
  • リソースの計画とスケジューリングを行う際に、ビジネスによって最も低い優先度の中で優先されるもの。

4

私は、簡単にプログラムを合理的にコーディングできるものとして定義します。

  • 一度に。
  • 単一のファイル/モジュールとして(Javaまたはモジュールの非常にきめ細かい分割を強制する何らかの言語でプログラミングしていないと仮定)。
  • スペシャリストではなく、まともな「すべての取引のジャック」プログラマーによって。

3

「簡単な」プログラムの例を次に示します。

  1. テクノロジーまたはサンプルコードを試すことができるように、セットアップしてコーディングを開始した「ダミー」プロジェクト。展開する意図はなく、誰にも見せることもありません。
  2. 技術的なプレゼンテーション用に作成されたデモコード。
  3. 「ワンオフ」。私は、一度使用するために構築しなければならないクイックアプリケーションを意味します。これは、特定の方法で移動する必要があるデータの奇妙な状況、またはその後により永続的なものにすぐに置き換えられるものだからです。

3

トライバルソフトウェアは存在しません。要件を聞いたときに、実際には常にトライバルである場合にトライバルになるものです。

ここに10年前にUsenetで見た引用がありますが、今ではもっと関連性があります。

ソフトウェアソリューションの複雑さは、それが何をすべきかの説明の複雑さに反比例します。- 不明


-1

単なるゲッター/セッターメソッドの単なる束であるプログラム。プログラミングロジックはありません。たぶん、いくつかのループを持つ何か。

それが私の些細な定義です。


-1

私たちの作業定義は「他に何も依存しないもの」です。

残念なことに、些細な試作製品がいくつかあり、それが非自明な生産製品になりました。


-3

また、プロジェクト全体の計画に対するプログラムの影響の文脈で使用されたと聞いています。特定の仕様が製品の納期を変更しない場合、それは些細なラベルに該当します。

「議論する価値さえない」の同義語として「自明」を使用する傾向があるプログラマーを知っていました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.