ソフトウェア工学

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

7
技術系新興企業でのソフトウェアテストはどのように行われますか?
ソフトウェアテストの利点を誇る多くの研究記事や技術ブログを目にしました。私はそれを確信しました。しかし、すべてのソフトウェアテスト調査は大規模なソフトウェア会社によって行われているため、スタートアップに実際に適用されるとは思いません。新興企業には、大規模なソフトウェア会社とは異なるニーズと制約があるためです。 したがって、これは疑問を投げかけました。テック系スタートアップは自動テストを書くべきか?もしそうなら、それらは大手ソフトウェア会社と同じ方法で行われますか?(スモークテスト、回帰テストなど)。このトピックに関するいくつかの研究記事を参照できるのが最善です。自分で見つけることができなかったためです。 (私はまだキャリアの早い段階ですが、自動テストの作成に真剣に取り組んでいるスタートアップを見たことはありません)
10 testing  startup 

3
ORMを使用したDDDのビジネスロジックはどこに行くべきですか?
私は過去にMDA(モデル駆動型アーキテクチャ)ツールを使用しましたが、UMLを介してモデル化し、これにより、とりわけビジネスエンティティ(ドメインモデル)とORM(マッピングなど)が生成されました。 ドメインで動作するビジネスコードとサービスの多くはモデルの一部であり、リポジトリはビジネスエンティティを返していました(そのため、別のORMに切り替えることはできませんでした(望んでいなかった))。 しかし、今はプロジェクトを始めており、DDDについて考えたいと思います。 これまでのところ、ビジネスロジックをドメインモデルに入れ、リポジトリを介してORM(どちらを選択した場合でも)で作業するように感じています。ただし、アプリケーションのORM部分に引き続きMDAツールを使用したい場合、ここで作成されたモデルは非常に貧弱です(つまり、ビジネスロジックが含まれていません)。同様に、ORMにエンティティフレームワーク(.net)またはNHibernateを使用した場合、それも貧血モデルになります。NHibernateをそのまま使用した場合、ビジネスロジックをどこに置くかわかりません。 私はこのように考えるのは正しいですか、つまりDDDではドメイン内のすべてのビジネスロジックを使用し、リポジトリ経由で永続化するためにORMを使用するだけですか?

