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

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

4
古いコミットで検出された脆弱性を修正する必要がありますか?
GitHub上の私のプロジェクトの1つが、この場合は中程度の重大度の脆弱性アラートを受け取りました。 この脆弱性は、古いバージョンのコードの依存関係で検出されました。現在のバージョンでは、この依存関係は使用されなくなりました。それでもなお、古いコミットがチェックアウトされて実行される可能性があり、アプリケーションを開いて脆弱性を悪用する可能性があります。 ソフトウェアエンジニアリングの観点から、以前のコミットに戻って変更することをお勧めします。つまり、現在使用されていない依存関係を脆弱性の修正を含む新しいバージョンに更新しますか?または、コミット履歴をそのままにしておく方が良いですか?

7
ネストされたループ内から「続行」するためのベストプラクティスは?
これは簡略化されたサンプルです。基本的に、文字列リストから文字列をチェックします。チェックにパスすると、その文字列(filterStringOut(i);)が削除され、他のチェックを続行する必要がなくなります。したがってcontinue、次の文字列に。 void ParsingTools::filterStrings(QStringList &sl) { /* Filter string list */ QString s; for (int i=0; i<sl.length(); i++) { s = sl.at(i); // Improper length, remove if (s.length() != m_Length) { filterStringOut(i); continue; // Once removed, can move on to the next string } // Lacks a substring, remove for (int …

7
「便利な使い捨て」スクリプトはどのように処理する必要がありますか?
あなたはそれがどのように行われるかを知っています:作業の95%を迅速に自動化する方法を見つけたいくつかの小さな反復的なタスクがあります。スクリプトを作成して実行し、出力を手動で修正すれば完了です。もちろん、スクリプトは会社の品質要件に適合しないため、コミットしません(ドキュメントもテストもないため)。 しばらくして、同じような作業をしている同僚がいます。あなたは「ねえ!そのためのスクリプトを作成しました。調べてみましょう。[見える]ああ、それは以前のラップトップに保管されていたので、もう持っていません。残念です。」 これらのスクリプトは多くの場合、多くの時間を節約することができ、チームのリーダーとして、バージョン管理に保存してほしいと思います。ただし、他のコードベースと同じ厳格な標準をこれらのスクリプトに課すと、ほとんどの開発者はそれらを自分たちに守ってくれると思います。 私が思い付くことができる他の唯一のオプションは、開発者がバージョン管理の特別な部分にスクリプトを保存できるようにすることです。バージョン管理の(GitHub Gistsのように)品質管理はありません。リスクは、他の人がコードを見つけたり理解したりできないためにコードを使用できないことです。 この問題はどのように解決できますか?それとも解決すべきではないのですか?

4
同じタイプのオブジェクトをそれら自体の中で宣言することは受け入れられますか?
以下の例のように、同じオブジェクト内から新しいオブジェクトを宣言(およびそれらを返す)することは許容されますか? または、あるhandlerクラスに移動した方がよいですか? public class Person { public string Name { get; set; } public int Age { get; set; } //Gets a list of persons public List<Person> GetPersons() { List<Person> _listPersons = new List<Person>(); Person _person = new Person(); _person.Name = "FooFii"; _person.Age = 50; _listPersons.Add(_person); return _listPersons; } }

1
ページング戦略:ページトークンとスキップ/開始インデックス
多くのアイテムを含む結果のページ間をユーザーが移動できるようにするために、ページトークンを使用する新しいAPIがますます増えていることを確認しています。ただし、APIデザイナーの観点からは、ユーザーがスキップしたいアイテムの数を指定できるようにする場合と比較して、トークンを使用する利点が何であるかは明確ではありません。 だからここに私の質問があります: 開始インデックスよりもページトークンを使用する利点は何ですか? 大まかに言えば、一般的なページトークンの実装では、どのようにしてページを追跡するのでしょうか。すべての結果をキャッシュすると、かなり非効率になります。ある種のハッシュを使用できると思いますが、結果を再構築するために何がハッシュされるのかわかりません。 ありがとうございました

3
主キーにハッシュを使用することは良い考えですか?
オーストリアの電子IDカードは、いわゆるセクタ識別子に依存しています。たとえば、病院では、大まかに次のように計算される、その人のセクターIDを取得することで、その人を識別できます。 sha1(personalId + "+" + prefix + sectorId); // prefix is constant and irrelevant それは良い考えですか?どんなに小さくても、衝突の可能性は危険だと思います。 ハッシュテーブルでは、衝突が発生した場合、同等性を確立する別の方法がありますが、主キーでは、同一の2つを使用することはできません。これは複合キーで回避できますが、一意のセクター識別子のポイントが失われます。 それをしても大丈夫ですか、それがいつか壊れることなくそのようにする方法はありますか?

2
なぜStringを(finalとして)宣言してから使用するのですか?
典型的なSpring MVCバリデータークラスでは、ErrorsオブジェクトにerrorCode値を挿入するときに、文字列(props.somefield.req)を使用した場合との違いは何ですか? errors.rejectValue("elementId", "props.somefield.req"); 宣言された静的な最後の文字列と対になる? private static final String SOMFIELD_REQ = "props.somefield.req"; ... errors.rejectValue("elementId", SOMFIELD_REQ); 少しでもパフォーマンスは向上しますか?スタックオーバーフローに関するいくつかの質問(Stringとfinal、Javaでfinal Stringを定義することは理にかなっていますか)を読みましたが、この質問の更新の質問に答えることはできませんでした。

4
C#のフィールドとメソッドでプライベートを使用する必要がありますか?
私はC#に少し慣れており、次のことがわかりました。C#では、クラス内のすべてのフィールドとメソッドはデフォルトでプライベートです。これが意味すること: class MyClass { string myString } と同じです: class MyClass { private string myString } それで、それらは同じなので、フィールドとメソッドでprivateキーワードを使用する必要がありますか?多くのオンラインコードサンプルでは、​​コードでprivateキーワードを使用していますが、それはなぜですか?

4
ASP.NETの展開/保守のベストプラクティス
私はWeb開発業界に5年ほどいますが、常にオープンソース環境で働いています。バージョン管理にgitを使用して、ほとんどの場合、apache、mysql、およびphpに少しルビーを追加します。しかし最近、開発が完全にC#ASP.NET MVCである仕事を始めました。 言語などはかなり簡単に習得できましたが、私のチームの他のメンバー(MS開発の経験が私よりもはるかに多い)は、最終的なサイトの公開と展開に関して異なる考え方を持っています。特に将来の変化。 他の開発者の考え方は、サイトが公開されるとそれが最終的なものになるということです。このサイトにこれ以上変更を加えることはできません。私がこれの背後にある理由を尋ねたところ、その答えは危険すぎる、時間がかかる、または難しいというものでした。 私の過去の経験から、サイトの更新は、変更されたファイルをアップロードする場合にすぎません。通常、それが少しの変更である場合、または更新が行われている間、サイトをメンテナンスモードにする場合は非常に迅速です。 最近MVCサイトを公開しましたが、企業から連絡があり、テキストの一部を更新して新しいPDFドキュメントへのリンクを追加しました。私のチームの他のメンバーは、サイトは現在稼働中であり、変更してはならないため、これを行うべきではないとすぐに言った。マイクロソフトの開発者に「育てられない」ことで見逃したことはありますか? 本番環境のライブWebアプリケーションに変更を加えることに対する反対の主張は何ですか?この考え方は.NET開発者に固有のものですか? 私はこの考え方を理解し、それがマイクロソフトの開発環境で正当化されるのか、それとも古い考え方なのかを理解したいと思います。 注:バージョン管理にはTFSを使用し、発行プロファイルを使用して、サイトが展開される場所(UATまたは本番)を決定します

1
Brainfuckの学習から実用的な用途はありますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 Brainfuckは、1993年にUrbanMüllerによって作成された難解なプログラミング言語です。プログラマーを挑発して楽しませるように設計されており、実際の使用には適していません。 しかし、それでも存在し、いくつかの本当にクールなものがそれで書かれています。 私の質問は-Brainfuckの学習/練習はプログラミングの私の知識の深さを増すでしょうか?例:(高水準言語を使用する)高水準プログラマーは、低水準のメソッドと操作の理解を向上させますか?それとも、読み書きが難しいという意味で「コード」のように見えるコードを示すことによって、時間を費やして面白がっている冗談なのでしょうか。

7
クラスがロジックのない情報のコレクションのみであることが適切ですか?
私はクラス持っていると言うPersonのインスタンス変数を持っているage、weightとheight、と別のクラスFruitのインスタンス変数を持っているsugarContentとしますtexture。Person一方、クラスは、セッターとゲッター保存メソッドを持たないFruitクラスは、セッターとゲッターの両方があるとのようなロジック・メソッドをcalculateSweetness。Fruitクラスは、クラスよりも実践的なクラスのタイプですPerson。つまり、Personクラスはあまり目的を持っていないようです。Fruitクラスはデータを整理し、実際にはロジックのメソッドを含みますが、データを整理するためだけに存在します。

9
何かをコーディングする方法がわからないときに使用するヒントやテクニックは?[閉まっている]
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 7年前休業。 UIデザイナーとしての経歴があります。そして、私はロジックの一部を書くのが少し難しいことに気づきました。たまにうまくいくこともありますが、たいていの場合、ハッキングされてしまいます(通常は時間がかかります)。そして、私はプログラミングが好きではないということではありません。実際、私はそれがデザインと同じくらい好きになり始めています。数字や論理よりも、色や形の方が得意だと思うことが時々あります(しかし、それを変更したいのですが)。 私が通常行うことは、インターネットでソリューションを検索し、例をコピーしてアプリに挿入することです(これはあまり良い習慣ではないことを知っています)。 1つのヒントは、実際のコードを書く前に、コメントとしてロジックを一般的な英語で書くことだったと聞きました。 他に使用できるヒントやテクニックはありますか?

3
プログラムで連動するがランダムなサイズの正方形のグリッドを構築する方法
長方形の2次元レイアウト、つまりランダムなサイズの立方体で構成されるグリッドを作成したいと思います。立方体は互いにフィットし、パディングまたはマージン(間隔)が等しい必要があります。漫画本のレイアウトのようなもの、または添付された画像のようなもの。 どうすればこれを手続き的に行うことができますか? 実際には、おそらくPythonといくつかのグラフィックソフトウェアを使用して画像をレンダリングしますが、ランダム化されたグリッドを生成するために使用する必要があるアルゴリズムの種類(またはその他)がわかりません。

6
新しいもので良いコードを書くには?[閉まっている]
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 7年前休業。 私はいつも、よく構成された読みやすいコードを書くようにしています。 私は何か新しいものをいじり回しているとき、私は特定の問題に直面します。私はコードや構造などを変更し続けています。結局、私はコードを見て、とても単純なことをしようとしたときにコードがどれほど複雑になったのか悩みました。 何かを完成させたら、それをよりリファクタリングしてよりクリーンにします。これはほとんどの場合完了後に発生し、コードが大きくなるほどコードを書き換えるのが面倒になるため、面倒です。 特に多くの人が共有する大きなプロジェクトで、人々がそのような苦痛にどう対処するのか知りたいです。

2
Java列挙型をパックするためのベストプラクティスは?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 Java列挙型をパッケージ化するためのベストプラクティスは何ですか? 列挙型ごとに別のファイルですか? または すべての列挙型に同じファイルがありますか? 長所と短所は何ですか?

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