ソフトウェア工学

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

5
安定した効率的な方法でWebページからデータを取得する
最近、正規表現を使用してWebサイトのHTMLを解析し、必要なデータを取得するのが最善の行動ではないことを学びました。 だから私の質問は簡単です:それでは、このデータを取得するための最良/最も効率的で一般的に安定した方法は何ですか? 私はそれに注意する必要があります: APIはありません データを取得できる他のソースはありません(データベース、フィードなどはありません) ソースファイルへのアクセスはありません。(公開ウェブサイトからのデータ) データがHTMLページのテーブルに表示される通常のテキストであるとしましょう 私は現在、私のプロジェクトにpythonを使用していますが、言語に依存しないソリューション/ヒントがいいでしょう。 副次的な質問として、WebページがAjax呼び出しによって構築された場合、どのように対処しますか? 編集: HTML解析の場合、データを取得する実際の安定した方法はないことを知っています。ページが変更されるとすぐに、パーサーが完了します。この場合の安定とは、ページを解析する効率的な方法です。ページが変更されない限り、同じデータセットに対して(同じデータセットに対して)常に同じ結果が渡されます。
11 data  parsing 

7
コード内の変数の使用を一般化する
変数を一般化することをお勧めします(単一の変数を使用してすべての値を保存すること)。 簡単な例を考えてみましょう Strings querycre,queryins,queryup,querydel; querycre = 'Create table XYZ ...'; execute querycre ; queryins = 'Insert into XYZ ...'; execute queryins ; queryup = 'Update XYZ set ...'; execute queryup; querydel = 'Delete from XYZ ...'; execute querydel ; そして Strings query; query= 'Create table XYZ ... '; execute query …

4
本番ソフトウェアでは、一般的な場合の指数時間アルゴリズムはどのくらい一般的ですか?
指数時間アルゴリズムは一般的に避けるべきですが、時には必要になることも知っています。巡回セールスマンであるケース。本番ソフトウェアでこのようなアルゴリズムはどれくらい一般的ですか?これらのケースは一般的に必要ですか、それとも急ぎの仕事の結果ですか?私は、多くが良い発見的方法で解決できることを理解しています。できない人は通常何をしますか?
11 algorithms 

7
高回転環境ではより多くのコメントが優れていますか?
今日は同僚と話していました。2つの異なるプロジェクトのコードに取り組んでいます。私の場合、自分のコードに取り組んでいるのは私だけです。彼女の場合、複数の人が同じコードベースで作業します。これには、かなり定期的に(8〜12か月ごとに)出入りする生協学生も含まれます。彼女は自分のコメントに寛大であり、あちこちにそれらを置いていると言った。彼女の推論は、コードの大部分が彼女によって書かれておらず、彼女以外の誰かによって変更される可能性があるため、物事がどこにあり、何をしているのかを思い出すのに役立つということです。その間、私はコード内のコメントを最小限に抑え、明白でない回避策またはバグがある場所にのみコメントを配置しようとします。ただし、コード全体をよりよく理解し、コードをより直接制御できます。 そのコメントでの私の意見は最小限であり、コードはストーリーの大部分を伝えるべきですが、彼女の推論も理にかなっています。彼女の推論に欠陥はありますか?コードが乱雑になる場合がありますが、短期から中期に多くの人が作業している場合、最終的には非常に役立ちます。

3
ScalaまたはClojure関数型プログラミングのベストプラクティス
私は多くの自習用コーディングを行い、アクター、ソフトウェアトランザクションメモリ、データフローなどの並列プログラミングモデルでいくつかの経験を得ました。 これらのアーキテクチャを実際の生活-高負荷Webアプリケーションに適用しようとすると、どのモデルもデータの耐久性と永続性をサポートしません。実際のタスクでは、最後にデータを保存する必要があります。これは、DBを使用し、DB同期をトラップしなければならないこと、スケーラビリティのボトルネックなどの可能性があることを意味します。 Akkaアクターまたはソフトウェアトランザクションメモリを使用し、最後に永続性を実装するアーキテクチャ(srcまたはtextまたはdiagramまたはblueprints)の良い例を知っている人はいますか? 実際のアプリケーションでのトランザクションメモリ、アクター、データフロー、タプルスペースの良い例/アイデアは大歓迎です。

