ソフトウェア工学

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

9
何かをコーディングする方法がわからないときに使用するヒントやテクニックは?[閉まっている]
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 7年前休業。 UIデザイナーとしての経歴があります。そして、私はロジックの一部を書くのが少し難しいことに気づきました。たまにうまくいくこともありますが、たいていの場合、ハッキングされてしまいます(通常は時間がかかります)。そして、私はプログラミングが好きではないということではありません。実際、私はそれがデザインと同じくらい好きになり始めています。数字や論理よりも、色や形の方が得意だと思うことが時々あります(しかし、それを変更したいのですが)。 私が通常行うことは、インターネットでソリューションを検索し、例をコピーしてアプリに挿入することです(これはあまり良い習慣ではないことを知っています)。 1つのヒントは、実際のコードを書く前に、コメントとしてロジックを一般的な英語で書くことだったと聞きました。 他に使用できるヒントやテクニックはありますか?

3
ロゴの最大有効期間をわずか8日に減らす理由は何ですか?
ほとんどのWebサイトは、ロゴ画像などの静的アセットmax-age=31536000のCache-controlヘッダーを設定します(1年)。例: YouTube ヤフー ツイッター BBC ただし、注目すべき例外があります。Googleのロゴにはmax-age=6912008日間あります。 私は過去にGoogleロゴのヘッダーを確認しましたが、以前は間違いなく1年でした。(また、以前はスプライトの一部でしたが、現在はスタンドアロンのロゴ画像ですが、おそらく別の質問です...) キャッシュの有効期間をわずか8日間に減らしたいと思う正当な技術的理由は何でしょうか?Googleのホームページは、世界で最も慎重に最適化されたページの1つなので、正当な理由があると思います。 編集: 回答する前に、これらの点を理解しておいてください。 max-age静的アセットを将来変更できるようにするために、短いライフタイムを使用する人はいません。変更する場合は、別のURLで提供するだけです。いいえ、Google Doodleとは関係ありません。考えてみてください。GoogleがこのHTTPの基本的なトリックを理解していなかったとしても、元のロゴがキャッシュされていないユーザーだけがdoodle-dayにDoodleを目にするため、8日間は適切ではありません。そのユーザーグループは、GoogleがDoodleを変更してから8日間、Doodleを見続けていました:) Webサーバーはクライアント(またはプロキシ)のキャッシュを「いっぱいにする」ことを心配していません。クライアントは自分でこれを管理します。自身のストレージ制限に達すると、優先度が最も低いアイテムをドロップし始め、新しいアイテムのためのスペースを作ります。優先度スコアは、「このURLをキャッシュしたことによるメリットはどれくらいありますか?」という質問に基づいています。これはmax-age、URLが最初に要求されたときにサーバーが送信した値とは関係ありません。これは、「頻度」に基づくヒューリスティックです。そのURLに対するリクエストの数です。max-age単にサーバーがカットオフポイントを設定できるようにします。これは、アイテムが再利用される頻度に関係なく、クライアントがアイテムを破棄することになっている時間です。ダウンストリームのクライアント/プロキシがキャッシュをいっぱいにするのを「控え」に頼るのは、とてもいい信頼できることですが、私たちはその世界に住んでいるとは思いません;)

1
検索テキストのトークン化に適した手法
検索エンジンが行うのと同じまたは同様の方法で一部のテキストをトークン化する方法を探しています。 これを行う理由は、トークンに対して統計分析を実行できるようにするためです。私たちが使用している言語はpythonであるため、その言語で機能するテクニックを好みますが、必要に応じて別の言語を使用するように設定することもできます。 例 元のトークン: 私たちはいくつかの素晴らしいブリトーを持っています! より簡略化:(複数形と句読点を削除) 私たちはいくつかの素晴らしいブリトーを持っています さらに簡略化:(余分な単語を削除) 素晴らしいブリトー 最良:(肯定的および否定的な意味を認識する): ブリトー-ポジティブ-

3
プログラムで連動するがランダムなサイズの正方形のグリッドを構築する方法
長方形の2次元レイアウト、つまりランダムなサイズの立方体で構成されるグリッドを作成したいと思います。立方体は互いにフィットし、パディングまたはマージン(間隔)が等しい必要があります。漫画本のレイアウトのようなもの、または添付された画像のようなもの。 どうすればこれを手続き的に行うことができますか? 実際には、おそらくPythonといくつかのグラフィックソフトウェアを使用して画像をレンダリングしますが、ランダム化されたグリッドを生成するために使用する必要があるアルゴリズムの種類(またはその他)がわかりません。

