質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.62%

  • teratail

    414questions

    teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

質問する技術 何が良くなかったのか?

解決済

回答 7

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 700
退会済みユーザー

退会済みユーザー

teratailに質問して回答がつかなかった質問が2つあります。

上記の質問はなぜ回答がつかなかったのか、どのように質問していれば回答がついたのか。
今後のために、よろしければご指摘をいただけませんでしょうか。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kazto

    2018/04/27 11:20

    タグはメタな内容なので、「teratail」がいいと思います。

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2018/04/27 11:25

    ご指摘ありがとうございます、修正いたしました。

    キャンセル

  • 退会済みユーザー

    2018/04/27 11:32

    複数のユーザーから「プログラミングに関係のない質問」という意見がありました
    teratailでは、プログラミングに関して困っていることがないと思われる質問を推奨していません。
    「質問を編集する」ボタンから編集を行い、具体的に困っている理由や解決したいことを明確に記入していただくと、回答が得られやすくなります。

回答 7

+10

回答者の負担が大きいからかと。
リンク先を見ましたが「回答したくなる質問ではない」と見て感じました。

ここは基本的に
「したいことがあってこう書いたが思っている動作と違う」
みたいな内容が簡潔で「ここが違うよ!」と言えるので向いていると思います。

「AのコードがいいかBのコードがいいかはたまたそれ以外か」のような質問や
「私の理解があっているのか」みたいな質問は回答者にとっては割とどうでもいいです。そんなものは自分で調べるべきかと。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+7

TSの方、回答してみました。

回答したモチベーションは、TypeScriptの質問に回答してみたい!というものでした。

当該質問は、読むのが少し大変でした。
理由として考えられるのは、

  • 序盤に、回答者にとっていらない情報が多め
    前提条件、もっと減らしたいところです。前提条件最初の注釈は気持ちは分かるのですが、ちょっとノイズです。これは「背景」という項を立てて、最後にかいてはどうでしょう。またSentryとか言ってしまうと、「TypeScriptかつSentry」な人じゃないと見たくなくなります。自分のピンポイントな目的に絞って質問した方が読みやすそうです。
  • 結局どうしたいかが読み取りづらかったです
    動けばいいのか、作法を知りたいのか、etc...。「3つのうちどれがいいですか」といっても、観点がなかったので。作法を知りたいのであれば、コードも文もより簡潔に、かつ比較しやすいよう似た形に並べたほうが良いです。参照元のコピペになっていて、本質と異なるノイズが多く感じました。(sayHelloとかいらないんですよね?)

という感じです。

偉そうな文になっているところあるかと思いますが、ご容赦いただきたく存じます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/02 16:24

    jjj_aaa様 TypeScriptへのご回答ありがとうございました。おかげさまでTSの仕様について知ることもでき大変ためになりました。

    キャンセル

+6

私にはこう見えましたという点しか答えられませんが、何人か回答があればそれなりのものになると思い回答します。

問いが明確でない。
なんとなく直してとお願いしているんだけどどこを気にしているのかわからない。

情報が多すぎる。
かなりそのままのコードが乗っているので、腕まくりしないと回答できない。回答者は私も含め酔っぱらって話し相手を求めているおっさんよりましな程度の人が多い印象です。もう少し単純化させた方が良いと思います。

回答しても他の人が見ない
趣味でやっていることなので、純粋にコードの書き方のテクニックであれば喜びますし、ピンポイントの質問であれば、”これに応えられる俺すげぇ”といった感じで回答ができます。質問者だけに回答するのであればお仕事と同じだと感じます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/27 18:11

    呼びましたか?

    キャンセル

  • 2018/04/27 18:31

    luckerさんは、飲みながら書いていることもあるんでしたっけ・・・

    酔っ払いまでいっちゃうとさすがにまずいかと思いますが、自分の回答も後で読み返すと正気ではない場合があり反省しております。(オブジェクト指向とかDB設計あたりが感情的になる傾向が・・・)

    キャンセル

+5

  • 内容が専門的で回答できる方がいらっしゃらない
  • ソースコード全貼りは、コードレビューの手間がしんどいので回答したがらない

