ソフトウェア工学

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

2
MySQLからPostgreSQLに切り替えますか?
昨年はMySQLに慣れてきましたが、そのトレンドの高まりとHerokuでWebアプリを均質化したいという願望から、代わりにPostgreSQLをWebアプリに使用したいと思います。PostgreSQLを学習するためのリソースはありますが、データベースの概念を最初から説明し直したくはありません。また、ほとんど同じものをすべて再学習する必要はありません。 MySQLとPostgreSQLの間で理解する必要がある重要な違いは何ですか-日常的に私に影響を与えるMySQLとPostgreSQLの間の?

3
PHPを使用する場合の(null!= $ object)と($ object!= null)の(ある場合)違いは何ですか?
私はJavaに慣れているので、条件は左から右に解釈されると常に考えています。つまりnull != $obj、$obj != null これは、PHPには当てはまらないようです。 常にnull左側から始めると、PHPで何か問題がありますか?Javaからの動作を維持できますか、それともPHPの条件を処理するときに何か他のことをするようにトレーニングする必要がありますか?


2
QAの誰かが極端なプログラミングプロジェクトで効果的に作業するには、どのようなプログラミングスキルが必要ですか?
まあ、タイトルは本当にすべてを語っていますが、少し詳しく説明すると、ランダムで通常は効果的なQA部門を担当し、XP環境での作業を学ぶことができます(もちろん、XPワークフローを習得するための学習曲線があります)。彼らは効果的になるためにより多くのプログラミングスキルを必要とするでしょうか?もしそうなら、彼らは何を知る必要がありますか?

