Web应用程序中的客户端在用户/客户的控制下,服务器端在开发人员的控制下。这就是为什么要在服务器上进行数据验证的原因之一。
术语“ 前端”和“ 后端”通常是客户端和服务器端的同义词,在很多情况下都可以。但是,也有重要的反例。对我而言,前端是向用户显示内容的任何东西。
在下图中,您可以看到典型的技术/概念以及它们如何适合(前端,后端)/(客户端,服务器端)象限。
前端和后端开发人员
前端和后端开发人员是两个非常常见的角色。当您遇到诸如可在服务器端渲染的React和包括jinja模板引擎的 Flask之类的内容时,这条线会变得有些模糊。
尽管我将Web SQL数据库和索引数据库API之类的技术放在“客户端后端”象限中,但通常知道的角色是前端开发人员角色。
- 前端开发人员应该了解HTML,CSS,DOM和常规浏览器功能(例如caniuse)。通常,他们知道一些jQuery或React。尽管按照我的定义是后端,但我希望前端开发人员了解客户端存储
- 后端开发人员应该了解诸如nginx,gunicorn,Apache或node.js之类的Web服务器。他们应该知道至少一个SQL数据库(Postgres,MariaDB / MySQL等),键值存储(Redis),API开发(REST和GraphQL)。LAMP是前一段时间的典型堆栈。我不希望后端开发人员对浏览器有所了解!
UI设计器与前端开发人员
UI设计器和前端开发器是另外两个角色。所以一个区别是,一个是设计师,一个是开发商。
目的:
- UI设计人员起草了用户体验
- 前端开发人员确保看起来像预期的效果(根据草稿构建真实的东西)
工具:
- UI设计人员大多使用Adobe Photoshop / Illustrator / Sketch / Balsamiq / Invision。
- 前端开发人员使用React,Vue,Angular
API:REST和GraphQL
API由后端团队提供,并且由前端用于将数据填充到应用程序中。后端是跨设备的持久性存储,前端是表示层。API是两者的通信渠道。