Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[課題1] 画像変換コマンドを作ろう #13

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

asuke-yasukuni
Copy link

dojo7 [課題1] 画像変換コマンドを作ろう

全体的にシンプルな実装を心がけてみました。

仕様

  • -src ディレクトリパス
  • -from 変換対象の拡張子
  • -to 変換先の拡張子

実行例

./imgreplacer -src ./testdata/ -from png -to jpg
2019/09/09 00:26:22 [replace start]
2019/09/09 00:26:22 [replace file]testdata/recursiondata/test-1.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/recursiondata/test-2.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/recursiondata/test-3.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/recursiondata/test-4.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/recursiondata/test-5.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/recursiondata/test-6.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/recursiondata/test-7.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/test-1.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/test-2.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/test-3.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/test-4.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/test-5.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/test-6.png -> jpg
2019/09/09 00:26:22 [replace file]testdata/test-7.png -> jpg
2019/09/09 00:26:22 [replace end]

回答

次の仕様を満たすコマンドを作って下さい
  • ディレクトリを指定する
    • 指定できるようにしました
  • 指定したディレクトリ以下のJPGファイルをPNGに変換(デフォルト)
    • デフォルトでJPG -> PNG 変換になっています。
    • 元ファイルをリプレイスしています。
  • ディレクトリ以下は再帰的に処理する
    • filepath.Walkで再帰的に検索して処理しています
  • 変換前と変換後の画像形式を指定できる(オプション)
    • -to -from オプションで可能にしました
以下を満たすように開発してください
  • mainパッケージと分離する
    • 分離しましたが、どこまで分離すれば良いのか迷ったので一旦画像ファイルの変換部分とバリデーション部分のみ分離しました。
  • 自作パッケージと標準パッケージと準標準パッケージのみ使う
    • そうなっているはず
  • ユーザ定義型を作ってみる
    • 今回はユーザー定義関数で replacer.File を用意してそこにメソッドをはやして処理する形にしてみました。
  • GoDocを生成してみる
    • go moduleで実装してたので生成に少し苦労しました。
    • 最終的にjodo7リポジトリ自体をGOPATHのsrcディレクトリ以下に置いて生成しています。
      pkg_dojo7_kadai1_asuke-yasukuni_replacer_
      pkg_dojo7_kadai1_asuke-yasukuni_validation_

@asuke-yasukuni asuke-yasukuni self-assigned this Sep 8, 2019
@asuke-yasukuni
Copy link
Author

道場2回めを受講して結構直すところあるなぁと思いましたマル。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant