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

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

7
完全なプログラムを構築していますか?
本を読んだり、ビデオを見たり、チュートリアルを確認したりするのはとても簡単です。メモを取って実際に教材を学習するのは少し難しいかもしれませんが、それでもまともな頭脳とかなりの関心を持っている人なら誰でも簡単です(もちろん、楽しいです)。 問題は、完全なプログラムやWebサイトを作成する準備が本当に整っていないことです。あなたがそれらの10代(高校生のみ、真の(大学レベル)のコンピューターサイエンスまたはプログラミングコースはなく、現実世界の経験がない)で、Grouponを使用するとします。あるいは、マーク・ザッカーバーグでさえ、彼は天才であり、彼は非常に有能なプログラマーだったに違いありません... 必ずしもプログラミングが初めてというわけではないが、実際のアプリケーションや実際のプログラマーをプログラミングするのが初めての人は、それを開発することをどのようにお勧めしますか?「開発プロセス」とは何ですか-特にシングルプログラマ(または2〜3代の若者)にとってはどうですか? また、Web開発に関する限り、そのプロセスはどのようなものですか?FacebookやGrouponのようなものは、フレームワーク(CodeIgniterやPHPのZendなど)で書かれていましたか?または、独自のフレームワークを開発していますか?素晴らしいアイデアを思いつく方法を尋ねているのではなく、効果的な方法で素晴らしいアイデアを実装する方法を尋ねていますか?誰にもアドバイスがありますか? 私は、CとC ++の両方(主にCプログラミング言語とC ++プログラミング言語)に関する本をいくつか読んで、AP Computer Scienceを受講しました(JavaとOOPに関する追加の本をいくつか読みました)。また、PHP(およびCodeIgniter)およびPythonに関するチュートリアルをいくつか読んでいます。しかし、私はまだ高校生で、技術的には数か月間インターンシップで働くのに十分な年齢ではありません。

6
講演者は技術講演の報酬を受け取りますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 講演者(ブロガー、マット・カッツのようなグーグルの従業員)が会議で講演するための報酬を得られるかどうか興味があります。もしそうなら、いくらですか?彼らが支払わない場合、または支払われないために支払われない場合は、なぜ支払われますか?開発者を人前で話すことに導くお金以外の魅力は何ですか?

2
Pythonのフロー制御のベストプラクティスの例外はありますか?
私は「Learning Python」を読んでいて、次のことに出くわしました。 ユーザー定義の例外は、エラー以外の条件を通知することもできます。たとえば、呼び出しルーチンが解釈するためのステータスフラグを返す代わりに、一致が見つかったときに例外を発生させるように検索ルーチンをコーディングできます。以下では、try / except / else例外ハンドラーがif / else戻り値テスターの作業を行います。 class Found(Exception): pass def searcher(): if ...success...: raise Found() # Raise exceptions instead of returning flags else: return Pythonは動的に型付けされ、コアに対してポリモーフィックであるため、このような状態を通知するには、センチネルの戻り値ではなく例外が一般的に推奨される方法です。 この種のことはさまざまなフォーラムで何度も議論され、StopIterationを使用してループを終了するPythonへの参照は何度も見ましたが、公式のスタイルガイドにはあまり見当たりません(PEP 8にはフロー制御の例外への参照があります)または開発者からの声明。これがPythonのベストプラクティスであると述べる公式なものはありますか? これ(制御フローとしての例外は深刻なアンチパターンと見なされますか?その場合、なぜ?)には、このスタイルがPythonicであるとコメントするコメントもあります。これは何に基づいていますか? TIA

3
ループ内で変数を定義するのは良いですか?[閉まっている]
閉じた。この質問には、詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 4年前に閉鎖されました。 私のインストラクターはかつて、ループ内で変数を定義するべきではないと教えてくれましたが、正直なところまだ理由がわかりません。 その欠点は何ですか? 体はそれを私に説明できますか?

3
並列配列を使用できるのはいつですか?
私は「並列配列」またはリストと呼んでいるものを使用するコード(新しいコード)を実行しています。つまり、関連データを含む2つの配列があり、配列内の位置(インデックス)によってリンクされています。 私はこれを混乱させ、あらゆる種類のエラーを起こしやすいと考えています。私が通常提案する解決策は、CompanyCompanyIdおよびCompanyNameフィールドで呼び出されるオブジェクトを作成することです。 非常に現実的な例: List<string> companyNames; List<int> companyIds; //...They get populated somewhere and we then process for(var i=0; i<companyNames.Count; i++) { UpdateCompanyName(companyIds[i],companyNames[i]); } これらの並列配列は悪い習慣と見なされていますか?

