ソフトウェア工学

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

2
リプレイ攻撃を回避するにはHTTPSで十分ですか?
モバイルアプリ用のサーバーでいくつかのRESTメソッドを公開しています。 ユーザーが(モバイルアプリから)HTTPメソッドを構築する方法を傍受し、サーバーに再度送信することを避けたいと思います。例: モバイルアプリがリクエストを送信する ユーザーはプロキシを使用して、ネットワークで何が起こっているかを確認できます ユーザーは、モバイルが送信したリクエストを確認して保存します =>ユーザーがそのリクエストを手動で送信できないようにしたい HTTPS経由でサーバーを保護するのに十分ですか?
10 api  https 

3
GPLとBSDライセンスコードを組み合わせるときに、実際にライセンスファイルを管理する方法は?
私は、GPL(LGPLではない)ライセンスを持つ1つのライブラリと、3条項のBSDライセンスを持つ1つのライブラリを使用するコードを書いています。私はGPLライセンスのライブラリにリンクしているので、私のコードもGPLである必要があります。実際には、BSDライブラリの元のLICENSE.txtをどのように扱うべきですか? (A)メインのソースコードがGPLライセンスで、一部のサブディレクトリがBSDライセンスになるようにプロジェクトを配布できますか? (B)ライブラリにリンクするだけでなく、BSDおよびGPLコードをより複雑な方法で使用および結合する場合、LICENSE.txtをどうすればよいですか? 3節のBSDテキストは、「ソースコードの再配布では、上記の著作権表示、この条件のリスト、および次の免責事項を保持する必要があります。」どうやら私は著作権表示とその条件のリストをどこかに保持する必要があります。ただし、GPLライセンスのtxtファイルをどこかに置く必要もあります。 さらに、明らかに、次の条件が満たされている場合にのみ、「次の条件が満たされていれば、「ソース形式とバイナリ形式での再配布と使用、変更の有無にかかわらず、許可される」を保持する必要はありません。他の部品はそのままにしておきます。 では、どのように、そしてどのテキストファイルで、GPLライセンステキストと、BSDライセンスの一部および私が保持する著作権を実際に整理する必要がありますか? 編集:したがって、ケースBでは、3句のBSDライセンスコードを取得し、それをGPLの下で再配布します。これは、3句のBSDライセンスがGPLと(一方向)互換であるためです。ライセンステキストとテキストファイルを実際に処理する方法を尋ねているだけです。

2
JavaFX-ドメインオブジェクトでプロパティを使用する正しい方法
JavaFXには、javafx.beans.property.DoubleProperty自動的に監視および同期できるフィールドを定義できるなど、新しいPropertyオブジェクトがたくさん用意されています。 多くのJFXの例では、MVCモデルクラスにこれらのプロパティフィールドがいくつかあり、これらを自動的にビューにバインドできます。 ただし、これは、JFXプロパティをドメインオブジェクトに配置することを奨励しているようです(Modelクラスがドメインオブジェクトになると想定している場合)。これは、懸念の分離が不十分である(つまり、GUIコードをドメインに配置する)と思われます。 )。 この問題が「現実の生活」で解決されているのを見た人はいますか?

3
現在、JavaアプレットはWeb上に配置されていますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 多くのブラウザでは、デフォルトでJavaアプレットが無効になっているため、ページごとに有効にする必要があります。アプレットはここ数年あまり変わっていないようです。実際、クライアント側のJava(アプレット、デスクトップアプリケーションなど)は完全に衰退しており、Javaは主にサーバー側の言語になりつつあるようです。 互換性を除いて、今日のWebでアプレットがまだ役立つ場所はありますか?JavaとJavaScriptに精通しているWeb開発者として、JavaScriptの代わりにアプレットを使用することを選択するのはなぜですか?
10 java  html5 

5
同じプログラマーによる生産性の毎日の違いに関する調査はありますか?
最高のプログラマーの生産性と最悪のプログラマーの生産性の間の大きな違いについて議論しているインターネット上での騒ぎがありました。このトピックを調査したときの一般的なGoogleの結果は次のとおりです。http://www.devtopics.com/programmer-productivity-the-tenfinity-factor/ 同じプログラマーによる日々の生産性の違いについての調査や真剣な議論があったのかと思っていました。 個人的には、日々できることには大きなばらつきがあると思いますので、他の人も同じように感じたり、研究したりしているのではないかと思っていました。

