ソフトウェア工学

システム開発ライフサイクル内で働く専門家、学者、学生向けのQ&A

8
APIでHTTPステータスコード404を使用する場合
私はプロジェクトに取り組んでおり、職場の人々と約1時間以上議論した後です。スタック交換の人々が何を言うかを知ることにしました。 システム用のAPIを作成しています。組織のツリーまたは目標のツリーを返すクエリがあります。 組織のツリーは、ユーザーが存在する組織です。つまり、このツリーは常に存在する必要があります。組織では、目標ツリーが常に存在する必要があります。(それが引数の始まりです)。ツリーが存在しない場合、同僚はステータスコード200で応答するのが正しいと判断しました。その後、ツリーがないときにアプリケーションがバラバラになるため、コードを修正するように頼み始めました。 私は炎と怒りをspareしまないようにします。 ツリーがない場合、404エラーを発生させることを提案しました。少なくとも何かが間違っていることを知らせてくれるでしょう。200を使用する場合、エラーを処理するために成功コールバックの応答に特別なチェックを追加する必要があります。オブジェクトを受け取ることを期待していますが、何も見つからないため、実際には空の応答を受け取る場合があります。応答を404としてマークするのはまったく公平に思えます。その後、戦争が始まり、HTTPステータスコードスキーマを理解していないというメッセージを受け取りました。だから私はここにいて、この場合の404の何が問題なのか尋ねていますか?「何も見つからなかったので、200を返すのは正しい」という議論もありました。ツリーは常に存在する必要があるため、これは間違っていると思います。何も見つからず、何かを期待している場合は、404になります。 詳細、 取得したURLを追加するのを忘れました。 組織 /OrgTree/Get 目標 /GoalTree/GetByDate?versionDate=... /GoalTree/GetById?versionId=... 私の間違い、両方のパラメーターが必要です。日付に解析できるversionDateが提供されている場合、終了リビジョンを返します。過去に何かを入力すると、最初のリビジョンが返されます。IDが存在しないIDである場合、200の空の応答を返すと思われます。 追加 また、この問題に対する最善の答えは、組織の作成時にデフォルトのオブジェクトを作成することであり、ツリーを持たないことは有効なケースではなく、未定義の動作と見なすべきです。両方のツリーがなければアカウントを使用する方法はありません。そのため、それらは常に存在する必要があります。 また、私はこれをリンクしました(1つは似ていますが、見つけることができません) http://viswaug.files.wordpress.com/2008/11/http-headers-status1.png

10
サンプルサイズがプロジェクトの長さに影響しないことを説明する方法
通常、ソースデータベースから宛先データベースにデータをコピーし、このデータなどを同期する追加のアプリケーションをセットアップする大規模なエンタープライズプロジェクトがあります。 最後のプロジェクトには250,000のアイテム(データの行)が含まれていました。次のプロジェクトには、4,000アイテムのみが含まれます。プロジェクトマネージャー/ビジネスパーソンは、プロジェクトは最後のプロジェクトのほんの数分の1のサイズであるため、プロジェクトが完了するまでの時間の1/10であるべきだと考えています。 あるシステムから別のシステムにデータを転送するコードを書くことは、アイテムの数に関係なく同じ量を要することを説明するために使用できる良い類推です-1アイテムまたは100,000,000のためにそれを書くことは、プログラミングからほぼ同じ量の時間がかかります視点。
58 analogy 

8
ORMは反パターンですか?[閉まっている]
ORMとその長所と短所について同僚と非常に刺激的で興味深い議論をしました。私の意見では、ORMは非常にまれな場合にのみ役立ちます。少なくとも私の経験では。 しかし、現時点では自分の主張をリストしたくありません。それでは、ORMについてどう思いますか?長所と短所は何ですか?

11
データ構造でルービックキューブを表す方法
ルービックキューブをシミュレートしようとしている場合、キューブの状態をメモリに保存するためのデータ構造をどのように作成しますか? 考慮事項: キューブは任意のサイズにすることができます ルービックキューブなので、レイヤーを回転させることができます

16
一部の求人が「高圧環境」と言っているのはなぜですか?[閉まっている]
誰もが自分たちが何をしているかを知っていて、プロジェクトが正確に見積もられているのに、なぜプレッシャーがあるのでしょうか?プレッシャーがあれば、あるいはプレッシャーさえあれば、それは彼らが現在やっていることが機能していないことを意味します。この種の求人は自慢しようとするのに失敗したのですか、それとも本当に正直なのですか?それとも、本当にプレッシャーをかけるのにいくつかの正当な理由がありますか?

3
インタビューでPHPのスキルをテストするにはどうすればよいですか?[閉まっている]
私の会社はPHP開発者を雇う必要がありますが、私の会社にはPHPの知識がなく、PHPのスキルをテストすることは困難です。C / Java開発者であれば、Game of Lifeの簡単な実装を作成するように彼に依頼しますが、PHPはまったく異なる言語です。 私は興味を持ってこのテストを見ました: http://vladalexa.com/scripts/php/test/test_php_skill.html 他に誰か提案がありますか?
58 php  interview 

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

11
有能なプログラマーは、彼自身の最短経路アルゴリズムを考え出すことができますか?
私は、コンピュータープログラマーとしての能力に自信の危機に直面しています。 昨日、グラフ用に自分の最短経路アルゴリズムを考え出そうとしましたが、数時間後にタオルを投げてダイクストラのアルゴリズムを学びました。 これは、優れたプログラマーが数時間で「再発明」できるはずの種類ですか、それとも非現実的ですか? まあ、少なくとも私はバブルソートを再発明することができました:D
58 algorithms 

