前回から入っていった The Basics
の Assertions and Preconditions
の項を引き続き眺めていきます。ここでは assert
や precondition
の基本的な特徴を確認しながら、改めてその存在感に意識を向けてみようと思います。どうぞよろしくお願いしますね。
今回は参加者の一般参加者を募って、ゆめみの外の人たちも訪れての開催になる見通しです。
————————————————————————————————————————————————— 熊谷さんのやさしい Swift 勉強会 #191
00:00 開始 01:28 実行時に行われる検査 02:22 表明と前提条件の特徴 03:05 実際の現場で使ってる? 03:50 リリースビルドで落ちなくなったときを考慮して使っている・ 05:04 どんな場面で表明を使うと判断する? 06:24 仕様変更を検出するために活用する 06:41 けっこう活用されている印象 07:19 問題の発見を早める効果 07:59 前提条件は最適化で除かれないので勝手が違う 10:07 予期しない使われ方を防ぐために前提条件を使う 11:11 fatalError の代わりに precondition を検討してみても良いかも? 11:49 preconditionFailure は最適化しても中断される 13:24 試行錯誤しながら使い分けてみるのもオススメ 13:57 表明や前提条件はドキュメントにもなる 16:06 エラーからの復帰は想定されていない 18:01 プログラマーに直してもらうために落とす 19:24 復帰する手段は提供されない 20:27 プログラマーがエラーを直す必要性に迫られる 22:21 エラーをより予測可能なものにする 23:18 NULL 安全もエラーを予測可能にする 25:08 無効な状態が続いたことで問題が発生する可能性は? 26:55 プログラムを予測可能に終了する 27:20 本番環境でアプリを落とす必要がある場面は? 30:10 ライブラリーで予期しない呼び出しを阻止するのに使う 30:52 実際のアプリで落とそうと思う場面は? 34:40 コンソールアプリだと効果的に落とせたりする 35:34 OS の都合でアプリが強制終了させられることも 37:24 今回の所感とクロージング —————————————————————————————————————————————————