ソフトウェア工学

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

3
開始文字と終了文字が一致する単語の最長リスト
私の友人は、彼が簡単だと言っている問題を私に与えましたが、私はそれをするのに使う良いアルゴリズムを見つけられません。 100個のランダムな英語の単語が入力されます。ある単語の最後の文字が次の単語の最初の文字と一致する単語の最も長い文字列を見つける必要があります。各単語は1回しか使用できません。 たとえば、「cat」、「dog」、「that」という単語を指定した場合、作成できる最長の文字列は「cat-> that」になります。「マウス」、「ムース」、「ユニコーン」という単語が与えられた場合、作成できる最長の文字列は1つの単語になります(これらの単語はリンクしていないため)。「鳥」、「皿」、「港」という単語が与えられた場合、作成できる最長の文字列は「港->鳥->皿」(または「皿->港->鳥」または「鳥- >皿->ハーブ」)。 これを有向巡回グラフとしてモデル化するというアイデアを思いつきました。各ノードは単なる単語であり、頂点はこの単語が終わる文字で始まる各単語/ノードに移動します。 +-------+ \ +------+ | cat |-----------| that | +-------+ / +------+ | | \|/ | +-------+ / | | the |--------------+ +-------+ \ この問題は、NP-Hardである最長パス検索のようです。 それを行うより良い方法はありますか?または、使用できる近似アルゴリズムのようなものもありますか?または、検索スペースを削減するために英語の資質を活用する方法はありますか?
11 algorithms 

2
ORDER BY句がない場合、行はどの順序でフェッチされますか?
1人のプログラマが、同じデータベース構造と同じデータを使用する同じアプリケーションを、Oracle 8とOracle 9の2つの異なるデータベースでのみテストおよび比較しています。 アプリは句なしで クエリを実行しますORDER BY。 彼は、ORDER-BY-lessクエリは両方のデータベースで同じ順序で行を返すべきだと主張しています。 ORDER BY句を明示的に指定しない限り、同じ行順序の保証はないことを彼に伝えます。 データベースには同じインデックスとキーがあります。しかし、説明プランでは、データベースの1つではエンジンが結合テーブルの1つのキーを使用しているのに対し、他のデータベースでは別のデータベースのキーを使用していることを示しています。 彼は、2つのDB環境が等しくないことをほのめかしています。これは、統計やRDBMSエンジンなどが異なるためです。元のデータベースのすべてのインデックスを複製できなかったためではありません。 ORDER BY順序が本当に重要な場合は、明示的に条項を提供する必要があると彼に言います。 質問 だから私は彼をよりよく説明できます: ORDER BY句を明示的に指定しない場合、クエリはどの順序で行をフェッチしますか?また、なぜそのクエリは同じ順序で行を返さないのですか?
11 sql  oracle  rdbms 

3
プログラミング言語の内部を理解する必要がありますか?
私はPythonの初心者で、これまでのところ本当に気に入っています。よく頭に浮かぶ質問の1つは、プログラミング言語の内部構造を理解する必要があるかどうかです(したがって、私の場合はPythonです)。ご存知かもしれませんが、Python自体はCで書かれています。 だから私の質問は次のとおりです。この言語に堪能であるか流であるためには、プログラミング言語にどのくらい深く潜らなければならないのか。この質問を「自然な」言語と比較します。私は母国語の文法のすべての詳細を知りませんが、その言語で問題なく自分を表現することができます。これは私が言語に堪能だと言うときです。それはプログラミング言語にも当てはまりますか?

2
「クリーンコード」の実践は本当にクリーンで便利ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 私は現在、大企業でインターンシップを行っており、ソフトウェア配信構造の多くの変更を受けています(アジャイルに移行)。 過去数ヶ月で、私はこの宗教的なClean Code慣習への執着と 、開発者にとって聖書のような本であることに気付きました。 さて、クリーンなコードの最も重要な機能の1つは、わかりやすい名前付けと厳密なリファクタリングに基づいた自明のコードです。これにはno commentingルールが続きます。 このクリーンなコードは、コードの保守と改善を容易にする長期的な投資であることを理解していますが、...これは本当に大騒ぎに値するのでしょうか? Clean Codeでの経験や、私があまりにも保守的すぎるのか、それとも一時的な傾向であるのか、誰でも意見を共有できますか。

