ソフトウェア工学

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

6
コードをどのように強調しますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 基本的なシナリオは白地に白、黒地に黒ですが、ほとんどのプログラマーはより多様な構文の強調表示が便利であると感じています。 一般的な設定からどのような利点がありますか?(例えば、「暗い背景が許す...」) どのような微調整が最も役立つと思いますか?(例:「ややオフホワイトの作品は...」、または「\ nのように引用符とエスケープを強調表示し、異なって表示...」) 1人につき1つの回答をお願いします。必要に応じて、1つの応答の一部として複数のポイントをリストします。

4
継続的ビルドサーバー(cc.net、hudson、bambooなど)のリモートビルドエクスペリエンス?
現在、ビルドプロセスには.net(msbuild&nantを使用)とjava(mavenとantを使用)の両方をビルドするcc.netサーバーを使用しています。 CC.netはソース管理を監視し、別のサーバーで実行されているリモートビルドをトリガーします。CC.netは結果を照合します。 リモートビルドを実行すると、通常は次のようになります。 模擬データを使用してnunitまたはjunitまたは類似のものを実行します オプションでDBスクリプトを実行して、新しいデータベースインスタンスを作成するか、既知の位置からデータベースを復元します。 セレンなどを実行してUIをテストする コードカバレッジのためにemmaまたはncoverを実行します さまざまなデプロイメント環境(テスト、受け入れ、本番)向けのシステムを構築します いくつかのビルドを同時に実行している場合があります。.netとjava(別のプロジェクトチームからの)があります。 新しいプロジェクトをセットアップするときにリモートビルドを動作させるにはかなりの時間がかかり、cc.netよりもリモートビルドに適したものがあるはずだと感じています。 継続的インテグレーションシステムを使用したリモートビルドの経験はありますか? CIサーバーの機能リストは本当に欲しくありません。多言語、マルチサーバー環境でCIサーバーをどのように使用したかについて聞いていただければ幸いです。

2
mod_securityは良いことですか?
私は最近、mod_securityからの誤ったエラーメッセージに頻繁にアクセスしています。そのフィルターセットは古いPHPのエクスプロイトをカバーしており、Wordpress&Coには何年も前にバグがあったため、私のものを書き直さなければなりません。 これは他の人にも起こりますか? Apache mod_securityは、アプリケーション(特にPHP)に到達する前に、潜在的に危険なHTTPリクエストをブロックします。正規表現ベースのさまざまなフィルターセットを使用します。 だから私は技術的に適切なものなど、素晴らしい共有ホスティングプロバイダーを持っています。しかし、これは私を悩ませました: 先週&src=、mod_securityがすべての要求をブロックするため、アプリの1つでパラメーター名を変更する必要がありました。詳細は調べませんでしたが、このフィルタールールは、私が使用しておらず、おそらく聞いたこともない別のアプリの悪用を防ぎました。それでも、コードを書き換える必要がありました(パラメーターの名前を変更すると、mod_securityをだますのに十分です)。これは、何もすることも、それと共通することもありません! そして今日、phpのサンプルコードを送信したかったので、ばかげた正規表現がフォームの送信をブロックします。与えられた、これはmod_securityがそこから保護するためにある単純なものです。しかし、私はmod_securityが深刻に難読化されたコードを検出できるとは信じておらず、明らかな(そしてこの場合は完全に)単純なphpスニペットで起動します。 他の人がバグが発生しやすいアプリをリリースしたので、基本的に私はmod_securityによって罰せられています。(私のアプリが非常に安全であると言っているわけではありません-私はかなりセキュリティに警戒していますが、双曲線の主張 はしていません。)とにかくそれを無効にするようにプロバイダーに依頼しました。 どう思いますか?mod_securityはWPホスティングの外で大いに意味がありますか?それとも本当に長い間渡されたセキュリティバグのブラックリストのほんの束なのでしょうか?そのルールのどれが実際に役に立ちますか?同等のアプリケーションレベルはありますか?
9 php 

