web-dev-qa-db-ja.com

UXデザイナーがオブジェクト指向プログラミングの背後にある原則と概念を理解することは重要ですか?

私はデザイナーとして、時にはコーダーとして、オブジェクト指向プログラミングの背後にある考え方と原則に触れてきました。提案されたソフトウェアアプリケーションの画面を概念化する場合、この分野の知識があると間違いなく役立ちます。開発者はすぐに画面の要点を取得します。

OOPのデザイナーの知識がユーザーエクスペリエンスデザインに大きな影響を与えるとしたら、どのようなシナリオが効果の大きな要因になるでしょうか?デザインですか?それがある場合はありますか?

16
KenDeeter

番号。

これらは2つの根本的に異なる仕事です。 UXデザインが主な目的がOOP開発(IDEなど))である製品向けであるというシナリオを除きます。

それ以外の場合は、もちろん、OOPの「原則」を理解しても害はありません。さらに、さまざまなこと(OOPを含む)について知ることは、確かに別の考え方をするのに役立ちます。しかし、OOPはプログラミングへの多くのアプローチの単なるoneであり、他にもある(たとえば関数型プログラミング)ことを理解することも同様に重要です。実稼働環境で実際にスキルが役立つレベルに到達するには、プログラマーとしての多くの実践/経験が必要です。

一方、自分の興味からプログラミングを学び、上手になるデザイナーもいます。しかし、それはマーケティング担当者がプログラミングを学び、上手になるのと同じです。

これは、一部の採用マネージャーや多くの採用担当者が持つ傾向があるファンタジーです。つまり、彼らはすべての仕事で天才のオールラウンダーを雇う必要があります。通常、それは彼ら自身が雇っている役割についての理解の欠如を反映しています。

これが役立つ唯一の(まれな)状況は、非常に小規模な製品チームとベアボーンのスタートアップです。それでも、基本的な設計作業を行えるプログラマーがいる方が、逆の方法よりもずっと現実的です(プログラマーとしてデザイナーが月光を浴びる)。プログラマーに設計に関する短期集中コースを実施してもらい、基本的な設計作業を行わせる方が簡単ですが、プログラミングの短期集中コースでは、単純なおもちゃやプロトタイプを作成する以外のスキルは実際には役立ちません。

「開発者はすぐに画面の要点を手に入れるでしょう。」それはデザイナーの仕事ではありません。製品は、開発者ではなくusersがすぐに要点を取得できるように設計されています。デザイナーの顧客は開発者ではなくユーザーです。

実用的な例として、伝説のux/uiデザイナーであるJony Iveを考えてみましょう。彼が資格のある開発者ではないことを確認するのは簡単です。工業デザインの学位コースは、デザイナーとして働く人々を準備することを意図していると考えることができます。これらのコースの一部のカリキュラムに実際のOOP /プログラミングコンテンツが含まれているかどうかは簡単に確認できます(含まれていません)。

これが Don Normanからの引用 で、uxという用語を発明した人です

ヒューマンインターフェイスとユーザビリティが非常に優れていると思ったので、この用語を考案しました。私は、工業デザインのグラフィックス、インターフェース、物理的な相互作用、およびマニュアルを含む、システムでの人の経験のすべての側面をカバーしたいと思いました。それ以来、この用語は広く普及し、その意味が広がり始めています。

32
Yogesch

おそらく原則をあまり学習しないかもしれませんが、オブジェクト指向プログラミングまたはそれに相当するものの原則を理解することは、UXデザインのいくつかの側面に役立ちます。

短い答えはNO(つまり、それは重要ではありません)ですが、長い答えはYESになります。ビジネスプロセスまたはワークフロー内の異なるエンティティ間の関係を明確にするのに役立つプロセスを開発することで、非常に強力な接続を行うのに役立ちます。人、プロセス、テクノロジー。

OOP UML(統一モデリング言語)を使用してアクター(つまりユーザー)、プロセス、スイムレーンを文書化し、ビジネス内で人々が果たすさまざまな役割と責任を理解するなど)に共通する手法があります。 BPMN(ビジネスプロセスモデリング表記法)とも重複するプロセス。特に、ユーザーインターフェイス側の設計決定に変換できる技術的な詳細を文書化するのに役立ちます。

OOP継承などの概念(クラスの定義とインスタンス化に関連))があり、設計システムの設計資産のモジュール化と漸進的強化のアイデアを強化するのに役立ちます。

もちろん、OOPには、構造化された方法で情報と要件を概念化して文書化するのに役立つ代替アプローチがありますが、UMLとBPMNはビジネスアナリストやソフトウェア開発業界で非常に普及しているため( UXデザインには、これに関する独自の標準的な方法論が実際にはないため)、少なくともコアの原則を理解するために時間を費やす価値があります。

14
Michael Lai

私はWeb開発者であり、自分の仕事が得意です。私はかつて機械工学の会社に応募して、もともとは機械技師がパートタイムで作成したお粗末なWebサイトを再構築しました。仕事を得るために、私は機械的試験を受けなければなりませんでした。テストで聞いたことのないもののほとんどは、答え方を知る前に聞いたこともありませんでした。 (主に油圧、金属の折りたたみなどでテストされています。)