6
スクラムスプリントの追加の美容機能をどのように処理する必要がありますか?
私はスクラム文書を読んでいて、スプリントのタスクは「潜在的に出荷可能」でなければならないと言っています。 これが何を意味するのか混乱しています。Sprint 1の目標が「ユーザー登録フォーム」だったとします。 何かを出荷する準備をするために、どのくらい詳細を追加する必要がありますか?例えば: 派手なスタイリングなしでフィールドを持つシンプルなフォームを表示し、完了マークを付けることができます 完了マークとしてクライアント側の検証を行うことができますが、サーバー側もオプションまたは両方です また、jQueryの便利なツールヒント、ホバーオーバー、キャプチャ、色、フォームのラベルを追加することもできます。 次に、画面にエラーメッセージを表示する方法についてのスタイリングがたくさんあります 私は1つのトピックで無限に行うことができます。それで、それをどのように分割し、私はそれを出荷準備完了と考えることができます。 または、エラー、ポップアップ、またはライトボックステキストをサブタスクとして表示し、それらをスプリントとして配置するなど、できるだけ小さいものをそれぞれ記述する必要がありますか。これにより、プロジェクト全体で数千のタスクが発生します。 Internet Explorerで動作するものとFirefoxで動作するものがあれば、それらをタスクとして分割する必要があります。それらに時間を費やす必要があり、その時間にマネージャーがあなたに何をしたかを尋ねられたとき、私は伝えるべきタスクはありませんが、実際にはそれらはすべてユーザー登録の一部です


2
Haskellのメモリ効率-より良いアプローチはどれですか?
修正された2次元文法構文に基づいて、マトリックス圧縮ライブラリを実装しています。データ型に対して2つのアプローチがあります-メモリ使用量の場合、どちらが良いでしょうか?(何かを圧縮したい;))。 文法には、プロダクションが4つだけの非ターミナル、または右側にターミナルが含まれています。同等性チェックと文法最小化のためにプロダクションの名前が必要になります。 最初: -- | Type synonym for non-terminal symbols type NonTerminal = String -- | Data type for the right hand side of a production data RightHandSide = DownStep NonTerminal NonTerminal NonTerminal NonTerminal | Terminal Int -- | Data type for a set of productions type ProductionMap = Map …

2
Luaは整数と浮動小数点数の両方をどのように処理しますか?
私がプログラミングを覚えている限り、浮動小数点数を比較して平等にしないように教えられました。今、LuaのプログラミングについてLua を読んでいるとnumber、次のことがわかりました。 数値型は、実数(倍精度浮動小数点数)を表します。Luaには整数型は必要ありません。浮動小数点演算エラーについては誤解が広まっており、一部の人々は、単純な増分でさえ浮動小数点数で奇妙になることがあると恐れています。実際、整数を表すためにdoubleを使用すると、丸め誤差はまったくありません(数値が100,000,000,000,000を超えない限り)。具体的には、Lua数値は、丸めの問題なしで任意の長整数を表すことができます。さらに、最新のCPUのほとんどは、整数演算と同程度(またはそれ以上)の浮動小数点演算を実行します。 それはすべての言語に当てはまりますか?基本的に、倍精度浮動小数点を超えない場合、整数演算で安全ですか?または、質問のタイトルに沿って、Luaがそのnumberタイプで行う特別なことはありますか?整数型と浮動小数点型の両方としてうまく機能していますか?

3
Enum、Abstractクラス、およびStructsのプレフィックスを付けないのはなぜですか?
C#コミュニティは、最も経験の浅いプログラマーでさえ使用することを知っているインターフェイスを示すために、「I」プレフィックスを広く使用しています。 列挙型、抽象クラス、または構造体の接頭辞を付けないのはなぜですか(おそらくそれぞれ「E」、「A」、「S」を使用)。 たとえば、すべての抽象クラスに「A」のマークを付けた場合、そのタイプに関する貴重な情報が提供されますが、それは推測できますが、すぐにはわかりません。 私はこの変更を支持していないことに注意してください。私たちがこのように物事をしない理由を理解しようとしているだけです。 このスレッドは、「I」プレフィックスを使用する理由に答えますが、他のプレフィックスを使用しない理由には答えません。

3
統合テストを継続的統合(CI)に含める必要がありますか?
Webアプリケーションを開発しており、Hudsonがコンパイル、単体テスト、静的コード分析などの典型的な仕事をしていると仮定します。 ただし、注意が必要なのは、Hudson がアプリケーションサーバーを展開して起動し、統合ジョブを実行してから、以前のジョブが完了したことです。 これは、データベース接続、3番目の部分のアプリケーション接続、ソケットポートのリスニング、環境変数、サーバーの起動失敗の処理など、いくつかの困難なことを意味します。さらに悪いことに、統合テストは統合テストを簡単に破ることができます。 統合テストを継続統合(CI)に含める必要があると思いますか?手動でできますか?または統合テストを簡素化しますか?

