質問編集履歴

1

質問内容に関する情報を追記しました。

2021/09/12 10:34

投稿

miraiLABO
miraiLABO

スコア10

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
- atCoder/
477
+ //記入例
328
-
329
- ├── BeginnersSelection
478
+
330
-
331
- │ ├── abc081a.go
332
-
333
- │ ├── abc081b.go
334
-
335
- ├── abc083b.go
479
+ cat -sed abc083b
336
-
337
- │ ├── abc086a.go
480
+
338
-
339
- │ ├── abc087b.go
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
- ```