8
コーディング前の概念と設計:これはいくらですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 私は学校で学び、適切なコーディングを行う前に、優れた開発方法論には構想と設計が必要であることを他のどこでも読みました。 それは初心者プログラマにとっても新しい情報ではありません。しかし、いくつかのプログラミング言語で開発を始めて以来、最初からすべてを設計して構想することができなかったため、これは良いアドバイスかと思います。 つまり、私は常にデザイン、構想、プログラミングを溶かしました。私は世界で最悪の開発者ですか、それとも私たちが学校で学ぶアイデアはただの古い無意味な宗教教義ですか? これまでに経験したこともプログラミングしたこともないものを、どのように考えて設計することができますか?それはばかげていませんか?プログラミングは、代わりに構想と設計をリードしませんか?

4
エラー抑制は悪い習慣ですか?
ここで私が確信していないコードについて質問したところ、誰かが「ところで、恐ろしいコード:エラー抑制記号(@)を多く使用しています」と答えました。 これが悪い習慣である理由はありますか?のようなもので: $db=@new mysqli($db_info) or die('Database error'); 、カスタムエラーメッセージのみを表示できます。エラーを抑制しないと、次の典型的なPHPメッセージが表示されます。 警告:mysqli :: mysqli():php_network_getaddresses:getaddrinfo failed:そのようなホストは不明です。中にいくつかの\ファイル\パス上のライン6 「データベースエラー」も同様です。 エラー抑制は常に悪いですか、もしそうなら、上記について具体的に何が悪いですか? 更新:私が使用している実際のコードは次のとおりです。 or error('Datatabase error', 'An error occurred with the database' . (($debug_mode) ? '<br />MySQL reported: <b>' . $db->error . '</b><br />Error occurred on line <b>' . __LINE__ . '</b> of <b>' . __FILE__ . '</b>' …

5
何年もの間、彼らのチームが製品革新に欠け、プロジェクト管理方法論を使用せず、悪いソフトウェア開発プラクティスを維持していた場合、開発者として何をすべきか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 何年も変更されておらず、最終的に製品とチームの障害につながる現在のソフトウェア開発プロセスに対処する方法を知りたいと思っています。はい、おそらくこれを解決するより簡単な方法は仕事を変えることですが、この経済では言うよりも簡単です。ただし、特定の例があり、同じ状況で複数回見たり、経験したことがあり、これらの問題に対処する最善の解決策が会社を辞めることだと思う場合は、回答をサポートしてください。重要なのは、特にこの問題に関する複数の専門家が最終的なルートがルートAであることを示す場合、この質問には本当に答えがあるということです。 私は、多くの開発者が同じような状況にあったことを知っています。これは、企業が市場で第1位から最後に、あるいは市場から外れてしまう主な理由の1つです。この投稿の回答が、同様の障害に直面している他の開発者の助けになることを願っています。小規模または大規模な開発チームでは、通常これが発生します。 一部の開発者は気にせず、フローを採​​用することを決め、多くのコードをそのまま残し、開発プロセスをそのままにすることを好むようです。 他の人は変化に飽きて辞任し、別の会社に移動します。 他の人は話をすることを恐れて静かに過ごすことを好むようです。 時には非常に少数の開発者またはたった1人の開発者が製品の改善について意見を表明し、クライアント、ユーザー、およびチームのコーディングのベストプラクティスとその利点に従うことの重要性をチームに伝えます。これらのタイプの開発者は通常、会社が提供するメリットが非常に少ないソフトウェア会社や製品に多くの可能性があるなどの理由により、チームに留まることを決定します。 私たちのチームの製品は、製品の傘を持っているため、会社が収益を得る場所のほんの一部です(この会社はソフトウェア/ハードウェア会社ではないため、少なくとも今のところ、雇用を創出する継続的な特許訴訟はありません)不安定)。ここ数年、他の開発者の経験からこれまでに学んだことと、私の経験では、開発チームを本当に知るには、数日でも数週間ではなく、数か月かかるということです。チームがあなたを雇いたい、またはあなたを必要とする場合、面接プロセス中。彼らはすべてを素晴らしい音にし、あなたが聞きたいことをあなたに伝えるかもしれません。ただし、そのチームで作業を開始し、コードの内部を掘り始めて、完全なSDLCプロセスに移行するときの現実は異なります。これは、開発者として、あなたが仕事に就いたことの現実を見始めたときです。この現実により、ある会社から別の会社に移動したいと思うのは難しくなります。なぜなら、あなたが移動する会社が良いか悪いかを知るのは難しいからです。はい、Glassdoorのレビューなどを読むことができますが、HRからではなく、実際のオンラインレビューの数はどれくらいですか? マネージャーは最初から常に変化に抵抗しており、以前の開発者は何年も同じことをしてきたことを考慮して、以下に概説する問題に取り組む最良の方法は何でしょうか? 長年にわたる製品革新の欠如:製品には多くの可能性があり、会社に良い収益をもたらしますが、製品は20年前に作られたように見えます。一部のユーザーは、製品が使いやすくも直感的でもないと不満を述べ、他の人は、Gmailのようなアプリに使用され、同様の機能がないために製品を使用するときにイライラすることを述べています。ここでの主な問題は、開発者として製品に変更を加えて、製品の主要な要素を数ピクセル離れたところに移動しようとすると(ユーザーフレンドリまたは直感的に)、マネージャーがパニックして、元の場所に戻します。ユーザーの生産性を向上させる機能を追加しようとすると、「ユーザーはプロセスを行うのに慣れているなどの理由で」削除するように求められます。あなたは、変化、改善、革新に対する抵抗のポイントを得たと思います(開発者としてあなたが利益の強い議論を提供したとしても、マネージャーは変化に対して開かれていません)。同社はこの分野でいくつかの競合他社を抱えていますが(そのうちのいくつかの製品ははるかに競争力があります)、何とかして現在の顧客を何年も維持しています。 プロジェクト管理の調整の欠如:この結果、一部のプロジェクトがバグで遅れて配信され、一部のクライアントから苦情が寄せられたり(クライアントからもバグが報告されたり)、プロジェクトの配信前に予算が早すぎたりするなど。いくつかのプロジェクト調整のヒントとアイデアが、プロジェクトと実行するタスクの進捗を追跡するために定期的に使用されています。 悪いソフトウェア開発プラクティス:コードの臭いは、すべてではないにしてもほとんどのファイルに見られ、ドキュメント、コードの冗長性、フロントエンド層とバックエンドが同じファイルに混在している、古い開発ツール、実際のテスト環境もテストツールもありません(コピーアンドペーストのみ)開発環境から本番環境へのファイルを作成してから、手動でテストして問題が発生していないことを確認してリリースします)。チームがコード開発とソース管理に2つのIDEのみを使用しているため、チームが知らないところで開発とテストに使用する開発ツールのほとんどは、開発環境でのみ使用できます。他の開発者は最新のフレームワークを使用して現在の問題を改善しようとしましたが、マネージャーは「あなたが去ったら、そのコードを維持するのは誰ですか?、そのままにしておきましょう」という理由でそれを好まない去り、別の会社に移った。 要約すると、他の会社の多くの開発者にも同様の状況が起こると確信していますが、状況が異なるため、開発者は(仕事の都合、仕事の柔軟性、会社の利益、またはより良い機会が届いていないという理由だけで)。私が知っている完璧な会社はありませんが、開発者としてあなたがどのように行動し、物事をポジティブに保ち、最終的に製品の改善とソフトウェア開発プロセスの改善のための変更を促進するためにこれらの問題に対処しますか?長年の開発経験またはほんの数年)?これは投稿が長いことは知っていますが、より有用なフィードバックを得る可能性を高めるために、詳細を追加することを好みました。 フィードバックと時間をありがとうございました

