ソフトウェア工学

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

4
Javaのクラス変数とインスタンス変数の違いは何ですか?[閉まっている]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して詳細を追加し、問題を明確にします。 4年前に閉鎖されました。 私はJavaが初めてなので、クラス変数とインスタンス変数の違いを理解したいと思っています。 例えば: class Bicycle { static int cadence = 0; int speed = 0; int gear = 1; } インスタンス変数とクラス変数はどう違うのですか?ここでどの変数がクラス変数であり、どの変数がインスタンス変数ですか?これはスコープにどのように影響しますか?
16 java  class  object  instance 

2
std :: bitsetよりもcスタイルのビット操作には利点がありますか?
私はほとんどC ++ 11/14でのみ動作しますが、通常、次のようなコードが表示されたときはうんざりします。 std::int64_t mArray; mArray |= someMask << 1; これは単なる例です。私は一般的にビット単位の操作について話しています。C ++では、本当にポイントがありますか?上記は心をゆがめ、エラーを起こしやすいですが、を使用すると次のstd::bitsetことができます: より簡単にサイズを変更します std::bitset必要に応じてテンプレートパラメータを調整し、実装に残りの処理を任せることで、ます。 何が起こっているかを考え出す(そして間違いを犯す可能性がある)時間を短縮std::bitsetし、同様の方法で、std::arrayまたは他のデータコンテナーに書き込みます。 私の質問は 下位互換性以外に、プリミティブ型を使用しない理由はありますstd::bitsetか?

2
PHPの違法:OOP設計の理由はありますか?
以下のインターフェースの継承はPHPでは違法ですが、実際にはかなり役に立つと思います。以下のデザインに実際のアンチパターンまたは文書化された問題がありますか?PHPは私を保護していますか? <?php /** * Marker interface */ interface IConfig {} /** * An api sdk tool */ interface IApi { public __construct(IConfig $cfg); } /** * Api configuration specific to http */ interface IHttpConfig extends IConfig { public getSomeNiceHttpSpecificFeature(); } /** * Illegal, but would be really nice to have. …

2
ブルームフィルターは実際にはハッシュよりも高速ですか?
ブルームフィルターは、Intが一定の時間で99%の確実性でセットに含まれているかどうかを判断できると考えると、本当に見栄えがします。ただし、ハッシュも同様です。ただし、ハッシュでは、ほとんどの場合、メモリに1回しかアクセスしません。ブルームフィルターでは、完全に離れた場所でリクエストごとに約7回アクセスする必要があるため、リクエストごとに複数のキャッシュミスが発生します。 何か不足していますか?

3
実行可能ファイルがCPUではなくOSに依存するのはなぜですか?
Cプログラムを作成して.exeファイルにコンパイルすると、ファイル.exeにはCPUへのrawマシン命令が含まれます。(おもう)。 その場合、最新バージョンのWindowsを実行するコンピューターでコンパイルされたファイルを実行するにはどうすればよいですか?CPUの各ファミリには、異なる命令セットがあります。それでは、適切なOSを実行するコンピューターが、.exe物理CPUに関係なく、ファイル内の命令を理解できるのはなぜでしょうか。 また、一部のアプリケーションの「ダウンロード」ページのWebサイトでは、Windows、Linux、およびMac用のダウンロードがあります(各OS、86および64ビットコンピューター用に多くの場合2回ダウンロード)。CPUファミリごとにダウンロードがこれほど多くないのはなぜですか?

5
Javaで初期化ブロックを使用する必要がありますか?
私は最近、これまで見たことのないJavaコンストラクトに出会い、それを使用すべきかどうか疑問に思っていました。初期化ブロックと呼ばれるようです。 public class Test { public Test() { /* first constructor */ } public Test(String s) { /* second constructor */ } // Non-static initializer block - copied into every constructor: { doStuff(); } } コードブロックは各コンストラクターにコピーされます。つまり、複数のコンストラクターがある場合、コードを書き換える必要はありません。 ただし、この構文を使用する主な欠点は3つあります。 複数のコードブロックを定義でき、記述された順序で実行されるため、コードの順序が重要なJavaの非常にまれなケースの1つです。これは、コードブロックの順序を変更するだけで実際にコードが変更されるため、私にとって有害なようです。 私はそれを使っても何の利点もありません。ほとんどの場合、コンストラクターは事前定義された値を使用して相互に呼び出します。そうでない場合でも、コードを単純にプライベートメソッドに入れて、各コンストラクターから呼び出すことができます。 ブロックをクラスの最後に配置でき、コンストラクタは通常クラスの先頭にあるため、読みやすさが低下します。コードファイルのまったく異なる部分を見る必要があると思わない場合は、直観に反します。 上記の記述が正しい場合、この言語構​​造が導入された理由(およびその時期)は?正当な使用例はありますか?
16 java 

