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

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

12
他のチームメンバーのコードを書き換える、書かれていないルール[終了]
私たちは集団コードの所有権を実践しています。私の理解では、これは開発者がコード行を変更して機能を追加したり、バグを修正したり、バグを修正したり、設計を改善したりできることを意味します。 しかし、まだチームにいる開発者からのコードの完全な書き換えについてはどうでしょうか?最初に彼に尋ねるべきですか?ベストプラクティスは何ですか?

14
プログラミングやコンピューターサイエンス全般、アルゴリズムについてですか?
大学院生として、有名な企業(Google、Facebook、Microsoftなど)がアルゴリズムの質問をテストやインタビューに入れることはますます一般的になっています。私が応募したいくつかのスタートアップもアルゴリズムについて尋ねました。アルゴリズムの流encyさは、これらの企業のソフトウェア開発者にとって最も重要なことだろうか? 答えが「はい」の場合、アルゴリズムについて効果的に学習および実践するための最良の方法またはリソースは何ですか?ほとんどの教科書やウェブサイトで見られる、一見あまりにも複雑な問題を解決することに興味を持てないようです。基本的なアルゴリズム(クイックソート、バブルソートなど)は簡単に理解できますが、後で覚えて再利用するのは非常に困難です。 ありがとう。 P / S:私が好きなことを聞​​かれたら、それはユーザーの問題を革新的に解決する優れたソフトウェアを構築しているということです。これは、必ずしもソフトウェアが非常に複雑でなければならないという意味ではないと思います。

11
インターフェイスを使用しないのは悪い習慣ですか?[閉まっている]
インターフェースはめったに使用せず、他のコードでは一般的です。 また、コード内でめったにサブクラスとスーパークラスを作成しません(独自のクラスを作成します)。 それは悪いことですか? このスタイルを変更することをお勧めしますか? このスタイルには副作用がありますか? これは、私が大規模なプロジェクトに取り組んだことがないためですか?

7
定数を定義するインターフェースを持つのは悪い習慣ですか?
Javaでjunitテストクラスのセットを書いています。さまざまなテストクラスで必要な文字列など、いくつかの定数があります。それらを定義し、すべてのテストクラスがそれを実装するインターフェイスについて考えています。 私が見る利点は次のとおりです。 定数への簡単なアクセス:MY_CONSTANT代わりにThatClass.MY_CONSTANT 各定数は一度だけ定義されます このアプローチはむしろ良い習慣ですか、悪い習慣ですか?インターフェイスの概念を少し乱用したい気がします。 インターフェイス/定数について一般的に答えることができますが、特別なことがあれば単体テストについても答えることができます。

8
プログラムでのWindows「ドキュメント」フォルダーの正当な使用
Documentsフォルダーに配置するものだけを含めるのが好きな人は、標準のDocumentsフォルダーがこのタスクに完全に不適切であることを知っています。すべてのプログラムは、にその設定、データ、または均等に無関係な何かを入れたいようだドキュメントフォルダは、特にこの仕事のために存在するという事実にもかかわらず、フォルダ1。 これが空に聞こえないように、個人用の「ドキュメント」フォルダを例に取ります。私がいない今まで私は決して、いかなる状況の下で、このフォルダには何も保存自分という点で、それを使用します。それでも、最上位には46個のフォルダーと3つのファイルがあり、500個のフォルダーに合計800個のファイルがあります。これは私が作成しなかった190 MBの「ドキュメント」です。明らかに、実際の文書はこの混乱ですぐに失われてしまいます。 私の質問は、次の5年間で「ドキュメント」が再び役立つように、状況を十分に改善するために何かできることはありますか?プログラマーは、それをゴミ捨て場として使用しないように、何とか教育を受けられますか?OSは、既存のAPIを介してAppDataの下に隠された「偽の」場所の報告を開始できますか または、試みは完全に無駄であるか、さらには不要ですか? 1記録のために、「ドキュメント」の代わりに使用する必要があるさまざまな標準ディレクトリの簡単な概要を以下に示します。 RoamingAppData以下のためのユーザー固有のデータと設定。これは、ユーザー固有の非一時データに使用するディレクトリです。ここに配置されたものはすべて、特定のユーザーがこれが構成されているネットワークにログオンするマシンで使用できます。ただし、このような環境ではログイン/ログアウトが遅くなるため、大きなファイルをここに置かないでください。 LocalAppData以下のためのユーザーとマシン固有のデータと設定。このデータは、ユーザーごとおよびマシンごとに異なります。これは、非常に大きなユーザー固有のデータを配置する場所でもあります。 ProgramData以下のためのマシン固有のデータと設定。これらは、ログオンしているユーザーに関係なく同じであり、ネットワーク内の他のマシンにローミングしません。 GetTempPath使用されていないときにデータを失うことなく消去される可能性があるすべてのファイル。これは、一時データのようにキャッシュをバックアップする必要がないため、cachesなどの場所でもあります。ここに巨大なキャッシュを配置すると、ユーザーのバックアップのトラブルを軽減できます。 「ドキュメント」自体は必要があり、これまでユーザーがパスを入力するか、[保存]ダイアログで、それを選択することによって、それを手動で指定した場合に使用します。それはされる唯一の時間で、これまで「ドキュメント」にものを保存することが適当。