6
私は自分を欺いていますか?ビジネスアナリストのプログラマーへの移行
現在の仕事:Big 4企業のリードビジネスアナリストとして、大規模なリプラットフォームプロジェクト(オンショア開発者4名、オフショア開発者4名、オンショア/オフショアテスター数名)に携わる開発者とテスターのチームを率いています。他の小規模プロジェクトでも同様の能力で作業します。 私の役割の範囲:要件の収集/書き出し、機能仕様の作成、UIの設計(基本的にシステムのすべてのフロントエンドの側面のマッピング)、開発者と緊密に連携して要件を伝達/明確化し、障害に遭遇したときにソリューションを考案する、テストケースの作成(およびテストの大部分)、上級管理職および主要な利害関係者との連携、ベータテスターの管理、ユーザーガイドの作成、トレーニングセッションの実施、主要なテクニカルサポートの提供。 また、VBAを使用してExcelで非常に多くのマクロを記述し(現在、会社全体でいくつかのマクロが使用されているため、約1000人がマクロを使用しています)、SQLをプログラムのSQLコンパクトファイルで毎日使用していますSQL Serverデータと私が作成したAccessデータベースに依存しています。開発者は、プログラミング、固有のシステムの制限、データベースの構造などについて多くのことを理解しているため、この役割に非常に優れていると感じています。 私が本当に興味を持っているのは、ソフトウェアの開発です。私はVBAでかなりの量のプログラミングを行っており、しばらくの間C#を学びたいと思っていました(開発チームはC#を使用します-私は時々コードをレビューしますが、実際に使用した経験はありません)。私はビジネスプロセスだけでなく、技術的な側面にも興味があるため、従来のBAの役割は、自分がやりたいことに対する欲求を実際に刺激するものではありません。現在、マネージャーから私に与えられたいくつかの小さなプロジェクトがあり、それらを行うための新しい方法(カスタムAccessアプリケーションの構築など)を見つけているので、興味を持ち続けるためにちょっとしたところがあります。 私の質問はこれです:私がやりたいのは、フリーランスビジネスとしての小規模ビジネス向けのカスタムExcelまたはAccessアプリケーションを作成することです(1人のショップとして働いています。プロジェクトの複雑さに応じて、時折請負業者を雇うこともあります)。これは明らかに、私がアルバイトをしている間にパートタイムのベンチャーとして始まりますが、最終的にはフルタイムの仕事になります。BA /パートタイムVBAプログラマーからフリーランスビジネス(VBAでカスタムExcel / Accessアプリを書くことから始める)にフルタイムで行くことができると考えているのかと考えていますか?それとも、誰かが何年もフルタイムのプログラミング経験を積むまで、この種のことは通常試みられませんか?また、中小企業(および中規模企業)にもこの種のアプリケーションの市場がありますか?

2
製品の総所有コストを測定値として使用するTDDで行われた科学的研究はありますか?
Dogsa T、Batic Dでの以前の作業の要約を読んでいたとき、テスト駆動開発の有効性:産業のケーススタディ。ソフトウェア品質ジャーナル。2011; 19(4):643-661。TDDに関する多くの研究で使用されている測定値は、コードの行、欠陥、開発に費やされた時間などに基づいていることが印象的でした。 TDDを使用して開発された製品と従来の開発またはテストラストを使用して開発された製品の総所有コストに焦点を当てた研究はありますか? 私は、買収と運用の総費用に特に興味があります。

