タグ付けされた質問 「coding-style」

**使ってはいけません!このタグは完全に意見が分かれた主題を参照しているため、もはや話題にはなりません。**コーディングスタイルと規則に従う質問。

5
リレーショナルテーブルの命名規則
私は新しいプロジェクトを始めており、最初からテーブル名と列名を取得したいと考えています。たとえば、私は常にテーブル名に複数を使用してきましたが、最近学んだ単数は正しいです。 したがって、「user」というテーブルを取得して、そのユーザーだけが持つ製品を取得した場合、テーブルの名前を「user_product」または単に「product」にする必要がありますか?これは1対多の関係です。 さらに、(何らかの理由で)各製品について複数の製品の説明がある場合、それは「user_product_description」または「product_description」または単に「説明」でしょうか?もちろん、適切な外部キーが設定されている場合。ユーザーの説明やアカウントの説明などがあるため、説明に名前を付けるだけでも問題があります。 列が2つだけの純粋なリレーショナルテーブル(多対多)が必要な場合はどうなりますか?「user_stuff」または「rel_user_stuff」のようなものですか?そして、最初の場合、たとえば「user_product」とこれをどのように区別しますか? どんな助けも高く評価されます。皆さんがお勧めする命名規則の標準がある場合は、自由にリンクしてください。 ありがとう

10
文字列に(文字列の)リストの要素が含まれているかどうかを確認する
次のコードブロックの場合: For I = 0 To listOfStrings.Count - 1 If myString.Contains(lstOfStrings.Item(I)) Then Return True End If Next Return False 出力は次のとおりです。 ケース1: myString: C:\Files\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: True ケース2: myString: C:\Files3\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: False リスト(listOfStrings)には複数のアイテム(最小20)が含まれる場合があり、数千の文字列(myStringなど)に対してチェックする必要があります。 このコードを書くためのより良い(より効率的な)方法はありますか?

3
異なるゲッタースタイル間のC#の違い
ゲッターのプロパティに略語が見られることがあります。たとえば、これらの2つのタイプ: public int Number { get; } = 0 public int Number => 0; 両者に違いがあるかどうか教えてください。彼らはどのように行動しますか?どちらも読み取り専用ですか?

14
Rubyのブロックのdo..endと中括弧
Rubyで複数行ブロックを定義するためにdo..endを使用せず、代わりに中括弧を使用するように積極的に説得しようとしている同僚がいます。 私は固い中括弧を短いワンライナーにのみ使用し、他のすべてに使用することに固執しています。しかし、私は何らかの解決策を得るために、より大きなコミュニティに手を差し伸べると思いました。 それはどちらですか、そしてなぜですか?(いくつかのshouldaコードの例) context do setup { do_some_setup() } should "do somthing" do # some more code... end end または context { setup { do_some_setup() } should("do somthing") { # some more code... } } 個人的には、上記を見るだけで私の質問に答えますが、私はこれをより大きなコミュニティに開放したいと思いました。

