ディスカッション (11件)
最近の開発シーン、抽象化や共通パターンにこだわりすぎて「言語本来の良さ」を殺していませんか?「Bring Back Idiomatic Design(慣用的な設計を取り戻そう)」というメッセージは、どの言語で書いても同じような構造になってしまう現在の画一的な設計スタイルに対するアンチテーゼです。その言語で最も自然とされる「イディオマティック(慣用的)」な書き方を尊重することは、単なる美学ではありません。コードの可読性を高め、メンテナンスコストを抑え、言語が持つポテンシャルを最大限に引き出すために不可欠な要素です。フレームワークの制約や過度なエンジニアリングから一歩引き、今こそ「その言語らしい」設計の価値を再考しましょう。
アイコンより言葉を優先。誰にでも通じるアイコンだけを使う。
これ過小評価されてるよね。失読症(ディスレクシア)の人や、めちゃくちゃ分かりやすいアイコン以外なら、ほとんどの人はアイコンより単語をパッと見たほうが理解が速いし得意だと思う。
UXは本当に劣化した。特に銀行のサイトがひどい。
あと、スクロールバーを隠したり、無駄に広い余白を作ったり、ボタンをフラットにしすぎたり、わけのわからないアイコン、HTML標準のselect/optionを使わない変なドロップダウンとか。こういうトレンドのせいで、数十年前のデスクトップUIにすら遠く及ばない体験になってる。
サイトによって日付の選択方法が何百通りもある
あー、デイトピッカーね。日付を直接入力しようとすると、拒絶反応を起こすやつが多すぎる。デザイナーの作品自慢を見せられてるみたいで、しょうもないメニューをポチポチさせられるんだよね。パワーユーザーには入力させてくれよ。もし間違えて 03/142/026 とか打っちゃったときだけ注意してくれればいいんだから。
最近のソフトウェアの多くは、知的で思慮深い人たちが作っているわけじゃない。効率のためにUIデザインが必須だった時代を知らない、急造された中間管理職的なPMたちが作ってる。単なる無能さだけじゃなく、収益のためにダークパターンを推奨するような悪意すら感じるよ。
著者が言ってるように、UIの慣習(イディオム)はシステムのフレームワークによって作られるものなんだよね。
OS標準のフレームワークは細部まで作り込まれていて、想定外のケースもうまく処理してくれるから、使い込むほどパワーユーザーになれる。WindowsにはWin32があったし(UI側が放置されたのは残念だけど)、macOSにはAppKit、iOSにはUIKitがある。制約があるからこそ統一感が出るんだ。
Webにはそれがないから、自分たちでイチから作るしかなくて、結局中途半端なものが出来上がる。最近はデスクトップアプリの開発環境がひどいから、フレームワークのないWebがそこでも使われちゃってるんだよね。
Enterで送信、Ctrl+Enterで改行のアプリ(Slackとか)もあれば、その逆(GitHubのコメントとか)もあるんだよね。
どうしてこうなったのか、どう直すべきかも分からない。でも「慣習的なデザインに戻せ」と言われても、そもそも共通の慣習が足りないんだ。チャットとPRレビューで挙動が違うのは理にかなってるのかもしれないけど、ユーザーとしてはどっちがどっちか覚えておくのが本当にストレス。
この問題の多くは、プロダクトデザインに迷い込んできたビジュアルデザイナーによって押し付けられたものだね。これはこの業界がずっと正せていないカテゴリーエラーだと思う。(もっと物議を醸すかもしれないけど)「デザイナー」という肩書きの人が必要ないプロジェクトに、そういう人が関わっているせいじゃないかな。そういうケースは想像以上に多いよ。
当たり前だった機能が失われちゃったよね。
- 元に戻す & やり直し
- ヘルプファイル & 文脈に応じたF1ヘルプ
- マウスホバー時のヒント
- キーボードショートカット & カスタマイズ
- メインメニュー
- ファイル & ディレクトリ
- ESCで閉じる/戻る
- ドラッグ & ドロップ
登場したときは画期的だったのに、今やモバイルやWebサイトからはほとんど消えてしまった。
すべてのボタンが視覚的にボタンだと分かり、何をするものか明確に書いてある。さらにショートカットを示す下線までついている。いいよね。
ここで触れられていないけど(Mac由来だと思う)、テキストの末尾に三点リーダー(…)がある場合、それを選択するとさらにプロンプト(ダイアログなど)が表示されるっていうルールがあるんだ。これがないアクションは、クリックした瞬間に実行される。十分な情報が揃っているからね。
みんな、最近Cascading Style Sheets(CSS)っていうテクノロジーを見つけたんだけど、これこそが探し求めていたミッシングピースだと思う。DOMをベースにした階層構造でレイアウトを宣言的に記述できて、クライアント側とサーバー側の両方の処理を最小限に抑えられるんだ。この「スタイルシート」っていう仕組みがすごい。
何より、カスタマイズも簡単だし、他の人のコードを参考にするのも楽。ユーザー設定に合わせて複数のファイルを使い分けたりもできる。「フォーム」APIや、URLフラグメント、属性セレクタ、スタイル結合、さらには「チェックボックスハック」を駆使すれば、UIの更新を「連鎖(カスケード)」させて爆速なUIが作れるんだ!これ、いつNext.jsに導入されると思う?
この新しいUIパラダイムを「ノーフレームワーク」とか「ノーパッケージマネージャー」って呼ぼうかと思ってるんだけど、どうかな。