質問編集履歴
1
質問内容に関する情報を追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,8 +6,70 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
+
※追記しました。
|
10
|
+
|
11
|
+
# 追記
|
12
|
+
|
13
|
+
抽象的な質問失礼しました。
|
14
|
+
|
15
|
+
今までチーム開発の経験が無く、私は汚いと感じないのですが、他人から見た見やすいコードとは何だろうと思い質問しました。
|
16
|
+
|
17
|
+
## 気になった事
|
18
|
+
|
19
|
+
#### 構造体
|
20
|
+
|
21
|
+
構造体を使った方が分かりやすいでしょうか?
|
22
|
+
|
23
|
+
**例**
|
24
|
+
|
25
|
+
```go
|
26
|
+
|
27
|
+
type cmd_line struct {
|
28
|
+
|
29
|
+
Cmd string
|
30
|
+
|
31
|
+
Opition string
|
32
|
+
|
33
|
+
Name string
|
34
|
+
|
35
|
+
}
|
36
|
+
|
37
|
+
```
|
38
|
+
|
39
|
+
今は入力を全て配列に突っ込んでしまっています。
|
40
|
+
|
41
|
+
私は、分散すると行ったり来たりで分かりにくいと感じます。しかし、他人のコードを見ると構造体がよく使われています。
|
42
|
+
|
43
|
+
また、他に構造体にした方が良い箇所はありますか?
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
#### 同じような動作をどちらかに統一すべきか
|
48
|
+
|
49
|
+
`exec.Command("cat"~)`と`os.Open()`を、`os.Open()`にまとめるべきでしょうか
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
#### 関数の分け方
|
54
|
+
|
55
|
+
コマンドごとでしか関数を分けていませんが、`cat`,`ls`のコマンド呼び出し部分を一つにまとめた方が良いでしょうか?
|
56
|
+
|
57
|
+
2行程度なのでまとめ無くて良いかな〜と思っちゃいます。
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
質問として不適切かもしれませんが、Goをやっている、かつ、不特定多数に聞ける。のはここしか無いと思い質問させて頂きました。
|
62
|
+
|
63
|
+
Goをやっている人が周りに居ないもので...
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
## コード
|
68
|
+
|
9
69
|
**main.go**
|
10
70
|
|
71
|
+
|
72
|
+
|
11
73
|
```go
|
12
74
|
|
13
75
|
package main
|
@@ -322,100 +384,100 @@
|
|
322
384
|
|
323
385
|
**ディレクトリ構造**
|
324
386
|
|
387
|
+
```diff
|
388
|
+
|
389
|
+
atCoder/
|
390
|
+
|
391
|
+
├── BeginnersSelection
|
392
|
+
|
393
|
+
│ ├── abc081a.go
|
394
|
+
|
395
|
+
│ ├── abc081b.go
|
396
|
+
|
397
|
+
│ ├── abc083b.go
|
398
|
+
|
399
|
+
│ ├── abc086a.go
|
400
|
+
|
401
|
+
│ ├── abc087b.go
|
402
|
+
|
403
|
+
│ ├── abc088b.go
|
404
|
+
|
405
|
+
│ └── practiceA.go
|
406
|
+
|
407
|
+
├── README.md
|
408
|
+
|
409
|
+
├── go.mod
|
410
|
+
|
411
|
+
├── main.go
|
412
|
+
|
413
|
+
└── manual.txt
|
414
|
+
|
325
415
|
```
|
326
416
|
|
417
|
+
|
418
|
+
|
419
|
+
## 説明
|
420
|
+
|
421
|
+
AtCoderの問題別コードをを管理するツール
|
422
|
+
|
423
|
+
|
424
|
+
|
425
|
+
リポジトリ:[https://github.com/null-miraiLABO/AtCoder-Go](https://github.com/null-miraiLABO/AtCoder-Go)
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
**流れ**
|
430
|
+
|
431
|
+
|
432
|
+
|
433
|
+
1.atCoder ディレクトリ上で `go run main.go` をする。
|
434
|
+
|
435
|
+
|
436
|
+
|
437
|
+
2.各コマンドの実行
|
438
|
+
|
439
|
+
|
440
|
+
|
441
|
+
3.`exit`で終了
|
442
|
+
|
443
|
+
|
444
|
+
|
445
|
+
**cmdマニュアル**
|
446
|
+
|
447
|
+
|
448
|
+
|
449
|
+
```diff
|
450
|
+
|
451
|
+
//実装済みの全コマンド
|
452
|
+
|
453
|
+
|
454
|
+
|
455
|
+
man //マニュアルの表示
|
456
|
+
|
457
|
+
|
458
|
+
|
459
|
+
list //パッケージ内ファイル一覧
|
460
|
+
|
461
|
+
|
462
|
+
|
463
|
+
run [パッケージ名] //選択したパッケージを実行
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
cat [オプション] [パッケージ名] //選択したパッケージのコードを表示
|
468
|
+
|
469
|
+
-sed //選択したパッケージをコードをAtCoder提出用に文字列置換し表示
|
470
|
+
|
471
|
+
|
472
|
+
|
473
|
+
exit //終了。
|
474
|
+
|
475
|
+
|
476
|
+
|
327
|
-
|
477
|
+
//記入例
|
328
|
-
|
329
|
-
|
478
|
+
|
330
|
-
|
331
|
-
│ ├── abc081a.go
|
332
|
-
|
333
|
-
│ ├── abc081b.go
|
334
|
-
|
335
|
-
|
479
|
+
cat -sed abc083b
|
336
|
-
|
337
|
-
|
480
|
+
|
338
|
-
|
339
|
-
|
481
|
+
|
340
|
-
|
341
|
-
│ ├── abc088b.go
|
342
|
-
|
343
|
-
│ └── practiceA.go
|
344
|
-
|
345
|
-
├── README.md
|
346
|
-
|
347
|
-
├── go.mod
|
348
|
-
|
349
|
-
├── main.go
|
350
|
-
|
351
|
-
└── manual.txt
|
352
482
|
|
353
483
|
```
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
## 説明
|
358
|
-
|
359
|
-
AtCoderの問題別コードをを管理するツール
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
リポジトリ:[https://github.com/null-miraiLABO/AtCoder-Go](https://github.com/null-miraiLABO/AtCoder-Go)
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
**流れ**
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
1.atCoder ディレクトリ上で `go run main.go` をする。
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
2.各コマンドの実行
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
3.`exit`で終了
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
**cmdマニュアル**
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
```diff
|
388
|
-
|
389
|
-
//実装済みの全コマンド
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
man //マニュアルの表示
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
list //パッケージ内ファイル一覧
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
run [パッケージ名] //選択したパッケージを実行
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
cat [オプション] [パッケージ名] //選択したパッケージのコードを表示
|
406
|
-
|
407
|
-
-sed //選択したパッケージをコードをAtCoder提出用に文字列置換し表示
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
exit //終了。
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
//記入例
|
416
|
-
|
417
|
-
cat -sed abc083b
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
```
|