「適切な」プログラミングはもはや重要ではありませんか?


49

暇なときにAndroidゲームを作成しています。libgdxライブラリを使用しているので、かなり面倒な作業が行われます。

開発中に、いくつかの手順で不注意にデータ型を選択しました。連想配列に近いものが欲しかったため、ハッシュテーブルを使用しました。人間が読めるキー値。同様のことを達成する他の場所では、ベクトルを使用します。libgdxにはvector2およびvector3クラスがありますが、それらを使用したことはありません。

奇妙な問題に遭遇し、Stack Overflowでヘルプを検索すると、特定のデータ型が技術的に「適切」である場合に、特定のデータ型を使用する質問を多くの人がリーミングしています。ArrayListを使用するのと同様、定義済みの境界を必要としないため、新しい既知の境界でint []を再定義します。または、次のような些細なことでも:

for(int i = 0; i < items.length; i ++)
{
    // do something
}

私はそれがすべての反復でitem.lengthを評価することを知っています。ただし、アイテムが15〜20個を超えることはありません。したがって、繰り返しごとにitems.lengthを評価する場合は注意が必要ですか?

いくつかのテストを実行して、先ほど説明した方法と適切な方法を使用してアプリがどのように動作するかを確認し、チュートリアルに従って、コミュニティから提案された正確なデータ型を使用しました。結果:同じこと。平均45 fps。電話とgalaxyタブですべてのアプリを開きました。変わりはない。

だから私はあなたへの私の質問はこれだと思う:それは適切であることがもはや重要ではないときにしきい値はありますか?「仕事をやり遂げる限り、私は気にしませんか?」と言っても大丈夫ですか?


4
それは大きさの問題です。1分間に数千のリクエストがある1秒未満の応答時間で検索と集計を行い、マルチテラバイトのデータベースを現実世界に提供してみてください。あなたの問題は十分に大きくありません。あなたのアプローチはうまくいきますが、その道をたどるのが避けられない結論であるなら、到達するのに時間がかかる苦痛なものです。
ジミー・ホッファ

8
言語に実際のFORループがある場合、その複数の評価の問題は発生しません。残念ながら、実際にはFORループではないため、C構文にはそれが必要です。これは、かつらと大きな鼻のメガネを身に着けているWHILEループであり、ループの終了には任意の条件(またはまったくない条件)を受け入れる必要があります。
メイソンウィーラー

2
私はあなたの編集を見ましたが、金曜日の夜に指定されたドライバーとパーティーをする以外の文脈で酔って無謀であることをOKにしようとしているなら、あなたはおそらく間違ったツリーをbarっています。
ロバートハーベイ

17
繰り返しごとにitem.lengthを「評価」することをどのように知っていますか?コンパイラはかなり賢いです。そして、item.lengthを繰り返しフェッチしたとしても、それで何を?'int itemsLength = items.length;のようなコードを見たくない for(; i <itemsLength; ...) 'パフォーマンスの測定値に問題がない限り。
ケビンクライン

6
items.lengthのことは、「適切なプログラミング」とはまったく関係ありません。それは微最適化であり、優れたプログラマーは、プロファイラーを実行して実際のパフォーマンスの問題がどこにあるかを知るまで、それらに時間を費やすよりもよく知っています。マイクロ最適化と優れたプログラミングスタイルはしばしば反対であり、同じものではありません。
マイケルボルグワード

回答:


65

問題を解決するプログラムを作成します。その問題には、それを解決するための特定の要件が伴います。これらの要件が満たされると、問題は解決され、目的は達成されます。

それでおしまい。

ここで、ベストプラクティスが観察される理由は、いくつかの要件が保守性、テスト容易性、パフォーマンス保証などに関係しているためです。その結果、適切なコーディングスタイルのようなものを必要とする私のような厄介な人々がいます。Tを超えてIを点数化するのにそれほど労力はかかりません。また、後でコードを読んで何をするかを理解しなければならない人への敬意のしるしです。

大規模なシステムの場合、この種の抑制と規律は不可欠です。すべてを機能させるには他の人とうまくやらなければならず、プロジェクトが自重で崩壊しないように技術的な負債を最小限に抑える必要があるからです。

スペクトルの反対側にあるのは、特定の問題を解決するためにあなたが今作成した、一度も使用しないユーティリティです。これらの場合、スタイルとベストプラクティスは完全に無関係です。一緒にハッキングして実行し、次のものに取り掛かります。