3
ASP.NET WebFormsアプリケーションに最適なアーキテクチャ
クライアント用のASP.NET WebFormsポータルを作成しました。プロジェクトは、最初から適切に計画および構造化されているのではなく、ある程度進化しています。その結果、すべてのコードが同じプロジェクト内でレイヤーなしでまとめられます。クライアントは機能に満足しているので、プロジェクトのリリースに自信を持つようにコードをリファクタリングしたいと思います。アーキテクチャの設計にはさまざまな方法があるようですが、最善の方法についていくつかの意見をお願いします。 機能性 ポータルでは、管理者がHTMLテンプレートを構成できます。他の関連する「パートナー」は、IFrameコードをサイトに追加することにより、これらのテンプレートを表示できます。これらのテンプレート内で、顧客は製品を登録および購入できます。APIはWCFを使用して実装されており、外部の企業もシステムとインターフェイスできます。管理者セクションでは、管理者がさまざまな機能を設定し、各パートナーのレポートを表示できます。システムは請求書と電子メール通知を顧客に送信します。 現在のアーキテクチャ 現在、データベースへの読み取り/書き込みにEF4を使用しています。EFオブジェクトは、aspxファイル内で直接使用されます。これにより、サイトを作成している間、迅速な開発が容易になりましたが、dbとUIを密に結合しているため、このように維持することはおそらく受け入れられません。特定のビジネスロジックがEFオブジェクトの部分クラスに追加されました。 質問 リファクタリングの目標は、サイトをスケーラブルで、簡単に保守でき、安全にすることです。 これにはどのようなアーキテクチャが最適ですか?各レイヤーに何があるべきか、DTO / POCO /アクティブレコードパターンを使用する必要があるかどうかなどを説明してください。 DTO / BOを自動生成する強力な方法があるので、追加のレイヤーがあっても、将来の拡張は簡単に実装できますか? プロジェクトをWebFormsからMVCに変換することは有益でしょうか?


4
ドラッグ&ドロップUIでリストアイテムの並べ替え順序を管理する最良の方法は何ですか?
表形式でWebページに表示する必要がある生徒のリストがあります。 アイテムは、SortOrder情報とともにDBに格納されます。 この投稿のように、ユーザーはWebページで、アイテムを希望の並べ替え順序にドラッグアンドドロップして、リストの順序を並べ替えることができます。 以下は、私のテストページのスクリーンショットです。 上記の例では、各行に並べ替え順序情報が添付されています。John Doe(学生ID 10)を学生ID 1の行の上にドロップすると、リストの順序は2、10、1、8、11になります。 ソート順情報を保存および更新するための楽観的な(リソースを節約する)方法は何ですか? 私の現時点での唯一のアイデアは、リストの並べ替え順序が変更されるたびに、すべてのオブジェクトのSortOrder値を更新する必要があるということです。 参考までに:テーブルに最大25行ある可能性があります。
10 c#  sorting 

3
ソースコードはUTF-8である必要がありますか?
多くの場合、コードの形式を実際に選択しないと思います。つまり、過去の私のツールのほとんどが私のために決定したということです。または私は本当にそれについてさえ考えていません。先日WindowsでTextPadを使用していて、ファイルを保存していると、ASCII、UTF-8 / 16、Unicodeなどについてプロンプトが表示されました... 書かれたコードのほとんどすべてがASCIIであると想定していますが、なぜそれがASCIIである必要があるのですか?ソースコードに実際にUTF-8ファイルを使用する必要がありますか。その理由は何ですか。これは多言語チームに役立つかもしれないと思います。多言語チームが変数/関数などに名前を付ける方法に関連する標準はありますか?

4
半径内の家を見つける
インタビュー中に、次のことを尋ねられました。特定の距離内(たとえば、ユーザーが20マイル以内にあるすべての家を検索したい場合など)に現在市場に出ている(つまり、販売中の)すべての家をリストする不動産アプリケーション。このタイプのサービスを構築するために、アプリケーション(データ構造とアルゴリズムの両方)をどのように設計しますか? 何か案は?どのように実装しますか?地理関連のことをしたことがないので知らないと言った。