6
現在、ゲーム開発に使用されているテクノロジーは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 オンラインフォーラムでゲーム開発に関する質問をするたびに、線画アルゴリズムの学習、ビットレベルの画像操作、ビデオ圧縮解除などの提案が常に寄せられます。 しかし、God of War 3のようなゲームを見ると、このような低レベルのテクニックを使用してこれらのゲームを開発できるとは信じられません。 このようなゲームの素晴らしさは、(私にとって)わかりやすいプログラミング方法論に反しています。 ゲーム用ハードウェアに加えて、最近では本当に怪物です。したがって、開発者がより高いレベルの抽象化で作業することは理にかなっています。 ゲーム業界の最新の開発方法は何ですか?30〜35人の開発者(そのほとんどは管理とマーケティングの綿毛)のチームが、このような気が遠くなるようなゲームを作ることができるのはどうしてですか 質問が一般的すぎると思われる場合は、God of War 3のアーキテクチャを説明できますか?または、クローンをどのように作成しますか?客観的に答えられるべきだと思う。

7
定型文の防御?
私にとって、定型的なコードは明らかに悪いです。しかし、ボイラープレートを減らすために抵抗を示す開発者に会いました。私は、私が長年にわたってそれに対して開発した嫌悪感を超えて、すぐに形成された、よく考えられた議論を持っていなかったことに気付きました。 定型文を少なくするという説得力のある議論を形成できるように、いくつかの反論は何ですか?言い換えれば、ボイラープレートを支持する議論(もしあれば)は何ですか? (私は一般的に定型語が意味すると思うものを意味しますが、良い例はJavaのゲッターとセッターです。)

