我理解的前端与后端

时间:2022-03-26 21:09:55

                 NGINX或者APPCHE作为前端,而DJANGO、TOMCAT、FLASK作为后端。

                 NGINX和APPCHE的作用是作为后端的缓冲和提供静态资源的作用,NGINX还有代理服务器(即分发客户端请求到后端的作用)和负载均衡的作用,

         后端作用是处理一些业务逻辑和返回动态网页。

         前端开发主要开发内容是:

         1. UI 主要是做展示性页面。用 HTML 构建页面框架(结构),然后用 CSS 调整内容的布局、字体、颜色等外观属性(表现),也会借助 JS

           (主要是 jQuery)来控制页面的交互(点击、触摸)和数据(行为)。

 

         2. App 方面包含了 UI 的大部分工作,主要目标是让网页代替客户端(Android/iOS app,Windows 客户端等)。App 与 UI 最大的不同,应该
             是相对于表现,对数据更注重一些。可能会用到一些复杂的库和框架(如 Angular.js),与后端(Server/API)的数据交互会很多。
 
         后端开发主要内容是:

         1 后端开发语言

            包括但不限于(php, python, java, scala, go, ruby) 之一。 能够使用一门或者数门语言构造大型应用。

         2 运维

            了解 (ansible, salt, puppet)等自动化运维技术, 了解docker, 熟练掌握shell脚本处理线上问题。

         3 安全

            知道各种安全攻击方式(xss, csrf, sql注入) 代码实现能够规避常见的安全漏洞, 处理各种网络攻击事件。

         4 数据库

            知道常见的数据库的优化以及运维,能够分析sql并且调优使之满足性能

         5 网络编程

           了解linux的网络模型epoll, 熟练掌握http, tcp/ip协议,并且能够通过抓包方式debug。 熟练掌握linux, 能够在高兵法场景下通过优化内核解决问题。

         6 大数据

           了解 (hadoop/storn/spark)技术栈, 能够使用大数据技术栈解决常见的大数据问题

         7 算法和数据结构

           知道常规的算法和数据结构,通过分析代码能了解架构的计算复杂度和性能,并针对性做出优化

         8 机器学习算法

           知道常见的机器学习算法,能够使用机器学习和深度学习解决一些人工智能问题,比如聊天机器人, 反spam, 机器推荐等

         9 搜索引擎

           掌握elasticsearch solr等开源搜索引擎,能够搭建搜索引擎实现各种搜索以及排序任务