タグ付けされた質問 「source-code」

ソースコードは、人間が読めるコンピュータ言語を使用して、通常はテキストとして記述されたコンピュータ命令(おそらくコメント付き)のコレクションです。

10
設計パターンにこれほど多くのクラスが必要なのはなぜですか?
私はシニアのジュニア開発者であり、彼らの思考や推論を理解することに苦労しています。 私はドメイン駆動設計(DDD)を読んでいますが、なぜこれほど多くのクラスを作成する必要があるのか​​理解できません。ソフトウェアを設計するその方法に従えば、最大で2つのファイルと3〜4の関数で置き換えることができる20〜30のクラスになります。はい、これは面倒な場合がありますが、ずっと保守しやすく読みやすいです。 ある種のEntityTransformationServiceImpl機能を確認したいときはいつでも、多くのクラス、インターフェース、それらの関数呼び出し、コンストラクター、それらの作成などに従う必要があります。 簡単な数学: 60行のダミーコードと10クラスX 10(このようなロジックはまったく異なるとしましょう)= 600行の乱雑なコードと100クラス+ラップして管理するためのその他のコード。依存性注入を追加することを忘れないでください。 乱雑なコードの600行を読み取る= 1日 100クラス= 1週間 誰もが簡単にメンテナンスできると言っていますが、何のためですか?新しい機能を追加するたびに、ファクトリ、エンティティ、サービス、および値を持つ5つのクラスを追加します。この種のコードの移動は、乱雑なコードよりもずっと遅いように感じます。 たとえば、1か月で50KのLOC乱雑なコードを記述する場合、DDDには多くのレビューと変更が必要です(どちらの場合もテストは気にしません)。1つ追加するだけで1週間以上かかる場合があります。 1年で多くの乱雑なコードを作成し、何度も書き換えることもできますが、DDDスタイルでは、乱雑なコードと競合するための十分な機能がまだありません。 説明してください。このDDDスタイルと多くのパターンが必要なのはなぜですか? UPD 1:たくさんの素晴らしい回答を受け取りました。どこかにコメントを追加したり、リストを読むためのリンクを使って回答を編集してください(DDD、デザインパターン、UML、コード完了、リファクタリング、実用的) ..非常に多くの優れた書籍)、もちろんシーケンスを使用して、理解を開始し、一部の皆さんと同じようにシニアになることもできます。

13
「変更しない」とマークされたコードをリファクタリングする必要がありますか?
私はかなり大きなコードベースを扱っており、既存のコードをリファクタリングするために数ヶ月を与えられました。リファクタリングプロセスが必要なのは、すぐに製品に多くの新しい機能を追加する必要があり、現在のところ、他の機能を壊すことなく機能を追加することができなくなっているためです。要するに:私たちの多くが彼らのキャリアで見た、乱雑で巨大なバグのあるコード。 リファクタリング中に、時々、クラス、メソッド、または次のようなコメントのあるコード行に遭遇します モジュールAに何かをする時間を与えるためのタイムアウトセット。このようにタイミングが合わないと、壊れてしまいます。 または これを変更しないでください。私を信じて、あなたは物事を壊すでしょう。 または 私はsetTimeoutを使用することは良い習慣ではないことを知っていますが、この場合は使用しなければなりません 私の質問は、著者からのそのような警告に遭遇したときにコードをリファクタリングする必要がありますか(いいえ、著者と連絡を取ることができません)?

30
どのようにして大規模なコードベースに飛び込みますか?
未知のコードベースを探索および学習するために、どのツールとテクニックを使用しますか? 私はのようなツールを考えていますgrep、ctagsコードメトリクスが好き、ユニットテスト、機能テスト、クラス図ジェネレータは、グラフを呼び出すsloccountように、と。私はあなたの経験、あなたが使用または書いたヘルパー、そしてあなたが働いたコードベースのサイズに興味があります。 コードベースに精通することは時間の経過とともに発生するプロセスであり、「コードを要約できる」から「リファクタリングしてサイズの30%に縮小できる」まで、なじみがあることを意味します。しかし、どのように始めるのでしょうか?



