ソフトウェア工学

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

4
データベースのファジー検索の概念
私はこれについて考え、たとえばユーザーがスペルミスを入力した場合など、データベースをファジー検索する方法に関する解決策を考え出そうとしています。この背後にあるロジックに大きな問題はありますか?それは機能し、以前に行われましたか? 検索するテーブル: **tblArticles** Body - Soundex_Body - CharacterCoded_Body したがって、物理的な表示のために生のテキスト本文を保存します。他の2列は、次の方法で事前計算される検索に使用されます。 Soundex 本文は言葉に分割され、soundexバージョンに変換されます。IE、結果の本文は次のようになります。 H252 B54 C23 E33... etc したがって、誰かが「恐竜」と入力すると、記事本文には「恐竜」と表示され、これらは両方ともB26と評価されます。次に、検索語のsoundex値に対してLIKEを実行します。 文字コード IEで文字を素数にマップする文字マッピングを考えると: h = 2 e = 3 l = 5 o = 7 p = 11 c = 13 help = 2*3*5*11 = 330 hello = 2*3*5*5*7 = 1050 hell = 2*3*5*5 …

4
モデルビューコントローラーの説明
動的Webサイトの開発に関する私の経験は、主にJavaサーブレットに限定されています。Tomcatを使用してさまざまなJavaサーブレットを開発してきましたが、このテクノロジーとフロントエンドのクライアント側のHTML / CSS / Javascriptにかなり精通していると言うことをためらいません。 「動的なWebサイト」と思うとき、ユーザーはクエリ文字列でURLを要求し、サーバーはクエリを受信し、クエリに応答するためにHTMLを動的に出力します。これには、表示用に要求されたデータをフェッチするために、データベースとの通信が含まれることがよくあります。これは基本的にdoGetJavaのメソッドの背後にある考え方HttpServletです。 しかし、最近では、DjangoやRuby on Railsなどの「Framework Controller」アーキテクチャを活用する新しいフレームワークについてますます耳にしています。MVCを説明するさまざまな 記事を読みましたが、その利点を本当に理解するのに苦労しています。一般的な考え方はUIロジックからビジネスロジックを分離することであると理解していますが、これが通常のWebプログラミングと実際に異なることを理解できません。Webプログラミングは、その性質上、ビジネスロジック(バックエンドサーバー側プログラミング)をUIプログラミング(クライアント側HTMLまたはJavascript)から分離することを余儀なくされます。これは、両者がまったく異なるプログラミング領域に存在するためです。 質問: Javaサーブレットのようなものに対してMVCが提供するもの、さらに重要なことは、 MVCとは何であり、Javaサーブレット(またはCGIのような古いもの)?可能であれば、MVCを説明するときに、MVCがWeb開発プロセスにどのように適用され、どのように有益であるかを示す例を提供してください。

9
Webサイトの動的型と静的型の言語[非公開]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 このステートメントは、静的に型付けされた言語がWebサイトに理想的ではないことを示唆しています。 ウェブサイトの構築とは対照的です。Webページをレンダリングするとき、多くの場合、Webページで相互作用する非常に多くのコンポーネントがあります。ここにはボタンがあり、そこには小さなウィジェットがあり、ウェブページにはそれらの数十があり、ウェブサイトにはすべて動的な数十または数百のウェブページがあります。そのような非常に大きな表面積を持つシステムでは、静的に型付けされた言語を使用することは実際には非常に柔軟性がありません。おそらく、Scalaでプログラムを作成し、それを使用してWebページをレンダリングするのは、ボタンやその他のものをインタラクティブにプッシュしたいときに苦痛になるでしょう。システム全体で一貫性が必要な場合、たとえば、システム全体でボタンを移動できるようにするためだけに型チェックを行う必要がある場合、それは非常に柔軟性に欠けると考えます。 ソース:http : //www.infoq.com/interviews/kallen-scala-twitter これは正しいです?なぜですか?

