ソフトウェア工学

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

1
プログラミングにおける用語コンテキストの意味は何ですか
私はいくつかのObjective Cのドキュメントを見ていた..これを得た: UIGraphicsBeginImageContext:ビットマップベースのグラフィックスコンテキストを作成し、それを現在のコンテキストにします。 また、Robotlegsでも同じ用語が使用されています。 (http://www.adobe.com/devnet/actionscript/articles/intro-robotlegs-pt1.html)コンテキスト:コンテキストは、依存性注入とRobotlegsが使用するさまざまなコアユーティリティを初期化するブートストラップメカニズムです。 i googledとしてのコンテキストの辞書の意味は、プログラミングで使用される方法と一致しないようです con・text / ˈkäntekst /名詞イベント、ステートメント、またはアイデアの設定を形成し、その観点から完全に理解および評価できる状況。 単語またはパッセージの前後にあり、その意味を明確にする、書かれたまたは話された何かの部分。 誰でもいくつかの軽いplsを投げることができます! V.

5
おそらく役に立たない例外処理でコードを強化する
コードの別の部分が正しくコーディングされていない場合に備えて、無駄な例外処理を実装することをお勧めしますか? 基本的な例 単純なものなので、私は皆を失うわけではありません:)。 データベースから抽出されたデータを人の情報(名前、住所など)を表示するアプリを書いているとしましょう。私がUI部分をコーディングしている人で、他の誰かがDBクエリコードを書いているとしましょう。 ここで、アプリの仕様で、人の情報が不完全な場合(データベースに名前がないなど)、クエリをコーディングしている人が、不足しているフィールドに「NA」を返すことでこれを処理する必要があると考えているとします。 クエリのコーディングが不十分で、このケースを処理できない場合はどうなりますか?クエリを作成した人が不完全な結果を処理し、情報を表示しようとすると、コードが空のものを表示する準備ができていないため、すべてがクラッシュするとどうなりますか? この例は非常に基本的なものです。私はあなたのほとんどが「あなたの問題ではない、あなたはこのクラッシュの責任を負わない」と言うと信じています。ただし、クラッシュするのは依然としてコードの一部です。 もう一つの例 今、私がクエリを書いている人だとしましょう。仕様は上記と同じではありませんが、「挿入」クエリを作成する人は、データベースに人を追加するときにすべてのフィールドが完全であることを確認して、不完全な情報を挿入しないようにする必要があります。UIの人に完全な情報を提供するために、「選択」クエリを保護する必要がありますか? 質問 仕様に「この人がこの状況を処理する責任者である」と明示的に述べていない場合はどうなりますか?第三者が別のクエリ(最初のクエリに似ていますが、別のDB上にある)を実装し、UIコードを使用してそれを表示しますが、コードでこのケースを処理しない場合はどうなりますか? 私が悪いケースを処理することになっていない場合でも、起こりうるクラッシュを防ぐために必要なことをすべきですか? 私はここで衝突を解決していないので、「(彼)がクラッシュの原因である」などの答えを探していません。私の責任ではない状況からコードを保護する必要があります処理する?ここでは、単純な「空の場合は何かを行う」で十分です。 一般に、この質問は冗長な例外処理に取り組んでいます。私がそれを求めているのは、私がプロジェクトで一人で作業するとき、「万が一に備えて」何か間違ったことをして、悪いケースを通過させるために、連続する関数で同様の例外処理を2〜3回コーディングする可能性があるためです。