17
あなたが書いたいコードにどのように対処しますか?[閉まっている]
そのため、クライアントからコードを書くように依頼されます。彼はその後、予想どおりに仕様を変更し、あなたは彼の新機能を熱心に小さな若者のように実装します。例外として、新しい機能は古い機能と競合するため、コードは混乱します。あなたは本当に戻ってそれを修正したいのですが、彼は新しいものを要求し続け、あなたが何かを掃除し終えるたびに、それは再び混乱を巻き起こします。 職業はなんですか?OCDマニアであるのをやめて、あなたのコードがあなたが何をしようとしても混乱を巻き起こすことを受け入れるだけで、この怪物に機能を付け続けますか?バージョン2のクリーニングを保存しますか?

29
私の会社は、時間外に別のスタートアップに書き留めたアプリケーションの知的財産権を譲渡できますか?[閉まっている]
私は健康会社(未払い)のインターンです。会社Aと呼びましょう。コンピューターでできることのために多くの紙のフォームを使用していることに気付きました。ExcelにあるべきではないもののExcelファイル。だから私は自分のプログラミングを改善したかったので、それが最善の機会だと考えました。 私はそれらを使用するためのアプリをいくつか開発しました。これらのアプリケーションはすべて、会社の時間外でした。私がした1つのアプリケーションと彼らは大好きで、ディレクターの1人には健康スタートアップ会社を持つ兄弟がいます。彼は、彼の兄弟の会社がそれをさらに開発し、おそらく販売できるように、私のソースコードを渡してほしいと思っています(私は方程式から外れています)。 コードを引き継ぐつもりはありませんが、外で多くの時間を費やしていますが、社内の誰とでも橋を燃やしたくはありません。監督のところに行って「そうは思わない」と言うことはできません。 私は兄弟にそれがどのように機能するかをデモすることで大丈夫ですが、行は私のコードを放棄しています。彼らがそのようなものを作りたいなら、彼らはすぐに先に進むことができます。 これにアプローチする正しい方法は何ですか?彼らは私にこれを行う権利を持っていますか? 編集:私は何も署名したことがない契約はありません

5
ソースコードにどのように価格を付けますか?[閉まっている]
私は数年前に作成した小さなユーティリティアプリのソースコードを(既存のユーザーと一緒に)販売するように求められました。ソースコードに価格を設定する方法を調査しましたが、これまでのところ、良い解決策を思いつきませんでした。 ネットを検索しましたが、有用なものは見つかりませんでした。それから、ソースコードをユーザーと一緒に販売している他の人に出くわしましたが、その価格は非現実的に高いようです。たとえば、1人のユーザーが約200ドルで価格を計算したとします。彼には80人のユーザーがいましたが、最終的に3万ドルでソースを販売しました。彼はどのようにしてこの価格を思いついたのですか? この式で良い価格を見つけることができます: (ユーザー数xアプリ価格)+(アプリ価格x 1年間の新規ユーザー数) ? これが適切な公式である場合、ユーザーがまだいないソースの価格をどのように決めますか?

10
コードはいつ「レガシー」ですか?[閉まっている]
すべて完了しました。一部のコード(多くの場合、継承したもの)を「レガシー」とラベル付けしましたか?しかし、それはまだ実稼働システムで使用されています-それは本当にレガシーですか?そして、何がレガシーなのでしょうか?完全に機能するコードのこの不当なラベル付けを避けるべきでしょうか。ラベリングは純粋な利便性であり、新しいものを押し通して上層部の経営陣を満足させることができますか? 回答の要約 答えを見ると、4つの一般的なテーマがあります。内訳は次のとおりです。 配信されたコード:6 デッドシステム:2.5 単体テストなし:2 開発者がいない:1.5