9
コード読み取りスキルを向上するにはどうすればよいですか[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 質問はタイトルにあります-コード読み取りスキルを向上させるにはどうすればよいですか。 私が現在開発しているソフトウェア/ハードウェア環境は、コンパイル時間とシステム全体のテストにかかる時間に関して非常に遅いです。システムは非常に古い/複雑であるため、近い将来、いくつかのより小さく管理しやすいサブプロジェクトに分割することはできません。 開発の進行を本当に妨げるのは、コードを読むスキルであることに気付きました。コードの読み取りスキルを向上させるには、「do compile」キーを押す前でも、デバッガーを起動する前でも、コード内のエラーと問題のほとんどを見つけることができますか?
13 learning  skills 

5
開発者にバグを報告する方法は?バグ報告に関する教育を受けようとするプログラマー
適切なバグレポートを提出する方法について、会社の他のメンバーを教育する方法について、いくつかのヒントとアドバイスをもらいたいと思っています。現在、次のようなチケットを取得しています: このリンクをクリックすると、404が表示されます(404のページは含まれますが、それを引き起こしたページは含まれません)。 右の列がボタンの列に流れ込むことがあります。(スクリーンショットまたは追加情報なし) xxxへの変更は正しく機能しているようです。(EOM) 可能な限り多くの情報を送信するようユーザーを誘導するバグ送信プロセス/フォームはありますか?

7
自分に言語を教えるのに最適な場所はどこですか?
プログラミング言語はまったく知りません。私は独学しますが、最も基本的なレベルから学ぶことができる最適な場所を知る必要があります。言語を学び始めるのに最適な場所はどこですか?最初に学ぶのに最適な言語は何ですか?最初にRubyを学ぶのはばかげていますか? ここで、私は高等言語のいくつかを学ぶことはあなたがそれらを最初に学ぶならばあなたを「怠lazにする」ことができると言う誰かに出くわしました。とりわけRubyのように。 私の母国語については、夫が(彼自身の個人的な興味のために)Rubyを学ぶことを勧めています。ただし、開始方法と最初に学習する言語について、独立したアドバイスが必要です。最終的にはRubyを学び、次にRailsを学びます。 4か月前、私の夫は客観的なCのテキストを注文しました。私はひっくり返り、それは明らかに私が来ている場所よりも進んだ場所で始まっていた。 Rubyのチュートリアルに手を出しましたが、わかりません。私が入れているものは自分が手に入れたものですが、それが何につながっているのか理解できません。最初にすべてのルールを知る必要があります。その後、コンピューター言語を調べて、バイナリコードの調査を開始しましたが、これは大いに役立ちましたが、どこから始めたいかはわかりませんでした。私は今まで(4人の子供と)人生に戻る時間があまりありません。私が学校に行くなら、それは違うでしょう。 アドバイスをいただければ幸いです。
13 ruby 

5
Androidは言語ですか、それともフレームワーク/プラットフォームですか?
AndroidはJava言語に制限のあるJava SDKを使用しており、GoogleはそれがJavaではないと主張していることを知っています。しかし、Androidはプログラミング言語であると言うのは正しいでしょうか?または、AndroidはJavaのフレームワークであると言う方が正しいでしょうか?それとも両方とも本当ですか?
13 android 

3
契約Androidの機能を見つけるにはどうすればよいですか?
2年前、Win32とSymbianOSで15年以上過ごした後、私はAndroidに集中することにしました。私は2009年の仕事のほとんどを新しいプラットフォームを徹底的に習得するために費やしましたが、それは良い戦略的決定であったようです。Androidは今どこにでもあります。 しかし、Androidの開発作業を見つけるのは奇妙に難しいようです。ウェブサイト、秘密結社、または労使交流があるはずだというこのしつこい感じがあります。 どうしたの?Androidの請負業者の場合、現在の仕事をどのように見つけましたか?

6
新しいオープンソースプロジェクトのために放棄されたオープンソースプロジェクトから継承する正しい/丁寧な方法は何ですか?
私のチームは、code.google.comでホストされている古いオープンソースプロジェクトのメンバーに連絡を取りました。私たちは彼らのプロジェクトに参加して、少なくともそのブランチにコミットしたいと言いましたが、誰も私たちに応答しませんでした。全員、所有者、コミッターを試しました。誰もアクティブではなく、誰も応答しませんでした。 しかし、コミットするコードがいくつかあり、そのプロジェクトの作業を続けたいと思っています。したがって、新しいプロジェクトを作成する必要があります。継承したいプロジェクトの名前に近いが重複していない名前を思いつきました。最初のコミットをどのように行う必要があり、コミットメッセージはどうあるべきですか?「このコードを継承しました。このようなライセンスの下でここに見つかりました...今、このより厳格なライセンスにアップグレードしています...」などのコメントを付けてコードをリポジトリにコピーする必要がありますか?または、コードを最初のコミットとして使用し、「継承しました...そうした変更を行いました...」などの更新を行う必要がありますか?

6
プログラムを目指す博士課程の科学者のためのキャリアアドバイス?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 7年前に閉鎖されました。 私は主に独学のプログラマーです。実際、私は最初に生物物理学の卒業生の半分くらいでプログラミングを始めました。かなりいい仕事をしたとは思いますが、1〜2人以上の「深刻な」開発チームの一員として働いたことはありません。他の開発者(そして、私は彼らを職業としてソフトウェア開発で同様に経験の浅い人と呼ぶことをheしません)。 私は博士号を取得した後、公式にはポスドクとして、しかし非公式にはスタッフ研究プログラマーとして、プログラミングに集中し続けました。その間、私はGoogleで2回のインタビューを受けましたが、実際のオファーはありませんでした。それは私がいくつかのルーツを置いたので、おそらくとにかく仕事を取ることができなかっただろう。家+妻(非常によく給料を支払っている仕事など)約3年で、私の正直な評価では、さらに多くのことを学んだと思いますが、私の成長を維持または加速するには、もっと多くのピアグループが本当に必要です。問題は、私が見ているときはいつでも、ほとんどの求人リストには信じられないほど壮大な要件があるため、適用するのをためらうことです。それ、または仕事/プロジェクトは信じられないほど退屈だ。 私は、ほとんどの人が自分がスピードを上げるのにかかる時間を評価することになると、私よりもはるかに現実的ではないか、気にしないと思います。私の恐れは、私が興味深く、お金を払って開発者の仕事をするのにひどく資格がないということです。IE:数週間の作業でC ++モードに完全に戻ることができると確信しています(私はほとんどC、Python、C#を毎日使用しています)そのような知識を「必要とする」仕事のために。私が合法的に良いマッチだと感じたいくつかのアプリケーションは、反応を引き起こしていません。 次のことがアプリケーション/ CVの潜在的な問題であると思われるため、フィードバックをお願いします。 私は学位を持っていません。理学士号は生化学と分子生物学、博士号は生物物理学でした。私は学部生と卒業生レベルのアルゴリズムコースを受講し、それらを完全に殺しましたが、それをCVに効果的に変換する方法がわかりません(A +を取得することと、クラスの他の全員を喫煙することの違い)。 私は博士号を持っていますが、CSにはありません...私はそれを履歴書から削除する必要があるかどうか議論してきました、そして、それが何らかの種類の「プログラミング」としてそれらの年の少なくともいくつかをリストすることは誤解を招くでしょう'仕事(多くの点でそうでした)。 「独学」プログラマーに関連する強いスティグマが時々あると思います。私は確かにその一人です。それらのスティグマのいくつかは真実のヒントを保持していることさえ認識していますが、私は本当にチームの資産になりたいです。約8年間、主に自己監督しているにもかかわらず、必要に応じて行進命令を引き受けることができることをどのように伝えることができますか?私はあからさまに言うだけですか? プロセス全体についてあまり慎重にならなければならないのでしょうか?逸話:私は彼が最初のをすり抜けるために彼の資格を完全にかじったポジションを申請した友人を持っています。彼は実際の資格について連絡をとったとき、彼はもっと正直ですぐに来てくれました。彼のボールは私のボールよりも大きいです。

6
BDDプロジェクトでのQAの役割は何ですか?
自動受け入れテストでユーザーストーリーを100%網羅したBDDを使用してプロジェクトを実行する場合、テスター/品質保証担当者の役割は何ですか? 開発者が受け入れテストを製品所有者と一緒に書くことを想像していると思いますが、それが馬鹿げた仮定のように思えたら教えてください。

5
メッセージとメソッドの違いは?
Objective Cには、他のオブジェクトにメッセージを送信するという概念があります。これは、C#やJavaなどの言語でのメソッド呼び出しによく似ています。 しかし、どのような正確に微妙な違いがありますか?私のコードについて考えるとき、どのようにメッセージングを考える必要がありますか? 注:ここで少し背景を説明しますが、私はObjective Cに関するいくつかの概念を理解しようとしているC#/ Java開発者です。
13 methods 

12
なぜCSVを使用し続けるのですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 なぜCSVを使用し続けるのですか? 私は最近、健康分野の仕事にシフトしました。データ転送標準のすばらしい仕事にもかかわらず、すべてのデータ転送は、外部組織への報告と新しいシステムの実装時のデータ移行の両方でCSVで行われます。 残念ながら、CSVの使用は、開発者の時間を無駄に消費する同じ愚かなエラーの無限の繰り返しの原因です。(エスケープが悪い、nullフィールドを処理できないなど) 私たちはもっと良くできることを知っていますし、JSONとXMLの間(インスタンスによって異なります)は何でも構いません。(ほとんどの場合、これは1つのMS SQLserver 2005から別のMS SQLserver 2005へのデータです!) これが起こるのを見るたびに、ある開発者が別の開発者の時間を無駄にするのを文字通り見ているように感じます。 それでは、なぜ互いに軸を合わせ続けるのでしょうか?いつ停止しますか?

20
すべてのコンピューターサイエンスの学生にどのプログラミング言語を教える必要がありますか?
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け付けていません。 すべてのコンピューターサイエンスの学生は、どの言語(またはプログラミング言語のクラス(パラダイムなど)に加えて、そのクラスの推奨言語)を大学で教えるべきですか?答えを動機付けます。なぜその言語?それからどのような用途がありますか?それはどのような概念を教えていますか(言語Xが教えるよりも良い)? 注/説明:この質問は、純粋なコンピューターサイエンスではなく、ソフトウェアエンジニアリングに重点を置いたコンピューターサイエンスに関するものです。焦点を当てているのは、まだコンピュータサイエンス教育であり、ソフトウェアエンジニアリング教育ではありません。

8
複雑さのジャンプをどのように管理しますか?
時々プロジェクトに取り組んでいて、突然何かが突然現れて、作品に巨大なスパナを投げ込み、複雑さを大幅に高めることは、まれではあるが一般的な経験のようです。 たとえば、私は他のさまざまなマシンでSOAPサービスと通信するアプリケーションで作業していました。正常に動作するプロトタイプを作成し、その後、通常のフロントエンドを開発し、一般的に、すべてを素晴らしく、非常にシンプルで、簡単にフォローできる方法で実行しました。より広いネットワークでテストを開始し、接続の待ち時間とリモートマシンで計算を実行するのに必要な時間がSOAPサービスへのタイムアウトリクエストになったため、突然ページがタイムアウトするまで、うまくいきました。要求ごとに計算を実行するのではなく、バックグラウンドで段階的に更新できるように、要求を独自のスレッドにスピンアウトし、返されたデータをキャッシュするようにアーキテクチャを変更する必要があることが判明しました。 そのシナリオの詳細はあまり重要ではありません-実際、それは非常に予見可能であり、このタイプの環境用にこのタイプのアプリをたくさん書いた人々はそれを予想したかもしれないので、素晴らしい例ではありません-単純な前提とモデルから始め、突然プロジェクトの開発に複雑さをエスカレートさせることができます。 開発プロセスの後の段階で、またはテストの結果として、多くの場合仕様変更ではなく環境要因の結果として、これらのタイプの機能変更の必要性に対処するための戦略はありますか?可能性はあるが必ずしもそうではない可能性のある問題を軽減するソリューションを設計することで、同じくらい効果的である可能性が高いが、準備が整っていないソリューションを設計することで、時期尚早な最適化/ YAGNI /オーバーエンジニアリングのリスクを回避することのバランスをどのように取るか起こりうるあらゆる事態? 編集:Crazy Eddieの答えには、「あなたはそれを吸い込んで、新しい複雑さを実装するための最も安価な方法を見つける」ということが含まれています。それで、質問に暗示されている何かを考えさせられましたが、具体的には挙げませんでした。 そのバンプにヒットしたら、必要な変更を組み込みます。プロジェクトをできるだけスケジュールに近づけるが、保守性に影響を与える可能性があることを行いますか、またはアーキテクチャに戻って、保守性が高いかもしれないが開発中にすべてを元に戻すより詳細なレベルでやり直しますか?

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