teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

休憩時間で文章の校正

2016/12/07 04:22

投稿

miyabi-sun
miyabi-sun

スコア21461

answer CHANGED
@@ -13,24 +13,25 @@
13
13
  aであればA操作をbであればB操作を行うみたいに書いてあることでしょう。
14
14
  スクリプト化すれば、実行権限を付与してやれば勝手に複数コマンドを使い分けて、条件分岐させて仕事の完了まで面倒みてくれます。
15
15
 
16
- それなりに長く続いているプロジェクトならば、先輩や前任者が作った秘伝のタレ(スクリプト)が幾つ転がっていることでしょう。
16
+ それなりに長く続いているプロジェクトならば、先輩や前任者が作った秘伝のタレ(スクリプト)が幾つ転がっていることでしょう。
17
17
  あれはよく忌み嫌われますが、本来とても重要なものです。
18
18
  禁止する方向に向かうべきではなく、どうすれば可読性や再利用性が上がるかを検討すべきです。
19
19
 
20
- 複雑な手順だから無理?そういうのを上手く整理して書ききる事がプログラミングの腕のです。
20
+ 複雑な手順だから無理?そういうのを上手く整理して書ききる事がプログラミングの腕の見せ所です。
21
21
  数書いて後悔して書き直すフローを数十回こなせば、自然とあるべき処理をあるべき場所に整理整頓出来ます。
22
- 電子世界のおもちゃ箱を触るには誰も彼もが三歳児なのです。何度も触って片付けて洗練させるしかありません。
22
+ 電子世界のおもちゃ箱を触るには誰も彼もが三歳児なのです。何度も散らかして片付けて洗練させるしかありません。
23
23
 
24
24
  ---
25
25
 
26
26
  ターミナルはマシンに入れた全てのプログラムを実行出来ます。
27
- パイプとパイプ組み合わせて、いくらでも新しい仕事の形に順応させることが出来ます。
27
+ ログラムプログラムをパイプ組み合わせて、いくらでも新しい仕事の形に順応させることが出来ます。
28
+ (コマンドプロンプトやBashでは`|`の縦棒をパイプと呼びます。左から右にコマンドを数珠繋ぎのように組み合わせて問題を一撃で解決出来ます。)
28
29
 
29
30
  仕事の形がうまくフィットしない時は、いくらでも自作のプログラムを作ってあてがう事が出来ます。
30
31
  別に後から探して同じライブラリが見つかったとしても、そのライブラリのコードを見て評価してやろうという時に頭への入り方は段違いになりますので無駄にはなりません。
31
32
  実行速度が必要でなければ是非スクリプト(batやシェルスクリプト)や、スクリプト言語(Node.jsやRuby、Python)で自作のプログラムを作ってみてください。
32
33
 
33
- 注意点としては、コマンドはいくらでもパイプで組み合わせる事が出来るという点です。
34
+ 注意点としては、後からいくらでもパイプで組み合わせる事が出来るという点です。
34
35
  実行するスクリプトはなんでも出来るファットな仕様にするより、小さな事を確実にこなすようにしてください。
35
36
  あとで正しく組み合わせるスクリプトをあてがえば済みます。
36
37
 
@@ -53,15 +54,33 @@
53
54
 
54
55
  特別な事をする必要はありません。
55
56
  Gitのプロジェクトルートのフォルダに、README.mdファイルを投げ込むだけです。
57
+ 書き方はTeratailと同じMarkdownで、今後のエンジニアのデファクトスタンダートになるフォーマットなので覚える価値は十分あります。
56
58
 
57
- 書き方はTeratailと同じマークダウンで、
58
59
  GitHubやBitbucketでそのディレクトリのページを表示すると自動的に記事であるかのように振る舞います。
60
+ 「概要、インストール方法、使い方」の三項目を記載するだけです。
61
+ 使い方に至ってはコマンドを作ったら実行してみて、結果とそのコマンドをバッククォート3つでくくりながらコピペしてExampleとタイプするだけ。簡単でしょ?
62
+ これでもう半年後の自分や後任者が、使い方ワカンネ、秘伝のタレ乙と悪態をつくことはありません。
59
63
 
60
- た、特殊な動作をするコマンドは-hや--helpコマンドを仕込みょう
64
+ 余裕が出てき、特殊な動作をするコマンドは-hや--helpコマンドを仕込んでてもいいかもれません
61
65
  manファイルを仕込んで見られるようにするのもありでしょう。
62
66
 
63
67
  ---
64
68
 
69
+ 自作したスクリプトはテスト用スクリプトでテストするようにしましょう。
70
+ これが先輩や前任者達が失敗した秘伝のタレを脱却する三歩目になります。
71
+
72
+ ○○のレアケースでうまく対応出来ないんだけど…
73
+ 目視で確認は漏れます。
74
+ 正常系、エラー系をスクリプトに定義してしまえば一行修正する度に全てのケースで正常であることを保証出来ます。
75
+
76
+ うっかり漏れても保証すべきテストケースが増えるだけで対応完了。
77
+ 手順書通りのコマンドが叩けず手痛い失敗をしてしまい、「次は危機感を持って対応するように気をつける」という始末書を書くほど無駄な事はありません。
78
+
79
+ ここまで出来ればあなたはもうそこらのプログラマより優れています。
80
+ NWエンジニアであると同時に、プログラマーとしても十分やっていけるでしょう。
81
+
82
+ ---
83
+
65
84
  明確な判断が出来るスクリプトは全て作り出せます。
66
85
  しかしそうこうしている内に、正解が出せるわけではない問題が立ちふさがります。
67
86
 
@@ -70,6 +89,16 @@
70
89
  こういったものが相手として登場して初めて機械学習が出番になります。
71
90
 
72
91
  とはいっても、基本的には一緒です。
73
- 偉いが作った公式を元にコードを起こせば機械学習プログラムの完成です。
92
+ 偉い学者さんが作った公式を元にコードを起こせば機械学習プログラムの完成です。
74
93
  TensorFlowに至ってはGoogleのサイトからSDKを落としてきてAPIを叩くだけです。
75
- 後は上記のスクリプトによる自動化の手法がまるっと使えます。
94
+ 後は上記のスクリプトによる自動化の手法がまるっと使えます。
95
+
96
+ ---
97
+
98
+ いかがでしたでしょうか?
99
+ [この世界は解決を待っている魅力的な問題でいっぱい](http://cruel.org/freeware/hacker.html)です。
100
+
101
+ 是非身近で(未来の自分から見て)無駄なモノを見つけて自動化することに取り組んでみてください。
102
+ その過程でわけも分からず打ち込んでいたコマンドの本当の意味や、オプションの使い方がわかります。
103
+
104
+ 興味のある機械学習を使いこなす土台作りと平行しつつ、本業の腕もメキメキ上達することでしょう。