6
クイックソートで気になりませんか?
特に「標準」(非HPC)アプリケーションを作成する場合、どのソートアルゴリズムを選択するか、またはクイックソート(ほとんどのライブラリが単にソートと呼ぶもの)で解決するかを検討しますか?特定の状況ではある程度利益を生む可能性がありますが、一方で適切な最適化には、問題を分析してベンチマークを作成するためにある程度の時間が必要です。

4
なぜそんなに多くのプログラマーがオブジェクト有病率レイヤーを絶対に嫌うのですか?
普及率は、バイナリシリアル化と先行書き込みログに基づいて、メモリ内オブジェクトモデルにACIDプロパティを提供する簡単な手法です。それはこのように動作します: スナップショットから始めます。オブジェクトモデルをシリアル化し、ファイルに書き込みます。 ジャーナルファイルを作成します。オブジェクトモデルへの呼び出しごとに、呼び出しとその引数をシリアル化します。 ジャーナルが大きくなりすぎた場合、シャットダウンしている場合、またはその他の理由で便利な場合は、チェックポイントを実行します。新しいスナップショットを書き込み、ジャーナルを切り捨てます。 クラッシュまたはパワーヒットからロールバックまたは回復するには、最後のスナップショットをロードし、ジャーナルに記録されたすべての呼び出しを再実行します。 この作業を行うために必要な予防策は次のとおりです。 可変オブジェクト参照をエスケープさせたり、普及層に入れたりしないでください。RPCを実行しているかのように、何らかのプロキシまたはOIDスキームが必要です。(これは初心者によくある間違いであり、「洗礼問題」と呼ばれています。) 呼び出しから到達可能なすべてのロジックは完全に確定的でなければならず、ビジネスロジックにとって意味のあるI / OまたはOS呼び出しを実行してはなりません。診断ログへの書き込みはおそらく問題ありませんが、システム時刻を取得したり、非同期デリゲートを起動したりすることは、通常はできません。これは、別のマシンまたは別の時間に復元された場合でも、ジャーナルがまったく同じように再生されるようにするためです。(ほとんどの普及コードは、トランザクションのタイムスタンプを取得するための代替時間呼び出しを提供します。) ライターの並行性は、ジャーナルの解釈にあいまいさをもたらすため、禁止されています。 それは... 人々はそれにあまり適していない*プロジェクトにそれを使用しようとした後、彼らのために悪い味を開発しましたか? クラウス・ヴエステフェルトの激しい支持 は人々を止めましたか? 命令型プログラミングモデルが好きな人は、I / Oを計算から分離することを嫌い、代わりに計算をI / Oおよびスレッド呼び出しでインターリーブすることを好みますか? 普及層は概念的にシンプルで、フレームワークの特性に密接に結びついているため、通常はプロジェクト用にカスタムロールされ、それにより、異質/非標準/危険なものになりますか? あなたがやらないように注意しなければならないことをまっすぐに保つのはあまりにも難しいですか? 初心者は、学校で書くことを学んだ2層データベース駆動型アプリとは異なるものに直面すると、爆発するように見えるだけですか?;) * RAM内データセット全体のフィットは、あなたは作家の同時実行を必要としない、とあなたは、データウェアハウスに、アドホッククエリ、レポート、またはエクスポートを行う必要はありません。SQLiteへの謝罪により、普及は保存ファイルの改善であり、Oracleの代替ではありません。

