【ちゃんなるぶろぐ】社会人1年生が日々の学びをアウトプット!

>>> 読書・遊び・プログラミング・アプリ開発などを通して学んだことを、文章という形で出力 <<<

3分でわかる!「プログラマが知るべき97のこと」その②①

読み終えるまで約3分

 

 

どうも、ちゃんなるです! 

今日も”デキる”プログラマになるべく勉強していきましょう!

 

今回は、次の書籍の一部を要約します。

プログラマが知るべき97のこと』

 

下の記事の続編です↓↓

chan-naru.hatenablog.com

 

 

今回選択した3つのテーマ

本書はタイトル通り97のことについて書かれています。

今回は、61~63番目の項目についてまとめます。

  1. ビルドをおろそかにしない(No. 61)
  2. プリミティブ型よりドメイン固有の型を(No. 62)
  3. ユーザの操作ミスを防止する(No. 63)

 

①ビルドをおろそかにしない

このテーマで述べられていたことは、

「ビルドなしではどんなソフトウェアも完成しません。ビルドに無頓着にならず、チーム全体でビルドに向き合うことが重要です。」

ということです。

 

以下、要約です。

コーディングプラクティスに遵守しているのに、ビルドスクリプトに関しては無頓着、そんな開発ツームは珍しくありません。

その背景には、

「ビルドスクリプトはさほど重要でないから、細かいことまで気にする必要はない」

「ビルドスクリプトは複雑で、リリースエンジニアリングの専門家に任せた方が早い」

「ビルドスクリプトは(自分の担当する)コードではない」

という考えがあるのかもしれません。

 

しかし、プログラマやエンドユーザが実行やテストをするための実行ファイルを作るのはビルドスクリプトなのです。

 

ビルドスクリプトは、不適切な書き方をしてしまうと保守が困難になる上、後で改善することも容易ではなくなります。

そういうビルドスクリプトをどうすればいいものに変えられるかを、時間を多少かけてでも是非学ぶべきでしょう。

ビルドスクリプトのバグが顕在化するのは、誤ったバージョンのコードに依存してしまっている場合や、ビルド時の環境設定が不適切な場合です。

(122ページより)

 

ビルドなしではどんなソフトウェアも完成しません。

我々プログラマの仕事は、動作するソフトウェアを提供するまで決して終わらず、その最終関門で待っているのがビルドなのです!

 

 

②プリミティブ型よりドメイン固有の型を

このテーマで述べられていたことは、

ドメイン固有の型を積極的に使ってソフトウェアの品質を高めるべき。」

ということです。

 

以下、要約です。

1999年9月23日、火星探査機「マーズ・クライメイト・オービター(MCO)」は火星を周回する軌道への突入に失敗し、燃え尽きました。3億2730万ドルが失われた原因は、ソフトウェアのエラーでした。そのエラーは、具体的には「単位の混在」でした。同じ数値の単位を、地上のソフトウェアではポンドとしていたのに対し、宇宙船ではニュートンとしていたのです。その結果地上では、宇宙船のスラスタ推力を実際の約4.45分の1とみなしてしまうことになりました。

(124ページより)

これ以外にも、データの型づけが強ければ、ドメイン固有の型を使っていれば問題の発生を防げたという事例は多々あります。

 

プリミティブ型ではなくドメイン固有の型を定義することで、コードの品質を大きく向上させることができます。

その理由に、下記のものがあります。

  • ドメインの重要な概念を表す言葉がそのまま型の名前になり、意味がわかりやすい
  • 機能一つ一つがカプセル化され、1つ1つの型のテストがしやすくなる
  • コードの再利用がしやすい

ドメイン固有の型を使うことはメリットがあり、ソフトウェアの品質を高めてくれるのです。

 

 

③ユーザの操作ミスを防止する

このテーマで述べられていたことは、

「ユーザーがソフトウェアを操作するとき、どのように考え、情報をどのように解釈し、どのように判断を下しているかを知ることがとても重要だ。」

ということです。

 

以下、要約です。

まず、ユーザはミスをするものです。

 

システムはユーザの操作ミスに寛容であるべきで、そのために役立つものの1つが「Undo」機能です。

あらゆる操作、特にユーザのデータを破壊したり、データに変更を加えたりする可能性のある操作を、いくつもさかのぼって無効にできると、操作ミスが起きても安心です。

 

Undo操作をログに記録してそのログを解析すれば、どう言うところでユーザがミスをしているかを探ることができます。

ユーザのミスの傾向が見えてくるのです。

これにより、UIを見直してユーザに与える誤解を減らすことにつながります。

 

ユーザが、何を考えて、どう行動しているかを知ることが重要です。

 

まとめ

ソフトウェアを完成させるのはビルドであり、これを疎かにしてしまっているプログラマが多い!ビルドについてもしっかり造詣を深めよう!

ドメイン固有の型を定義し、それを使うことで型の不整合によるエラーを無くそう

③ユーザーがソフトウェアを操作するとき、どのような傾向があるのかを知ることが重要です!ログを解析して傾向を把握できるような仕組みづくりが大切ですね!

 

*より深く知りたい方は、ぜひ本書を手にとってみてください!

書籍情報

プログラマが知るべき97のこと [ ケブリン・ヘニー ]

価格:2,090円
(2021/5/13 11:12時点)
感想(1件)

【中古】 プログラマが知るべき97のこと /ケブリンヘニー【編】,和田卓人【監修】,夏目大【訳】 【中古】afb

価格:825円
(2021/5/13 11:12時点)
感想(0件)

【書籍名】プログラマが知るべき97のこと

【著者名】ケブリン・へニー、夏目大(訳)

【出版社】オーム社

【出版日】2010年12月

【ページ数】243ページ

 

***参考サイト***