タグ付けされた質問 「programming-practices」

プログラミングプラクティスは、ソフトウェアの開発で一般的に使用される、またはあまり使用されないプラクティスです。これには、アジャイル開発、かんばん、コーディングのショートカットなどが含まれます。

6
文字列リテラルでchar []を初期化するのは悪い習慣ですか?
私はCodeGuruで「strlen vs sizeof」というタイトルのスレッドを読んでいましたが、回答の1つは「とにかくchar文字列リテラルで配列を初期化する[sic]悪い習慣です」と述べています。 これは本当ですか、それとも彼の(「エリート会員」ではあるが)意見ですか? 元の質問は次のとおりです。 #include <stdio.h> #include<string.h> main() { char string[] = "october"; strcpy(string, "september"); printf("the size of %s is %d and the length is %d\n\n", string, sizeof(string), strlen(string)); return 0; } 右。サイズは長さに1を加えたものでなければなりませんか? これは出力です the size of september is 8 and the length is 9 サイズは必ず10にする必要があります。strcpyによって変更される前に文字列のsizeofを計算し、その後に長さを計算するようなものです。 私の構文に何か問題がありますか? ここで回答は: とにかく、文字列リテラルでchar配列を初期化するのは悪い習慣です。したがって、常に次のいずれかを実行してください。 …

10
要件のないソフトウェアの作成は、所有するスキルまたは避けるべき状況ですか?
一部のソフトウェア開発者はこれに非常に熟達しており、抽象的な要件を備えた実用的なコンセプトを提供できることで称賛されることがよくあります。率直に言って、これは私を夢中にさせ、私は行くにつれて「作り上げる」のが好きではありません。以前はこれが問題だと思っていましたが、変化を感じ始めました。そして、方向性がほとんど与えられていないときに思考(およびプログラミング)プロセスを調整する必要があるかどうか疑問に思っています。この能力をスキルとして習得し始める必要がありますか、それとも要件の収集とビジネスルールが最優先事項であるという考えに固執する必要がありますか?

12
プログラミングの知識を保持するのに役立つテクニックは何ですか?[閉まっている]
プログラミング関連のものをどのように覚えていますか?数年前、今あなたが前に持っていたエラーに遭遇し、その時その原因を知っていたが、今ではそれを忘れていると誓うことができると感じたことがありますか? 少し前にxslの文字列解析で作業しましたが、xslの文字列関数がどれであるかを正確に思い出せず、ゼロから開始する必要がありますか?あるいは、過去に使用したことがある「述語によるコレクションのフィルタリング」など、Apache Commonsの機能を忘れてしまったかもしれません。 それでどうやってやるの?ブログを作成しようとしましたが、アプリを開発するときに、ブログを更新したり、自分の経験について書いたりする時間がありません。また、Wikiを使用することは良いことですが、ブログの投稿を変更してそのトピックに関する新しい情報を追加する必要が何度もあったため、Wikiを明確に分離することは困難でした。これにより、このトピックをブログではなくwikiに実際に置くべきだと思いました。 プログラミングの経験を思い出すのに役立つシステムはありますか?あなたのセットアップは何ですか?

17
返された変数に「result」という名前を付けるのは良い習慣ですか?[閉まっている]
メソッドが返す変数を変数名で呼び出すのは良い習慣resultですか? 例えば: public Zorglub calculate() { Zorglub result = [...] [...] return result; } または、タイプ別に名前を付ける必要がありますか? public Zorglub calculate() { Zorglub zorglub = [...] [...] return zorglub; } 私は両方を野生で見ましたが、どちらかを選択する必要がある場合、前者または後者(またはより良い名前)を好む理由は何ですか? 私は主にJavaについて考えています。


1
プログラマがパッケージ、名前空間、またはディレクトリ名として「Acme」を使用する理由[非公開]
これはばかげた質問かもしれないし、そうでないかもしれないが、私はしばらくの間私を悩ませてきた何かに対する答えを本当に知りたい。 私は、プログラマーがacmeものを入れるために呼ばれるディレクトリを作成したプログラミングの例/慣例をよく見ます。 どういうAcme意味ですか?EmcaなどではなくAcmeを使用する理由 Acmeは、雑多なOOPクラスをグループ化する一般的なフォルダー名のようなものですか? この用語は、プログラミング規則の観点からどこから来たのですか。私が見る限り、それはプログラマーUIとは何の関係もありませんhttp://plan9.bell-labs.com/sys/doc/acme.html

3
C#でエンタープライズプロジェクトのエラーコードパターンを作成するためのベストプラクティス[非公開]
私は多くのSMBや企業に展開されるエンタープライズプロジェクトに取り組んでいます。 このプロジェクトのサポートは苦労するため、エラーのコーディングパターン(HTTPステータスコードなど)を作成したいと思います。これにより、ヘルプデスクの担当者がドキュメントを参照し、できるだけ早く問題をトラブルシューティングできます。 これを行うためのベストプラクティスと推奨事項は何ですか? これを行うためのヘルプは役に立ちます。

11
符号なし整数に関するベストプラクティスは何ですか?
私はどこでも符号なしintを使用していますが、そうすべきかどうかはわかりません。これは、データベースの主キーID列からカウンタなどになります。数値が負の値にならないようにする場合は、常にunsigned intを使用します。 しかし、他のコードでは、他の誰もこれを行っていないようです。私が見落としている重要なものはありますか? 編集:この質問以来、私はCでは、C ++のように例外をスローするのではなく、エラーに対して負の値を返すことが一般的であることに気付きました。

