IT ニュース&コラム 2019/ 7/ 1 通巻791号 技術版 ソフトウェアデザイン館 Sage Plaisir 21  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ■■ インストール手順にバグがある原因は、スクリプトを作っていないから ■■ フレームワークを試してみようとして、Web にあるインストール手順を見ながら インストールしようとしたらインストールがうまくいかなかった経験は誰にも あると思います。それでもなんとかしてインストールに成功したとして、原因が 書いてあるインストール手順に足りない部分があったとか、入力するコマンドが 間違っていたとかすると、怒りの矛先をどこに向ければいいかとイライラすると 思います。 しっかり確認しているのかと疑いたくなりますが、Web にあるページのほとんど は無保証です。 他の人にも確実にインストールできるようにすることが目的の 人はほとんどいません。 Qiita などの普及で、自分のやってきたことをアピール するだけの人も多いと思います。 記事の内容を書いてから改めてテストしている 人はほとんどいないでしょう。 彼らは就職や転職のためにやっていると思うので 綺麗事を言っても相手にしてくれません。 ただ、自分やメンバーがフレームワークをすぐに使える(インストールする) ようになるためには、手順書の品質を上げる必要があります。 ところで、Python を試しに動かしてみる環境の1つとして Jupyter Notebook があります。 Web ブラウザー内に表示されたプロンプトに、Python のコードを 入力して [ Run ] ボタンを押すだけで、すぐに実行することができます。 しかも、Web にあるインストール手順のフォーマットのように、文書と実行した コードのボックスという文書のフォーマット(.ipynb)にもなります。 文書には数式を書くこともできるので、統計や機械学習に関する手順書を書く ことにも適しています。 なので、Jupyter Notebook の内容を少し整理して、 Web に投稿している人もいると思います。 ただ、インストール手順に関しては、Jupyter Notebook ではうまくいかない ことが多いと思います。 なぜなら、テストをするとしたら手動でコードの コピペをしなければならないことや、Python 以外の手順、たとえば、シェルへの 入力が必要なときに対応できないからです。 ところで、インストール手順を開発するとき、試行錯誤しながらいろいろな 作業をしていって、その結果として成功したとしても、状態が複雑になっていれば いるほど再現できる可能性は低くなります。 ですので、手順の一部を変えて、クリーンな状態から1から手順通りに動かし、 また、手順の一部を変えて、クリーンな状態から1から手順通りに動かす、 ということを繰り返していき、その結果として成功すれば、成功が再現できる 可能性は高いです。 これは、正しい手順をしてもうまくいかず、リセットや 再起動してから正しい手順をすればうまくいくことに近いです。 Docker もこの性質を利用しています。 手順の一部を変えてクリーンな状態から1から手順通りに動かすことは、 手動で行うより、スクリプトを作って自動的に行うほうが早く行うことができます。 失敗をするたびにまた1から手動でやり直すことは大変なことです。 ですので、ユーザーが見る手順書よりも、再現する可能性が高いスクリプトのほうが 先に完成します。 そして、そのスクリプトを元に、手動で行うインストールの手順書を 書きます。 ただし、スクリプトには、エラー処理のコードが含まれることが通常であり、 そのエラー処理のコードも含めてまるごとコピーすると読みにくい文書になって しまいます。 そうならないよう、エラー処理のコードを除いて、文書を作成します。 そもそもエラー処理のコードなんて必要ないと思う人もいるかもしれませんが、 スクリプトが失敗したことを見逃す危険があります。 そうしてできたインストール手順書はテストしなければいけません。 もし、インストール手順書とインストール スクリプトの両方を配布するのであれば、 インストール手順書のテストを厳密に行う必要はありません。 なぜなら、インストール手順書のとおりに実施して失敗しても、インストール スクリプト を動かして成功するからです。 もし、インストール スクリプトを配布しなければ、インストール手順のサポートという 非常に大きいコストを払わなければならなくなります。 つまり、インストール手順書とインストール スクリプトの両方を配布するべきなのです。 ■■ 注目ニュース 一覧 ■■ ◇ NECが自社アプリの開発基盤をクラウド化した理由。スタートアップの Yappli 採用。 https://japan.cnet.com/article/35136257/ … 社内アプリにもクラウド。 ◇ アドビ、Photoshop による顔の加工を見抜くAIツールを開発。フェイク対策で。 https://japan.cnet.com/article/35138557/ … 実績はこれからだが、AI と AI の戦いが始まる。 ◇ インテルとマイクロン、輸出規制をかいくぐってファーウェイへの製品供給を再開。 https://japan.cnet.com/article/35139082/ … 米国企業が米国外で製造した製品は必ずしも米国製とは分類されないという大義名分。 ◇ MS、任天堂、ソニーが米トランプ政権にゲーム機への追加関税適用除外を要請。 https://japan.cnet.com/article/35139097/ … 消費者の損失を招くとしながら、消費者の半分はトランプを支持している。 ◇ 深層学習はまだ初期段階。ビジネスインフラ化にはあと20年かかる。 https://japan.cnet.com/article/35138779/ … 技術力はあってもビジネスが弱いスタートアップや、新規事業に踏み出せない大企業。 ◇ Raspberry Pi 4 発売。CPUが高速化、USB3.0に対応。 https://japan.cnet.com/article/35138951/ … 3800〜5900円。 ◇ ブラックな働き方からの脱出。捨てる。手を抜く。考えない。 https://japan.cnet.com/article/35138558/ … 何をコピペするかのセンスも能力のうち。 ■■ ソフトウェアデザイン館 Sage Plaisir 21 ■■ ホームページ >>> http://www.sage-p.com/ メルマガ >>> http://www.mag2.com/m/0000083983.html ブログ >>> http://blog.livedoor.jp/sage_p/ ツイッター >>> http://twitter.com/Ts_Neko ダウンロード >>> http://www.sage-p.com/freesoft.htm サポート掲示板 >>> http://www.sage-p.com/kg_ban09/z6037C8.cgi 東日本大震災 >>> http://www.sage-p.com/saigai.html メール >>> ts-neko◇sage-p.com ←◇を@に変えてください 緊急メールは件名に「うどんメール」を付けてください。 このメルマガの登録・解除 - http://www.mag2.com/m/0000083983.htm