4
LinuxでIntel C / C ++コンパイラを使用して、Windowsでリンクされるオブジェクトファイルを作成することは可能ですか?
どうして? ソースにもよりますが、Intelコンパイラは、x86アーキテクチャ用の最速の実行可能ファイルを生成するコンパイラである可能性が最も高いです(5〜100%の実行時間の改善)。 IntelはLinux向けのコンパイラを非商用ライセンスで無料で提供しています(Intel-Non-Commercial Software Developmentのページのどこかで無料だと思います)。学生向けの無料の非商用ライセンスもありますが、3つの主要なオペレーティングシステムすべてにツールが提供されていますが、このライセンスは適用されません(評判の制限によりリンクが削除されました)。 ゴール 私(非学生として)は、非商用ライセンスの下でインテルコンパイラを使用して実行速度を向上させ、Windows(および場合によってはOSバツ) 詳細: このドキュメントから推測したことは、Intelコンパイラはプラットフォームの主要なコンパイラと互換性のあるオブジェクトファイルを作成するということです。 サブ質問: WindowsおよびLinux(現在のバージョン)のgcc、g ++、cl、mingw32、icc、icpc、iclのオブジェクトファイル形式は何ですか? mingw32クロスコンパイラツールチェーンの一部を使用して目標を達成できますか? 生成されたオブジェクトファイルのメタデータが主な問題だと思いますか? ad 2: mingw32-objcopyは、Linux(おそらくELF)上のIntelコンパイラ出力をMicrosoft互換のCOFFに変換できるようです(ただし、再配置可能なオブジェクトファイルの例外があります)。誰かがこれが実際に機能することを確認できますか(重要でないアプリケーションの場合)、お願いします。

4
静的に型指定されたWebスクリプト言語はありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 閉じた2年前。 Webサーバーバックエンドをセットアップするには、主に2つの方法があるようです。LAMPスタックを使用して、PHPやPython(または、Pで始まらないRubyまたはJavaScript)のようなサーバーサイドコードを使用できます。これらのスクリプト言語は、動的に型付けされる傾向があります。動的に型付けされた言語がもたらすパフォーマンス、正確性、および保守性が、すべてのページ生成ロジックが外部スクリプトに格納されているため、サーバーの更新は簡単です。 広く使用されている他の主要なアーキテクチャスタイルはASP.NETで、ページ生成ロジックはコンパイルされたコードで記述されています。これは静的に型付けされた言語を使用する傾向があるため、コンパイラーの利点を備えたコードを取得しますが、すべてのページ生成ロジックはサーバーにコンパイルされます。つまり、何かを変更する必要がある場合、サーバーを停止し、新しいビルドに置き換えてください。 だから、私は不思議に思う。両方の長所のために、静的型付けを使用するサーバー側スクリプト言語はありますか?

1
Google Blink(新しいWebKitフォーク):「DOMをJavascriptに移動する」という意味ですか?
Blinkブログから: 最後に、Document Object Model(DOM)全体をJavaScriptに移動するなど、さらに大きなアイデアを検討したいと思います。 これは何を意味するのでしょうか?それ平均WebKitのDOMは、現在されていない JavaScriptでなく、他のいくつかの言語でコーディングされましたか?彼らはより多くのパブリックアクセサーをDOMに公開したいということですか?または何?
12 javascript  dom 