1
REST APIを使用してネイティブモバイルアプリを認証する
すべての主要なモバイルプラットフォーム(iOS、Android、Windows)のモバイルアプリケーションを対象とする新しいプロジェクトをすぐに開始します。これは、クライアントサーバーアーキテクチャになります。 アプリは情報提供とトランザクションの両方です。トランザクション部分については、トランザクションを行う前にアカウントを持ちログインする必要があります。私はモバイル開発が初めてなので、これらのプラットフォームで認証部分がどのように行われるかはわかりません。クライアントはREST APIを介してサーバーと通信します。もちろんHTTPSを使用します。 ユーザーがアプリを開いたときにログインするか、トランザクションを実行するときにのみログインするかはまだ決めていません。 次の質問がありました。 1)Facebookアプリケーションと同様に、アプリケーションを初めて開くときにのみ資格情報を入力します。その後、アプリを開くたびに自動的にサインインされます。これをどのように達成しますか?単に資格情報を暗号化してデバイスに保存し、アプリを起動するたびに送信するだけです? 2)REST APIに対して行われた(トランザクション)要求ごとにユーザーを認証する必要がありますか、またはトークンベースのアプローチを使用する必要がありますか? 他の認証方法をお気軽にご提案ください。 ありがとう!

4
TimeZoneに基づいてDateTimeを保存するためのベストプラクティス
ユーザーがTimeZoneに基づいて予定をスケジュールできるWebアプリケーションを開発します。そして、ユーザーの予定日時をサーバー日時としてデータベースフィールドに保存しています。スケジュール情報を表示しながら、データベースから値を取得し、ユーザーtimzoneに変換しました。コードベースでの処理ユーザーのタイムゾーンに基づいてDateTimeを変換しています。このベストプラクティスなのか、それとも簡単な方法が存在するのか教えてください。

3
Cの異なる行に関数タイプとメソッド名を配置する理由
私は会社に入社したばかりで、最初のコードレビューでのスタイルコメントの1つは、戻り値の型とメソッド名を別の行にする必要があるというものでした。たとえば、これ void foo() { } これであるべき void foo() { } 私は常に最初のスタイルを使用してきましたが、人々が2番目のスタイルを使用するのは個人的な好み以外の理由があるのではないかと考えていましたか?最初のものは読みやすさを害するとは思わない。Cプログラマーや大規模なオープンソースプロジェクトでは、一方が他方よりも一般的ですか?
16 c  coding-style 

6
呼び出し元の入力パラメーターの検証:コードの重複?
関数の入力パラメーターを検証するのに最適な場所はどこですか:呼び出し元または関数自体ですか? コーディングスタイルを改善したいので、この問題のベストプラクティスまたはいくつかのルールを見つけようとします。いつ、何がより良い。 私の以前のプロジェクトでは、関数内のすべての入力パラメーターをチェックして処理していました(たとえば、nullでない場合)。ここで、入力パラメーターの検証は呼び出し側の責任であることをいくつかの回答とPragmatic Programmerの本で読みました。 つまり、関数を呼び出す前に入力パラメーターを検証する必要があるということです。関数が呼び出されるすべての場所。そして、それは1つの質問を提起します:それは、関数が呼び出されるすべての場所でチェック条件の複製を作成しませんか? null条件だけに興味はありませんが、入力変数(sqrt関数への負の値、ゼロ除算、状態と郵便番号の間違った組み合わせ、またはその他)の検証に興味があります 入力条件をチェックする場所を決定する方法はありますか? 私はいくつかの議論について考えています: 無効な変数の処理が異なる場合、呼び出し側で検証するのが適切です(たとえば、sqrt()関数-場合によっては複素数を処理したいので、呼び出し側で条件を処理します) チェック条件がすべての呼び出し元で同じ場合、重複を避けるために関数内でチェックすることをお勧めします 呼び出し元の入力パラメーターの検証は、このパラメーターを使用して多くの関数を呼び出す前に1回だけ行われます。したがって、各関数のパラメーターの検証は効果的ではありません 適切なソリューションは、特定のケースに依存します この質問が他の質問と重複していないことを願っています。この問題を検索し、同様の質問を見つけましたが、彼らは正確にこのケースに言及していません。

2
宣言UIとは何ですか?
フレームワークに関するブログでこの用語が放り出されているのを見続けています。宣言型プログラミングと命令型プログラミングの違いを理解していますが、これは特にUIにどのように適用されますか?なぜ特別な用語があるように見えるのですか?これらの異なる「もの」ですか?もしそうなら、宣言的UIの代替手段は何ですか?なぜそれを使用したいのですか?
16 frameworks  ui 


4
依存関係の注入は、ctorで実行するか、メソッドごとに実行する必要がありますか?
考慮してください: public class CtorInjectionExample { public CtorInjectionExample(ISomeRepository SomeRepositoryIn, IOtherRepository OtherRepositoryIn) { this._someRepository = SomeRepositoryIn; this._otherRepository = OtherRepositoryIn; } public void SomeMethod() { //use this._someRepository } public void OtherMethod() { //use this._otherRepository } } に対して: public class MethodInjectionExample { public MethodInjectionExample() { } public void SomeMethod(ISomeRepository SomeRepositoryIn) { //use SomeRepositoryIn } …

19
プログラマーには良いメモリが必要ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 プログラムできるようにするには、あらゆる種類の構文を覚えておく必要があるようです。名前を思い出すための良い記憶を持っていない場合、プログラミングを学ぶことはより困難になりますか?
16 learning 

7
長期計画とアジャイル?
私のチームは最近、私たちの仕事のほぼ1年の計画を立てるプロセスを経験しました。計画を3つのフェーズに分けました。各フェーズにはいくつかの起動が含まれます。 あなたの機敏な点から、これは間違っているのだろうか?私たちは最初のいくつかのステップ以外の設計にあまり時間を費やしていないので、それは悪い考えではないと思います。方向を変えることは可能です。同時に、目先の短期だけで行動しないことは素晴らしいことです。

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