したがって、ソフトウェア開発における非常に多くのものと同様に、それは依存します。


1
私は同意する傾向があります。職場では質問をせず、交差して点線で示しています。しかし、私が仕事のために行うことの多くは、本当に維持する必要のない一時的なものであると考えてください。トレンドのようなものを渡します。誕生日アプリ、出入りするもの。そこはすべて適切ですが、実際にそうである必要はありません。
カイ清

21
常に規律を守れば、必要なときに規律を取りやすくなると主張することができます。シフトキーを押さずにStack Overflowで質問をする人もいます。その理由は、それがなくてもアイデアを適切に伝えることができ、とにかく英語は流動的で進化するものだという理論的根拠です。CPU時間は無料だと思うウイルス作成者を除いて、これ以上腹立たしいことはありません。
ロバートハーヴェイ

2
@KaiQingパスカルで生まれ、移植された5mlocのレガシーアプリケーションを誰かが渡す必要があるため、このアプリケーションの機能を追加または変更する最初の試みで、すぐにベストプラクティスが存在し、啓発される理由を理解するでしょう。
ジミー・ホッファ

5
@ KaiQing、Angry Birdsは複数のプラットフォームで実行する必要があり、ゲームが2秒間ハングした場合、視聴者のx%がそれをあきらめます。これは、Angry Birdsの人々にとってはドル以下になります。とても注意深く書かれているに違いない。たぶんこれはあなたの質問に答えます。コードがあなただけのものである場合、誰があなたの仕事を気にしますか?お金や他の人々の時間がかかっている場合は、非常に、非常に注意してください。
チャールズE.グラント

2
@KaiQing誰もそのしきい値を知ることはできません。プロジェクトごとに、また各プロジェクトごとに変化します。システムが維持可能であり、依存しない間のしきい値に影響を与える変数の数:LOC、ユーザーベース、開発者ベース、アプリケーションのタイプ(暗号化対crud対ドライバー)、機能の堅牢性、冗長性要件、ソフトウェアの重要度(電子メールサーバー対。時計ウィジェット対生活支援装置に)、サポートされるプラットフォーム、テクノロジー・スタック、取引されているデータの量や、分析、過去の監査上の制約と、より多くの物事の効果どのように悪いのコードをすることができ
ジミー・ホッファ

18

賢い古い引用があります:「昔の賢者の足跡をたどらないでください。彼らが求めたものを探してください。」「適切な」コーディングのすべてのルールには理由があります。これらのルールが存在する理由を知ることは、それらのルールが何であるかを知ることよりも重要です。

そのようなforループで繰り返し再計算される可能性のあるテストを入れてはいけないというルールがあります。ルールが改善のために考案された場合(パフォーマンスが実際に異なる場合)、それは理にかなっています。その場合、正しい答えは1つだけです。あなたの例では、パフォーマンスの違いはなく、数十回の反復しかできないことがわかっています。この場合、2つの正しい答えがあります。単純で、何も傷つけず、良い習慣を形成するのに役立つため、とにかくルールを適用します。

私は最初の正しい答えを好み、あなたは2番目の答えを好むようです。あなたはそれについて間違っていません。「適切な」プログラミングとは何かについて、あなたは間違っていると思います。それはあなたを助けず、目的のないルールのランダムに選択されたセットに従うことではありません。この例でforループを修正しないのは、実際には時期尚早な最適化に対する非常に優れたルールに従っています。

真の適切なプログラミングとは、理にかなった適切なルールに従うことです。


私は2番目を好むとは言いません。誰かが私の投稿を編集して、このアンドロイドゲームをほぼ完全に酔っ払うことに関する部分を削除しました(ただの楽しみのため)。テストするために、いくつかの奇妙なクラスを適切なクラスに置き換えました。私は同意しませんルールが存在して知ることはルールが...何であるかを知ることよりも重要であるといえ
カイ清

さらに、「適切な」プログラミングという私の考えは、stackoverflowコミュニティの反復的な意見の集大成であり、私が働いている会社に出入りしたプログラマーの集まりでもあります。CI学位を取得した人もいれば、独学した人もいます。物事の根底には共通の意見があり、私は誰もがまとめて言うことに同意する傾向があります。ご参加いただきありがとうございます。
カイ清

1
規則を破ったと言っているように聞こえた場合は、ひどく言いました。あなたが話したことは、私が反対することではありません。私は「法の精神」が「法の手紙」よりも重要であることを指摘しようとしていました。
マイケルショー

