前言
有关做大数据项目的开发流程
数据处理--->后端调用--->前端展示
一、数据处理
数据处理主要负责:看数据是什么情况。之后根据项目的需求去做些对应的处理比如根据PositionId去重,或者得合并下数据的字段(省级--区级--市级)、数据来源的几个地方(可多加新字段注明数据来源)等
情况1.数据没有,得自己爬取
情况2.数据已经有了,直接用就可以
二、后端调用
后端调用主要负责:获取前端的请求,把数据发送出去
下面这两种方式,区别就在于。
1)新数据的加入,影响有多大(想一下定死的东西和变动的东西的区别)
2)交互性也是一个关键的影响点
情况1.数据分两步走,第一步都是数据处理的那一步。第二步就有区别了,这里第二步是不用后端去处理(在数据处理那一阶段顺便处理好---即对应前端要做的功能图,把对应的数据都一一存到新建的表里。这样速度会很快,但是是死板的。有新的数据加入,就得全部重新做一遍。作用就只是前端的可视化展示,后端不用处理,效率快,当然就没有弹性的需求变动(类似与你只是展示还是有用户的交互这样的区别),定死的)。后端就直接把数据发送出去就好。
情况2.数据分一步走。第一步都是数据处理的那一步。之后后端就自己写代码,按功能,从清洗好后的总表,去过滤数据。前端对应请求什么功能,就发送什么过去。(这样做的好处,就是有新数据的加入,也不需要改动。就是牺牲了性能(不过可以从多线程并发、线程池等手段提升速度))
三、前端展示
前端展示主要负责:向后端发送数据的请求,并调用这些数据
最重要的是,就是前端有什么功能模块有价值,有可看的地方,就得自己想了
1)可以从多维度出发。比如,总共100w数据,你能知道个总数,然后就没了(这个是一个维度)。在分个日期,是不是就知道日期的数据数量了(比单看一个总数有意义,从一个单纯的总数变成每个日期段的总数。这是两个维度)。然后再多个地区选择(可以看各个地区的情况。就是第三个维度了)。。。。。。还得结合用什么图表比较明显的突出
情况1:比如可以用echarts做可视化的图表,数据就调用后端发过来的数据。就考虑怎么解析数据,json数组就是数组、json对象就是字典、js字符串转json(这里前端发送的请求、后端响应、前端再接收。都是有固定的协议的,不用去想太多。跟input是数据的输入、print是打印到控制台一样的道理)
四、前后端分离与不分离
区别:
1)最大的区别是互不干扰,两个人同时可以同时开发一个项目
2)还得考虑版本问题(如本来用的web3.0,结果你换成web4.0来开发。版本不一样可能不兼容)
3)扩展功能也不方便(对于一体化(前后端不分离的来说),分离的话扩展就相对简便,后端就是后端,前端就是前端)
4)耦合度方面(开发效率、独立性、测试范围等)
1.前后端不分离:都在一个web项目里面。1个人写的话影响不大。两个人写的话,就有点麻烦(比如可以这样,后端的继续写,前端写好后再复制回项目)
2.前后端分离:前后端互不影响。自己写自己的,只需要考虑连接方式就好。(这里前端发送的请求、后端响应、前端再接收。都是有固定的协议的,不用去想太多。跟input是数据的输入、print是打印到控制台一样的道理)
五、服务器
比如有Tomcat、nginx服务器
- 无论是后端还是前端,都需要一个容器,服务器就是。(就如你app,得有苹果或者安卓的环境才能使用)。阿里云也算是服务器,只不过就多了一个公网,等于是服务器的服务器容器(解决ip访问不到,项目只能局域网内跑)。
- localhost只能本机项目跑。就如用tomcat这个容器,就可以在本地跑起来(把整个项目都放进去,如前端、后端代码等)。数据一般都是放在本地,所以不用。不过都得环境,比如hbase就得有环境。












网友评论