5
ライブラリ内からSTDINから読み取ることはアンチパターンと見なされますか?
私が仕事で取り組んでいる大規模なプロジェクトのライブラリを作成しているときに、トークンを電子メールアドレスに送信する必要があるという問題が発生し、その後コードに戻されてさらに使用できるようになりました。 私の同僚は(Pythonを使用してcode = input("Enter code: "))STDINから読み、それをユーザーに渡すように言っていますが、私にはライブラリがサーバー上のバックグラウンドタスクで使用される可能性があるため(この場合は間違いなく)、これは悪い習慣のようです。 これがアンチパターンと見なされるかどうか疑問に思っていました。

11
ロギング:なぜ、何ですか?[閉まっている]
ロギングを大幅に活用するプログラムを書いたことはありません。私がやったことのほとんどは、例外が発生したときにスタックトレースをキャプチャすることです。 他の人はどれくらいログを記録するのだろうかと思っていました 作成しているアプリケーションの種類に依存しますか?ログは実際に役立つと思いますか?

5
ウェブサイトのサーバー側を常にプログラムする必要がありますか?
私は友人のために音楽プロジェクトのウェブサイトの作成を開始しようとしています。現時点ではかなりシンプルなはずです。動的コンテンツ(ツアーの日付など)はなく、いくつかの埋め込みサンプルソングまたはSoundCloudリンクしかありません。レスポンシブグリッドには、バニラJavaScriptとBootstrapまたはFoundation以外のものを使用する予定はありません。 これで十分ですか?HTML、CSS、JSファイルをホストに単純にアップロードして完了できますか、それともNodeまたはPHPでバックエンドサーバーをプログラムするのに時間をかける必要がありますか?

5
ブール値を決定できない場合の対処方法
企業向けのWebアプリケーションを構築していますが、これまでは管理がExcelシートにのみ存在していました。ほぼ完了しましたが、最近、これらのシートからすべてのデータを新しいシステムにインポートするタスクを割り当てられました。システムはJavaで構築されていますが、このインポートは一度だけなので、代わりにPythonでスクリプトを記述し、SQLクエリで直接インポートすることにしました。ここに問題があります。新しいデータモデルには、既存のデータに含まれていないいくつかの新しい属性が含まれています。ほとんどの場合、これは問題ではなく、情報が見つからない場所にnullを置くだけです。しかし、その後、いくつかの属性に遭遇しました。これらの属性はブール値であり、デフォルトではNULLにはできません。最初に、データベース内のこれらのフィールドにnullを許可しようとしましたが、シニア開発者から許可しないように指示されました。将来的にシステムで問題が発生する可能性があるためです。そして今、私は何をすべきかよく分からない。明らかな解決策は、すべての不明なブール値をfalseにデフォルト設定することですが、それも間違っていると思います。 例:hasRadioパラメーターを持つエンティティCarがあるとします。ここで、このデータモデルにデータをインポートする必要がありますが、データには「Model」列と「Color」列のみがあり、無線の有無は関係ありません。設計上nullにできない場合、「hasRadio」列に何を入れますか? この状況での最善のアプローチは何ですか?不足しているデータを手動で入力するように会社に伝える必要がありますか?または、デフォルトでfalseになっていますか?

