ホームページ >バックエンド開発 >Golang >MyTask ToDo CLI ツール...

MyTask ToDo CLI ツール...

DDD
DDDオリジナル
2024-12-25 15:54:14418ブラウズ

導入

MyTask は、ターミナル環境での作業を好む開発者向けに設計された最新の軽量タスク管理アプリケーションです。 Go で構築されており、コマンドライン インターフェイスのシンプルさと強力なタスク管理機能を組み合わせています。

MyTask ToDo CLI Tool...

なぜマイタスクなのか?

複雑なタスク管理ソリューションの世界において、MyTask は、Unix の哲学、つまり 1 つのことを実行し、それをうまく実行することによって際立っています。コード関連のタスクの整理、バグ修正の管理、機能の計画のいずれの場合でも、MyTask は生産性を維持するための気を散らすことのない環境を提供します

主な特長

  • 最小限かつ高速: Go で書かれているため、優れたパフォーマンスと低リソース使用量を実現します
  • ターミナルファースト: 既存のターミナル ワークフローとのシームレスな統合
  • Git スタイルのコマンド: 開発者にとって馴染みのあるコマンド構文 (mytask add、mytask list など)
  • クロスプラットフォーム: Linux、macOS、Windows で実行
  • データのポータビリティ: タスクをプレーン テキスト ファイルに保存し、デバイス間で簡単に同期できます
  • カスタマイズ可能: シンプルさを維持しながら広範な構成オプション

プロジェクトの構造:

mytask/
├── cmd/
│  └── add.go    # Add a task
│  └── delete.go # Delete task
│  └── help.go   # View commands
│  └── init.go   # Initialize
│  └── list.go   # List tasks
│  └── update.go # Update task status
│  └── util.go   # Reuse package
│
├── todo
│  └── todo.go   # Switch case impl
│    
├── README.md
├── go.mod
├── go.sum
└── main.go      # Main file

プロジェクトのセットアップ

  • プロジェクト ディレクトリを作成します:
mkdir mytask
  • ディレクトリに移動します:
cd mytask
  • Go モジュールを初期化します:
go mod init github.com/dev-dhanushkumar/golang-projects/mytask
  • SimpleTable パッケージ: Simpletable は、美しい CLI テーブルを作成するためのシンプルで軽量な Go ライブラリです。タスク リストにクリーンでフォーマットされた出力を提供するため、タスク管理アプリケーションに特に適しています。
 go get github.com/alexeyco/simpletable
  • プロジェクト構造に基づいてフォルダーとファイルを作成します: このファイル構造は、プロジェクトの強固な基盤を提供します。

実装

1. タスクの追加

ToDo リストに新しいタスクを追加します。 flag パッケージを使用してコマンドライン引数を処理し、todo パッケージ (おそらく別の場所にある) を使用して実際の todo リスト データを管理します。

func AddTask(todos *todo.Todos, args []string) {
    // Define the  "add" subCommand to add todo item
    addCmd := flag.NewFlagSet("add", flag.ExitOnError)
    addTask := addCmd.String("task", "", "The content of new todo item")

    // Define an optional "--cat" flag for the todo item
    addCat := addCmd.String("cat", "Uncategorized", "The category of the todo item")

    // Parse the argument for the "add" subcommand
    addCmd.Parse(args)

    // Check if the required todo text was provided

    if len(*addTask) == 0 {
        fmt.Println("Error: the --task flag is required for the 'add' subcommand.")
        os.Exit(1)
    }

    //Get the todo text from the positional argument
    todos.Add(*addTask, *addCat)
    err := todos.Store(GetJsonFile())
    if err != nil {
        log.Fatal(err)
    }

    todos.Print(2, "")
    fmt.Println("Todo item added successfully.")
}

2. タスクの削除

ToDo リストから既存のタスクを削除します。おそらく、フラグ パッケージを使用してコマンドライン引数を処理し、todo パッケージと対話して todo リスト データを管理します。

func DeleteTask(todos *todo.Todos, args []string) {
    deleteCmd := flag.NewFlagSet("delete", flag.ExitOnError)
    // If no --id=1 flag defined todo will default to 0
    deleteID := deleteCmd.Int("id", 0, "The id of todo to be deleted")

    // Parse the argument for the "delete" subcommand
    deleteCmd.Parse(args)

    err := todos.Delete(*deleteID)
    if err != nil {
        log.Fatal(err)
    }

    err = todos.Store(GetJsonFile())
    if err != nil {
        log.Fatal(err)
    }

    todos.Print(2, "")
    fmt.Println("Todo item deleted successfully.")
}

3. リストタスク

MyTask のようなコマンドライン todo リスト アプリケーションのコンテキストでは、「list」コマンドは通常、todo 項目の現在のリストをユーザーに表示するアクションを指します。以下の説明に基づいて、タスク リストを表示します。

mytask/
├── cmd/
│  └── add.go    # Add a task
│  └── delete.go # Delete task
│  └── help.go   # View commands
│  └── init.go   # Initialize
│  └── list.go   # List tasks
│  └── update.go # Update task status
│  └── util.go   # Reuse package
│
├── todo
│  └── todo.go   # Switch case impl
│    
├── README.md
├── go.mod
├── go.sum
└── main.go      # Main file
  • 例:
mkdir mytask

4. タスクの更新

この機能は、ToDo リスト内の既存のタスクを更新し、タスクのステータスを更新します。これは、フラグ パッケージを利用してコマンドライン引数を処理し、todo パッケージ (おそらく別の場所にある) と対話して、実際の todo リスト データを管理します。

cd mytask

インストールと使用方法:

インストールと使用方法の詳細については、プロジェクト リポジトリの README.md ファイルを参照してください: [https://github.com/dev-dhanushkumar/Golang-Projects/tree/main/golang_task]

結論

このプロジェクトは、MyTask アプリケーションのコア機能を正常に作成します。このプロセスを通じて、私は Go プログラミング、コマンドライン インターフェイス開発、プロジェクト管理 における貴重な経験を積みました。 効率的なタスク ストレージ、ファイル解析、ローカル ストレージの実装などの課題を克服し、Go 標準ライブラリを効果的に活用する方法を学びました。このプロジェクトは、貴重な学習体験であり、タスク管理アプリケーションの分野でのさらなる開発の基盤として機能します。

以上がMyTask ToDo CLI ツール...の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。