11
コードの作者をどのように追跡しますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 これは私が教えられたことがないものです。さまざまな種類のオーサリングスタイルを見てきました。主にJavaとPythonでコーディングします。標準のオーサリングスタイルがあるのか​​、それともすべてがフリースタイルなのかと思っていました。また、あなたが答えた場合、自宅または職場で作成したファイルを作成するために使用するスタイルを添付しても構いません。 私は通常ただ行く @author garbagecollector @company garbage inc.

12
今日、プログラマは何を「最適化」しますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 友人のためにシェアウェアをフロッピーにコピーする「古き良き時代」に戻って、かなりの量のアセンブリも使用しました。「マイクロ最適化」という一般的な慣行がありました。1つ少ない命令で表現する方法がわかるまで、アセンブリのラインをじっと見つめていました。数学的に不可能な「もう1つの命令はいつでも削除できます」という格言もありました。今日の(ほとんどの)プログラミングでは、小さな一定の要因によるランタイムパフォーマンスの変更は大きな問題ではないため、他の場所での最適化の取り組み? 言い換えると、ベストプラクティスは、価値のあるものを追加しなくなった極端な状態になりますか?そして、代わりに時間を無駄にしていますか? 例:プログラマーは、1つの場所からのみ呼び出されるプライベートメソッドを一般化するのに時間を浪費しますか?時間を無駄にしてテストケースのデータを削減していますか?プログラマーは(まだ)コードの行を減らすことに過度に関心を持っていますか? 私が探しているものには、2つの素晴らしい例があります。(2)わずかなコードの重複も削除します。 これは、「あなたは何のために最適化するのですか?」という質問とは異なることに注意してください。

9
学校でソフトウェア開発コミュニティをブートストラップするにはどうすればよいですか?
私は南フロリダ大学の学生で、コンピューターサイエンスプログラムの教育環境に不満を感じています。今、私は「プログラム設計」を取っています。プログラムを読みやすく保守しやすくするために、ソースコードを関数とモジュールに整理する方法を学ぶ必要があります。代わりに、Cの配列と再帰について学習しています。次の学期では、C ++で教えられる「オブジェクト指向設計」を採用する必要があります(shudder)。 2年前、私はプログラミングに夢中になり、それ以来、できる限り多くのことを学んでいます。別のC ++クラスを受講する見込みがあるため、ほとんど涙が出ます。そのため、同様に野心的な学生に会い、新しい言語を学び、ソフトウェア開発のトピックについて話し合い、他の学生の開発者と協力するために、プログラミングクラブを立ち上げると思いました。 しかし、私のソフトウェア開発経験を共有している他の学生はいないかもしれないことに気づき始めています。それは動機の欠如ではなく、機会の欠如によるものです。私は他のプログラミングクラス(「プログラミング言語」)を1つだけ知っており、実際のソフトウェア開発のクラスはありません。それ以外の人は、CとC ++で簡単なスクリプトを書いた経験しかありません。 他の学生向けソフトウェア開発者と協力したい場合は、自分でトレーニングする必要があることに気付きました。現在、私はクラブをソフトウェア開発のブートキャンプにし、最新のツールと言語を使用してソフトウェアを開発する方法をメンバーに教えることを計画しています。明らかに、非公式のソフトウェア開発コースを開始することは、多くの可能なアプローチを伴う途方もないタスクです。読者への私の質問は 攻撃の計画は何ですか? したほうがいい クラブの仕事と宿題のバランスをとろうとして自分でクラブに講義しますか? CSの教員に、メンバーに関係のない専門知識の範囲内でトピックを教えるよう依頼してください。 私のワークロードを共有できる同情的で経験豊富な開発者を学校内外で見つけようとしていますか? ビデオ講義(MIT OpenCourseWare、Google Tech Talksなど)を表示しますか? 実践的なプログラミングワークショップを開催しますか? 宿題を割り当てますか? 他に何か?

17
ソフトウェアの欠陥の主な原因は何だと思いますか(およびそれらを最小化する方法)[完了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 欠陥を次のように定義します。 「要件に従って機能することを妨げるアプリケーション設計またはコード内の何か。」 欠陥の原因についてのアイデアを探しています。例えば、ヒューマンファクター、テストの欠如、プロトタイピングの欠如、これらを緩和するための考えなどです。

10
コードの正当性の証明は主流になりますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 最も些細なプログラム以外はすべてバグで満たされているため、それらを削除することを約束するものは非常に魅力的です。現時点では、正当性の証明はコードが非常に難解です。これは主にこれを学ぶことが難しく、プログラムが正しいことを証明するために余分な労力がかかるためです。コードの証明はこれから始まると思いますか?

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