1
機能的リアクティブ/リレーショナルプログラミング–違いはありますか?
私が使用してきた反応ココア(GitHubによる)、機能性反応性今しばらくの間、ココアライブラリで使用するためのプログラミングAPIを、ちょうど読みました「タールピットのアウト」、おそらくその背後にある概念を提示することを紙、私は少し混乱しています。 この論文は(私が理解しているように)関数関係プログラミングを提示します。データ間の関係は、必要な「偶発的な」ロジックと状態の量を減らすためにFRPシステムによって強制される条件で作成されます。 私の質問は、これらの2つの概念-FR(eactive)PとFR(elational)Pは本質的に同じものですか(前者は後者の実装にすぎません)、または2つのコアの違いはありますか?残念ながら、現時点では、この分野に関する私の知識は、それらを十分に差別化するのに十分ではありません。 違いがある場合は、名前が示すように、データの変更に反応しているように見えます。確かに、Reactive Cocoa(およびC#のRx)には、データの変更でトリガーされるシグナルを作成するという概念があり、時間をかけて継続的に値を変更するために使用できます。 これは違いですか?そうでない場合、何ですか? (不適切なタグ付けはご容赦ください。関連するタグが見つからず、まだ作成できません。可能な場合は、タグをより適切なものに更新してください。)

1
ビルドスクリプトとビルドサーバーの責任
ビルドスクリプトとビルドサーバーの責任について明確にする必要があります。 継続的な統合とビルドに関するいくつかのネット上の記事を読みました。含む F5キーはビルドプロセスではありません ビルドサーバー:プロジェクトのハートモニター 毎日のビルドはあなたの友達 そして、私たちのソフトウェアのビルドプロセスについてアドバイザーと会話しました。彼は非常に経験豊富であるため、私は彼の発言を信頼しますが、混乱が残りました。 私が理解しているように、私の研究から(そして私が尋ねているのでここで私を修正してください)理想は次のようになるはずです: すべてのプロジェクトにはビルドスクリプトがあります このスクリプトはプロジェクトをビルドします このスクリプトは、依存関係が以前に構築されていることを確認します 依存関係は他のプロジェクトになる可能性があるため、独自のビルドスクリプトを使用すると、ツリーのような階層が生じます。すべてのプロジェクトとアプリケーションをビルドするトップビルドスクリプトがある場合があります。 ただし、ビルドサーバーの責任は次のとおりです。 リポジトリをチェックアウトする ビルドをトリガーする トリガーテストおよびその他のQAツール アーティファクトを利用可能にする これは、手動で、夜間に、またはリポジトリが変更されるたびにトリガーされます。 私のアドバイザーの目的は、私が理解しているように、1つのビルドスクリプトは柔軟性がなく、維持できない方法であるということです(レガシーコードベース用に作成するのに非常に時間がかかるという事実は別として)。また、ビルドサーバーは依存関係を維持する必要があります。たとえば、新しい依存関係を作成するときに古い依存関係を使用すると失敗します。特にAnt、具体的な主題であったため、コードベースで使用されるあらゆる種類の異なるテクノロジーを構築することはできず、依存関係を維持することもできません。 目的を詳しく説明して、責任を明確にしてください。

5
新しい会社でコーディングを開始するのに必要な時間[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 私は4年間ソフトウェアエンジニアであり、初めて会社を変更したばかりです。 会社はペアプログラミングを使用しており、3日間で、1行もコードを書くことができませんでした。前の会社で非常に生産的だったので、私はとてもイライラしています。 コードベースは大きく、rspec、haml、jasmineなど、私がよく知らない5〜6個の言語/ツールを使用しています。それでも、私はひどい気持ちになります。 今週の週末、アプリケーションの理解を深めるためにUMLを作成しましたが、今週は十分な量のコードを書くことができないと思います。 これは正常ですか? 仕事を変えて、なじみのない言語/ライブラリで書かれた大きなコードベースに飛び込むときのあなたの経験は何ですか。 もちろん、正確な所要時間を求めているわけではありませんが、過去の経験やプロセスを作成するための事柄は素晴らしいことです。 ところで、私はすでに以下の質問と回答を読んでいます、 どのようにして大規模なコードベースに飛び込みますか? /programming/215076/whats-the-best-way-to-become-familiar-with-a-large-codebase /programming/214605/the-best-way-to-familiarize-yourself-with-an-inherited-codebase 更新 すべての素晴らしい提案!私はちょうど仕事から来ました、私はたくさん働きました! ペアプログラミングについて: 一般的に彼らはコードを書いており、私は一瞬でも見逃さないようにしています!コードを記述しようとすると、どのファイルを編集すればよいかわからないため、永遠に時間がかかることはわかっていますが、それ以外にも、6-7言語/フレームワークを使用しています。これらの構文すべてを一度に理解し、習得することは容易ではありません。 会社がエンジニアのためにどれだけ準備していたか: 彼らはよく組織されているとは言えません。彼らは私がすぐにコードを書き始めることを期待しています。 積極的にメモをとる: データモデルに関する新しいコマンドや何かを書くときは、常にメモを取っています。私の仲間はとても頭が良くて親切な人たちで、私はたくさんの質問をしようとしています。 これは一般的ですか?: @Telastyn、答えてくれてありがとう、少し気分が良くなりました。私の問題はそれほど珍しいことではないようですが、この仕事の前は本当に生産的でしたが、今では本当に役に立たず、賢くないと感じています。 すぐにバグの解決/問題の実装を開始できることを願っています。 使用するフレームワーク/言語について: 私はそれについて本当に正直でした、私は私が実際に知らない何かを知っているとは言いませんでした。しかし、私はそれほど多くのことを期待していませんでした、そして私が申し出を受け入れた日に仕事を始めたので、私は自分自身を準備する時間を持っていませんでした。 @Southpaw Hare、あなたの経験を共有してくれてありがとう。あなたは、絶対に正しい。これらすべてのことを学べるという保証はありませんが、試しています。最後に、すべての構文を一度に学ぶことは難しく、それも主な問題だと思います。私はその言語を知っているのでルビーコードでうまくナビゲートでき、ブラウザインスペクターのおかげでjsコードでナビゲートできるが、問題は私が知らないフレームワーク/言語で実際のコードを書くことです。

5
Gitバージョンをビルド番号として統合するかどうか
同僚と私は、現在のgitリポジトリから派生したバージョンをビルドするたびにコードに統合することの問題/メリットを交互に議論/議論しています。 メリットは次のとおりです。 バージョン番号を更新する際に人的エラーを心配する必要はありません デバイスで見つかったものと、そのソースコードのソースコードとの間のトレーサビリティ (私たちにとって)発生した問題は次のとおりです。 IDE派生ビルドシステム(MPLABXなど)は、これらの種類のフックをどこに配置するのかを把握するのを難しくする可能性があります(最終的にはかなり安っぽくなります) これをビルドスクリプト/メイクファイルに実際に統合するためのさらなる作業 特定のビルドアプローチ(たとえば、1人がXCodeと他のMPLABXを使用してビルドした場合)へのカップリングは、ダウンストリームのサプライズを作成する可能性があります だから私たちは他の人がこの議論に上陸した場所に興味があります。議論が逸話になるのは本当に簡単です。エンドツーエンドの自動化に固執し、先行作業とそれが生み出すカップリングの量を掛ける人が大勢います。そして、議論の反対側には多くの人がいます。彼らは、最も簡単なことをして、リスクを抱えて生きています。 どの側に着陸するのが最適であるかについて、合理的な答えはありますか?
12 c  git  builds  build-system 

2
JavaがC ++のようなプライベート/保護された継承をサポートしないのはなぜですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 C ++でクラスを継承している間、ユーザーは次のようなアクセス指定子を指定できます。 class Base { public int mem1; protected in mem2; }; class Derived1 : **private** Base { // mem1 will be private here. // mem2 will be private here. }; class Derived2 : **protected** Base { // mem1 will be protected here. // mem2 will be protected …

2
クラス、列挙型、およびその他のエンティティを個別のファイルに配置する必要がありますか?
私の会社のチームリーダー\アーキテクトは、「ロジックで接続されたエンティティ」が1つの.csファイルに配置されていると、大規模プロジェクトの方が理解しやすいと主張しています。 私は引用する: 「ロジックとインターフェースとクラスの構造全体を1か所で見ることができます。これは反論の余地のない議論です。同じことを見るために、ツールを使用するために必要なファイルがたくさんあります図、ナビゲーション用のR#など」 「貧弱な理論に従って、分離したファイルの軍隊はクールだと叫ぶかもしれませんが、既存のコードに変更を加えることになると、特にこのコードの作成者ではない場合、たくさんの散在するファイルを理解することは非常に困難です。フォーラムでは、「1つの列挙-1つのファイル」と書くことができますが、実際にはこのアプローチは決して使用すべきではありません 「...開発者間でのコードベースの分離に関しては、現在では同じファイルを同時に編集することは問題ではありません。マージは問題ではありません。」 列挙型、クラスなどごとに1つの.csファイルを作成する必要があることを何度も耳にし、読んでいます。これがベストプラクティスです。 しかし、私は彼を納得させることはできません。彼は、Jon Skeetのような有名なプログラマーを信頼していないと言います。ところで、このトピックに関するスキートの意見は次のとおりです。列挙型を見つけるのに最適な場所はどこですか? どう思いますか?本当の問題はありますか?または、それは趣味の問題であり、組織のコーディング標準によって規制されるべきですか?

2
依存性注入のスタイルの実際の違いは何ですか?
依存性注入は初めてなので、アプリケーションでどのスタイルを使用すべきかについていくつか質問があります。Martin FowlerによるInversion of Control ContainersとDependency Injectionパターンを読んだばかりですが、コンストラクター、セッター、インターフェースインジェクションの実際の違いを理解することはできません。 どちらか一方を使用する理由は、コードのクリーニングおよび/または明快さの問題だけであるように思えます。違いはなんですか?あるものを他のものよりも使用することの強力な長所または短所はありますか、それとも前に述べたとおりですか? 私の意見では、コンストラクター注入はすべての中で最も直感的であり、インターフェース注入は最も少ないです。一方、セッターインジェクションは中期ですが、最初にインジェクトした依存関係オブジェクトのインスタンスを変更できるはずですか?このスタイルの注入は、依存関係を必要とするオブジェクトが常に注入されることを保証しますか?私はそうは思わないが、私が間違っているなら私を修正してください。

3
雇用中にコンサルティングを開始-利益相反[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 まず第一に、私は法的助言を求めていません。これは少しTL; DRですが、下に要約があります。すべてを説明しているので、人々は洞察に満ちたアドバイスを提供できます。 状況 現在の状況を説明する必要があります。これは、現在のルートに行くことにした理由を説明するためです。私は最近、地元の経済が苦戦しているため、別の仕事を探すように頼まれました。私は解雇されていませんが、原因は現在の雇用主が私をフルタイムで雇う余裕がなくなったことです。 私はしばらくの間仕事を探しましたが、特に私が今いるレベルについては、周りにはほとんどありません。私はやりがいのある仕事や楽しみを見つけられない別の仕事を望んでいません。 私の現在の立場では、私はアーキテクトおよびソフトウェアマネージャーとして働いています。仕事の大部分は社内で行われますが、私は雇用主のために少しの外部コンサルティングを行っています。 私の決定 私はコンサルタント/請負業者として自分で出かけることにしました。私はすでにかなりの量の仕事を準備しています。しかし、ビジネスを立ち上げる間、家族を支えるためにお金を稼ぐ必要があります。最終的な結果は、一部の製品を収益化することですが、製品の開発には時間がかかります。 問題 私の現在の雇用主は、彼らとのパートタイム雇用を提供してくれました。私は主に小売業です。ただし、私の仕事はWebワーク(主にCMSベースのサイト)とそれほどではありませんが、プログラミングに取り組んでいます。内部プロジェクト。非常に大規模なITサポート事業もあります。(基本的な)Web開発に重点が置かれていますが、ソフトウェア開発は主に補助的です。ソフトウェア開発は、完全にではないにしても、私が去るときに大部分停止します 利益相反 パートタイムの役割を引き受ける場合、利益相反について書かれた契約書が必要です。私は弁護士に法律相談を受けますが、何を許可するかを知る必要があります。 TL; DR コンサルタントとして、およびソフトウェアをパートタイムでやっている会社として働いて、私は自分が運営できるように契約で定義する次の分野を考えることができます。 私が彼らのために働くとき、私は彼らに雇われ、自分のビジネスの詳細を公表したり開示したりしません 仕事以外では、サービスを提供するクライアントを追求しません 私は彼らに雇われていないのに、彼らは私が生産するものに対するいかなる権利も所有しません 既存のクライアントが自分の研究から私に近づいたら、それは公正なゲームです 彼らが去るクライアントを持っている場合、私は彼らのために働く権利があり、彼らに近づくか、彼らに私に近づくようにするかのどちらかです 私が見落としていた弁護士にアプローチする他の分野を考えていただけますか? 私は自分のビジネスが成長し、繁栄し、自分自身を守ることを許したいです。 適切な事例-彼らのクライアントの1人が、私に仕事をしてほしいと言ってきましたが、それは未承諾でした。

1
既存のプロジェクトの完全な書き換えをリリースするための適切なエチケットとは何ですか?
私はオープンソースの世界は初めてです。私が取り組んでいるプロジェクトはGithubにあります。(参照用)私が取り組んでいるプロジェクトは、Plex Media Serverのプラグインです。プラグインをPlexに送信して、それらが「アプリストア」に含まれるようにする予定です。今私の質問に。 私が最初に始めたとき、私は私が望むもののいくつかをしたがあまり良くない古い半放棄されたプラグインを見つけました。私はそのレポに貢献することから始めました。現在の所有者は忙しすぎてそれを台無しにできないと言ったので、私はすぐにレポに対する完全な権利を持つ共同作業者になりました。しかし、コードをさらに掘り下げ始めたとき、それが無駄であることに気付きました。既存のコードベースはひどいものであり、それを修正する効率的な方法はありませんでした。ゼロから始めただけです。新しいプラグインで使用したコードは、最初にコミットしたコードのみでした。 これで、プロジェクトをリリースする準備ができました。しかし、私はこれをどのように行えばよいのかわかりません。次のようにオプションが表示されます。 新しいレポを作成し、既存のものを忘れてください。以前のレポやその貢献者についても言及すべきかどうかはわかりません。そのコード/リソースを使用せず、まったく新しいコードベースを作成しました。プラグインは古いプラグインと同じことをいくつか行いますが、まったく新しい方法でより効率的な方法で行います。 既存のレポをフォークし、既存のコードを削除して、新しいコードをコミットします。私はGitが初めてなので、これが可能かどうかはわかりません。 既存のレポジトリに変更をコミットし、現在の貢献者がどのように言っているかを確認します。 3つの選択肢のうち、最初の方に強く傾倒しています。だが!私はオープンソースが初めてなので、適切なエチケットに従って仕事をしていることを確認したいと思います。私の最初のプロジェクトが目の前で爆発し、災害になりたくありません。オプション2の音は悪くありませんが、それを行うべきかどうかはわかりません。履歴と差分がどのように機能するかわかりません。せいぜい500〜1000行程度のコードです。したがって、それは巨大なコードベースではありません。 あなたが提供できる入力をありがとう!

1
Djangoでのユニットテスト
私は大規模なDjangoプロジェクトの効果的な単体テストを書くのに本当に苦労しています。私はかなり良いテストカバレッジを持っていますが、私が書いてきたテストは間違いなく統合/受け入れテストであり、ユニットテストではないことに気付きました。これをできるだけ早く修正したいと思います。 これが私の問題です。私のスキーマは深いリレーショナルであり、非常に時間指向であり、モデルオブジェクトに高い内部結合と多くの状態を与えます。私のモデルメソッドの多くは、時間間隔に基づいてクエリを実行auto_now_addし、タイムスタンプ付きのフィールドで多くのことを行っています。したがって、たとえば次のようなメソッドを使用します。 def summary(self, startTime=None, endTime=None): # ... logic to assign a proper start and end time # if none was provided, probably using datetime.now() objects = self.related_model_set.manager_method.filter(...) return sum(object.key_method(startTime, endTime) for object in objects) このようなものをテストする方法はありますか? ここに私がここにいます。ユニットテストの目的には、その引数にいくつかの模擬動作を与える必要がありますが、正しい結果を生成するために正しくフィルタリング/集計されていますか?by key_methodsummary datetime.now()のモックは簡単ですが、残りの動作をどのようにモックできますか? フィクスチャを使用することもできますが、データを構築するためにフィクスチャを使用することの長所と短所を耳にしました(保守性が悪いことは、私にとっては当たり前のことです)。 ORMを使用してデータを設定することもできますが、関連するオブジェクトも作成する必要があるため、制限される可能性があります。また、ORMでは、auto_now_addフィールドを手動で変更することはできません。 ORMのモックは別のオプションですが、深くネストされたORMメソッドをモックするのが難しいだけでなく、ORMコードのロジックがテストからモックされるため、モックはテストをテストの内部と依存関係に本当に依存させるようですテスト対象機能。 クラックするのが最も難しいのは、このような関数であると思われます。これらの関数は、モデルのいくつかの層と下位レベルの関数にあり、これらの関数は非常に複雑ではないかもしれませんが、時間に非常に依存しています。私の全体的な問題は、どのようにスライスしたように見えても、テストはテストしている機能よりもはるかに複雑に見えることです。

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