5
スプリントアイテムの完了には予想よりも時間がかかります。私たちは何をすべきか?
スクラムのアイテムが予想よりも時間がかかる場合はどうすればよいですか?開発者が最初に考えたよりもずっと厳しいので、開発者が完了するのに苦労しているアイテムに気付いているので、私はこれを尋ねています。 そのような状況では スプリントのタイムラインを満たすために、アイテムをスプリントから製品カタログに戻しますか? より簡単なスプリントアイテムに移動し、タイムラインの最後まで問題のあるスプリントを残す スプリントレビューで、現在のスプリントで利害関係者にアイテムを完成できない理由を正当化する 今後、このような状況をどのように回避できますか?それは事前の計画の欠如によるものですか、それともスプリントアイテムを小さなアイテムに分解する努力をしなかったのですか?
11 scrum  sprint 

1
Code FirstはMigrationsまたはSQL Server Data Toolsに適していますか?
新しいMVC4 Webサイトを作成するための仕様が与えられました。最初はプロジェクトが大きくなりすぎないでしょうが、ビジネスが新しいアイデアを得るにつれて成長するのではないかと思います。 .NET 4.5 ASP.NET MVC4およびEFを使用して、移行を伴うコードファーストまたはデータベースを処理するためのSql Server Data Tools(SSDT)を選択する必要があります。 SSDTを使用すると、ソリューションの一部としてプロジェクト内のデータベースを制御し、dacpacファイルを使用して、開発から本番に至るまでのすべての変更を処理できます。MVC3のコードファーストの私の経験では、データベースオプションが限られているため、開発以外では使用しませんでした。モデルの変更時に常にDbをドロップするか、Dbの変更を手動で処理することになります。しかし、MVC4 Migrationsはそうではなく、更新をDbにプッシュできるようになりました。 したがって、私の質問は、開発における時間/労力の節約に基づいて使用するのに最も効率的ですが、スケーラブルで生産の変更を処理できるものです。コードファーストとモデルからデータベースを生成する機能が好きでしたが、移行の導入により本番環境で実行可能になりましたか?

4
音声プログラミング言語?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 私たちの多くは、コーダー、プログラマー、開発者が繰り返しのストレス障害、手根管などに苦労しています。 自分のストレスを軽減するために、ワークフローに音声制御を導入することに興味がありました。 これが私の現在の質問につながりました。主に音声的であり、したがって音声によるプログラミングに適したプログラミング言語(または既存の言語のスーパーセット)を実装することは可能または実用的でしょうか?

2
今日、クライアント側のJavascriptライブラリをモジュール化してパッケージ化する方法は?
私は最新のクライアントサイドJSエコシステムに追いつき、CommonJSとAMD(関連ツール-browserify、requirejs、onejs、jam、その他多数)について調べています。Javascriptライブラリを作成する場合、最も広くアクセスできるようにモジュール化/パッケージ化するにはどうすればよいですか(理想的には、CommonJS、AMD、および特にどちらにも誓わないユーザーが)。 jQueryのような人気のあるライブラリは、それ自体を構築するために旧式のファイル連結を使用しexports、グローバルコンテキストに書き込むべきかグローバルコンテキストに書き込むべきかを動的に検出するようです。私は現在同じことをしていますが、主な欠点は(jQueryとは異なり)いくつかのライブラリに依存している場合、推移的なセットを手動で事前に含めるようにユーザーに要求する必要がないことです。(ただし、現在は2つの依存関係しかありません。)そしてもちろん、グローバルな名前空間の汚染。 それとも、コンテキストごとにライブラリの複数のバージョンを生成するのが最もクリーンですか? パッケージングとパブリッシングについても考えています。いくつかのシステムがありますが、主なものはバウアーであり、フェッチするだけなので対処が簡単です。ただし、コンポーネント(CommonJSが必要)のような他のパッケージシステムもターゲットにすべきかどうか疑問に思っています。 他に知っておくべき関連する側面はありますか?これらすべてについて従うべき良いサンプルプロジェクトはありますか?

7
物理的なアジャイルボードは「常に」電子ツールよりも優れていますか?
どのアジャイルツールを使用するかについての質問が出てくるたびに、「チームの会話をより良く生成する大きな目に見えるボードの利点を失うため、電子ツールを使用しないでください」と答える人が常にいます。 これは常に当てはまるのですか、それとも電子ツールがより良い選択である状況はありますか?各アプローチの長所と短所は何ですか?
11 agile  tools 

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