Optional の map や flatMap を使ってましたが、今はほとんど guard let 使ってます。可読性のために。 ?. も必要最小限しか使わないですね。nil になるのがロジックエラーなら)よく使います。できるだけ、それが nil にならない理由をコメントをつけるようにしています(本当はコメントではなくエラーメッセージにしてくれるものがあれば標準であればいいですが)。! を含むロジックエラーは Swift でテストできないのが難点ですね。precondition に引っかかることをテストしたいこととか結構よくあります・・・。