6
優れたプログラマであると考えるスキル[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私は過去15年間、CS以外の学位でプログラミングを行っています。私がプログラミングを始めた主な理由は、新しいことを学び、それを自分の仕事に適用するのが好きだったからです。そして、私はプログラミングエラーとその原因を他よりも早く見つけて修正することができました。しかし、私は自分がグルや専門家であることに気づくことはありません。おそらく、CS以外の専攻が原因かもしれません。そして、優れたプログラマーに会ったとき、彼らは問題を解決する上で、もちろん私よりもはるかに優れていることに気付きました。 中途採用で優れたスキルの1つは、要件とタスクを逆の順序で抽象的に考えることです。このようにして、私は細部なしで私がするために本当に必要なことを見ることができ、すでに存在するソリューションの部分をすばやく見つけることができます。 ですから、良いプログラマーになるための思考スキルは他にもあるのでしょうか。私は以下のQ&Aをフォローし、実際にそこで推奨されているいくつかの本を読みました。しかし、プログラミング作業に直接適用できる優れたメソッドを実際にピックアップすることはできませんでした。 プログラマーがプログラミング/思考スキルの開発を支援するために読むべき非プログラミング本はどれですか? /software/44654/skills-and-habits-to-develop-to-be-good-at-programming-im-a-newbie
10 skills 

4
継続/コールバックを読みやすいコードにするにはどうすればよいですか?
概要:非同期コードとコールバックを使用しているにもかかわらず、コードを読みやすくするために使用できる、確立されたベストプラクティスのパターンはありますか? 非同期に多くのことを行い、コールバックに大きく依存するJavaScriptライブラリを使用しています。単純な "load A、load B、..."メソッドを書くのはかなり複雑になり、このパターンを使用するのは難しいようです。 (不自然な)例を挙げましょう。リモートWebサーバーから一連の画像を(非同期で)ロードしたいとします。C#/ asyncでは、次のように記述します。 disableStartButton(); foreach (myData in myRepository) { var result = await LoadImageAsync("http://my/server/GetImage?" + myData.Id); if (result.Success) { myData.Image = result.Data; } else { write("error loading Image " + myData.Id); return; } } write("success"); enableStartButton(); コードレイアウトは「イベントのフロー」に従います。最初に、開始ボタンが無効になり、次に画像が読み込まれ(awaitUIの応答性が維持されます)、その後、開始ボタンが再び有効になります。 JavaScriptでは、コールバックを使用して、これを思いつきました: disableStartButton(); var count = myRepository.length; function loadImage(i) { …

5
巨大なファイルに対するgreppingのパフォーマンスの向上
300,000行を超えるFILE_Aと3,000万行を超えるFILE_Bがあります。FILE_Aの各行をFILE_Bで確認し、grepの結果を新しいファイルに書き込むBashスクリプトを作成しました。 このプロセス全体に5時間以上かかります。 スクリプトのパフォーマンスを向上させるにはどうすればよいですか? grep -F -m 1grepコマンドとして使用しています。FILE_Aは次のようになります。 123456789 123455321 FILE_Bは次のようになります。 123456789,123456789,730025400149993, 123455321,123455321,730025400126097, したがって、Bashではwhile、FILE_Aの次の行を選択して、FILE_Bでそれを調べるループがあります。パターンがFILE_Bで見つかったら、result.txtファイルに書き込みます。 while read -r line; do grep -F -m1 $line 30MFile done < 300KFile

3
適切な次の単語の予測を実現するために使用できるアルゴリズムは何ですか?
「次の単語の予測」を実装する良い方法は何ですか?たとえば、ユーザーが「私は」と入力すると、システムは次の単語として「a」と「not」(またはおそらく他の人)を提案します。私はマルコフ連鎖といくつかのトレーニングテキストを使用して(明らかに)これを達成する方法を知っています。しかし、私はこの方法が非常に制限的であり、非常に単純なケースに適用されることをどこかで読みました。 ニューラルネットワークと遺伝的アルゴリズムの基本を理解しています(深刻なプロジェクトで使用したことはありませんが)。適切なトレーニングテキスト(たとえば、新聞記事やユーザー自身の入力)が与えられると、次の単語に対して合理的に適切な提案を行うことができるアルゴリズムがあるのでしょうか。アルゴリズムではない(リンクしている)場合は、この問題を攻撃するための一般的な高レベルの方法を歓迎します。

2
NoSqlデータベーススキーマを正しく設計する方法 [閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 NoSQLデータベースについてもう少し学びたいので、サッカーの結果を処理するために新しいプロジェクトをゼロから作成することにしました。私の従来のリレーショナルデータベースには、トーナメント、チーム、結果、クラステーブルがあります。すべてが明らかに関連しています。 代わりにNoSQLアプローチを使用して、このようなプロジェクトを設計するための良いアプローチは何でしょうか?

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