6
オープンソースプロジェクトのコード概要がないのはなぜですか?[閉まっている]
そこには非常に複雑なオープンソースプロジェクトがあり、そのうちのいくつかに私は貢献できると思います、そして私はできると思いますが、単一の理由でコードへの1行を変更するために、エントリーに対する障壁が高すぎます大きなプロジェクトをすべて理解する必要があります。 すべてのコードを読む必要はありません(読んでも十分ではありません)、すべての単一行が行うこととその理由をすべて理解する必要があります。コードはおそらくモジュール化され、コンパートメント化されているためです。その場合でも、プロジェクトの概要を取得して、モジュールの場所、あるモジュールが他のモジュールとインターフェイスする場所、各モジュールが正確に何をするのか、なぜなのか、これらの各イベントがどのディレクトリとファイルで発生するのかを知る必要があります。 私はこのコードの概要を、オープンソースプロジェクトがウェブサイトや外部の人にコードを説明するドキュメントに含めることができるセクションの名前として呼んでいます。私はそれが恩恵を受けるだろうと思う潜在的な貢献者を、彼らは実際、構築できる場所を識別することができるだろうとして、主コーダーは、彼らがすべてを書きながら、彼らの心を再編成することができるだろうとして、関与を、そして役立つだろうユーザーを、彼らは同じように、彼らが経験するバグを理解し、より良い報告をする助けになり、貢献者になることさえあります。 しかし、これらの「コードの概要」の1つを見たことはありません。どうして?これらのようなものがあり、私はそれらを見逃していますか?私が説明しているのと同じ仕事をするものは?または、これは完全に役に立たないアイデアですか?

4
クラスの命名:単数または複数?[閉まっている]
クラス名に単数形と複数形を選択することは、私にとって常に困難です。 CustomerRepository vs. CustomersRepository CustomerService vs. CustomersService CustomerController vs. CustomersController また、複合名の場合はさらに難しくなります。 OrderCustomerRepository対OrderCustomersRepository対OrdersCustomersRepository どのアプローチを好むのですか?

7
バージョン管理の方法に何か問題がありますか?
私はプログラマーのチームとビジネスアナリストとして仕事をしています。製品のバージョン2.0をリリースしたばかりで、3か月後にリリースされる次のバージョンに取り組んでいます(内部ソフトウェア製品です)。残念ながら、バージョン2.0には修正が必要な問題がいくつかあり、数週間以内に修正を展開する予定です。問題は、まだ作業中であり、さらに3か月間リリースされる予定のない変更を展開したくないことです。 プログラマーは、これを管理する方法は、欠陥のコードのみをチェックインし、新しい拡張機能のコードは、完了するまで開発者のローカルマシンに保持することであると判断しました。テストのためにマシンからローカルビルドを取得する必要があります。彼らがコードをチェックインし、不具合を修正するために別のパッチをプッシュする必要がある場合、それらの機能強化をまだ含めたくないからです。また、同じコードファイルに不具合の修正と機能強化の両方が含まれるという問題もあるため、ローカルでコードファイルをコピーし、バグを修正するために変更を加えてバグをチェックし、その後、彼らが作ったローカルコピー。 かなり複雑に思えます-このタイプのシナリオを処理するより良い方法はありますか?Team Foundation ServerとVisual Studio 2010を使用しています。


13
ランダムな見知らぬ人からのソースコードをコンパイルすることはどれくらい安全ですか?[閉まっている]
求職者がスキルを証明するために送信するコードをレビューするとします。明らかに、彼らが送信する実行可能ファイルを実行したくない。それほど明確ではありませんが、コードのコンパイル結果を実行したくないのです(たとえば、Javaではコメント内の実行可能なコードを非表示にできます)。 コードをコンパイルするのはどうですか?私のコンパイラを悪用する巧妙な文字シーケンスがコードに含まれていて、コンパイラがマシンを危険にさらしている場合はどうでしょうか? 「コンパイラーの脆弱性」をGoogleで検索すると、コンパイラーの最適化とコードの発行、および発行されたコードが元のソースコードの意図どおりに安全であるかどうかがヒットします。 コンパイラーは通常、いくつかの巧妙なコードをコンパイルするときにユーザーマシンを危険にさらさないように検証されていますか?見知らぬ人からのコードをコンパイルすることはどれくらい安全ですか?

16
ソースファイルの先頭のコメントにバグ番号を入れるのは良い考えですか?[閉まっている]
ヘッダーコメント内のファイル自体にバグ番号を入れるのは良い習慣ですか? コメントは次のようになります。 MODIFIED (MM/DD/YY) abc 01/21/14 - Bug 17452317 - npe in drill across in dashboard edit mode cde 01/17/14 - Bug 2314558 - some other error description 役立つように思えますが、それは悪い習慣と見なされていますか?

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