開発で失敗したけど、デバック力を身につけられたお話 / A story of failure in development but learning debugging skills (日本語/英語)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1812041/12ef4176-eec9-2d17-1c2d-232deea6cf24.png)

# 日本語
こんばんは！
Advent Calendar 2024の3日目投稿をしていきます。
今回は「開発でチャレンジして、失敗・成功したことをシェアしよう」について投稿していきます！

#### チャレンジしたことの概要
入社して2か月が経ったころ、C#言語の.Net Frameworkを使用するプロジェクトで、バグ改修のタスクを担当しました。内容は、コンテンツの「並び替え」を行った際、絞り込みが意図せず適用されてしまい、並び替えるたびに表示件数が異なるという問題でした。例えば、購入日が「新しい順」では10件表示される一方、「古い順」では6件しか表示されない、といった状況です。

このタスクは私にとって初めてのバグ改修であり、さらにC#を使った開発経験もない中での挑戦でした。

### チャレンジにおける過程
C#や.NET Frameworkに関する知識が乏しく、コードの構造や処理の流れを理解するのに時間がかかりました。また、デバッグ経験が不足していたため、問題の特定に時間がかかり効率的に原因を追及することができませんでした。

そこで、技術リーダーに相談し、デバッグ方法を学びました。具体的には、ブレークポイントを活用して実行状態を確認したり、変数の値を逐一チェックすることで処理の流れを理解しました。

課題の期限は少し超過させてしまったのですが、SQLクエリの処理内容を精査し、二重絞り込みが原因で表示件数に不一致が生じていることを発見しました。この重複した絞り込みを修正することで並び替えを正しく動作させ、表示件数の不一致問題を解消し、案件を進行させることができました。

#### チャレンジから得た気づき・学び
デバッグ方法の重要性を実感し、特にブレークポイントや変数の確認が今後の開発に役立つスキルであると感じました。また、技術者と連携し、周囲のサポートを得ることで短期間で多くを学べることを学び、初めて触れる言語やフレームワークでも、ロジックを一つ一つ追いかけることで着実に解決へと繋げる自信を得ました。

# ENGLISH
Good evening!
I will be posting the third day of the Advent Calendar 2024.
This time, I will post about “Let's share what we have tried, failed and succeeded in development!

### Overview of what I challenged myself to do
Two months after I joined the company, I was assigned the task of fixing a bug in a project using the C# language . The problem was that when “reordering” content, the refinement was unintentionally applied and the number of items displayed was different each time the content was reordered. For example, “Newest First” would display 10 items, while “Oldest First” would display only 6.

This task was my first bug fix and I had no experience in C# development.

### Process in the Challenge
Due to my limited knowledge of C# and the .NET Framework, it took me a long time to understand the structure of the code and the flow of the process. In addition, due to lack of debugging experience, it took time to identify the problem and we could not pursue the cause efficiently.

Therefore, I consulted with the technical leader and learned how to debug. Specifically, we utilized breakpoints to check the execution state and understood the flow of the process by checking the values of variables one after another.

Although we slightly exceeded the deadline for the assignment, we scrutinized the processing of the SQL query and discovered that a duplicate refinement was causing a discrepancy in the number of displayed cases. By correcting this duplicate refinement, we were able to get the reordering to work correctly, resolve the discrepancy issue in the number of displayed cases, and move forward with the case.

#### Realizations and learnings from the challenge
I realized the importance of debugging methods, especially checking breakpoints and variables, a skill that will be useful in future development. I also learned that I could learn a lot in a short period of time by working with engineers and getting support from others, and I gained confidence in my ability to follow the logic one by one to steadily lead to a solution, even for languages and frameworks that I had never touched before.