5
GitHubでコードを公開することに関するセキュリティの問題
大きなコミュニティ/フォーラムのWebサイトを開発しています。コードをGitHubにアップロードして、少なくとも何らかのバージョン管理を行いたいと思っています(バックアップとして.rarファイルしかなく、SVNもないためです) )、他の人がプロジェクトに貢献できるようにし、おそらく将来の雇用主に私のコードの一部をある種のカリキュラムと見なさせるためにそれを使用することもできます。 しかし、私が今疑問に思っているのは、私がこれまでに誰もそれについて言及しているのを見たことがないことに驚いていることです。セキュリティの側面です。ウェブサイトのコードを公開することは巨大なセキュリティホールではありませんか?重要なファイル(データベースのパスワード、認証スクリプトなど)がアップロードされていないことを考慮しても、潜在的なハッカーや潜在的なエクスプロイトを見つけたい人に与えるようなものです。 もちろん、GitHubには何百万ものプロジェクトがアップロードされており、「偶然」に誰も私のプロジェクトを見つけることはできません。しかし、彼らがそれを探すならば、それは確かにそこにあるでしょう。 結論:私の問題は著作権やライセンスに関するものではなく、私のWebサイトでエクスプロイトを見つける人たちです。 ここで何か不足していますか?

4
Scalaの良いユースケースは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 現在のプロジェクトでは、JavaとScalaを混合できるようにビルドをセットアップしています。コードをより読みやすく簡潔にするために、コードベースでより多くのScalaを使用したいと思います。その過程で、実際の機能を引き継ぐことによって言語を学びます。 そのため、一部のクラスではScalaを使用してその利点を紹介し、他の開発者にもScalaの使用を検討するよう説得します。 休憩ベースのWebサーバーまたは一般的なプログラムの場合、どのようなコード構造がScalaの関数型プログラミングスタイルに適していますか。
8 scala 