7
ソロジュニアデベロッパーとして進捗状況を確認するにはどうすればよいですか[終了]
私は現在、ソロのプライマリ開発者として、2人の会社で働いています。上司がクライアントを取得し、いくつかのpngデザインテンプレートをモックアップして、私に引き渡します。 このシステムはうまく機能しており、本当に楽しんでいます。 私が取り組んでいるプロジェクトの種類は、中小企業向けであり、通常はCMSシステムが必要です。最初から開発し、カテゴリ、タグ、製品などを追加/編集/削除するためにクライアント用にカスタマイズしたバックエンドを構築し、渡されたデザインテンプレートに従ってフロントエンドに出力します。時間が経つにつれて、ショッピングカート/注文機能やその他の一般的なeコマースタイプの機能により、プロジェクトの複雑さが増しました。 繰り返しますが、このシステムは正常に機能しており、本当に楽しんでいます。 私の問題は、プログラマーとしての個人的な成長です。プログラミングブログを読んだり、stackexchangeをチェックしたり、提案されたプログラミング本(現在のところ「The Pragmatic Programmer」で、これまでのところ本当に良い)を読んだり、脳のエクササイズ(lumosity.comとkhanacademy math問題)をしたり、たくさんの運動やその他の個人的な発達型の活動。 私は、フィードバック、批評を見逃していると感じずにはいられません。私の上司は素晴らしく、私の仕事に関して賞賛を決してneverしませんが、残念ながら彼は私のコードをチェックするのに忙しいか、正直なところ、彼の専門分野の1つではないと考えているため、フィードバックを提供できません。 私は何を間違っているのか、何を正しくしているのかを知りたい。コントローラーにそれほど多くのロジックを配置する必要がある場合、コードを十分に変調していますか? だから私がやったことは、小さな「家族予算」アプリを開発し、私が現在知っている方法と同じくらいきれいにそして効果的にそれをやろうとしたことです。 私が知りたいのは、このアプリを提出できる場所があり、ベテランの開発者にフィードバックを提供してもらうことです。「codereview.stackexchange」のような私のコードのサブセクションだけでなく、私が批判したいのは私のワークフロー全体です。 これは多くの質問であり、主なアドバイスはチーム内で仕事を探すことだと思います。これは確かに後の方で検討しますが、今のところは現在の仕事を続けたいと思います。雇用状況、しかしあまりにも多くの悪い習慣を開発したくない。 わかりやすくするためにさらに情報を提供できるかどうか、またはこのタイプの質問にこれが適切な場所でない場合は、事前に謝罪します。私はこのコミュニティがよりよく考えられた応答を促進すると感じたので、redditを使用したくありませんでした。


8
本当に大きなソースコードコミットの用語は何ですか?[閉まっている]
時々、ソフトウェアのコミット履歴を確認すると、実際には大きなコミットがいくつかあることがわかります。数百のソースコード行(デルタ)が変更された10または20のファイルが変更される場合があります。このようなBIGコミットには一般的に使用される用語がありますが、その用語が何であるかを正確に思い出すことはできません。誰も私を助けることができますか?プログラマーがこのようなBIGと巨大なコミットを指すために通常使用する用語は何ですか? ところで、たくさんの変更をまとめてコミットするのは良い習慣ですか? 更新:感動的な議論をありがとう!しかし、「コードボム」は私が探している用語だと思います。

12
XMLが非常に悪い場合...なぜ多くの人がXMLを使用するのですか?[閉まっている]
私はXMLの目的を理解していますが、それがいかに悪いのかと不満を言う人はいつもいますか?私はそれについて何が本当に悪いのか本当に理解していませんか?私は通常、「肥大化した」と「遅い」という言葉を投げかけます。 しかし、プログラマーとして、あなたは主に何のためにそれを使用しますか?そして、あなたは本当にそれを「悪い」と考えますか?...それがそうであるならば、ひどい多くの人々がそれをデータの輸送に使用します...

9
なぜ学校はリストよりも配列を教えるのですか?[閉まっている]
私の学校での最初のプログラミングクラスの割り当てのほとんどでは、配列を使用する必要がありました。私は今フルタイムで働いており、私が取り組んだプロジェクトでアレイを使用したことはありません。既存のプロジェクトでさえ、どこでも配列の使用を見たことはありません。私の意見では、リストは使いやすく標準です。教授が課題でアレイを使用するよう生徒に指示するのはなぜですか?学生が基本を理解するためだけですか? ほとんどの大学がJavaを教えているため、この質問はJavaに固有のものです。

8
OOPは簡単になりますか、難しくなりますか?[閉まっている]
オブジェクト指向プログラミングの概念が何年も前にプログラマーに紹介されたとき、それは興味深く見え、プログラミングはよりきれいになりました。OOPはこんな感じでした Stock stock = new Stock(); stock.addItem(item); stock.removeItem(item); わかりやすい名前を付けるとわかりやすくなりました。 しかし、データ転送オブジェクト、値オブジェクト、リポジトリ、依存性注入などのパターンを持つOOPは、より複雑になりました。上記を実現するには、いくつかのクラス(例:抽象、ファクトリ、DAOなど)を作成し、いくつかのインターフェイスを実装する必要があります。 注:コラボレーション、テスト、統合を容易にするベストプラクティスに反対するわけではありません

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