DUICUO

手に負えないコードがまた問題を引き起こしていませんか?それを解決するのに役立つ 10 個のオープンソース プロジェクトを見つけました。

[[428816]]

この記事は、HelloGitHubが執筆したWeChat公式アカウント「HelloGitHub」からの転載です。転載の許可については、HelloGitHub公式アカウントまでお問い合わせください。

プログラミングスキルが劇的に向上し始めたのはいつですか?

この質問を見て、深く考えさせられました。過去のプログラミング経験を振り返ってみると…どうやらプログラミングスキルは飛躍的に向上していないようです!批判や不満が減ったことを進歩と捉えるなら、私にとっての「飛躍的向上」のターニングポイントは、コードのエラーや例外を理解できるようになり、メンターにくだらない質問をしなくなったことで、ほとんど叱られなくなったことです。そこからは、コードのバグや問題を自力で解決できるようになり、「重要な仕事を任される」ようになり、モジュール開発やプロジェクトマネジメントを自主的に行うようになりました。こうしてようやくプログラマーとして生計を立てられるようになったと言えるでしょう。メンターが私を見捨てなかったことに、心から感謝しています!

コードを野生の馬だとしたら、まずは理解し、誤解を招かないようにする必要があります。つまり、構文を理解し、コードを読めるようにする必要があります。そして、ほとんどの場合、コードを実行するとエラーが発生するので、まずはコードを飼いならす必要があります。そのためには、以下のことを実行してみましょう。

  1. 問題を正確に特定し、主要なステップから変数を出力してください。
  2. IDE を使用してコードをデバッグし、各ステップの価値を理解する方法を学びます。
  3. 関連するキーワード(エラー コード、例外の種類)を取得して、検索エンジンに質問します。

しかし、コードがオンラインで実行されており、サーバー上で問題を発見したり、実機でデバッグしたりする必要がある場合、上記の方法は非常に困難になります。せっかく成功への鍵を見つけたのに、鍵が変更されていることに気づく、といった事態に陥るのです。

心配しないでください!今日、HelloGitHub は、手に負えないコードに徹底的に対処し、バグが隠れる余地を残さないのに役立つオープンソース プロジェクトをご紹介します。

より優れたデバッグツール

プログラミング言語には通常、C/C++ (GDB)、Python (pdb)、Java (JDB)、LLDBなどの組み込みデバッガーが付属しています。これらのツールは、サーバーサイドコードのデバッグによく使用されます。以下のオープンソースプロジェクトは、組み込みデバッガーよりも使いやすく、豊富な情報を提供し、ユーザーフレンドリーであるという利点があります。優れたデバッガーは、コードのデバッグと問題の特定をはるかに容易にします。

注意: サーバー上で本番環境のコードをデバッグしないでください。リスクが非常に高くなります。

1. dbgマクロ(C++)

スター数: 1.7k | 言語: C++

C++11準拠のヘッダーのみのデバッグライブラリで、ログ機能も備えています。`printf`や`std::cout`よりも優れたマクロ関数を提供します。機能:

  • 美しいカラー出力
  • 基本型と STL コンテナ型の出力をサポートします。
  • 基本情報に加え、変数名と型も出力します。

https://github.com/sharkdp/dbg-macro

さらに、Pythonには同様の機能を持つライブラリがあります: PySnooper

https://github.com/cool-RR/PySnooper

2. pudb(Python)

星の数: 2.2k | 言語: Python

コードハイライト機能を備えたPythonコマンドラインビジュアルデバッガー。スタック、ブレークポイント、変数はリアルタイムで動的に更新されます。Vimライクな操作性に加え、一部のpdbコマンドとの互換性も備えているため、習得が容易です。

https://github.com/inducer/pudb

3. パイレーン(Python)

スター数: 292 | 言語: Python

Pythonプロセスインジェクションおよびデバッグツール。実行中のPythonプロセスに直接侵入し、コードスニペットを動的に挿入または実行できます。

https://github.com/NtesEyes/pylane

4. アルサス(ジャワ)

星の数: 27.3k | 言語: Java