2
インタビューで求めているトップ企業は何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 基本的に私はあなたが間抜けし、残りのプロセスから外れていることを何を探していますか? 除去ラウンドは人を判断する公正な方法ですか?誰でも悪い時間を過ごすことができます:-( あなたは可能な限り最高のコーディングをするべきですか、それとも正しいアルゴリズムを得るべきですか?私は通常、最初に実用的なソリューションをコーディングし、それから、私にとってそれが美しいと思うレベルまで作業します。これは間違ったアプローチですか? 最近、電話によるインタビューがありました。レベルオーダートラバーサルのバリエーションを20分で書くように依頼されました。アルゴリズムと作業コードを20分で取得できましたが、例外処理とコーディング規約を取得できなかったため、それらから返答がありませんでした:-(インタビューの他のすべての質問はうまくいきました「マークまで」ではなかった唯一のもの。 言うまでもなく、私はこの会社が好きで、また応募するつもりですが、次回はそれを正しくやりたいと思っています:-) あなたの経験と貴重な提案を共有してください。

7
母国語はコードの品質に影響を与えますか?
言語学には、問題解決は自分の母国語の言語の構文、意味論、文法、柔軟性に非常に関連しているという考え方の学派があります。 さまざまな国際開発チームと協力して、コードベースにメンタルカルチャー(あるとすれば)をはっきりと見ることができます。プログラミング言語は別として、ドイツ語のコーディングは、私のインドの同僚とはかなり異なります。同様に、コードは中米では沿岸アメリカとは明らかに異なります(実際、IBMはこの数年前に気づきました)。 コーディングスタイルと問題解決が母国語と一致していることに気づきましたか?

1
プログラミングファイルをディレクトリに整理するにはどうすればよいですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 場合によっては、探索的なプロトタイプを作成し、ディレクトリの構造を忘れることがあります... (いくつかのレベルの)ディレクトリにプログラミングファイルを分割する上での良いヒントは何ですか?

4
あなたは出荷しました、あなたはまれなセグメンテーションフォールトを受け取ります。ポインタをチェックするか、それを手放しますか?
出荷され、アサートがオフになっていると、コードでnullポインタ違反が発生したことを示すまれなクラッシュレポートが表示されます。開発環境では、問題はアサートによって検出されたはずです。 あなたが持っているのはクラッシュレポートだけなので、問題を再現することはほぼ不可能です。バックトレースを追跡しても、最初にクラッシュが発生した理由についての手がかりはありません。 オプション:-クラッシュを防ぐためにポインターチェックを追加します。これはクラッシュを防ぎますが、そもそもなぜそれが起こったのかさえわからないでしょう。-飛ばして、再現シナリオで再び起こることを願って アプリケーションが誘導ミスルまたは自動ブレーキシステムを対象としていないとしましょう... どちらを選びますか?
9 bug  pointers 


8
構文上の砂糖の厳密な定義?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 言語の聖戦のように、人々は常に「文法上の砂糖」として特に有用であるとは思えない機能を常に否定しています。「実際の機能」と「構文上の砂糖」の間の境界線は、これらの議論では曖昧になる傾向があります。シンタックスシュガーの合理的で明確な定義は、スピーカー/ライターが役に立たないと見なす機能として定義されないようにするものだと思いますか?

4
MVCはPHPプログラミングのSEOにすぎませんか?
およそ何億もの「PHPフレームワーク」があります。そしてそれらのほとんどは、MVCパターンに従って自分自身に請求します。osCommerceのコーディングスタイル(SQLとHTMLと非常に混ざり合った処理ロジック)を克服することは歓迎されますが、保守可能なアプリケーション設計を実現するためのアプローチは確かに単純で簡単です。 元のMVCコンセプトは、GUIアプリケーションを対象としていました。そして、Gtk / Pythonの場合は、それに応じて実行するのが現実的であるように思われます。しかし、PHP Webアプリはライブビュー(GUI要素)と永続的なコントローラーランタイムでは動作しません。使用されているコード+ディレクトリのグループ化またはクラスの名前付けだけを記述しているのであれば、それは間違いなく間違いです。 「MVC」は、PHPフレームワークの流行語のように使用されているようです。そして、私は実際に1つまたは2つの成熟したPHPフレームワークがそれを認めているのを見ましたが、とにかくフレーズを再定義して内部に一致させます。 それは一般的にヘビ油ですか?なぜより良い用語が使われず、メンテナンス可能なPHPのためのより賢明な概念が広まったのですか? いくつかの手の込んだ推論 PHPの実装が実際のMVCパターンに従っていないと思うのはなぜですか。 モデル:理論的には、モデルは太く、ビジネスロジックを含み、コントローラーはシンハンドラー(入力->出力)である必要があります。実際には、PHPフレームワークは浅いモデルを提唱しています。CIとSymfonyの例は、等価なモデル== ORMです。HTTP入力もコントローラーによって処理され、モデルとして扱われません。 ビュー:AJAXが割引された回避策。Webページにビューを含めることはできません。PHPフレームワークはまだページを送り出します。インターフェースは通常のHTTPモデルに準拠していますが、MVC以外のアプリケーションに勝る利点はありません。(そして最後に、広く普及しているphpフレームワークは、実際にはHTMLではなくGUIビューに出力できません。Gtk/ Console / Webを操作できるPHPライブラリを見たことがありますが、フレームワークはできません。) コントローラー:よくわかりません。コントローラーは、MVCモデルで長時間実行され、永続的にアクティブである必要はありません。ただし、PHPフレームワークのコンテキストでは、これらはほとんどがリクエストハンドラです。議論の余地があるものではありませんが、少し流行語のように感じます。 より良い記述子がありますか?PMVCやHMVCのような頭字語が使われるのを見てきました。そこには説明があいまいになっていますが、おそらくこれらは現在のWebフレームワークをあまり目立たなくしているのでしょうか?
9 php  mvc 

3
トレーサー弾丸を使用するためのいくつかの良い基準は何ですか?
最近、Pragmatic Programmerを初めて読んでいて、Tracer Bulletsの概念に出くわしました。私は過去にこのモデルに従ってコーディングしたことがあり、脳内で作業していた方法を「アジャイル」として提出しただけだと気付きました。 彼らは過去にそれを使用した場所の1つの例のみを示します。状況がトレーサー弾丸の良い候補であると特定された方法は、 多くの不明な点があり、多くの異なる環境があり、GUIがどのように動作するかを確信している人はいませんでした。 この種のプロジェクトは、膨大な数のプロジェクトの開始方法のように見えます。特に、例として、ヘッジファンドの一般的な基幹業務アプリケーションで技術者以外の人々と作業している場合はそうです。 私はそれが何と呼ばれているのか、私にそれを説明することを本当に知らずに、それが単に正しいと感じたのでそれを使用しました。全員を部屋に入れようとして、すべて(または少なくともいくつか)を前もって仕様化してもらうと、それは完全な惨事になることはわかっていましたが、これも一種の感じです... このモデルが最適な方法となる時期について、より具体的な基準を誰かが思い付くことができますか?

10
C#からJavaに切り替えて、気にする必要がある「落とし穴」はどれですか。
ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 新しいプロジェクトではJavaに切り替えなければならない場合があります。私はJavaについてほとんど知識がありません。私は主にC#を研究して使用しており、これら2つの言語/プラットフォームの違いが多くの問題を引き起こす可能性があることを恐れています。 私が気にする必要がある落とし穴/落とし穴はどれですか?
9 java  c#  .net  pitfalls 

4
静的メソッドを介してオブジェクトを渡すことが有利なのはなぜですか?
オブジェクトでメソッドを呼び出すよりも、静的メソッドを使用してオブジェクトへの参照をパラメーターとして渡すほうが有利なのはなぜですか? 私の意味を明確にするために、次のクラスを検討してください。 public class SomeClass { private double someValue; public SomeClass() { // Some constructor in which someValue is set } public void incrementValue() { someValue++; } } 静的メソッドを使用したこの代替実装と比較して: public class SomeClass { private double someValue; public SomeClass() { // Some constructor in which someValue is set } public static …

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