5
24時間降水量のリストを1時間ごとの合計値に変換する
時間ごとの降水量のリストがあり、それぞれが過去24時間に発生した雨の量を日付順に並べたものだとします。例えば: { '2012-05-24 12:00': 0.5, // .5" of rain from 5/23 12:00 - 5/24 11:59 '2012-05-24 11:00': 0.6, // .6" of rain from 5/23 11:00 - 5/24 10:59 '2012-05-24 10:00': 0.6, // .6" of rain from 5/23 10:00 - 5/24 09:59 ... '2012-05-23 10:00': 0 } 各時間に降った雨の量を判断するための戦略/アルゴリズムはありますか?これに頭を包むことはできないようです。私はそれが単に差分を合計するほど簡単ではないことを知っています。 データセットの視覚化 P(N) [.....======================] …

5
Javaに対するCeylonの利点は何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 ネット上の最近の強力なプログラミング言語を探して、Ceylonに出会いました。ceylon-lang.orgに立ち寄ったところ、次のように書かれています。 CeylonはJavaに深く影響を受けています。ご覧のとおり、私たちはJavaのファンですが、その限界を裏返しに知っています。CeylonはJavaの最高の部分を保持しますが、私たちの経験では面倒で退屈でイライラする、理解するのが難しい、またはバグを起こしやすいものを改善します。 Javaに対するCeylonの利点は何ですか?


3
選択した少数のユーザーのみに機能を展開する方法
私が質問しようとしていることの良い例は、Facebookの新しいタイムライン機能です。最初は、タイムラインへのアクセスが許可されたのは一部のみでした。機能の動作がより強固になり、バグが修正されたため、追加のユーザーが機能へのアクセスを許可されました。後日、大規模なユーザーグループがこの機能へのアクセスを許可されましたが、現在では、すべてのユーザーに対する一般的な機能です。開発チームはこのタイプの機能の展開をどのように管理しますか? コード内の構成ファイルと条件付きifステートメントを介して、テストまたは実稼働中に何かが存在する場合、構成設定を使用してアクセスを選択的に制御するというアイデアを試しました。単純な機能ではこれで問題ありませんが、より大きな機能セットでこれを実装しようとすると、管理できなくなると思います。 この方法で機能のロールアウトを管理する最良の方法は何でしょうか?

4
応答しない著者のossプロジェクトを再公開することは合法ですか?
数か月前に誰かのブログで小さなossプロジェクト(1つのファイル)を見つけました。ライセンスは「Attribution-ShareAlike 2.5 Generic」です。これをgithubに配置できるのに作者にメールを送信しましたが、応答がありません。一方、彼のブログは閉鎖されました。 私は弁護士ではありませんが、これはgithubでコードを(適切な属性で)再公開するのは合法的なようです。私は正しいですか?これは道徳ですか?たぶん、男はしばらく消えたがっています...

2
プログラミング言語の文書化:リファレンスマニュアル
私たちは、製品ライン全体でドキュメントの改訂を検討しています。その一部は、リファレンスマニュアルのためのプログラミング言語システムの一部として使用します。 プログラミング言語のリファレンスマニュアルを作成する場合、その言語を初めて使用する人に最大限の使いやすさを提供するための最良の方法は何ですか? 文書化された各キーワードの重要な側面は何ですか? 構文 説明 引数-該当する場合 戻り値-該当する場合 使用例? 私が行方不明になっている他の人はいますか? コンセプト(ロック戦略、パフォーマンス関連の詳細など)もこのリファレンスマニュアルに記載する必要がありますか、それとも別のドキュメントですか? これは外部消費用です。すでに完全なドキュメントセットがあります(http://www.rocketsoftware.com/u2/resources/technical-resourcesを参照)。私たちが何をすべきかを解決する-私はすでに私のアイデアを持っていますが、いつものように、私は自分の意見だけに頼らないようにします。 対象者:多くの業界でソフトウェアを生産するためにデータベースとツールを使用する技術開発者。

3
.equals()を使用して文字列変数を文字列リテラルと比較する場合、アイテムの順序に標準的な慣行はありますか?[閉まっている]
ここで何が尋ねられているかを伝えるのは難しいです。この質問は曖昧、曖昧、不完全、過度に広範、または修辞的であり、現在の形式では合理的に答えることができません。この質問を明確にして、再開できるようにするには、ヘルプセンターに アクセスしてください。 7年前に閉鎖されました。 それぞれに利点があり、違いを理解していますが、ベストプラクティス/標準プラクティスは何ですか?なぜ? 例えば ​​: "myString".equals(myStringVar) 潜在的なNPEを回避し、nullチェックを必要としません。(良いこと?) nullチェックが必要ないため、読みやすくなります。 nullが予期される値でない場合、プログラムは賢明でなくても壊れている可能性があります。 しかしながら myStringVar.equals("myString") nullが期待値である場合、nullチェックが必要です。(良いこと?) nullチェックで複合条件を乱雑にすることができます。 NPEが何かが壊れているかどうかを知らせることができます。 Javaで使用する標準と見なされるバリエーションはどれですか?

3
プログラミングスタイルに関するインタビューの質問の処理方法[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 インタビューのC ++プログラマーとして、面接担当者が良いプログラミングスタイルの知識を探りたいと思っている状況に繰り返し気づきました。これらは通常、OOPの基本的な知識に集中していました。 OOPは概念をカプセル化するのに役立つことを知っており、毎日使用しています。ただし、C ++などの言語ではさまざまなスタイルが可能であり、TMPやSTLアルゴリズムなどの一部のC ++アプローチはまったくOOPではありません(むしろ関数型プログラミングに似ています)。 well慢だとか、基本を認めない誰かと出会うことなく。質問者のOOPに対するこの強調は、OOPが万能薬であると信じられていた90年代に彼らが社交化されたことに起因するのではないかと恐れていますが、それは取るに足りない見方です。 このような質問を最大限に活用するにはどうすればよいですか?

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