いや、いや、あなたが私に言っているとは思わなかった。私はただコミュニケーションをしていました。私はこの理由を理由に質問しましたが、多くの人が投票せずに回答してくれてうれしいです。
カイ清

10

これを見る適切な方法は、収益を減らすことです。プログラムを開発することの追加の利点を、追加の開発のコストと比較します。

利益の減少は、限界利益が限界時間/努力よりも少ないときに始まります。

ループitems.lengthから抜け出すためのビジネスケースを作成できますforか?経済的に、その変化はそれを正当化しようとするのに費やされた時間を正当化することができますか?ユーザーエクスペリエンスに違いはないため、測定に費やした時間でさえ何も得られません(覚えておくと便利なレッスン以外)。ユーザーは、プログラムが好きになることを嫌い、その変更の結果として、より多くのコピーは販売されません。

これは、ビジネスケースが未知の要素やリスクで満たされているため、評価が必ずしも容易ではないため、後知恵で明らかになるだけの考慮されていない要因の餌食になりやすいからです。提案された変更は完全に自明ではないため、大きな違いを生みます。

減少リターン型の思考は、言い訳が何らかの行動を起こさず、リスクを回避するための狩りに相当する可能性があります。

しかし、ときどき何かをしてはいけないことが明らかです。開発の一部が開発の費用を支払うためだけに経済的な奇跡を必要とするようであれば(損益分岐点)、それはおそらく悪い考えです。


非常によく書かれています。私の場合、計画的な復帰はありませんでした。何らかの返品は偶発的かもしれませんが、最大の成功のいくつかは吸血鬼として始まったと思うので、却下すべきではありません。クライアントの仕事に関しては、アプリがハングしたり何かがちょっとした不便になったりするだけで悪化するかもしれないので、あまりお金がかかっていないので、それはより厚い閾値です。ベンチマークは見栄えが良いが、コードが最も効率的でないことがわかっている場合、コードが進行する前に誰も監査することはなく、おそらく移行を要求することはありません。
カイ清

確かに。常に何らかの客観的なケースを作ることはできません。誰もが同じようにプログラムを大切にしているわけではありません。プログラムの主なユーティリティは、それに取り組むことの喜びであるとします。それは誰にも利益がないかもしれず、誰も改善にお金を払わないかもしれません(プログラマ以外のユーザーがいる場合でも)が、それを改善することを正当化するのに十分です。
カズ

あなたの非常によく書かれた答えに追加する2つの有用な言葉-「投機的投資」-あなたは将来に利益が出ると推測するのでそれをします。
マッテンツ

@mattnz-あなたが言うことは、たとえ返品が大笑いであったとしても、誰も返品のために何もしないという点で真実です。私の個人的なプロジェクトのほとんどは、ユーモアのために行われています。それらのほとんどすべてが、要件を正当化するのに十分です。それらのどれも私をやめることを可能にしませんでした。
カイ清

まさに、みんな。そのため、最初に、このプログラムの作成から何を得るか、またはそれを継続するかを決定します。それは「楽しい時間を過ごす」ことかもしれません。しかし、それでも、私たちは考えることができます。あれこれのようなプログラムでそのようなことをやることは、最も楽しいことを達成するための最良の方法なのでしょうか。
カズ

3

コードが「適切」であることを気にする必要がない場合

  • あなたがビジネス目標に答えることができて、低いオーバーヘッドで時間をかけてそれを保つならば。(ユーザーは支払い前にソースを表示しません)
  • MVP / POC-適切なコードを書くことは、お金を稼ぐ方法を知る前にコンセプトに時間を浪費することを意味する場合コードは適切でした)
  • 生命を脅かす状況にあるとき(たとえば、アイアンマンプロトタイプ1は汚いハックでしたが、洞窟から抜け出しましたか?)
  • または単に適切なコードの書き方がわからない場合(誰かがなんとかして適切なコードを書いて生計を立てている場合、今日の失業率では、ホームレスになるよりも悪いコードを書く方が良い)
  • 自分が何をしているのかを単に知っているか、自分のふりをして逃げることができると思う