今回の場合、上記の2点が該当するかな、という印象です。

どう改善したらいいか、は、難しいですね。。。
内容が専門的なのはどうしようもないですし、全貼りじゃなく一部だったら意味が通じなくなるでしょうし。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/27 11:25 編集

    私は1つ目の質問に対して答えられる技術を持っているわけではないですがザッと読んだ感じ
    無責任で申し訳ないですが「そこまでできてるなら割とすぐに自分で解決できそう」と感じました。

    キャンセル

  • 2018/04/27 11:56

    「HMACを使用したWeb API認証」に関して私もかなり限定的な技術トピックに思われ、答えられる方はそうはいらっしゃらないだろうなと感じました。参照されていたサイトの記事も英語なので、同じQ&AサイトでもStackoverflowならあるいは、と思いました。

    キャンセル

  • 2018/05/02 16:25

    dodox86様 確かに英語で質問を行った方がよさそうですね。StackOverFlowとQuoraを使用してみようと思います。

    キャンセル

+4

TypeScriptでカスタムエラークラスを作成する方法について
HMACを使用したWeb API認証

2点とも回答できる技術レベルがなかったからです!

HMACの方は秘密鍵を送る点が違いますが、パット見た感じは仮想通貨の取引所のAPI認証とほぼ同じ事をやっているように見えました。
あと「レビュー」という言葉にはレビュアーの責任がどうしても発生するので、気楽に回答しずらいのではと。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+3

 改善点

上記スレで改善できる点は下記の通り。

  • 質問の見通しが悪いと思いました。
    (Typoraのようなアウトライン表示できるmarkdownエディタなら一定の合理性がありますが、teratailでは読みにくくて仕方ありません。)
  • 「前提条件」が多すぎると思いました。他の方がコードを書く上で不要な情報は極力排除すべきと思います。べき論であれば、メリット/デメリットで事実が伝われば十分です。

以上を踏まえた質問文案を下記に示します。

 質問文案

 質問

TypeScriptでカスタムエラーの3つの実装方法を記載しました。
自分ならXXXなのでこれを選ぶ、あるいはもっといい方法があるというようなご意見をいただきたいです。

 コード

/**
 * (1) Errorをimplementsするクラスを作成する
 * @url https://books.google.co.jp/books?id=8m5qBgAAQBAJ&lpg=PP1&dq=isbn%3A4798139807&hl=ja&pg=PA195#v=onepage&q=ApplicationError&f=false
 */
class ApplicationError implements Error {
    public name = 'ApplicationError';

    constructor(public message: string, public code: ApplicationErrorCode) { }

    toString() {
        return `${this.name}: ${this.message}`;
    }
}

/**
 * (2) Errorをextendsするクラスを作成する
 * @url https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
 */
class FooError extends Error {
    constructor(m: string) {
        super(m);

        // Set the prototype explicitly.
        Object.setPrototypeOf(this, FooError.prototype);
    }

    sayHello() {
        return "hello " + this.message;
    }
}

/**
 * (3) Errorをカスタムするのではなく,throwをカスタムしてすべてErrorを使用する
 * @url https://www.htmlhifive.com/
 */

/**
 * フレームワークエラーを発生させます。
 *
 * @private
 * @param code {Number} エラーコード
 * @param msgParam {Any[]} フォーマットパラメータ
 * @param detail {Any} 追加のデータ(内容はAPIごとに異なる)
 */
