ソフトウェア工学

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

1
トンネリングに関するREST APIルール
ただ、はでこれを読んでREST APIルールブック:GETとPOSTは、トンネル他のリクエストメソッドに使用することはできません。 トンネリングとは、メッセージの意図を覆い隠したり、虚偽の表現をしたり、プロトコルの透過性を損なうHTTPの悪用を指します。REST APIは、HTTP語彙が制限されているクライアントに対応するために、HTTPのリクエストメソッドを誤用してその設計を損なうことがあってはなりません。このセクションのルールで指定されているHTTPメソッドを常に適切に使用してください。[私のハイライト] しかし、その後、フレームワークの多くは、使用トンネリングをするので、HTMLフォーム経由でRESTインターフェースを公開する<form>だけ知っているGETとPOST。私の最新の例はMethodRewriteMiddlewareフラスコ用です(フレームワークの作者が提出):http : //flask.pocoo.org/snippets/38/。 Webフレームワークのハッキングやアドオンなしで「ルール」に準拠する方法はありますか?
11 api  rest  web-framework  http 

3
ビルド済みのバイナリパフォーマンスのコンパイルと使用?
使用する実際のマシンのソフトウェアコンポーネントのソースを手動でコンパイルした方が、おそらく多くの異なるアーキテクチャーの別のプラットフォームでソースをコンパイルした場合と比較して、パフォーマンスが向上します(より高速)?ダウンロードしたソースをコンパイルしていくつかの良い結果が得られました。これは、ソフトウェアの更新でよくあるプリコンパイルされたバイナリをダウンロードする代わりに、それをコンパイルしたためなのかと思います。

3
イベントの調達と永続化
私はイベントの調達について読んでいて、持続性について質問があります。 すべてのエンティティを含むDBを引き続き使用できますか?または、アプリケーションが起動されるたびにイベントを再生して、メモリ内の各エンティティの最新バージョンを取得する必要がありますか?(大量のデータの場合のように)大規模なシステムでは無駄のように見えますか? イベントソーシングのポイントは、必要に応じてイベントを再生してデータストアにデータを入力できることです。(またはデータを分析する)

6
SRPを実装する実際的な方法は何ですか?
クラスが単一責任の原則に違反しているかどうかを確認するために人々が使用する実用的なテクニックは何ですか? クラスには変更する理由が1つだけあるべきだと知っていますが、その文は実際にそれを実装する実用的な方法に少し欠けています。 私が見つけた唯一の方法は、「それは…………それ自体……」という文を使うことです。ここで、最初のスペースはクラス名で、後はメソッド(責任)名です。 ただし、責任が本当にSRPに違反しているかどうかを判断するのが難しい場合があります。 SRPを確認する方法は他にありますか? 注意: 問題は、SRPの意味ではなく、SRPを確認して実装するための実際的な方法論または一連の手順です。 更新 SRPに明らかに違反するサンプルクラスを追加しました。単一の責任の原則にどのように取り組むかを説明するための例として、人々がそれを使用できれば素晴らしいと思います。 例はここからです。

4
プログラマーがパンチカードを使用した場合、プログラミングはどのように機能しましたか?
私はこれを見ました:パンチカードでプログラムすることを学ぶ そして私はこれを見てきました:http : //en.wikipedia.org/wiki/Computer_programming_in_the_punched_card_era しかし、彼らは望まれる多くを残します。 誰かがパンチカードを使用したときにプログラマがどのようにプログラミングしたかを誰かに説明できますか?具体的には、パンチされたカード自体から命令を取得するために使用される入力コンピューターのシステム。 レトロコンピュータについてはあまり知りませんので、あなたがおなじみの入力システムならどれでもかまいません。より一般的な回答も歓迎します。
11 history 

4
非同期のロギング-どのように実行する必要がありますか?
私が取り組んでいるサービスの多くでは、多くのロギングが行われています。サービスは、.NET EventLoggerクラスを使用する(主に)WCFサービスです。 私はこれらのサービスのパフォーマンスを改善している最中です。非同期にログを記録するとパフォーマンスが向上すると思います。 複数のスレッドがログを要求したときに何が起こるか、そしてそれがボトルネックを作成するかどうかはわかりませんが、それが実行されない場合でも、実行されている実際のプロセスに干渉しないはずです。 私が思っているのは、今呼び出す同じログメソッドを呼び出す必要があるということですが、実際のプロセスを続行しながら、新しいスレッドを使用して呼び出します。 それに関するいくつかの質問: 大丈夫ですか? 欠点はありますか? 別の方法で行う必要がありますか? 多分それはあまりにも速くて、努力する価値すらありませんか?
11 logging 