適切なコードを書くとき

  • 業績に大きな影響がある場合、たとえば、パフォーマンスが収益に影響を与えたり、販売を妨げたりする場合
  • コードの保守がビジネス上の問題になるほど適切でない場合(高い保守コスト)
  • あなたが有名なプログラマであり、大きなオープンソースプロジェクトに取り組んでいる場合
  • 社内図書館を世界に提供している大企業でも同じ
  • 今後のインタビューで作品をポートフォリオとして見せたい場合

1
悲しいことに、多くの人々が知らないことに恵まれている適切なリストを気にしない別のリストがあります。時間や予算が適切なコーディングに役立たない場合があり、プロジェクトへの注意はビジネストランザクションよりも優美です。たとえば、コードで主に廃止されたメソッドを使用しているが、パッチを適用する必要がある場合(Webシナリオで言えば)。すべてを修正することはできません。汚れる必要があります。
カイ清

「コードの保守がビジネス上の問題になるのが適切でない場合(保守コストが高い)。」このしきい値は、実際には、ほとんどの経験のない開発者が考えているよりもかなり低いです。堅牢なコードを書くと、多くの場合、数日または数か月ではなく、数時間以内に返済されます。
PeterAllenWebb

2

パフォーマンスが主な関心事ですか?それはあなたが最大化しようとしているものですか?

もしそうなら、学ぶべき基本的な教訓があり、もしそうなら、あなたは数少ない人の一人になります。

速くするためにすべきことを「考え」ようとしないでください-それは推測です。「このコンテナクラスを使用するべきですか?」または「lengthループ状態にする必要がありますか?」患者への質問または検査。

それは推測です。誰もがそれを行いますが、うまくいきません。

代わりに、プログラム自体に問題の内容を伝えてください。 詳細な例を示します。

違いがわかりますか?


私の唯一の懸念は、テストで、指定されたシナリオのデータ型の不適切な使用と適切な使用の間にパフォーマンスの違いがないことに気づいたことです。あなたの提案のように、私はクラスをより多くのデータでオーバーロードして、違いを生むには少なすぎるかどうかを確認しました。最終的には、両方が同等に機能しました。確かに、基本的なRPGタイプのゲームを作っているだけです。銀行のソフトウェアや複雑なものとは違います。しかし、ビジネスが常にそれほど適切ではない方が良いのではないかと思いました。
カイ清

パフォーマンスが懸念事項であるため、先入観のある質問が違いを生むかどうかを尋ねるのではなく、プログラムに何を見るべきかを尋ねるべきです。このリンクをクリックして、その内容を実行してください。プログラムが実際に何に時間を費やしているのかがわかり、それによってプログラムを高速化する方法がわかります。
マイクダンラベイ

まあ、パフォーマンスは質問手順の私の基礎であり、必ずしも懸念事項ではありません。私は言うごとにベンチマークを探していません。効率の悪いコードがパフォーマンスの違いをもたらさないことをただ観察しただけです。プログラムがどれだけ効率的または非効率的であったかは、ユーザーに対して基本的に透過的であるため、このようなプロファイリングへの懸念は無関係です。確かに、私はそもそもベンチマークにいくらかの懸念を抱かなければなりませんでしたが、それは主に好奇心でした。そして、製品が完成し、著しく遅い場合は、プロファイラーは理にかなっています。リンクをありがとう
カイ清

2

あなたの質問は、「仕事が終われば、私は気にしませんか?」です。

私の答えは、「あなたのコードに何が起こるかわからない」です。「ユーザーの問題に対処するために、この簡単なことを書かせてください」として始まった非常に多くのプロジェクトに携わってきました。それを書いて、それをそこに置き、二度と考えないでください。

かつて、私が書いたものが「ああ、今ではユーザーの部門全体がそのコードを使用したい」に変身しました。明日には20人のコードレビューが予定されており、一部の副社長は既にそれをお客様に販売しています。」

あなたは「暇なときにアンドロイドゲームを書いているだけ」と気づいていますが、そのゲームが成功して名声と富のチケットになるかどうかはわかりません。さらに悪いことに、そのゲームは人々の電話をクラッシュさせ続けるため、悪名高いチケットになる可能性があります。誰かの子供が携帯電話でゲームをプレイするのをやめられないために求人を受け取る人になりたいですか、それともこのような掲示板で中傷される人になりたいですか?


1

答えは、それは決して重要ではなく、常に重要だということです。

プログラミングは、適切であるかどうかに関係なく、それ自体が目標ではなく、目標を達成する方法であるため、重要ではありません。「適切な」プログラミングなしでその目標が達成される場合(ビジネスの観点からは、多くの場合、プログラミングなしで目標を達成できるのが最善です)。