function throwFwError(code, msgParam, detail) {

        .....

    if (code) {
        e.code = code;
    }
    if (detail) {
        e.detail = detail;
    }

    throw e;
}

 各手法のメリット/デメリット

  1. Errorをimplementsするクラスを作成する
  2. Errorをextendsするクラスを作成する
  3. Errorをextendsするクラスを作成する
 手法   メリット                                                       デメリット                                                   
 1       アプリケーションの例外とJSの例外が分別できる( ネイティブのError 型は聖域として扱い、この種の例外を決してスローしないようにしよう。カスタム例外をApplicationError クラスのサブクラスとして作成すれば、本当に例外的な状況においてコードの外側で使用するためにError型を取っておくことができる。)   スタックトレースが取れない。   子クラスを作るたびにnameを書かないといけない(何らかの方法で解決できるのかもしれないが自分は分からない) 
 2       スタックトレースが取れる                                       Object.setPrototypeOf を忘れたり誤ったりするとinstance instanceof FooErrorがfalseになる。   TypeScript, Javascriptの仕様変更によって壊れる可能性が1より高い(実際にTypeScript2.1で壊れた) 
 3       全てのエラーはErrorなのでインターフェースが統一されている。   codeがenumであればdiscriminated unionsによって型の推論ができる。   TypeScriptだとグローバルのError型定義を拡張しなければならない。   使用する側が気を付けなければならない。 

 前提条件

  • Javascript(TypeScript)では極力例外を投げるのは避けるべきとは思っている
  • サポート対象ブラウザはChrome,FireFox,Safariの最新版のみ。デバイスはPC, タブレット, スマートフォン。
  • TypeScriptを使用したSPA. ソースコード50000行ほど、ファイル数680 今後2倍くらいになりそう
  • フロントエンド監視にはSentryを使用している
  • JavascriptのErrorを拡張して,エラー種別の判別とSentryでのバグトラッキングに活かしたい(エラーコードを設けたり、エラー種別によってエラーハンドリングを変えたり)

(※ここはどう省略すべきか不明な為、オリジナルのままです。)

Re:  u28epGUsk さん

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/02 16:21

    皆様、ご回答頂きありがとうございました。結果として未解決だった質問へも回答をいただくことができました。

    非常にたくさんの方々から回答をいただきどれをベストアンサーとするべきかを考えましたが、
    非常に具体的な文章を記載いただいたthink49様にさせていただきたいと思います。

    キャンセル

0

... 上記の質問はなぜ回答がつかなかったのか、どのように質問していれば回答がついたのか。 ...

回答がたくさんついている質問の傾向を分析して、自分の質問となに異なるかを考えてみると良いとおもいます。
また、自分がいままでに回答をした質問はどんなものだったか? についても分析をすると良いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    【Angular】フォームが送信された後、テキストボックスを空にしたい

    タイトルの通りです。どうしても解決できないので質問させていただきます。Angularを使った送信フォームで、テキストボックスの値が送信されたら空にする処理を書いているのですが、ng

  • 解決済

    ATOMのタブ

    GithubのATOMエディッタを使っているのですが、いつの間にかタブがすごく小さくなってしまいました。 選択のつもりでクリックすると×を押したと認識されてタブが消えてしまう

  • 解決済

    iAd

    前提・実現したいこと iAdを表示したいのですが、うまくいきません。 該当のソースコード Swift2 override func viewDidLoad()

  • 受付中

    アルディーノのプログラムに関する質問

    servo.write(A);の所で'A'was not declared in this scopeとエラーがでます。 どのように改善すればよいでしょうか。回答お願いします

  • 解決済

    文字列からnewするインスタンスを判別する方法

    ○前提 Aクラス・Bクラス・Cクラスがあります。 Mainクラスで処理中、とあるString配列から1要素を取り出しました。 中身は"B"でした。 ○やりたいこ

  • 解決済

    Crash logのSymbolicateのやり方がわかりません

    iOSのAPPを審査に出しているのですが落ちて困っています。 そのときCrash logが帰ってきていますが まずそのCrash logのSymbolicateができません。

  • 解決済

    Webサイトを作れるプログラミング言語を教えてください!

    Webサイトを作るプログラミング言語を学びたいです。イメージではユーザーがブラウザに入力した情報により、何らかの処理を行うみたいなことです。 macで環境をそろえられる言語で

  • 解決済

    Rubyにおいて接続関係のエラーログの原因がわからない

    いつもお世話になっております。 スクレイピングを使用したプログラムを作成しているのですが、突然下記のようなエラーログを出力され、動作が中断されるようになってしまいました。

同じタグがついた質問を見る

  • teratail

    414questions

    teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。