問題タブ [methodology]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
architecture - ソフトウェアプロジェクトのモジュール化を実現する方法
非常に緩い結合を実現するための最良の方法は何ですか?
システム内の他の部分に依存している部分がないようにソフトウェアを極端にモジュール化したいが、それでも通信できる場合は、この目標を達成するために(テクノロジーにとらわれない)使用する必要があります。
提案をお願いします、これをブレインストーミングと考えてください... :)
project-management - スクラム - あなたはニワトリですか、それともブタですか?
私はちょうどスクラムについて学んでいるので、イテレーションの一部ではニワトリであるかもしれませんが、自分の役割を果たせばブタになるように思えます。その後、ニワトリに戻ります。これは正しい考え方ですか?反復中にあなたの利害関係が変化することはありますか? そうでない場合、それはどのように機能しますか?ソフトウェアが構築されると、計画、コーディング、テスト、改良が行われ、完成します。私の考えは間違っていますか?ありがとう!
domain-driven-design - ドメイン駆動設計 - 技術ドメインとの関連性は?
これは、DDD についてしばらくの間私を悩ませてきたことの 1 つです。複雑なモデルがあり、技術者と非技術分野の専門家の間で多くのやり取りが必要な非技術ビジネス ドメインを扱う場合、このアプローチの利点がはっきりとわかります。
しかし、問題の「ドメイン」が技術的なものである場合はどうでしょうか?
たとえば、状況 A) は、Web スタートアップを取り上げます。彼らが非常に複雑なこと (Facebook のクローンなど) を達成しようとしていると想像してみてください。ただし、ほとんどすべてのスタッフが技術者です (または、少なくとも技術的な理解が深まっています)。
状況 B) 同様の状況ですが、野心的ではないプロジェクトで、1 人の開発者がエレガントなアーキテクチャで何かを作成しようとしています。
私は人々が何を言わなければならないかを聞くことに本当に興味があります. 私が本当に理解しようとしているのは、DDD の利点がどこにあるのか、どのような欠点があるのか、そしてどの時点で一方が他方を上回っているのかということです...
unit-testing - プログラムを装った大規模なテストの展開
誰かが (単体) テストをロジックとして使用する小さな診断用の内部 Web アプリを作成した場合、それを行う正当な理由はありますか? Nunit は、この Web サイトのどこにでも展開する必要があることに注意してください。
私は、プログラムには独自のロジックと再利用可能な部分 (利用可能な場合) を含める必要がありますが、ロジックのテストをラップするべきではないと考えています。テストは、コード ロジックの検証を目的としています。テストがコード ロジックになると言うなら、テストを検証するためにテストを書く必要があるのではないでしょうか? なぜそれが根本的に間違っているのですか?
ヒント: これらのテストをすべてつなぎ合わせて相互に関連付けているため、依存関係がなくなっている (?)。
design-patterns - メソッド フラグまたは新しいメソッドを使用しますか?
何かを行い、さらに情報をログに記録するメソッドがある場合、ログを記録したりフラグを使用したりしたくない場合は、新しいメソッドを作成する必要がありますか?
...対...
私のシナリオは単純で、主に flag パラメーターに関心があります。これは、同じメソッド内で多くの if...else if...else if シナリオを作成する列挙型である可能性があります。別の名前で新しいメソッドを作成するだけではありません。メソッドが 1 つの責任を持つことができるので、私は 2 番目の解決策 (新しい方法) を支持します。基本的に、それはより単純なソリューションです。
フラグ バージョンを使用する理由は何ですか?
php - 最高のPHPワークフロー
EclipseでPHPWebページを操作するための最良の方法は何か疑問に思っています。
たとえば、私が通常行うことは、サーバー上のファイルへのリモートリンクを使用してプロジェクトを作成することです。このようにして、変更を加えて->保存して->ブラウザですぐに効果を確認できます。
ただし、この方法では、リモートファイルをSVNにコミットすることはできません。ローカルの作業コピーをSVNからチェックアウトすることができます。次に、変更を加えるたびにファイルをサーバーにコピー/エクスポートしますが、それはすぐに煩わしくなります。
私の質問は、EclipseでPHPプロジェクトを実行/デバッグ/テスト/コミットするためのワークフローまたは方法は何ですか?
php - テスト駆動開発を試す
この投稿を読んで、私は質問者と同じ立場にいると感じました。私はテクノロジーが大好きで、現実世界の問題を解決するための新しいアイデアを思いつくと、神経細胞が興奮しますが、方程式の他の部分である実際に物事を (速く) 成し遂げるということは、通常、達成するのに苦労します。私は自分のためにこれをやっています。
コードに飽き飽きすることもあれば、テキスト エディターでカーソルを動かしたり、コードを見つめたりして、既存のソリューションよりも優れたソリューションを考え出すことに時間を費やしていることもあります。これは完璧主義という病気だと聞きました。
私はその同じ投稿を読んだことがあります (また、SO でここでも数回)、TDD は実際には女の子のようにコーディングをやめるのに適していることを読みましたが、TDD でチャンスを与えたことはありません。それを学ぶ/設定するか、頭の中で必要なすべてのテストを実行できるので、必要ないと思うからです。
- また、TDD が実際に GTD に役立つと思いますか?
- TDD について知っておくべきことは何ですか?
- TDD に代わるものは?
- TDD Web アプリを編成/開発するための最良の方法論は何ですか?
- 私の生活を楽にするために、どのライブラリを使用する必要がありますか?
PS: ここでは、主に (排他的ではありませんが) PHP を使用しています。
design-patterns - IoCとDIを使用しないのはいつですか?
IoCとDIがどれほど優れているかについて多くの記事がありますが、コードがより複雑になる可能性があるため、IoCがそれほど優れていない理由については何もありません。また、IoCをコードのコア部分に含めるのではなく、ライブラリとプラグインに含める必要があることもわかりました。記事は通常、2つのパターンがコードをより複雑にする方法についての小さな参照ですが、その詳細についてはあまり説明していません。それが私の質問です-これらのパターンを具体的にどこで使用すべきではありませんか?
これは素晴らしいスレッドです:制御の反転とは何ですか?。さらに下を見ると、スペルチェッカーに関する投稿と、スペルチェッカーが1つしかない場合にIoCがおそらく適切に使用されない方法に関する別の投稿があります。一般的なガイドラインとして、IoCを使用すべきではありません。インターフェイスに具体的なクラスが1つしかないのでしょうか。つまり、私はIMyClassを持っています。そして、IMyClassを実装する具体的なMyClassAだけを用意します。なぜそこにIoCが欲しいのですか?
MyClassA、MyClassB、およびMyClassCがあり、それぞれがIMyClassを実装している場合、これらはおそらくIoCの適切な候補です。
同じスレッドから、この投稿の意味を誰かが知っていますか?
- 制御の反転=結婚
- IOCコンテナ=妻
agile - アジャイルは開発者として本当に役に立ちましたか?
私は、アジャイルがうまく機能している多くの人々に会ってきました。彼らのほとんどは、仕事を計画して委任するマネージャーやアーキテクトである傾向があります。しかし、アジャイルが自分たちのために働いていると確信している優れた開発者はあまり見当たりません。
もちろん、アジャイルがうまく機能していない場合は、正しく行っていないと言えます。しかし、アジャイルのリミックスが何であれ、それは開発者としてのあなたにとってうまくいっていますか? なぜ?従来の (またはそれに近い) チーム構造の中で、アジャイルは自己管理というよりもマイクロ管理の一種のように感じられると考える人は他にいますか?
methodology - OOAD「isa」階層で説明する必要があります
私はオブジェクト指向の分析とアプリケーションを使用した設計を購入しました。64ページの段落2で、以下のような「isa」階層について説明しています。
その「isa」階層に関しては、高レベルの抽象化が一般化され、低レベルの抽象化が特殊化されます。したがって、FlowerクラスはPlantクラスよりも抽象化のレベルが高いと言えます。
私が理解しているように、私は植物が花よりも一般化されていると思います。花のクラスは植物よりも抽象化のレベルが低くなっています。
この時点で私の理解が正しいのか、それとも本が正しいのか知りたいですか?はっきりさせてください。