適切なプログラミングは目標を達成するのに役立つツールであるため、常に重要です。物事を行う適切な方法は、別の方法でそれを行うと、保存するよりも長い目で見れば痛みが大きくなるという認識にすぎません。

それはあなたがそれをいつ無視できるかという質問に答えます-長い目で見れば別の方法がより簡単であると確信しているとき(たぶん、長い目で見ないから)。

通常、1回限りのツールは、エラーチェックやその他の検証がほとんどまたはまったく行われず、例外のログが記録されず、一般的な関数の代わりに小さな変更が加えられたカットアンドペーストコードで、できる限り迅速かつダーティに行われます。

気をつけてください:時々、これらの迅速で汚いアプリは、独自の生活を取ります。つまり、すべてのショートカットが


1
「決して」と「常に」は互いにキャンセルします。あなたの答えを良いものと悪いものの両方にする。
Tulainsコルドバ

@ user1598390:お互いをキャンセルすることがポイントでした。ドグマをキャンセルすると、役に立つと思われるままになります。そして、あなたはそれを間違え、そこから学ぶでしょう。
jmoreno

私はあなたに同意すると言いたいのですが、私はそれをそのような極端に持っていなかっただろう。ワンオフは単にテストやデバッグを回避するために吐き出されるとは思わない。パフォーマンスと安定性がショートカストの影響を受けない場合、最適化されておらず、完全に設計されているからといって、製品が少なくなるわけではありません。これが最終的に私のポイントであり、なぜ誰もが最上位ではないコーディングの例に対してそのような悪臭を放つのかと思います。それはstackoverflowでたくさん起こります。
カイ清

@KaiQing:テストとデバッグはもちろん行われますが、一般的には現時点で存在しているものに限定されます-たとえば、UTFエンコーディングを含むファイルでプロセスが失敗し、実際に作業しているファイルがない場合あなたはそれをテストしません。パフォーマンスの問題が特定されたら、最適化を行う必要があります。SOの非トップラインコーディングの例に悪臭を放つ理由については、サイトの目標の関数だと思います。永続的なリソースを目指しているため、回答(および質問)のコードは、他の人が使用するテンプレートのように見えます。
jmoreno

1

または、次のような些細なことでも:

for(int i = 0; i < items.length;i ++) {
     // do something 
}

私はそれがすべての反復でitem.lengthを評価することを知っています。ただし、アイテムが15〜20個を超えることはありません。したがって、繰り返しごとにitems.lengthを評価する場合は注意が必要ですか?

実際、最終コードでは、コンパイラが最適化するため、items.lengthはすべての反復で評価されるわけではありません。たとえそうでなくても、長さは配列オブジェクトのパブリックフィールドです。アクセスするのに費用はかかりません。

それで、あなたへの私の質問はこれであると思います:それが適切であることがもはや問題ではないとき、閾値はありますか?「仕事をやり遂げる限り、私は気にしませんか?」と言っても大丈夫ですか?

最終製品に期待するものに大きく依存します。平均的な製品と優れた製品の違いは詳細に依存しています。Tata Nanoのような車とMercedes Sのような車は「仕事をやり遂げます」-ある場所から別の場所に移動します。違いは詳細に依存します。エンジン出力、快適性、安全性などです。ソフトウェア製品を含む既存の製品と同じです。たとえば、MySQLとPostgreは無料であるため、Oracleデータベース、DB2、またはMS SQL ServerについてOracle、IBM、またはMicrosoftに支払うのはなぜですか?

詳細に注意を払い、高品質の製品を入手したい場合は、この項目(および明らかに他の項目)に注意する必要があります。


私はそれに同意するとは思わないが。私の投稿では、パフォーマンスの違いについて言及していません。これは、平均的な製品も優れた製品も存在しないことを示唆しますが、1つの欠点があるにもかかわらず、バランスがとれています。ただし、比較に使用している非常に重要な特定のプロジェクトがある場合は、あなたの声明に同意します。しかし抽象的には、この匿名プロジェクトでは、明らかに非効率的なクラスが最適化されたクラスと同等に機能するという一般的な観察結果があります。それでは、これについて緩慢な態度を採用するか、毎回完璧を主張することは問題ありませんか?
カイ清