10
ランダムな整数が一意であることに依存しても問題ありませんか?
ネットワークプロトコルを実装しており、パケットに一意の識別子が必要です。これまでのところ、ランダムな32ビット整数を生成しており、プログラム/接続の存続期間中に衝突が発生する可能性は天文学的に低いと想定しています。これは一般に、本番コードで受け入れられるプラクティスと考えられていますか、それとも衝突を防ぐためにより複雑なシステムを考案する必要がありますか?

5
典型的な「動的言語の間違い」を回避する方法は?
私は最近、膨大なユーザーベースから利益を得たいと思ったため、JavaScriptに数時間を費やしました。そうすることで、ほとんどの人が動的言語に起因するパターンに気付きました。物事は本当に迅速に機能しますが、コードが特定のサイズに達すると、一般的にタイプ、スペル、リファクタリングのエラーで多くの時間を無駄にします。コンパイラが通常私を免れるエラー。また、別のモジュールでタイプミスをしたばかりのときに、ロジックのエラーを探す必要はありません。 JavaScriptや他の動的に型付けされた言語に続く信じられないほどのことを考えると、私のアプローチに何か問題があると信じるようになりました。または、これはあなたが支払わなければならない価格ですか? もっと簡潔に言うと: 〜2000 LOCでJavaScript(またはその他の動的言語)プロジェクトにどのようにアプローチしますか? これらの間違いを防ぐためのツールはありますか?私はFacebookとJSHintによるフローを試みましたが、これは多少役立ちますが、タイプミスはキャッチしません。

10
コードをクリーンアップするために定期的な時間をスケジュールすることは良い考えですか?[閉まっている]
私は小さな開発者チームを管理しています。コードをクリーンアップするために、1〜2日を費やすことにします。 コードベースをクリーンアップするために、2か月ごとに1週間などの定期的な時間をスケジュールすることをお勧めしますか?

16
ライブラリとコードスニペットを多用しない具体的な理由はありますか?[閉まっている]
全体的に私は約8年間プログラミングに携わっており、「仕事をやり遂げる」ためにオープンソースライブラリとスニペット(GitHubを気にせず)にますます依存しているように思えます。やがて自分の実装を書くことができることは知っていますが、全体的な設計に集中したいです。 これは正常ですか(非企業環境)?私の「プログラミング」が異なるライブラリーを一緒に接着すること以外の何物でもない場合、何がうまくいかないのでしょうか? 「車輪を再発明しない」ことは知っていますが、もう1つの車輪を発明しないとどうなりますか?


9
カスタムプロパティを持つJSブール値は悪い習慣ですか?
JSでは、カスタムプロパティを持つブール値を返すことができます。例えば。Modernizrは、ビデオサポートのためにテストするときに返すtrueかfalseが、返されたブール(ブール値は、JSでのファーストクラスのオブジェクトである)の形式がサポートされているものを指定するプロパティがあります。最初は少し驚きましたが、そのアイデアが好きになり始め、なぜそれが控えめに使用されているのか疑問に思い始めましたか? 基本的に何かが真であるか偽であるかを知りたいすべてのシナリオを扱うエレガントな方法のように見えますが、カスタム戻りオブジェクトを定義することなく、または準備されたコールバック関数を使用せずに定義できる追加情報に興味があるかもしれませんより多くのパラメーターを受け入れます。この方法により、より複雑なデータを返す能力を損なうことなく、非常に普遍的な関数シグネチャを保持できます。 私が想像できる3つの議論があります: インターフェイスが明確でトリッキーではない方がおそらく良い場合、それは少し珍しい/予期しないことです。 これはストローマンの議論かもしれませんが、それは少しエッジケースであるため、JSオプティマイザー、uい、VMで静かに裏目に出るか、または言語仕様のマイナーな変更などで静かに裏目に出ることを想像できます。 より正確な、簡潔で、明確で一般的な-まったく同じ方法があります。 だから私の質問は、追加のプロパティでブール値を使用することを避ける強力な理由はありますか?彼らはトリックまたは御treat走ですか? ねじれ警告をプロットします。 上記は元気な質問です。Matthew Crumleyとsenevoldsenの両方が指摘したように、それは誤った(偽の?)前提に基づいています。優れたJSの伝統では、Modernizrが行うことは言語のトリックであり、汚いものです。要するに、falseに設定された場合、プロップ(サイレントに失敗する)を追加しようとしてもfalseに設定されるプリミティブboolを持つJSと、カスタムプロップを持つことができるが、オブジェクトであるブールオブジェクトは常に真実です。Modernizrは、ブール値falseまたは真実のブール値オブジェクトを返します。 私の元々の質問は、トリックの動作が異なると想定していたため、最も一般的な回答は、コーディング標準の側面(完全に有効)を扱っています。しかし、私はトリック全体を暴く答えが最も役立つと思います(そして、メソッドを使用することに対する究極の引数も)ので、私はそれらの1つを受け入れています。すべての参加者に感謝します!

8
プライベート変数とプロパティ?
ほとんどの場合、クラス内の変数に値を設定すると、次の2つのオプションが表示されます。 private string myValue; public string MyValue { get { return myValue; } set { myValue = value; } } クラス内の変数に値を割り当てる方法を決定する規則はありますか?たとえば、同じクラス内にメソッドがある場合、プロパティまたはプライベート変数を使用して割り当てる必要があります。私はそれが両方の方法で行われたことを見てきましたので、これが選択肢なのかパフォーマンスが要因なのか(おそらく、おそらく)疑問に思っていました。

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