14
C / C ++でのNULLポインターのチェック[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5年前休業。 この質問を改善する 最近のコードレビューでは、寄稿者がNULLポインターのすべてのチェックが次の方法で実行されるように強制しようとしています: int * some_ptr; // ... if (some_ptr == NULL) { // Handle null-pointer error } else { // Proceed } の代わりに int * some_ptr; // ... if (some_ptr) { // Proceed } else { // Handle null-pointer error } 「このポインターがNULLではないことを確認してください」と明示的に言っているという意味で彼のやり方はもう少し明確であることに同意しますが、このコードに取り組んでいる誰もがポインター変数をifステートメントは暗黙的にをチェックしていNULLます。また、2番目の方法では、ilkのバグが発生する可能性が低くなります。 if (some_ptr = NULL) これは、見つけてデバッグするための絶対的な苦痛です。 …


12
C / C ++ソースコードを一連のコーディング標準と照合する無料のツールですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する Java(Checkstyle、JCSC)用のそのようなツールを見つけるのは非常に簡単に見えますが、C / C ++用のツールを見つけることができないようです。私は糸くずのような静的コードアナライザーを探していません。変数の名前付け、大文字の使用、間隔、識別、ブラケットの配置などのコーディング標準に対してチェックしたいだけです。
151 c++  c  coding-style 

29
C ++クラスでメンバー変数にプレフィックスを使用する理由
多くのC ++コードは、メンバー変数をマークアップするために構文規則を使用しています。一般的な例は次のとおりです パブリックメンバーのm_ memberName(パブリックメンバーが使用される場合) _ プライベートメンバーまたはすべてのメンバーのmemberName 他のメンバーは、メンバー変数が使用されるときはいつでもthis-> メンバーの使用を強制しようとします。 私の経験では、大規模なコードベースのほとんどは、このようなルールを一貫して適用することに失敗しています。 他の言語では、これらの規則はそれほど広く普及していません。JavaまたはC#コードでたまにしか見ません。RubyやPythonのコードでは見たことがないと思います。したがって、より最近の言語では、メンバー変数に特別なマークアップを使用しない傾向があるようです。 この規則は今日でもC ++で有用ですか、それとも単なる時代錯誤なのでしょうか。特に、ライブラリ間で非常に一貫して使用されていないため。他の言語は、メンバーのプレフィックスなしで実行できることを示していませんか?

12
関数Aが関数Bでのみ必要な場合、AをB内で定義する必要がありますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5か月前に閉鎖。 この質問を改善する 簡単な例。2つのメソッド、1つは別のメソッドから呼び出されます。 def method_a(arg): some_data = method_b(arg) def method_b(arg): return some_data Pythonでは、def別の内部で宣言できdefます。それで、にmethod_bのみ必要でありmethod_a、からのみ呼び出される場合、method_b内部で宣言する必要がありmethod_aますか?このような : def method_a(arg): def method_b(arg): return some_data some_data = method_b(arg) それとも私はこれを避けるべきですか?

11
メソッドのようなファクトリーに名前を付けるには?
ほとんどのファクトリーライクなメソッドはで始まると思いますcreate。しかし、なぜ「作成」と呼ばれるのですか?「make」、「produce」、「build」、「generate」、または他の何かをしてみませんか?それは好みの問題だけですか?慣習?それとも「作成」には特別な意味があるのでしょうか? createURI(...) makeURI(...) produceURI(...) buildURI(...) generateURI(...) 一般的にどちらを選択しますか?その理由は?

6
プライベートvs保護-可視性のグッドプラクティスの懸念[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 この質問を改善する 私は探していて、理論上の違いを知っています。 パブリック -任意のクラス/関数はメソッド/プロパティにアクセスすることができます。 protected-このクラスとサブクラスだけがメソッド/プロパティにアクセスできます。 プライベート -これだけのクラスはメソッド/プロパティにアクセスすることができます。それも継承されません。 それは問題なく、問題は、それらの間の実際的な違いは何ですか?いつ使用しprivate、いつ使用しprotectedますか?これよりも標準的または許容できる良い習慣はありますか? これまでは、継承とポリモーフィズムの概念を維持するpublicために、外部からアクセスする必要があるもの(コンストラクターやメインクラスの機能など)とprotected内部メソッド(ロジック、ヘルパーメソッドなど)を使用しています。私は正しい軌道に乗っていますか? (この質問は私用ですが、このような質問を見たことがないので、将来の参考のためにも注意してください)。

4
値渡しはC ++ 11の妥当なデフォルトですか?
従来のC ++では、値による関数やメソッドへの受け渡しは、ラージオブジェクトの場合は遅く、一般に不満を抱きます。代わりに、C ++プログラマーは参照を渡す傾向がありますが、これは高速ですが、所有権、特にメモリ管理(オブジェクトがヒープに割り当てられている場合)に関するあらゆる種類の複雑な質問が生じます。 これで、C ++ 11には、Rvalue参照と移動コンストラクターがあります。つまりstd::vector、値を関数に渡したり、関数から渡したりするのが簡単な(のような)ラージオブジェクトを実装することができます。 では、これは、デフォルトでは、std::vectorやなどの型のインスタンスの値で渡す必要があることを意味しますstd::stringか?カスタムオブジェクトについてはどうですか?新しいベストプラクティスは何ですか?
142 c++  coding-style  c++11 

6
「import os.path」または「import os」を使用する必要がありますか?
公式ドキュメントによると、os.pathはモジュールです。したがって、それをインポートする好ましい方法は何ですか? # Should I always import it explicitly? import os.path または... # Is importing os enough? import os 「os作品のインポート」には答えないでください。私も知っています。Python2.6の時点では、現在も動作しています。私が知りたいのは、この問題に関する公式の勧告です。したがって、この質問に答える場合は、参考文献を投稿してください。

3
効果的なC ++はまだ効果的ですか?
この投稿で目にしたことから、私は本「Effective C ++」を読み始めることにしました。 しかし、C ++ 11のために多くの新機能があり、いくつかの良い習慣が変わった今、それが実際に良いアイデアであるかどうかはわかりません。C ++ 11の登場により、Effective C ++に含まれるアドバイスが廃止されましたか?その場合、どのトピックを避けるべきですか?

11
「for」ループを使用してC ++ベクトルを反復処理する
C ++言語は初めてです。私はベクトルを使い始めており、インデックスを介してベクトルを反復処理するすべてのコードで、forループの最初のパラメーターは常にベクトルに基づくものであることに気づきました。Javaでは、ArrayListを使用して次のようなことを行う場合があります。 for(int i=0; i < vector.size(); i++){ vector[i].doSomething(); } C ++でこれが表示されない理由はありますか?それは悪い習慣ですか?

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