コードワードで「ユーザー」を使用しないでください

あなたは、軽量、シンプルなアイデアは完全に間違っていることが判明したプロジェクトの最初に行うことを実現するときは、このプロジェクトに6ヶ月を費やしてきました。今、あなたはあなたは正しい方法を行うために開始する場合は、はるかにあなたの期待を超えて、このプロジェクトのエネルギーに使用することを見つけ、それを実行し続けるために、このシステムのためには、これらの問題に対処する必要があり、これは起こらなかっただろう事。

今日、私はあなたが一般的な間違いでお伝えしたいと思います、問題はあなたに無限の言葉をもたらすでしょう、それが「ユーザー」です。

この言葉は、2個の基本的なエラーがあります。

1は、「ユーザー」のニーズの適切な説明があることはほとんどないです。

2、「ユーザーは」基本的な設計のセキュリティ上の欠陥につながります。

「ユーザー」は曖昧な概念で、より正確な用語の使用は、ほとんど常により良い結果を果たしています。

あなたは、ユーザーを持っていません

初めに、任意のユーザーのないソフトウェアシステムは、実際に存在します。一見「ユーザー」で、適切な説明ですが、あなたは少しのビジネス・ロジックは、実際にはるかに複雑なものよりもしたいことを実現します。

私は極端な状況から3つの例を使用します。

チケット予約システムは、「ユーザー」ではありません

私は、次の需要のほんの一部であり、航空会社の予約システムの制御ロジックへのアクセスに書かれています:

  • 乗客はウェブサイトを通じて予約録画予約情報を表示するために、コードを使用することができます。
  • 4桁のクレジットカード番号の後にバイヤーはサイト上の情報を予約することによって変更することができます。
  • 旅行代理店は、彼らの予約を表示および変更することができます。
  • 航空会社のチェックインのスタッフは、識別情報を提供するために、乗客を要求する役割や航空会社に基づいてサブスクリプション情報を、表示および変更することができます。

列挙されません。人間「旅客」、「エージェント」(ウェブサイトだけでなく、プロキシとして見られる)とに関連するいくつかの基本的な概念「バイヤー。」「ユーザー」不使用の概念、と私は例えば、私たちは、乗客とエージェントの文書ではなく、ユーザーのドキュメントを含める必要があります要求し、要求の数に単語を使用することはありません。

Unixのは、「ユーザー」ではありません

私たちは同じではないの例を見て。UNIX(これらの日がPOSIXと呼ばれている)ユーザーは、彼らがログオンし、コードを実行することができます。これは右、かなりよさそうですか?私たちの深い表情。

私たちは、「ユーザー」として、すべてのだったなら、私たちは持っています。

  • グラフィカルインタフェース端子または登録者を使用します
  • このような電子メールやWebサーバサービスシステムは、nginxのように、「ユーザー」のアイデンティティで実行されるようにhttpdのユーザを実行することができます。
  • サーバー上のSSHログイン用の共有管理者アカウントよりも多くの場合がある(例えば、Amazonの仮想マシンのUbuntuのデフォルトのSSHアカウントは「Ubuntuの」です)
  • ルート、およびすべての異なる上記の他のアイデンティティ。

上記の4つは、事実上、異なる概念ですが、彼らはPOSIX「ユーザー」です。我々が表示されますが、これらの概念は、「ユーザー」と呼ばれているセキュリティ上の問題の多くを引き起こす可能性があります。

動作では、ユーザモデルPOSIX境界が存在するため、私たちも言うべき道を見つけることができません「だけで、このアカウントのログインを通じてアリスとボブを聞かせています。」

SaaS型サービスプロバイダーんではない「ユーザー」

ジェレミー・グリーンは最近ツイッター、それはこの記事を書くことを思い出し、初めてに投稿https://twitter.com/jagthedrummer/status/1037812206602252291におけるユーザモデルでのSaaSアプリケーション、彼の基本的なポイントは、SaaS型サービスですそれはほとんど常に、次のとおりです。

  1. サービス料を支払うための組織。
  2. 一つ以上の人々が一緒にこのサービスを利用します。

あなたはユーザーとしてこれらの人々の思考を開始する場合は、痛みの世界に分類されます。あなたは、人々が支払わ同時にモデルとして設定することはできません、チームモデルを構築することはできませんし、その後、あなたのシステムを変換するために開始されます。SaaS型の場合は、今、あなたはあなたの人生を見て、教訓を学びました。

しかし、これは唯一の多くの例のである:「ユーザー」の概念はあまりにも曖昧です。チーム(組織関係や支払いのため)とメンバー(実際にサービスを使用する人々):あなたは、「ユーザー」の単語である疑い始める場合は、最終的にあなたが本当に唯一の二つの概念を必要とすることがあります。

「ユーザーは、」セキュリティの問題です

「ユーザー」という言葉が問題のビジネスロジックだけではない、それはまた、セキュリティ上の一連の問題につながりました。「ユーザー」という言葉は、二つの概念のルートからそれが合併ほど曖昧です。

  • 人。
  • ソフトウェアでの彼らは、表現。

あなたが悪意のあるウェブサイトを訪問していることを前提とし、これを説明するために、そのサーバー上の画像はメモリ不足ブラウザにつながりました。リモートサイトブラウザのコントロール、および彼のサービスにファイルをアップロードを開始します。それはなぜこれをしているのですか?

システムは、ユーザーのブラウザランニングのアイデンティティに基づいているので、それはあなたの人間のアイデンティティと同じと考えられ、実際には、あなたは異なっています。あなたは、「ユーザー」として、ファイルをアップロードする必要はありません。アカウントのシステムはまた、「ユーザー」であるブラウザがあなたのアカウントで実行されている場合は、ファイルをアップロードする機能は、すべての彼の行動は、あなたの意図とみなされるだろう。しかし、それはあなたが、それは実際には、そうしましょうと言うことです、いいえ。

これは混乱副問題として知られています。あなたは、「ユーザー」とは、2つの根本的に異なるものを記述するための単語である使用している場合は、その問題は、デザインの一部になる可能性が高いです。

設計前の値

同じ問題に対処するための労力を費やすことは、高収量のプログラマーになるための鍵です。お使いのソフトウェアを整理するために、このような「ユーザー」など漠然とした概念の使用は、問題の将来の発生を解決するために多くの時間と労力を費やしています。スタートコーディング上の一つのアップは、逆が真である、生産性の高いように見えます。

あなたはまだそれが正確に右にしないだろうが、しかし、あなたが有利になるだろう:あなたは新しいソフトウェアプロジェクトを次回起動時には、用語や概念、あなたを決定するために、事前に数時間を過ごしてください。未来はあなたが廃棄物の防止を行っているすべての作業のためにあなたに感謝します。

おすすめ

転載: www.cnblogs.com/CQqf2019/p/10935509.html