2
述語ビルダー拡張メソッドの作成
現在、複数の列でのフィルタリングを許可している剣道UIグリッドがあります。外側のswitchステートメントを削除する代替アプローチがあるかどうか疑問に思っていますか? 基本的には、拡張メソッドを作成して、フィルターを適用できるようIQueryable<T> にしたいのですが、外側のcaseステートメントを削除して、列名を切り替える必要がないようにします。 private static IQueryable<Contact> FilterContactList(FilterDescriptor filter, IQueryable<Contact> contactList) { switch (filter.Member) { case "Name": switch (filter.Operator) { case FilterOperator.StartsWith: contactList = contactList.Where(w => w.Firstname.StartsWith(filter.Value.ToString()) || w.Lastname.StartsWith(filter.Value.ToString()) || (w.Firstname + " " + w.Lastname).StartsWith(filter.Value.ToString())); break; case FilterOperator.Contains: contactList = contactList.Where(w => w.Firstname.Contains(filter.Value.ToString()) || w.Lastname.Contains(filter.Value.ToString()) || (w.Firstname + " " …

2
製品のバックログ/ユーザーストーリーを管理する方法
アジャイルを使用して(TFSを使用して)新しいプロジェクトを開始しようとしています。製品のバックログに関して、「良い実践」の質問がいくつかあります。 ユーザーのストーリーを最初に追加するとき、(たとえば)「バックログ」イテレーションに入れるか、イテレーションを空白のままにしておくのが良いでしょうか?明らかに、米国での作業を開始する時が来れば、それは適切な反復バックログに移動されます。 エピックをより小さなUSに分割するとき、元のエピックは不要になったので、単に閉じますか?それとも、叙事詩の子供として新しい米国を作成する必要がありますか?(すべての子USが完了したら、エピックを閉じるのは誰かの責任です)。 最後に、製品のバックログには、ステータスに関係なくすべてのUSが表示されますか、それとも開始されていないUS(つまり、提案された「バックログ」イテレーション)のみが表示されますか? これらの質問は生死にかかわるものではないことに気づきましたが、最初から適切に整理できるように、他の人が製品のバックログをどのように管理しているかを知っておくとよいでしょう。
8 agile 

8
構成ファイルに推奨されるXML以外の何かを使用していますか?
ある種の構成ファイルを必要とする小さなツールを設計しています。私の場合、構成ファイルは実際にはデータベースに近いものですが、軽量である必要があり、必要に応じてエンドユーザーが簡単に編集できるようにする必要があります。ただし、その中にも多くのものが含まれます。(特定の要因に応じて、1Mb以上になる場合があります) SQLiteなどを使用するのではなく、プレーンテキストを使用することにしました。ただし、テキストを使用する場合は、さまざまな形式にも対応する必要があります。これまでのところ、私の選択肢は XML JSON カスタムフォーマット 私のファイルのデータは非常にシンプルで、ほとんどの部分はキーと値のタイプのものです。したがって、カスタム形式はそれほど難しくありません...しかし、サポートの作成について心配する必要はありません。JSONが構成ファイルに使用されるのを見たことがありません。XMLはファイルサイズを大幅に膨らませると思います。(私はまた、一般的にXMLが嫌いです)。 この場合、どうすればよいですか? 考慮すべき要素: この構成ファイルはWebサービスにアップロードできます(サイズが重要です) ユーザーは必要に応じて手動で編集できる必要があります(編集や読みやすさの問題) 自動的に生成および処理できる必要があります(速度はそれほど重要ではありませんが、過度に遅くはなりません) 「キー」と「値」はプレーンな文字列ですが、何でも含めることができるためエスケープする必要があります。(ユニコードとエスケープは簡単に機能する必要があります) 複数の構成ファイル。基本的に、各設定ファイルは1つの「プロジェクト」に関連付けられています

2
DDD:サービスに2つのリポジトリーが含まれています
1つのサービス内に2つのリポジトリを持つ方法は正しいですか?それはアプリケーションまたはドメインサービスですか? Passport(政府ID)オブジェクトを含むべきPassengerオブジェクトがあるとします。PassengerRepositoryからPassengerを取得しています。PassengerRepositoryはサーバーへのリクエストを作成し、受信したデータを解析してリポジトリ内に保存するよりもデータ(json)を取得します。 PassportをEntityとして保存してPassportRepositoryに置きたいのですが、パスワードに関するすべての情報に、上記で受け取ったものよりもjsonの内部が含まれているため、混乱しました。 removePassport, addPassport, getAllPassengerなどのいくつかのメソッドでPassengerRepositoryとPassportRepositoryを含むPassengerServiceを作成する必要があると思います。 更新: したがって、より良い方法はPassportをVOとして表し、すべてのパスポートをPassenger集約内に格納することだと思います。ただし、別の質問があります。管理乗客のパスポートのメソッド(メソッドはサーバーAPIを呼び出す)をどこに置くべきですか。乗客の集合体のほうがいいと思います。

2
「成熟した」と見なされるプログラミング言語の基準
最近この質問の答えを読んでいて、「言語は成熟している」という言葉に感動しました。 それで、「プログラミング言語は成熟している」と私が言うとき、私は実際には何を意味しているのだろうと思いましたか?通常、プログラミング言語は最初に必要性から開発されます、例えば 新しいプログラミングパラダイムまたは既存の言語にはない機能の新しい組み合わせを試してみてください。 問題を解決するか、既存の言語の制限を克服してください。 プログラミングを教えるための言語を作成します。 特定の種類の問題(並行性など)を解決する言語を作成します。 Webなどの特別なアプリケーション分野用の言語とAPIを作成します(この場合、言語はよく知られたパラダイムを再利用する可能性がありますが、API全体が新しい必要があります)。 競合他社を市場から追い出すための言語を作成します(この場合、作成者は、開発者を新しいプログラミング言語とプラットフォームに引き付けるために、新しい言語を既存の言語と非常に似たものにしたいと思うかもしれません)。 言語が作成された当初の動機とシナリオに関係なく、最終的に一部の言語は成熟したと見なされます。私の直感では、これは言語がその目標(少なくとも1つ)を達成したことを意味します。たとえば、「Webアプリケーションを作成するための信頼できるツールとして言語Xを使用できるようになりました」。 ただし、これは少しあいまいなので、言語が成熟していると言うときに適用される最も重要な基準(ある場合)をどのように考えるかを尋ねたいと思います。 重要な注意点 私は一般的な基準のみに関心があるため、この質問は(意図的に)言語にとらわれません。言語に依存しない回答とコメントのみを書き込んでください!特定の「言語Xは成熟している」または「どのプログラミング言語が成熟していると見なすことができる」か、または「言語Xは言語Yより成熟している」かどうかは質問していません。この質問の範囲外です。 編集 質問は、より正確にするために、によって基準私は、「ツールのサポート」、「養子縁組産業別」、「安定性」、「豊富なAPI」、「大規模なユーザーコミュニティ」、「成功したアプリケーション・レコード」、「標準化」のようなものを意味します、「クリーンで均一なセマンティクス」など。

5
書くか書かないか:フレームワーク[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 今日、何人かの友人と私はフレームワークについて話し始めました。 私たちの一部は、99.9%のケースで、新しいフレームワークを作成することは悪い考えであると強く信じています。おそらく、数百万のフレームワークのうちのいくつかは問題に適合するはずであり、そうでない場合は、ハック、API、または構成で十分なはずです。そうでない場合は、フレームワークへの貢献、機能の提案などが最善の解決策であると考えています。0.1%は、どのフレームワークも私たちのケースに適合しない場合です。 ただし、問題を修正するのがより速く、「学習」の要素(アプリを改善するとフレームワークを構築するあなたのスキル)など 明日がないようなコーディングフレームワークを外に出すのは正しい方法ではないと思います。「私たちは独自のフレームワークを構築し、私たちが支配し、仲間」という言葉を広めるためだけに、多くの小さなチームが独自のフレームワークを構築するのを見てきました。一般に、フレームワークはくだらないものであり、ドキュメントがなく、独自のアプリケーションでのみ機能します。 意見は意見であり、開発者は開発者であり、いかなる炎の戦争を開始する意図もありません、と私は尋ねます: あれについてどう思う?フレームワークを構築するときに考慮するパラメーターは何ですか?このすべてについてどう思いますか?

3
プロのPHPプログラマーの特徴[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 7年前休業。 私は19歳の学生で、本当にプログラミングを楽しんでいます。ここでの長年の経験を活用したいと思っています。現在、私はあらゆる機会にPHPを勉強しています。正式なクラスを受講したことはありませんが、約3年になります。いつかプログラマーとしてフルタイムで働いて、良いキャリアを築きたいと思っています。 あなたへの私の質問はこれです:あなたはプロのプログラマーの特徴や特徴とは何だと思いますか?主にPHPの分野ですが、PHPは趣味の言語であり、潜在的な雇用主の目には最適な言語ではない可能性があるため、他のより一般的な資格も歓迎されます。私が間違っていたら訂正してください。何よりも価値のないものに時間を費やしたくない。 私は現在、言語としてのPHPの知識にかなりの自信を持っています。必要なものをほぼすべて構築して「機能」させることができることはわかっていますが、デザインコンセプトとコード構造に非常に欠けていると感じています。オブジェクト指向のコードを書くこともできますが、個人的には、適切に構成されていない場合、豆の山の価値はありません。このため、マット・ザンストラの本「PHPオブジェクト、パターン、そしてプラクティス」を購入し、毎日少しずつ読んでいます。 とにかく、私はここで少し脱線し始めているので、元の質問に戻ります。この分野に影響を与えたいと思う意欲的なプログラマーにどんなアドバイスをしますか? また、余談ですが、私は私の友人とプロジェクトに取り組んでおり、コーディングの賢いところについてかなり良いアイデアが得られるでしょう。リンクを貼るつもりですが、ここで私がプッシュしたりスパムしたりしているように誰にも感じさせたくないので、望まない場合はクリックしないでください。しかし、そこにもフィードバックを提供することに興味がある場合は、githubでコードを確認できます。私はそこでザ・クローとして知られています。 https://github.com/PureChat/PureChat--Beta-/tree/

4
Android開発用のC / C ++を知ることは重要ですか?
Java(C ++ / NDKなし)のみを使用して、高速で美しいAndroidアプリ(3D開発を含む)を構築することはできますか? Android開発者の職位要件(求人)を探すと、C / C ++ / NDKの知識が非常に重要であることがわかりました。一部の企業では、C ++(OpenGL)のみを使用してテストタスクを構築する必要があります。
8 java  c++  c  android 

4
技術を理解していない会社のコンサルタント![閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 7年前休業。 他に3人のプログラマーがいる会社でコンサルタントとして働きました。私の仕事はすべての古いシステムをJavaやSpringなどで書き直すことですが、スタッフのプログラマーはperlしか知らず、マネージャーはプログラミングを知りません。 私はここに書き直すプロジェクトが6つあるが、誰も設計ドキュメントや仕様を持っていないことを彼らに理解させようとしています。スタッフのプログラマーはドキュメントを書く必要がありませんでした。さらに、私はマネージャーに新しいjava techのものを理解させることができません..彼はスタッフの何人かに物事についての意見を求め続けますが、スタッフはそれを知らないか理解していません。 何を構築するかを知るために、スタッフプログラマーまたは誰かがデザインドキュメントを書かなければならないことをマネージャーに理解させるために、ここからどこへ行くのですか。または、ドキュメントを作成する必要がある場合、どのようにして情報を取得しますか?

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