前後を分けて考える


前後に分かれたプロジェクト開発戦略はもう珍しいものではないが、ネット上ではこの方面を紹介する文章が非常に多い.私自身は14年の時に接触して、このような開発戦略に対してずっと手を放さないで、新旧のプロジェクトにかかわらずまず前後の分離の思惟で先に考えます.14年から今まで前后に离れて3年近く実践してきましたが、プロジェクトは大小4、5つも差がないでしょうが、自分が満足しているものは一つもありません.その理由と心が酸っぱいのは自分だけかもしれません.
前後の分離は何ですか.
  • 「フロントエンド」とは、一般的に、APP、Webページ、デスクトッププログラムなど、比較的ユーザーの一端に近いことを指し、現実開発ではほとんどの場合「クライアント」と理解できる.
  • 「バックエンド」は相対的に一般化しており、フロントエンドにサービスを提供する一端と理解できる.
  • 「分離」は、その名の通り「先端」と「後端」を分離することであるが、ここでの分離は主に以下の緯度から分離される
  • アーキテクチャは分離されており、フロントエンドはバックエンドアーキテクチャに依存する必要はなく、バックエンドもフロントエンドがどのアーキテクチャを使用するかを知る必要はありません.
  • 人は分離し、フロントエンドのバックエンドで使用される技術の相互間の根元は相互理解を必要とせず、透明性を実現することができます(もちろん相互理解がより良い)
  • .
  • 作業分離、プロジェクトまたは製品の単一機能の横方向に基づいて作業分離を行い、タスク区分がより細い
  • 注目点分離、フロントエンド偏向ユーザ、バックエンド偏向システム自体

  • 分離の長所と短所(一体化した開発戦略に対して)
    メリット
    非常に多く、いくつかの明らかな
  • バックエンド技術はもはや制限されていないバックエンドは、異なるビジネスシーンに基づいて適切な技術を選択してインタフェースサービスを実現することができ、技術は人と同じように、何でもできることはよく精巧ではなく、長期にわたってある分野に集中している場合、特定の問題を処理する際に比較的優れている.例えば、rubypythonnodejsなど多くの言語に得意分野があります.
  • チームの扁平化これはsoaの開発構想エージェントのメリットと同じで、1つのプロジェクトの20以上のシステムがなければ、このようなsoaが開発構想でなければ半年以内に開発が完成しなければならないので、あなたにもっと多くの人をあげても役に立たない.これは丸木橋を渡るようなものです.そのため、フロントエンドの分離はある意味で橋を提供し、チームに対して
  • を扁平化しました.
  • プロジェクトのリスクを低減プロジェクトの品質を提供この分離はプロジェクトにより多くの切断点をもたらし、プロジェクトのリスクを低減させると同時に、注目点が異なるため、プロジェクトの品質は
  • を明らかに向上させる.
  • 全体の開発効率向上大部分の時間は自分の得意なものを使うだけで、前後が快適で、自然効率が
  • 上がってきます.
    欠点
    欠点というよりは,実際には前後の分離を実践する過程で解決すべき困難と難点であると理解できる.
  • seo,これが第一であり,これ以上付加処理を行わない場合seoは満足できない
  • である.
  • コミュニケーションコストが増加し、機能コミュニケーションにおいてフロントエンドという役割が多くなり、製品、設計、バックエンドの多方面コミュニケーション
  • であることが多い.
  • 安全、一体化のフロントエンドに比べて、安全問題はもっと多く、最も簡単な例:バックエンドインタフェースは基本的にすべて
  • 露出している.
    フロントエンドバックエンドの分離に伴う問題の解決方法
  • seo、この問題は主にフロントエンドがwebエンドである場合を対象としている.この問題の根本は、国内の検索エンジンがjsコードを分析しないため、jsに基づいて実現されたページではseoのサポートが得られず、つまり検索エンジンに完全なhtmlを高めなければならないからだ.この問題を解決するにはあまりよい方法はないが,主に2つの方面から着手した.
  • 一体化フロントエンドを使用して爬虫類に専用のページを提供し、データレンダリングのみを行い、UI/UX
  • を行わない.
  • nodejsを使用してサーバ側レンダリングを実現します(なぜnodejsが選択されたのですか?)

  • は安全で、伝統的なcooike/sessionもokで、jwtのような認証の方式がもっと良いだけです
  • まとめ
    前後の端が離れていて、すべての先端が試してみる価値があります.最后にあなたは自分で自分を责めることができます:“私は何をしているのか、明らかにjsの効果を书くだけで仕事の事を完成して、どうして今毎日残业して、またあちこち人を探して疎通します(制品の设计が合理的ではありません时疎通しなければならなくて、设计が适切で考えていない时彼と讨论しなければならなくて、インタフェースが怠けている时また人の気持ちを见なければなりません)”;しかし、しかし、あなたが本当にしばらくしてから、あなたはもっと多くの収穫を得ることができます.技術レベルだけでなく、技術設計レベルのものもたくさんあります.