2017年5月31日のブックマーク (2件)

  • キャンセルのキャンセル問題から考えるダイアログデザイン|Goodpatch Blog グッドパッチブログ

    この文脈では、「編集内容のキャンセル」という処理を続行しても良いかをユーザーに確認しています。続行に同意したい多くのユーザーは直感的に同じ表記の「キャンセル」を押したくなるでしょう。しかしそれでは編集のキャンセルが実行されません。 このキャンセルボタンが意味するのは、「『編集内容をキャンセルする』のキャンセル」なのです。つまり、ユーザーが望み通りに編集内容を破棄するためには、反対側のOKボタンを選ぶべきなのです。このような「キャンセルのキャンセル」は二重否定で意味がややこしくなるので避けなければなりません。 ここで「キャンセルのキャンセル」にならなければ良いということで、次のようにボタン名を変えてみました。 これでもう迷うことは無くなりましたか……? 私はこの修正は誤りだと判断します。「はい」「いいえ」は結果を予想しにくい表現なので、ダイアログのアクションボタンに用いることはあまり適切では

    キャンセルのキャンセル問題から考えるダイアログデザイン|Goodpatch Blog グッドパッチブログ
    ytabuchi
    ytabuchi 2017/05/31
    UXは考え抜いて良くなりますね。Androidの場合はどうだろう?DialogとSnackbarの使い分けも必要そう。
  • .NETの将来:非同期ストリーム

    VB/C#でasync/awaitが発表されてから、開発者たちはIEnumerableの非同期版について問い続けている。しかしC# 7とValueTaskが登場するまで、パフォーマンスの観点から潜在的に困難だった。 C#の過去のバージョンでは、開発者がawaitを使用するたびに、暗黙的にメモリアロケーションが発生していた。10,000の項目を数え上げる場合、10,000のTaskオブジェクトがアロケートされる可能性がある。タスクキャッシングを用いたとしてもこれは多い。ValueTaskは特定の条件下でのみメモリアロケーションを発生させる。これを用いると、IAsyncEnumerable<T>のアイディアは実現可能なように思えてくる。 これを心に留めながら、2015年9月の非同期ストリームの提案を見てみよう。 IAsyncEnumerable<T> と IAsyncEnumerator<T>

    .NETの将来:非同期ストリーム
    ytabuchi
    ytabuchi 2017/05/31
    難しいです…