2
node.jsおよびc#の使用例
私はかなりのASP.NET作業(C#、MVC)を行っていますが、そのほとんどは典型的なWeb開発です。CRUDリポジトリーを使用してRestfulアーキテクチャーを実行します。私のクライアントのほとんどは、アプリケーション内に高度な要件をあまり持っていません。 私は現在node.jsを見ていて、パフォーマンスへの影響(私はスピードに夢中になっています)ですが、それほど深く掘り下げていません。 かしら node.jsは、C#およびASP.NET MVCでの私の典型的なWeb開発を現実的に置き換えることができます(既存のアプリを書き換えるのではなく、新しいアプリで作業する場合) node.jsは、既存のアーキテクチャに非同期機能を追加することで、ASP.NET MVCアプリを補完できます。 C#およびnode.jsのユースケースはありますか? 編集する 私はASP.NET MVCが大好きで、どこに行くのかとても興奮しています。node.jsを支持する特別なユースケースがあるかどうかを確認しようとしています

3
あなたは本当にあなたのjs、html、cssを別々に保つべきですか?
私はあなたのjs、html、およびcssを分離しておく方がよりクリーンであるといつも聞いたり読んだりします。おそらくそれは保守、デバッグをより簡単にします。それは縮小化/キャッシュすることができますので、たぶんそれは、より効率的であり、CSSやJSファイルを。 私に関する限り、Webフレームワーク(Django、Railsなど)、javascriptテンプレートライブラリなどを使用しています...単一のhtmlページを複数の再利用可能なテンプレートに分割する傾向があります。 。たとえば、ニュースフィードウィジェットや複数のウィジェットを選択することができます。各ウィジェットは、さまざまなページ全体で一貫したレイアウトを持ち、それぞれがJavaScriptの一部によって制御されています。 この組織では、可能な限りクリーンで再利用性を最大化しているように見えますが、すべてのjsとcssを別々のファイルに保存する方が簡単な理由を理解するのに苦労します。私はそれが例えばもっと簡単になると思います: で選択し、複数のウィジェットファイル html 基本的なCSSレイアウト 少しのJSによる直接対話の制御とUX拡張。 ファットjsファイルをスクロールしてからファットcssファイルに切り替えてスクロールする必要がなく、HTMLファイルにもう一度切り替える必要がないため、再利用可能ではるかに保守しやすいと思います。 。 したがって、通常推奨される分離に固執する場合は、皆さんがコードを編成する方法を知りたいです。 そうする正当な理由は本当にありますか? Web上のガイドは、通常、高度なツールを使用しないと想定しているのではないですか(この場合、ベストプラクティスのために、最新のオンラインリーディングを入手したいと思います)。 それは好みの問題ですか?

4
WebまたはSQL開発者向けのFizzBu​​zzタイプの質問は何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 しばらくして、私たちは再び採用し、プログラマーのためのテストを検討しています。それらのいくつかは少し時代遅れです。Web開発者とSQLに対するFizzBu​​zzタイプの質問にはどのようなものがありますか?つまり、それほど簡単ではありませんが、ペンと紙を使用してGoogleを使用しなくても、5〜10分で解決できますか。 私は通常、CVに基づいて候補者の約3分の2以上を排除し、その後、1時間の面接(電話で行うことができます)で少数を除くすべての候補者を排除します。この時点で、候補者は性格テストを作成しており、FizzBu​​zzのようなコードを少し書く機会があります。したがって、私は多数の候補者を排除しようとはしていませんが、候補者が採用可能でコーディング可能であるという私の最初の評価を検証しようとしています。
10 interview 

7
コードを記述できる状態から優れた開発者になるにはどうすればよいですか?
スクリプト(bash、awk)から単純なアプリケーション(c、php、python)を記述して、より大きく複雑なソフトウェアを設計および開発する方法に至る具体的な説明がないことに私は不満を感じています。一方にはプログラミング言語の本があり、もう一方にはプログラマーのチーム向けに設計されたソフトウェアエンジニアリング/プロジェクト管理の本があるようです。 私は両方をたくさん読みました。私はXP / Agileの古典を読んだことがあり、ソフトウェア開発プロセスについて適切な理論的理解を持っています。私は他の人のコードを読むのが好きで、それをかなり順守できます。しかし、プロジェクトのアイデアがある場合、または「ここが問題/必要です」から「ここが解決策」に行きたいとき、私の心は空白を描き、どこから始めればよいのかわかりません。 私はそれをハックするだけですか?チームで働いていない個々の開発者や、大きなソフトウェア会社のための構造化されたワークフローはありますか?私はPMPを取得したり、ソフトウェア会社で働いたりすることを望んでいません。効果的、効率的、実用的なワークフローを探しています。

6
「Webポータル」という用語は廃止されましたか?
私の上司は、常に取り組んでいるプロジェクトに「ポータル」という用語を使用しています。 私には、この言葉は90年代後半のYahooを思い起こさせます。「ポータル」という言葉には昔ながらの意味がありますか、それとも私だけですか?それを使用しても大丈夫だと思いますか、それともクライアントの製品に対する認識を中年に引き下げますか?

5
ユニットテストの前または後にコードレビューを実行する必要があります
ユニットテストの前または後に、コードレビューをいつ実行するかについて同僚と議論しています。ベストプラクティスは何ですか? 考慮に入れる必要があるいくつかの要因(さらにある場合があります): コード変更のサイズ-大きな変更は、コードレビューからさらに多くの変更が行われることを意味します。これらの変更が大きい場合、UTがコードレビューの前だった場合は、ほとんどのUTを再度繰り返す必要があります。 単体テストの実行に必要な時間 新しい機能ですか、それともバグ修正ですか

3
開発者としてコードレビューの準備ができていますか?
ここでいくつかのアイデアを探しています。 私は「コードレビューはどのように実行し、コードレビューを実行する必要がありますか」という記事を読みました。これは非常に有益でしたが、以下の質問をさらに明確にする必要があります。 私の質問は、 ターゲットの開発者として、コードをレビューする前に、開発者が組み込むことができるいくつかのベストプラクティスを提案できますか。 現在、私は以下の方法を練習しています 論理フローのPPT 詳細なコメント。 問題:上記のプラクティスを実装しましたが、レビューには役立ちません。私が直面した問題は、特定のロジックが参照されると、実装とフローを探し続け、プロセスに時間がかかりすぎて、人々の神経質になってしまうことです。 多くの開発者も私が経験していることを経験していると思います。
10 c#  code-reviews 

5
同じ関数/メソッドでの例外のスローとキャッチ
ユーザーが正の整数(自然数)を入力するまで、ユーザーに入力を求める関数を作成しました。誰かが、関数で例外をスローしてキャッチしてはならず、関数の呼び出し元に例外を処理させるべきだと誰かが言った。 他の開発者はこれについてどう思いますか。また、おそらく関数の例外を誤用しています。Javaのコードは次のとおりです。 private static int sideInput() { int side = 0; String input; Scanner scanner = new Scanner(System.in); do { System.out.print("Side length: "); input = scanner.nextLine(); try { side = Integer.parseInt(input); if (side <= 0) { // probably a misuse of exceptions throw new NumberFormatException(); } } catch (NumberFormatException numFormExc) …
10 exceptions 

5
メソッドコメントには、よく似ている場合に、概要と戻り説明の両方を含める必要がありますか?
私は適切に文書化されたコードの支持者であり、そのコードの考えられる欠点をよく知っています。それはこの質問の範囲外です。 Visual StudioのIntelliSenseがどれだけ好きかを考慮して、すべてのパブリックメンバーにXMLコメントを追加するというルールに従うのが好きです。 ただし、冗長性には1つの形式があり、私のような過度のコメンターでさえも気になります。例として、List.Exists()を取ります。 /// <summary> /// Determines whether the List<T> contains elements /// that match the conditions defined by the specified predicate. /// </summary> /// <returns> /// true if the List<T> contains one or more elements that match the /// conditions defined by the specified predicate; otherwise, false. /// …

5
Javaは、C ++のように、クラス定義と実装の分離を促進しますか?
私は宿題をしていて、GRASPの「保護されたバリエーション」に従って、どちらのアプローチがより良いかを評価する必要があります。Stack Overflowで、C ++でのヘッダーファイルとコードファイルの分離に関する質問を見つけました。 ただし、Javaがクラス定義とクラス実装の分離を促進する際にC ++に従わない理由を知りたいのですが。C ++メソッドに比べて、Javaメソッドには利点がありますか?

5
プログラミング言語の分析
でSICP、著者の状態(セクション1.1プログラミング言語の三つの基本的な「仕組み」があるということ): 言語が関係する最も単純なエンティティを表すプリミティブ式 組み合わせの手段。これにより、複合要素はより単純な要素から構築されます 抽象化の手段。これにより、複合要素に名前を付けて、ユニットとして操作できます。 これらの要素やメカニズムの観点から主流のプログラミング言語(Javaなど)を分析するにはどうすればよいですか?

2
ASP.NETの背景から来て、PHPに慣れるための良い方法は何ですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 4年前休業。 現在、ASP.NET環境でツールやWebアプリを構築することに非常に慣れています。C#、ASP.NET、MVC 3、Visual Studioなどが本当に好きなので、私は本当にtbhを離れるつもりはありません。 しかし、今のところ、PHPについてはほとんど何も知りません。それを是正したい欠陥のようです。 PHPを学ぶのに良いリソースとなる本(または他の学習方法)はありますか?明らかに、最初のPHPの本はたくさんありますが、私はすでにWebページの構築に関連する多くのことに慣れており、一部の最初のPHPの本の範囲と互換性がないかもしれないPHP自体に焦点を当てることに興味があります。 私はPHPマニュアルをかなり読みましたが、理想的なほどスムーズに流れていないようです。適切な初心者向けのPHPブックはありますか?これらのサンプルを見ると、ほとんどの本に含まれるまとまりがありません。たくさんの情報がありますが、それは、主要な学習手段よりもコーディング中の参照のように感じられます。

3
トーナメントの対戦をスケジュールするための既知のアルゴリズムはありますか?
トーナメントのスケジューリングアルゴリズムがすでに存在していて、それを使用したり、少しだけ適応したりできるかどうか疑問に思っています。 これが私の要件です: 可変数のチーム/クラブに属する可変数の対戦相手は、それぞれ対戦相手とペアにする必要があります 2人の対戦相手が同じクラブに所属することはできません プレーヤーの数が奇数の場合、そのうちの1人がランダムに選択され、さようならを取得します この種の要件セットに関連するアルゴリズムがあれば幸いです。 編集:これを最大1回実行するだけで、トーナメントの最初の「ラウンド」の対戦を作成できます。
10 algorithms 

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