web 开发可不可以像集装箱一样组装起来?

2020-09-14 03:18:05 +08:00
 milu2003516968
最近想做一款产品,搭建官网,然后我感觉有很多重复性的工作。
比如我希望为网站增加一个问答系统,又比如我希望为网站增加一个文章系统,又比如我要开发网站的账号系统,注册+登录+手机验证+邮箱发送验证+找回密码等等。
搭建完之后,我还要搭建产品的文档和帮助中心等等。

其实这些东西,你做下一款产品的时候,这种工作依然是重复的。

我也在想,这世界上,会不会还有人跟我一样,做着一样重复的工作呢?

也许你会说,搭建问答系统?网上有很多开源的问答系统啊,至于文章系统?也有很多 CMS 啊。
至于帮助中心,网上很多产品啊,语雀、gitbook,很多很多。

但你有没有发现,这些东西都很重,比如我如果引进一个问答系统,就是引进一整套的东西,文章系统,又是一整套的东西。

也就是说,我希望这些服务可以定制化、标准化、颗粒化。

最好像集装箱一样,问答系统是一个集装箱,文章系统是一个集装箱,帮助中心是一个集装箱。注册登录也是一个集装箱。

当我搭建我的网站时,我希望这些集装箱拼在一块,组合起来。节省我的效率。

比如文章系统,我可以给你提供接口,甚至是一个 UI 模块。你只需要在前台引入就行了。

后端的文章点击、点赞、文章查看量、文章的发布和修改,都是我们网站提供的。

再比如,问答系统,一个问答系统,你只需要在前端嵌入问答系统就行了。问答的数据分析,后台的统计查看,都在我们网站上进行。

这样,互联网就像是一个一个的基建工程,我们提供最底层的模块化组装服务。

你们觉得这样会不会节省很多效率?
8442 次点击
所在节点    分享创造
107 条回复
goinghugh
2020-09-14 08:20:33 +08:00
如果你只是简单的使用某种功能,这种标准的还是比较容易做的。但是一般情况下,每个公司都有自己的需求,比如账号系统,假如现在有第三方的账号系统,账号体系可能是大而全,也可能是小而精,大而全的时候你简单的使用,会引入很多你不需要的东西到系统中,如果小而精,那又各种不满足,需要你自己理解源码进行二次开发,这样并不会减少太多的工作量。并且需求不是静态的,明天提了一个新的需求让你实现,团队面对一堆“外部系统”估计也是头大的。并且大而全和小而精的定义不是有绝对的界限,而是根据每个人的需要来定义的
milu2003516968
2020-09-14 08:27:56 +08:00
@zoikhemlab 也不全是。比如文章系统,你可以提供一些简单的组件,把文章列出来,比如热门文章、图文并排,或者纯文字列出来。这些可以通过提供 vue 组件的方式,成本应该不算高。又比如问答什么的,也是类似。总之,又有前端,又有后端。
milu2003516968
2020-09-14 08:35:21 +08:00
@blless 飞冰,感觉又不是。他只是一个前端组件而已。
milu2003516968
2020-09-14 08:39:10 +08:00
@goinghugh 第三方存储必要的数据就行了,你需要扩展的数据,自己本地数据库另外开一个就行,好像丝毫不受影响。
TomVista
2020-09-14 08:58:20 +08:00
假设你的程序一直活着,
你这个思路会导致技术成本无限拔高,最终不可维护,
然后重构,你这程序怕是没人能够从一个个黑箱中重构出来
libasten
2020-09-14 09:04:33 +08:00
阿里云有个服务商,叫“速成美站”,是给一些中小企业建官网用的。

我有个朋友购买了那个服务之后,还是不会弄网站,让我帮忙看看,我折腾了好久,感觉就是和楼主说的一样,搭积木做网站,产品系统(竟然支持电商),文章系统,登录模块啥的。