そのテストに合格すると、彼らのウェブサイトはより良く機能しますか?番号。

オブジェクト指向プログラミングはコンピューターサイエンスであり、プログラマーの権限であり、ユーザーインターフェイスデザイナーではありません。

誰もがプログラミングが狂っていることを知る必要があるというこの全体的な考えは、今日です。

5
Rob

デザイナーとして働き、OOP言語を知っている人として、OOの哲学のいくつかは、特にあなたがSCSSに組み込み、デザインをモジュール化して再利用可能なコンテンツのチャンクを作成しますが、これは実際にはオブジェクト指向ではなく、変数と基本的なプログラミング概念(DRYの維持など)の理解です。

全体として、デザイナーとしてのあなたの役割に依存しますが、OOP Dependency InversionやSOLIDの原則は、あなたの能力と実際には重なりませんUXを上手に行うために。

5
Hugh

うわー、満足のいくスレッドです。現代社会ではしばしば論争があります-デザイナーはプログラミングができるはずですか?

個人的には、高級デザイナーになるにはプログラミングのパターンやコンセプト(OOP)の知識が必要だと思います。

なぜそう思うのですか?

  1. データベースは、バックエンド開発者と協力してモデル化できます。 (モデルの作成)

  2. 設計プロセスは異なります。インターフェイスがプログラムされることを知っており、プロセス全体に注意が払われます。「自分用の対処法」で実装に渡されるまでは注意が払われません。

  3. 最終的なソリューションに影響を与える場合、フロントエンド開発者との協力は喜びであり、Codepenでサンプルアニメーションを提供できます。
  4. プログラミングはスケーラブルなシステムを作成するのに役立ちます。また、ユーザーが提供するものに応じて、写真はビットの文字列にすぎず、優れた美的写真ではないことを確認できます。

それはプロジェクトの規模とフェーズに依存しますが、常に専門化の問題があります。

ただし、企業がUIデザインを販売ツールとして扱うことがよくあり、その後、通常は実装コストや予期しないシナリオが発生することが問題のようです。


Michaelが言ったように、実際の設計はUML + BPMNから始まります。

3
Piotr Żak

回答、特に が最も投票数の多い回答には同意しません。 2019年は外であり、業界は役割の境界を曖昧にするほど十分に発達しています。

つまり、UXデザイナー+プログラマー= UXエンジニア

Google Jobsからの役割の説明

UXエンジニアは、強力なデザインの美学と技術的なノウハウを組み合わせます。

研究者やデザイナーと協力して、新しい機能を定義して提供し、コンセプトを生き生きとしたプロトタイプに変換し、インタラクション、アニメーション、詳細を繰り返して、完璧なエクスペリエンスを提供します。 UXエンジニアは、UXリサーチャーと密接に協力して、新しい概念をユーザーテストし、エンジニアリングを支援します。

UXエンジニアは実際の実装を実践しているため、ユーザーエクスペリエンスとユーザーインタラクションについてさらに深い洞察を得ることができます。彼は素晴らしい経験と良い経験を区別する最も小さな設定を微調整しています。彼はまた、制約を知っており、それを超える方法を模索しているため、革新者でもあります。したがって、答えは間違いなくYESになるはずです。プログラミングが効率、製品、給与に大きな影響を与えることを知っていることです;)

トピックについてさらに読む: 「UXエンジニア」とは誰ですか? AlexEwerlöf

1
Pavlo Grubyi

私がこの会話に付け加えたいことの1つは、UXデザイナーはWebページがどのようにマークアップされるかも理解する必要があることです。多くのデザイナーは、divがコンテナーであることを認識していません。コンテナーを移動することはできますが、コンテナーを簡単に分離することはできません。メディアクエリとブレークポイントについて議論するとき、この理解の欠如はしばしば起こります。

各列にコンテンツがある3列のサイトの例を見てみましょう。各列が独自のコンテナーであると想定すると、UXデザイナーは、各列内のコンテンツを分離して別の場所に配置できないことを知っている必要があります。

この理由で機能しないデザインを処理するのにどれほどの時間とエネルギーが無駄にされているかは、私にはわかりません。

1
Mayo

他の回答は基本的に「いいえ、しかしそれを知ることに害はない」と述べています。それに挑戦して、UXデザイナーがOOPの原則を知る必要がないだけでなく、OOP原則またはそれらに夢中になっている。UXデザインはOOPとは何の関係もないが、システムのユーザーにとって意味のあるものではなく、コンピューター/プログラマーがデータを編成する方法に関して悪いUXデザインを行うのは簡単です。 。これは、UXデザインの経験がなく、経験の浅いUXデザイナーやプログラマーが作成したあらゆる種類のデスクトップアプリやウェブアプリで見られます。UIは、データベースの薄いラッパーにすぎず、それがまさにそのとおりであることは明らかです。