1
Clojureなどの単一の単純な言語でHTML + JavaScript + CSS + Flash + Javaアプレットを置き換えることはできますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 アイデアをすぐに却下しないでください。すでに機能している(主に)主流のアプローチと競争するのは難しいことを知っているので、私の質問の一部は「学術的」です。 ClojureScriptが存在し非常に優れていることも知っていますが、これは既存の醜いものへのパッチであり、有用な抽象化です。 免責事項:私はプログラマーですが、Web開発者ではありません。そのため、他のユーザーのフィードバックを募集しています。開発者であり、毎日Webを使用していて、さまざまなトピックを読んだり、ページのhtmlソースを時々表示したりしていると、私はWeb開発について何か考えがあると思います。 とにかく、私がそれらを見るときの問題: Webは速くて汚い、初心者にやさしいものでしたが、今では優れた最新のインタラクティブなWebページを作成するにはかなりのスキルが必要です。これは多くの場合、迅速で汚い「21日でWebを学習する」だけではまったく効果がないことを意味します。 HTMLは、noobに適したプロトコルとして、迅速かつダーティに始まりました。現在は混乱しています。 JavaScript言語には欠陥がないわけではありませんが、問題ありません。 CSSは物事を片付けるためのまともな試みのようです。別のファイルで外観をスタイル設定できることは、少なくともそれについての考えを保持する価値があります。 まとめると、JavaScript + Html + CSSはかなりダーティになります。次のような問題を軽減する優れたアイデア/ツールがあります。AJAXライブラリは、JavaScriptの特定のフレーバーを抽象化します。JQuery、Node.jsなどの強力なライブラリを使用すると、JavaScriptでクールなことをそのまま不完全なものにすることができます。Google Web Kitは、GUIデザインをWebページに変換する上で非常に優れています。ウェブMVCは、このような抽象的なもの離れASP.Net、RoRの、ジャンゴとしてフレームワークとあなたのための足の仕事の多くを行う、もつとも、これらは安っぽいベースの上のすべての抽象化したものです。 今日のWebで実行できることに対する需要はますます高まっています。GoogleのChromeBookは、その現れです。ブラウザの全画面を実行し、キーボード/マウスの操作、サウンド、ビデオ、ゲーム、テキスト、画像、PowerPointプレゼンテーションなど、やりたいことすべてを実行します。高速なブラウザと高速なコンピュータ、そして「クラウド」に感謝しますが、はるかに良いかもしれません! グラフィックの観点から見ると、ブラウザは、何でもペイントできる長方形のキャンバスです。現在、ブラウザー実行可能ファイルは、Html、JavaScript、CSSを解析してすべてを表示する方法を知っている必要があるため、数メガバイトの重さがあります。 ゼロから始めて、ペイントするのはキャンバスにすぎないことに気付いた場合、ブラウザはもっと小さくてシンプルになると思います。支払うべき代償は、LispやClojureなどのファンキーな構文のすべてに対して有効なプログラムを作成しなければならないことです。以前はHTMLのクールな部分でした-段落を入力するだけの場合は、そのまま入力します。これはめったに起こりません。テキストの段落を入力するだけの場合は、インラインまたはCSSのスタイル設定、配置について考える必要があります。次のHTMLの一部(このサイトのフロントページにあります) <a href="/software/tagged/programming-languages" class="post-tag" title="show questions tagged 'programming-languages'" rel="tag">programming-languages</a> <a href="/software/tagged/learning" class="post-tag" title="show questions tagged 'learning'" rel="tag">learning</a> いくつかの代替Lispy構文よりも作成するのはそれほど簡単ではありません(そして、私はそれほど深く考えていません)。 (create-link :target "/questions/tagged/programming-languages" :class "post-tag" :title "show questions tagged 'programming-languages'" :rel "tag" :content …
8 web  standards 

3
プロトタイプベースのOOPの基本を理解するための簡単なJavascriptコード[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前休業。 私はしばらくJavaScriptを知っていますが、私はヘビーユーザーではありませんが、ネットスケープが私のブラウザだった頃から初めて知っていました。私は主なことをほとんど理解していますが、JavaScriptによるOOPへのアプローチは典型的なものであるため、把握するのに問題があります。 これに追加する1つの問題は、物事は複数の方法で行うことができるようです。ここでは、すべての例をテーブルに載せているため、本があまり役に立たないところです。 最初に必要なのはそれを行う唯一の方法です。もし誰かがプロトタイプのOOPモデルがどのように機能するかを見ることができる例の最も単純なコードで私を助けることができるなら? 役立つために、コードは継承されたオブジェクトを持ち、親のプロパティとその継承されたプロパティと親の関数にアクセスし、親の関数を上書きし、オブジェクトが他の2つのオブジェクトを継承する多重継承のインスタンスを持つ必要があります。

5
TopCoderやGoogleCodeなどのサイトに参加するメリットはありますか?
財務、雇用、認知などの明白な理由は別として、プログラミングの競争サイトを使用することの実際的/実際的な利点は何ですか? それはかなりアルゴリズム的で数学的に重いようですが、日常のプログラミングでは、それはどのように実用的なものにマッピングされますか?

5
抽象DAL-内部クラスでインターフェイスを使用しますか?
データアクセスレイヤー(DAL)と緊密に結合されたビジネスロジックレイヤー(BLL)があります。次のように呼び出します。 using (FooData data = new FooData()) { data.DoSomething(); } internalBLLだけがDALにアクセスできるように、すべてのデータクラスはであり、それらはロジッククラスと同じアセンブリにあることに注意することが重要です。 (ユニットテストを容易にするために)これらを分離するための1つのアイデアは、IFooDataのようなIDataClassインターフェイスを作成することです。インターフェイスを実装するためにデータクラスをパブリックにする必要があるため、最初は問題だと思いました。ただし、メソッドをパブリックにする必要がある場合でも、データクラスを内部に保持できるはずです。 public interface IFooData { void DoSomething(); } internal class FooData : IFooData // Notice the class is internal { public void DoSomething(); // Method is public, but that's ok because class is internal } したがって、メソッドがパブリックであっても、クラス自体は内部であるため、BLLアクセスのみを許可する必要があります。 このアプローチには本質的に問題がありますか?DALを公開して世界に公開することなく、ユニットテストのためにDALを抽象化するより良い方法はありますか?

4
「プライベート」インターフェースの使用例?
インターフェイスがクラスのパブリックプロパティと関数を定義する方法と同様の方法で、クラスの特定の内部プロパティと関数を適切に定義できる有効なユースケースがあるかどうか疑問に思いました。 人間を説明するクラスを構築する必要があるタスクを想像してみてください。 明らかに、各人間はヒューマノイドクリーチャーですが、すべてのヒューマノイドクリーチャーが人間であるとは限らないため、おそらく次のような機能を持つインターフェースIHumanoidがあります(ボディプランをクラスにハードコードすることは役に立たないため)。 public interface IHumanoid { function get head():IHead; function get torso():ITorso; function get leftArm():IArm; function get rightArm():IArm; function get leftLeg():ILeg; function get rightLeg():ILeg; } さらに、そして明らかに、各人間は哺乳動物ですが、すべての哺乳動物が人間であるとは限らないため、どこかに浮かぶ男性と女性の2つの定義を持つ別のインターフェイスIMammalがおそらくあります。 public interface IMammal { function procreate(partner:IMammal):void; } public interface IMaleMammal extends IMammal { function inseminate(female:IFemaleMammal):void; } public interface IFemaleMammal extends IMammal { function …

4
IDと変更可能な永続状態を持つエンティティは、関数型プログラミング言語でどのようにモデル化されますか?
この質問(ピートによって書かれた)への回答では、OOPとFPに関するいくつかの考慮事項があります。特に、FP言語は、同一性と変更可能な状態を持つ(永続的な)オブジェクトのモデリングにはあまり適していないことが推奨されます。 これが本当かどうか、つまり、関数型プログラミング言語でオブジェクトをモデル化する方法を考えていました。Haskellの基本的な知識から、モナドはなんらかの方法で使用できると思いましたが、このトピックについては明確な答えを出すのに十分な知識がありません。 それでは、アイデンティティと変更可能な永続状態を持つエンティティは通常、関数型言語でどのようにモデル化されますか? ここに、私が考えていることを明確にするための詳細をいくつか示します。(1)データベーステーブルからJavaオブジェクトにレコードを読み取る、(2)さまざまな方法でオブジェクトを変更する、(3)変更されたオブジェクトをデータベースに保存できる、典型的なJavaアプリケーションを取り上げます。 これはどのようにしてHaskellに実装されますか?最初にレコードをレコード値(データ定義で定義)に読み込み、この初期値に関数を適用してさまざまな変換を実行し(各中間値は元のレコードの新しい変更されたコピーです)、最終的なレコード値を書き込みますデータベースに。 これで全部ですか?各時点でレコードの1つのコピーのみが有効/アクセス可能であることをどのように確認できますか?同時にアクセスできるように、同じオブジェクトの異なるスナップショットを表す異なる不変の値を使用したくない場合があります。


1
スクラムのデザイン要素を含むユーザーストーリー
私たちはスクラムワークフローを実装しており、ユーザーストーリー、つまり完了したとき、イテレーションなどに頭を回そうとしています。私たちがよく行うことの1つは、初期のイテレーション中にストーリーに取り組み、それを完全に機能させることですが、 "醜い"。プレーンなボタンを使用し、画像は使用せず、テキストのみを使用して、ボタンが適切に機能していることを示します。私たちはお客様を紹介し、その動作に満足していることを確認してから、通常は提供された画像を使用して、機能の設計を完成させ、完成させます。 この例では、機能的に完成したときにユーザーストーリーを完成させ、「ユーザーとしてxyzを視覚的に魅力的にしたい」という効果を示す2番目のユーザーストーリーを作成して、設計フェーズを処理しますか?または、設計要素を取得して完了できたら、ユーザーストーリーをプロジェクトの最初の反復から後の方に移動するだけでしょうか。その場合、最初の数回の反復で1つか2つのストーリーしか完了せず、最後の数回の反復でTONのストーリーを完了していることがわかります。 このシナリオをどのように処理しますか?

3
Visual Studioとリモートでプログラミングをペアリングしますか?
プログラマーが同じ物理的な場所にいないときに、Visual Studioとのペアプログラミングを容易にするツールは何ですか?現時点では、音声(Skype?)とリモートデスクトップ(VNC?TeamViewer?)を考えていますが、他の提案や経験について知っておくとよいでしょう。また、Visual Studioと統合されるものは他にありますか? もう少し背景:私たちは経験豊富な2人の開発者であり、大規模な成熟したプロジェクト(ASP.NET、Windowsフォーム、SQL Server)で長い間協力してきました。ただし、通常、コードベースの同じ部分を同時に処理することはありません。私たちは数週間かけて大幅なリファクタリングを行うつもりであり、ペアプログラミングアプローチでこの作業を行うことができれば理想的です。

3
タグ内の終了セミコロンを省略する-良いアイデアですか?
タグ内の終了セミコロンを省略できます。 例: <table> <th><td>Name</td><td>Email</td> <? foreach ($receivers as $receiver): ?> <tr> <td><?= $receiver->name ?></td> <td><?= $recevier->email ?></td> </tr> <? endforeach ?> </table> の<? endforeach ?>後にセミコロンがないことに注意してくださいendforeach。PHPのドキュメントは 言います: PHPコードのブロックの終了タグは、自動的にセミコロンを意味します。PHPブロックの最終行をセミコロンで終了する必要はありません。 なぜ私はこのテーマを取り上げるのですか? 現在、私と私の友人は、MVC(model-view-controller)を使用した独自のPHPプロジェクトで働いています。そのため、私はSmarty、MustacheなどのPHPテンプレートエンジンをいくつか評価し、独自の自家製テンプレートエンジンを設計しました。しかし、PHP自体がテンプレートエンジンであることを読んだとき、何かが「クリック」しました。テンプレートエンジンとしてPHPの限定されたサブセットを使用することにチームで同意しないのはなぜですか?そして、ルールを守るために多くのコードレビューがありますか? このサブセットは次のようになります。 短いタグを使用し<?、<?=かつ?> 副作用のない単純な式のみを使用し、特に変数を割り当てない のみを使用しif、foreachし、includeステートメントの 制御構造に代替構文のみを使用する タグ内のステートメントはそれぞれ1つだけにしてください これは、終端のセミコロン、つまりfor <? endforeach ?>と<? endif ?>を省略しているコンテキスト<? include("list-contents.php") ?>です。 ただし、終端のセミコロンを省略することは悪い習慣であることをよく読みます。どうして?それは悪い習慣ですか? PHPが終端のセミコロンを省略できることで嬉しいです。これにより、テンプレートファイルの視覚的な混乱が最小限に抑えられます。あちこちに小さなPHPフラグメントのみが含まれたHTMLファイルのように見えるはずです。上記の例は私が努力しているものです。 これについてあなたはどう思いますか?あなたがそれに反対しているなら:なぜ?あなたがそれを支持するならば:なぜそれは良い考えでしょうか?セミコロンを省略することに対していくつかのテキストを彼が私に紹介している場合、パートナーに何を伝えればよいですか? 事実、参考資料、またはあなた自身の経験であなたの意見をバックアップしてください。
8 php  syntax 


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