不过这些搭起来也不轻松。
woodensail
2020-09-14 09:20:15 +08:00
你说的是 serverless 化的组件吧?其实现在很多啊,比如各大地图服务商的地图组件,比如某些第三方评价组件之类的。都不需要开发者部署服务,直接注册个账号后充钱,然后再页面里面引入组件即可。

但是这么搞的一般都是大型组件,比如上面提到的地图,如果是小组件,一个页面里面几十个不同公司的组件,风格完全不一样,那真不是一般的丑。

当然另一种做法就是只用接口,自己做 ui,这个就是目前很常用的做法了,第三方客服,第三方 im,第三方直播系统。这写东西各大云服务商都有卖,是很主流的做法。
lower
2020-09-14 09:31:10 +08:00
我为啥要把数据放在你的服务器上?
levn
2020-09-14 09:38:24 +08:00
表面上是重复的,实际上是多样的。
tabris17
2020-09-14 09:40:35 +08:00
这些服务只是看上去一样而已,即便是非常普通的评论功能,也会有千奇百怪的需求在里面
zavieryip
2020-09-14 09:51:01 +08:00
纠正一个说法,节省的是时间,提高的是效率
只能说太过于理想化了
从反面来说,假设完全按照你说的那样做,那你的产品倒闭了,我公司也跟着倒闭吗
securityCoding
2020-09-14 09:58:50 +08:00
楼主的意思是 把模块 api 标准化,前端需要调整后端直接引入一套 sdk 即可
zhw2590582
2020-09-14 10:04:55 +08:00
那我不是要失业了
Rxianbei
2020-09-14 10:08:25 +08:00
技术上确实可以做到,但那就需要集装箱的提供商绝对可靠,能应对各个国家地区不同的法律并作出调整,比如谷歌就不行。
同时需要提供商有较好的服务延续性,不能说砍就砍,比如微软就不行。
同时需要提供商有很好的信用,比如中国企业基本都不行。
across
2020-09-14 10:11:21 +08:00
搜“无代码快速开发平台”
NilXuan
2020-09-14 10:17:45 +08:00
我认为这件事是有价值的,至少可以减少重复工作;当然,能不能提高效率,得看产品自身是否简单好用;如果使用产品的难度高于自己搭建项目,就得不偿失了;
它的难点在于保证产品的扩展性和可维护性,感觉这需要很厉害的产品经理来洞察需求以及很厉害的架构师设计系统架构;
至于对外服务,既可以提供解决系统成品,将系统交由客户自行部署;也可以提供托管服务,甚至可以提供维护升级服务;
楼主如果有兴趣尝试玩一玩,记得带上我,hh ;
ipwx
2020-09-14 10:28:25 +08:00
CMS 做的最好的就是 Wordpress 。大部分需求用 Wordpress + 插件 + 你自己开发就能解决。。。但你又不愿意用 PHP,那你要么自己每次动手开发整个系统,要么再花十年做个 NodeJS 版的 Wordpress 。
taowen
2020-09-14 10:45:31 +08:00
组装的难度在于切分模块。切分得太碎了,模块之间就会有很多的互动,从而丧失切分模块的目标

* 你无法独立理解每个模块。因为模块组装起来会的行为,不是每个单个模块行为的简单加和
* 你无法在多个项目之间对模块进行独立复用,因为任何一个模块都会牵扯出一大堆关联的模块

我举了很多具体的业务场景来说明这样的困境 https://github.com/taowen/modularization-examples
charlie21
2020-09-14 10:55:40 +08:00
你看看这群网友,同一个问题,换一个提问范式就能得到不同的回答

你带有挑衅色彩问,大家都说你不行 /t/705780
更高级的编程方式(可视化无代码编程):现寻求技术大牛或者有勇气挑战新技术的技术合伙人

你弱弱地问,大家都为你出馊主意 /t/706713
web 开发可不可以像集装箱一样组装起来?

人类的感觉是多么不可信阿
danhahaha
2020-09-14 11:00:36 +08:00
码农就是码头搬运工人,集装箱普及的时候,就是码农失业的时候,希望不要有这样的集装箱

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/706713

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX