詰まってしまいました

2022/6/30 追記
エラーメッセージで検索して本ページを開いた方へ。
申し訳ありませんが、一旦放置→知らぬ間に解決、の流れになってしまったので具体的な解決策は分かりません。
随分と前なので記憶も朧げですが、ファイル構成が間違っていたような覚えです。
お力になれずすいません。

仕事でも個人でもプログラムを組んでるときによくわからなくなって萎えるときってありますよね。
俗に言う「詰まった」状態です。
ツンデレって言ってる人も極稀に見ます。
(「詰んだ出れない」の略)

そんな感じで、今回は私的詰んだ時の調べ方を連ねてみます。
まぁざっくりと

  • 経験者(上司、友達など)に聞く
  • 書籍を見る
  • ネットで調べる、聞く

の3つに分けられるかと思うんですが、今回は主にネットで調べるとき私はこうやってます、的なのをば。

なんやかんや経験者に聞くのが手っ取り早いんですけどね…。
上司、先輩が忙しそうにして聞きにくかったり、その手の友達がいなかったりするとなかなか出来ません。
悲しいかな。

本は私が持ってなかったりするのでなんとも言えません。
1冊が結構な値段するとか、単に面倒とかで結局買ってないとかもあったり。
(javaとかC#.netとか…)

で、検索して調べるとき私はこんな感じで調べてます。
例えば、実行したときにこんなエラーが発生したとします。

org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet

よくやる調べ方はこんな感じ。

  • エラーメッセージを丸々コピーして翻訳サイトで翻訳
  • エラーメッセージを丸々コピーして検索
  • 末尾の「could not extract ResultSet」に「java」や「springboot」を付けて検索
    (検索候補に「could not extract resultset sql n/a」って出てきてくれたりする)
  • やりたいことをこんな感じ「java」「springboot」「Query」「外部結合(left outer joinとか)」で刻みつつ検索
    (1対1の外部結合をしたい)

次の例で、C#でいうあの関数をdelphiでやるには、というパターンで。

  • 「C#」「(ほしい関数名)」「delphi」で検索
  • 置換がしたい、とか単語でわかっているなら「delphi」「置換」で検索

最近エラー潰しがメインになっているのでパッと出てきませんが、こんな感じでしょうか。

他にも出来上がってるやつの改修とかをやってるのなら、やりたいことが既にコード内にある可能性もあります。
プロジェクト内検索を使って関数名とかで検索かけてみてもいいですね。
サクラエディタとかのエディタを使っているならgrepで引っかけてみるのも手です。

ネタがなくなってきたので、よくお世話になっているサイト様をば。
詳しい説明は他のブログやまとめが既にやっているのでサイト名で検索してください。

とてもお世話になってる
・Qiita
・Teratail
 →どの言語で詰まってもここ見てる

・Delphi Library [Mr.XRAY]
・FDelphi
 →delphiで詰まったらここ見てる

・DOBON.NET
 →C#とVBで詰まったらここ見てる

ちょくちょくお世話になってる
・techacademyのマガジン
・侍エンジニアリングのブログ
・先人様のブログ
・公式

あまり使いたくないけどお世話になってる
(英語できないので翻訳頼りだったりやたら広告が多かったり)
・stackoverflow
・fixes.pub
英語記事の方が多かったりするのでやっぱり外せないんですけどね…。
苦手意識が強いというか、避けがちになります。
ページ内の日本語記事が無くなったら手当たり次第見てます。
(たまに当たりを引きます)

上記に色々書きましたが、どうしてもわからない場合は諦めて早々に聞きましょうね。
モチベーションが落ちてしまいますし、何よりプログラムを組むのが苦痛になってしまいます。
聞くときは以下の項目を伝えるようにすれば比較的聞きやすいんじゃないんでしょうか。

  • 何をしているか
  • どういう結果を出したいか
  • どう詰まってるのか
  • ネットで聞くときはOS等の情報も追加

この例に当てはめて上記のエラーを聞く形にしてみます。

  • 何をしたいか
     →JPQLを使ってDBからデータを取得している
  • どういう結果を出したいか
     →データを取得したい
  • どう詰まってるのか
     →外部結合で取得しようとしているが、エラー「could not extract ResultSet」が出て取得できない (結果を取得できませんでした)
      直接的な原因は以下
      o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 904, SQLState: 42000
      o.h.engine.jdbc.spi.SqlExceptionHelper : ORA-00904: “T_TABLE0_”.”T_TABLE_BK”: 無効な識別子です。
  • OS等
     →Windows10、eclipse、springboot、java
      (バージョン情報があっても可)

何より一番は実際に投稿サイトを見に行って先人がどんな風に質問しているかです。
真似るのが間違いないですね。

さて、欲しい情報はありましたでしょうか。
なんやかんやエラーメッセージで検索が便利な気がします。
質問する際に必要な情報ですから、何かしらヒットしますね。

私も今出てるエラーさっさと解消したい…。

などとのたまいましたが結局諦めました。
まぁ無理にでも解決すべき問題じゃなかったのと、とりあえず一旦保留にして他を片付けてから戻ってくるのも一つの手段です。

案外あっさり出来ちゃったりするとか、あるあるです。

投稿者: motalenemy

切り絵とゲームを気まぐれで作る仮面ライダー好きな馬骨

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。