@Kai Qing単一のクラスで大きな違いはありません(またはすべきではありません)。私はそれを言った:もしあなたの製品が高品質な製品であると期待するなら、細部に注意を払う(たとえそれが可能な限り小さな最適化または慎重な設計を意味するとしても)。一方、必要なのが機能的なシステムだけである場合は、おそらく細部にあまり注意を払ってはいけません。
m3th0dman

はい、そのデザインに少し注意を払っても違いはないはずです。しかし、その目的に応じて違いを生むことができます。一般的にその目的が時間とともに変化し、意図しないものになった場合。前に見ましたが、ここでは接線をたどっています。公平を期すために、製品は機能以上のものでなくても高品質になります。
カイ清

1

自分で自宅でプログラミングしている場合は、いくつかのコーナーをカットできます。そして、あなたが実験して物事を試しているとき、これは完全に正当化されます。

ただし、注意してください。あなたが与える例では、実際にその角を切る必要はなく、注意する必要があります。これはトレンドを開始する可能性があり、自宅で行う悪い習慣が職場のコードに忍び込む可能性があります。自宅で良い習慣を練習して改善し、職場であなたのコードに浸透させるのがはるかに良い。それはあなたを助け、他の人を助けます。

プログラミングを行うこと、およびプログラミングに関して行うことは運動です。それは価値がある、そうでなければそれは戻ってきてあなたを噛むでしょう。

良い面を見てください。あなたはこれについて尋ねたので、多分あなたはすでに私が作っているポイントを知っているでしょう。


1
ええ、私は承知していますが、問題のポイントは、ほとんどの場合、より小さく、包含されたコンテキストでは、それほど適切である理由はないようです。私のプログラミングのすべての年月の間、私たちに噛み付くために忍び寄ることはあまりありませんでした。私たちはとても適切だとは思いません。言語と期待は通常のソフトウェアのように変わると思います。他のものよりも少ないもの。しかし、最終的に、1つのプロジェクトの非効率性は、そのプロジェクトが過去にあり、もはや不可欠ではない場合にのみ実現される可能性があります。それはとても硬直しているという頭痛を正当化することを難しくします。
カイ清

それは公平なポイントです。今日のルールは、明日の制限になる可能性があります。私は何をすべきか言われるのは好きではありませんが、以前に行って苦労したことを学んだ他の人たちを尊敬しています。時々、どのルールが有用で、何が現在の賞味期限を過ぎているのかを知ることは興味深いかもしれません。
ダニエルホリンレイク

1

家具メーカーが、品質が最重要ではない場所や品質に気付かれない場所で使用する家具を作っている場合、彼らはカットをまっすぐにしようとするべきでしょうか?

多くの人々はソフトウェアを職人技と見なしています。構築するものは機能を実行するだけでなく、信頼性、保守性、堅牢性が必要です。そのようなソフトウェアを作成するにはスキルが必要であり、そのスキルは練習から生まれます。

そのため、現在作業しているものに対してループ構造を選択することは重要ではありませんが、常に適切な構造を使用しようと努力するという事実は、時間の経過とともに、より優れたプログラマーになります。


プログラミングで、コードを保守可能にする必要がなく、ニーズの外側で実行する必要がない場合に遭遇しました。非常に具体的で再利用されそうにない見本市やイベント用のキオスクユーティリティのように。私自身のゲームの場合、それを維持しているのは私だけなので、その議論は最も適切ではないかもしれません。ガイドライン、保守性、およびデータ型の適切な使用法を厳守するだけでは、プロジェクトを完了できない可能性があるため、「より優れたプログラマー」に関する一般的な見方には疑問が残っています。コードが期待どおりに機能する場合、なぜ完璧なのでしょうか?
カイ清

right_nowを構築するソフトウェアを保守する必要がない場合でも、ソフトウェアを作成することでコーディングスキルが強化されます。保守可能なコードを最終的に記述する必要がある場合、より簡単にそれを行うことができます。
ブライアンオークリー

私は常に保守可能なコードを書かなければなりません。場合によっては、そうである必要はありません。しかし、私は多くの経験を持っているので、いつ、どこでコーナーをカットするかをよく知っています。この投稿のポイントは、あらゆる目的のために適切でずさんなしきい値についての会話を盛り上げることでした。与えられた例はほとんど小さなアプリケーションでは無害なので、私の例はほんの少しだけブラシをかけます。しかし、銀行のソフトウェアを書いていたら、そんなに不注意になることはありませんでした。
カイ清
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.