17
ポインターを使用して解決するのに最適なプログラミング問題は何ですか?[閉まっている]
まあ、私は基本的にポインタの使用方法を理解していますが、より良いプログラミングを行うためにそれらをどのように使用するのが最善かはわかりません。 ポインターを使用することで解決できる、良いプロジェクトや問題は何ですか?

8
「デフォルト」ソフトウェアライセンスとは何ですか?
いくつかのコードとバイナリをリリースしたが、ライセンスがまったく含まれていない場合、デフォルトで適用される法的条件は何ですか(米国の場合)。私は何もせずに自動的に著作権を持っていることを知っていますが、それにどのような制限がありますか? 自分のコードをgithubにアップロードし、自由にダウンロード/投稿として自由に発表する場合、人々は私の作品を修正してソースを閉じることができますか?GPLのようにできないとは言いませんでしたが、デフォルトで私の作品を盗むことも受け入れられるとは思いません。 それでは、自由に利用できるが、ライセンス条項がまったくないコードで人々ができることとできないことは何ですか?

11
Javaの最新のレビュー[終了]
私は数年前からプログラミングをしていて、Javaを始めました。そして、Javaが何らかの形で劣った言語であると主張するさまざまなソースを見つけました。各言語には長所と短所があることをよく知っていますが、Javaについて読んだ多くのことは時代遅れのようです。 Javaが劣っている最もよく挙げられる理由は、たとえばC ++など、他のネイティブにコンパイルされた言語よりもJavaがはるかに遅いことです。多くの人々は、パフォーマンス部門が明らかに不足しているため、Javaの使用についてゲームデザイナーのノッチ(Minecraftを開発した)を批判しています。当時はJavaの方がはるかに低速でしたが、それ以来、特にJITコンパイルでは多くの改善が見られました。 今日、言語としてのJavaについて客観的な意見を聞きたいと思います。したがって、私の質問には4つの部分があります。 パフォーマンス。 a。今日のJavaの速度はC ++と比較してどうですか? b。Javaを使用して最新のAAAタイトルを作成することは可能でしょうか? c。JavaがC ++より遅いのは、具体的にどのような分野ですか?(つまり、数値演算、グラフィックス、またはその周辺) Javaは現在、コンパイル言語またはインタープリター言語と見なされていますか? 初期の頃から対処されてきたJavaの主な欠点は何ですか? まだ対処されていないJavaの主な欠点は何ですか? 編集: 明確化の目的のために、私はこのJava対C ++を作成していません。明らかに、平均してc ++はJavaよりも少し高速です。この時点で、Javaを言語としての成熟度に関して比較するものが必要です。C ++は永遠に存在しているので、私は比較の良い点になると思いました。


22
問題を解決できない場合はどうなりますか?[閉まっている]
私は大学を卒業するのに1年かかり、実際の問題を解決することを本当に楽しみにしています。特に、ちょっとした研究と多くの思考を必要とする自明でないもの。 しかし同時に、それは私の最大の恐怖でもあります-どんなに一生懸命努力しても、解決できない問題に直面することです。また、間近に迫った締め切りにコードを配信するようプレッシャーをかけられているため、uniの安全なプレイグラウンドから見ると少し怖いように見えます(最悪の事態はコースや試験をやり直す必要があることです)。 それで、長い間業界にいる人たちにとって、できない問題を解決するように言われたらどうなるでしょうか?それは起こりましたか?もしそうなら、何が起こりましたか?彼らはただそれを落とし、「まあ、私たちは何か他のもので間に合うことができると思います」と言いましたか?結果はありましたか?あなたは懲戒されましたか、解雇されましたか?

15
私はCを知りません。そして、なぜそれを学ぶ必要がありますか?[閉まっている]
私の最初のプログラミング言語はPHP(gasp)でした。その後、JavaScriptの使用を開始しました。私は最近C#で仕事をしました。 Cのような低レベルまたは中レベルの言語を一度も見たことがありません。 大規模なプログラミングコミュニティの一般的なコンセンサスは、「Cのようなことを率直に学んでいないプログラマーは、ポインター、データ型、参照による値の受け渡しなどのプログラミング概念を扱うことができない」ということです。 私は同意しない。私はそれを主張します: 高水準言語は簡単にアクセスできるため、より多くの「プログラマーではない」人が飛び込んで混乱する 高レベルの言語で実際に何かを成し遂げるためには、「学習-低レベル-最初」の福音伝道者のほとんどの支持者と同じ概念を理解する必要があります。 一部の人々はCを知る必要があります。それらの人々は、低から中レベルのコードを書くことを要求する仕事を持っています。私はCが素晴らしいと確信しており、Cを知っているいくつかの悪いプログラマーがいると確信しています。 なぜバイアスなのか?良い、正直、空腹のプログラマーとして、Cを(何らかの予期しない理由で)習得しなければならなかった場合、私はCを習得します。私たちが何に興味があるのか​​を学ぶべきではないでしょうか?有限の時間を利用して前進すべきではないでしょうか?なぜ一部のプログラマーはこれに同意しないのですか? 優れたプログラマーと悪いプログラマーとの間の基本的な決定論的特性は、あなたがしていることの卓越性を追求することだと思います。 Java、Pascal、PHP、JavaScriptなどの高水準言語で記述されたものが、Cの事前知識から実際にどのように恩恵を受けたのか、実世界の例はありますか?例をいただければ幸いです。


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