シンプルで使いやすいコマンドラインJava診断ツールです。JVMプロセスとリソースの監視をサポートし、GCやJDKバージョンなどの情報も表示できます。コードを追加することなくログを追加できるため、問題の迅速な特定に役立ちます。オンラインで異常が発生した場合、新しいバージョンをリリースすることなく、パラメータ、戻り値、例外、実行時間などのランタイムデータを取得できます。

https://github.com/alibaba/arthas

5. 掘り下げる(Go)

星の数: 17.1k | 言語: Go

シンプルながらも強力なGoソースコードデバッガー。スレッドとゴルーチンをサポートし、豊富な機能を備えています。

https://github.com/go-delve/delve

現在、多くの IDE がリモート デバッグをサポートしています (上記のプロジェクト実装に基づく)。ただし、これまで IDE でリモート デバッグを使用したことがないため、ここでは詳細には説明しません。

モバイルデバッグツール

PC で最もよく使用される Web デバッグ ツールは、おそらく Chrome ブラウザの開発者ツールです。

以下に紹介するオープンソース プロジェクトは、フルスクリーン表示を含む「開発者ツール」をモバイル デバイスで有効にするのに役立ちます。

もう推測する必要はありません。全体像は素晴らしいです。

6. eruda(モバイルウェブページ)

スター数: 11.2k | 言語: JavaScript

モバイルウェブページ向けに特別に設計されたフロントエンドデバッグツールです。モバイルデバイス向け開発者モードのミニバージョンのようなもので、モバイルデバイス上のページのデバッグに使用できます。主な機能としては、コンソールログの表示、要素の状態の検査、XHRリクエストのキャプチャ、ローカルストレージやCookieなどの情報の表示などがあります。

https://github.com/liriliri/eruda

7. フレックス(iOS)

スター数: 12.6k | 言語: Objective-C

iOSアプリ用のデバッグツールです。アプリの状態をほぼすべて確認し、任意のコンポーネントの値を変更することができます。例えば、レイアウトの調整、ファイルの閲覧、ネットワークリクエスト履歴の表示、ローカルデータベースへのアクセスなどが可能です。

https://github.com/FLEXTool/FLEX

8. ドラえもんキット

星の数: 18k | 言語: Java

このデバッグツールは複数のクライアントをサポートしています。強力で、統合と拡張が容易なため、Android、iOS、ミニプログラムなどのモバイルアプリケーションに、一般的に使用されるデバッグ、開発支援、パフォーマンステスト、ビジュアルアシスタンスツールを迅速に統合できます。

https://github.com/didi/ドラエモンキット

9. 不眠症

スター数: 18.1k | 言語: JavaScript

API、GraphQL、REST、gRPCのデバッグツールをサポートし、APIリクエスト用のデスクトップアプリケーションです。シンプルで美しいインターフェースに加え、Windows、Linux、macOSなどの主要なオペレーティングシステムをサポートしています。

https://github.com/Kong/insomnia

また奇妙なツールが登場しました。

コードのデバッグであれ、アプリケーションの不正行為の検出であれ、目標は常に問題の根本原因を見つけて解決することです。

リモートアシスタンスを提供することは可能ですか?

10. 用語ペア

星の数: 1.2k | 言語: Python

このツールを使えば、コマンドラインからリモートアシスタンスを開始できます。コマンドラインからWebサービスを起動し、共有用のリンクを生成することで動作します。リンクが生成されると、ブラウザからサーバーをリモート操作できます。このツールがあれば、問題発生時に専門家に助けを求めるのがはるかに簡単になります。

https://github.com/cs01/termpair

やっと

手に負えないコードを制御するのは容易なことではありません。私の経験では、

まず、問題を特定し、次にアイデアを検証して問題を再現し、最後に解決策を検討します。

すべてのコード行を理解し、複雑なシステム内のデータフローと状態を把握します。

今号では、バグや問題の発見に役立つツールであるオープンソースプロジェクトを紹介します。これらのツールを使えば、コード習得能力は確実に飛躍的に向上するでしょう。プログラミングの世界に飛び込みましょう!