前端操作数据库的思考

TomVista

一个前端操作后端持久化数据的接口

相比如今基本被广泛接受和应用的后端新秀"微服务",这个理念已经有超过 20 年的沉淀,然后仍然没有被广泛应用和接受?,目前只活跃在特定业务和特定技术人群.

一些产品示例:

  • OLE DB for OLAP
  • MDX ( Multi-Dimensional Express 多维表达式)
  • Cognos
  • 其他 OLAP
  • 一些报表引擎
  • APIJSON?
  • hasura

提前点出恰饭和屁股问题

  • 前端用这个会加大工作量,提升心智负担,技术型偏向全栈。
  • 后端 curd 仔被消灭掉
  • curd 确实可以被大限度的替代,节省成本

软件工程角度

  • 维护难度,会随着代码量和业务复杂度的增加,指数级上升
  • 重构难度,不能重构,只能重写
  • 性能,千万级表的 join,有没有索引都会出问题,依托于这种服务的数据库,出了性能问题就没法解决,加钱,加机器也不行
  • 所有的数据聚合,业务处理,权限管理都依托于这个基础服务,可以暴露给前端,给以最大的灵活性,然而,事实是不存在一个通用的满足前端任何条件组合的高性能数据处理方式,把这些东西交给前端崽崽,真实太理想化了,同样一旦有超于框架的需求,没有任何方法解决,比如 APIJSON 不支持事务,没有锁.
  • 我们暂且推翻上一条,确实有这么一个完美的数据操作服务,然后业务也不复杂特殊,数据量也不大.那么,一个前端崽崽,要掌握什么样的技能能够完成软件开发?调个 api 就能增删查改,就能加权限,就能聚合 /校验数据?
    destroyEarth()就可以毁灭世界吗?最终,所有的后端内容都押到前端,然后,后端逐渐退出市场。这样做,除了减少前后端沟通,有其他优势吗?相比比于单人全栈,我没有想到任何优势。

最后

其实市场需要的不是 http 操作后端持久化数据,而是降低开发成本,解决前后端矛盾。http 操作后端持久化数据 现如今只不过是特定业务,特定场景的特殊需求,或者小打小闹,特定人群的自嗨,恰饭工具罢了。

写这个的原因,是因为有人杠在 业务不复杂,数据不够大,开发水平一般的开发场景,一个这样的服务完全可以支撑起来全部开发,一个初级前端就够了。简直又坏,又蠢。

以上,请大家只考虑技术可行性.

saltbo:你是说 firebase 和腾讯云开发这种东西么

我还是比较认同你的想法呢 不可能完全让前端来搞,但是可以大大减少后端的工作量,未来后端不需要写 CURD 。

我有计划想写一个可以自建的腾讯云开发,但是它应该是一个框架,少量的后端开发来维护他,来对接前端

TomVista:@saltbo 是的,就是这类东西.

你说的这两个属于特殊业务,特殊场景,我反对的是通用型的接口.

请问小程序换量的技术实现是怎样的?

rouwann:像阿拉丁上面提供小程序换量的信息和联系方式,所以是针对特定的小程序,代码里做跳转和数据上报吗?有没有第三方的联盟 sdk 可以解决换量问题?本人产品经理,望指教

吐槽下,队员太坑,逻辑能力差,没有宏观思维,经常要返工,当个组长很累

simonlu9:lz 自认为代码能力也是渣渣,也就是经常写业务代码,不是抬高自己,但是现在同事应该是以前从前端转过来的。 同事之前的旧同事内推的,所以没考究技术,但是现在发觉很难带,就是不能举一反三那种,逻辑经常会漏,一个流程下来,每次 review 代码都要提醒,然后修改再修改,如果不是时间问题,我宁愿自己写,所以现在搞到自己很累。而且女生我又好意思说那…

大家觉得,在公司升职后,有必要学习管理学吗?

helloworld2010:之前呆的一家公司,我第一次升职,虽然也只是家小公司,但还是感觉挺开心的,在工作过程中,我发现,我只会技术,完全不懂管理,所以,我挺好奇的,在大公司的话,会有专门的途径提升管理能力吗?Jooooooooo:需要最底层的管理者最需要学习的是如何把任务交给别人做有本书值得反复读, 叫做 领导梯队 socary:需要,一辈子都需要不断学…

求教客户端技术选型

nightv2:要搞一个数据处理的客户端,可以单机也可以连接服务器运行。只是在 win 平台上的。以前搞过 mfc 以及 c# winform 的版本,现在可以重用的估计是一些后台的 c++ 数据和图形处理代码。求教大佬是用 qt 做前台还是 mfc 做前台(以前的 mfc 前台代码找不到了)。后台的数据图形处理是直接重用还是用其他语言重写。

校招入职干了三个月,对未来发展有点迷茫

iuHSnOsaj:rt,之前在公司实习了一年多,然后转正又干了三个月。大概干的事情是安防方向的嵌入式 Linux 应用软件开发——虽然是在 ARM 平台上,但是因为上面跑的就是标准的 Linux,所以和 x86 相比无非是编译链不同而已,没有涉及到很多底层的知识。开发内容也就是很常见的业务开发,后端服务、数据库存储这些东西;但是因为是嵌入式设备,反而场景小…