3
データベーステーブルごとのモデル?
私はcodeigniterを使用しており、Modelメソッドを繰り返した同じような状況に陥っています。コントローラごとにモデルを作成しています。しかし、データベーステーブルごとにモデルを作成することをお勧めしますか?そうすれば、メソッドが2回記述されることはありません。 コントローラごとのモデルまたは共有されているいくつかの小さなモデルの代わり。 モデルメソッドget_user($ user_id)がある場合の例は、users_models.phpに記述できます... これについて私が目にする欠点の1つは、単にcontrollername_models.phpではなく、いくつかのモデルを呼び出さなければならない可能性があることです。 コントローラからいくつかのメソッドが使用されない可能性がある複数のモデルをロードすると、パフォーマンスと速度に影響を与える可能性がありますか?これに取り組むための最良の方法は何でしょうか? 注:同様の質問がありますが、データベーステーブルごとのモデルの根拠については取り上げていません。

1
どのライセンスが商用利用に無料ですか?
GPL、LGPL、クリエイティブコモンズ、BSD、Apacheなどの大量のライセンスで迷子になり、初心者向けガイドを探しています。 このような人気のあるライセンスでコンポーネントを使用する場合、商用製品で支払うことなくコンポーネントを使用するための制限は何ですか? 例えば ソースを再配布する必要がありますか? それらを信用する必要がありますか? コンポーネントを変更するとどうなりますか?等 http://www.codeproject.com/info/Licenses.aspxからわかることから、GPLとクリエイティブコモンズのみがソースの再配布を強制しますか?
11 licensing 

2
C ++では、SFINAEとメタプログラミングは意図的でしたか、それとも単なるテンプレートの副産物でしたか?
SFINAEとtemplateメタプログラミングは素晴らしいことを行うことができ、多くのライブラリーもそれらをかなり使用しています。 歴史的に、これらの「魔法の概念」は両方とも、C ++で意図的に導入/サポートされていましたか?または、それらは後にオリジナルのtemplateプログラミングの有用な副産物(副産物)として発見されましたか?

3
用語の具体的な意味は何ですか:関数、メソッド、プロシージャ、およびサブルーチン?
コードの関連部分をグループ化するために使用する用語の具体的な違いは何でしょうか。私は時々、同じ意味で使用されている用語を見てきました。多くのオブジェクト指向言語は、メソッドを定義するためにキーワード「関数」を使用しています。(なぜ?) 正確にしたい場合、それぞれの具体的な意味は何ですか?それとも、各言語がそれを呼び出すために選択したものだけですか?

2
SQLコードをフォーマットするためのアルゴリズム
SQLコード(SQL Server / MySQL)をフォーマットする(社内で使用する)ツールが必要です。 それを実行するさまざまなサードパーティのツールとオンラインWebサイトがありますが、正確にどのようにそれを必要とするのかはわかりません。 したがって、自分のニーズに合った独自のツールを書きたいと思います。 最初の質問は、SQLコードをどのようにフォーマットするかについて、標準または規約がありますか?(私が試したツールは別の方法でフォーマットしました) 2番目の質問、このタスクにどのように取り組むべきですか?最初にSQLクエリをツリーのようなデータ構造に変換する必要がありますか?


3
MPL 1.1およびAPL 2.0ライセンスの互換性
MPL 1.1でライセンスされているプロジェクトを作業していて、APL 2.0でライセンスされているいくつかのコードを組み込みたいのですが。 2010年にMozillaがMPLを更新して、とりわけ「Apache互換」にすることを発表しました。 私は弁護士ではありません。正確には、MPL 1.1のどの部分がAPL 2.0に対応していないのですか?プロジェクトには元々の貢献者がまだ積極的に関わっていないので、ライセンスを変更する許可を得るためにそれらすべてに連絡することはできないと思います。

6
高性能チームにはスクラムマスターが必要ですか?
スクラムマスターの職務に対する私の理解は次のとおりです。 プロセスを実施する 障害を取り除く(開発者が自分で取り除くことができない) 外部からの中断を防ぐ スクラム会議を促進します(スタンドアップ、回顧など) チームの開発者が統制されている場合、彼らは誰かが指導することなくプロセスに従います。また、回顧会議やその他のスクラムミーティングの開催にも問題はありません。組織の他のメンバーがスプリントの境界を理解していれば、スクラムマスターを必要とする外部の中断や障害はすでに最小限に抑えられています。 チームのパフォーマンスが向上し、組織がスプリントの境界を理解するようになると、スクラムマスターの必要性が減少するように見えます。チームが最終的にスクラムマスターが不要になるポイントに到達することは可能ですか?

3
AndroidのContentProviderが作成されたのはなぜですか?
タイトルは私の質問を要約していますが、基本的に理解したいのは、AndroidデザイナーがSQLiteデータベースに直接アクセスするのではなく、共有データを操作してコンテンツプロバイダーを使用する必要があるアプリが必要な理由です。 私が考えることができる唯一の理由は、特定のファイルが特定のプロセスにしかアクセスできないため、コンテンツプロバイダーがデータベースファイルへの読み取りおよび/または書き込みアクセスを許可する前に各アプリに適切な権限を与えることを保証するゲートキーパーであるため、セキュリティです。それがContentProviderが作成された主な理由ですか?
11 design  android 

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