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

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

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

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

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

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

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

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

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

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

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

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

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

你们觉得这样会不会节省很多效率?
8891 次点击
所在节点    分享创造
107 条回复
wysnylc
2020-09-14 11:02:12 +08:00
软件工程的前辈是建筑工程
建筑工程中有模版化,但是只有临时住房使用而且扩展麻烦唯一好处是可重复利用和迅速移动.但是虚拟世界重复利用和移动就一瞬间的事
所以建筑工程几千年没解决的事情,你说软件工程这百来年的发展怎么做到?
dzdh
2020-09-14 11:05:32 +08:00
learncloud?
cmdOptionKana
2020-09-14 11:12:58 +08:00
集装箱一样组装,前提是:需求像集装箱组装一样简单。

而 web 开发,如果需要开发,目的就是与众不同,要有新东西新玩法。

比如,你要把 V2EX 的前端抄过去,很简单,前端入门的人拿来练手就可以抄过去。但这样的网站没有特色,做不成大事。难点在于 V2EX 当初自己自创的这个,与当时其他网站都不同的表现方式,包含了极大量原创的概念,几乎每一个“零件”都是定制的。

你再看看最近发展良好的笔记网站 Notion,如果它用集装箱一样简单的方式,用现有的其他网站的“零件”去拼凑,就不可能做出自己的特色。而 Notion 的成功,正因为它包含了极大量原创的概念,几乎每一个“零件”都是定制的。
hazardous
2020-09-14 11:26:03 +08:00
这不是 PaaS 么,只不过传统的 PaaS 提供的是 API 接口,而楼主需要的是连页面模块都提供了,用时候页面上只要嵌入一个远程模块就可以了,数据也是保存在服务提供商那儿的。

感觉就用户认证麻烦了点,如果有很多类似的服务器提供者,那必然没有统一的用户认证系统,每个服务都要去各自的提供商去验证,如果使用某一个服务提供者提供的多个服务,那用户认证简单了,但是跟 SaaS 就没什么不同了。
jaylee4869
2020-09-14 11:38:02 +08:00
你的想法很危险。会让大量平凡码农失业(逃
GreyYang
2020-09-14 11:45:07 +08:00
复杂度不会消失,只会转移. 如果你的基础设施封装了大量复杂度且配置少, 方便集成使用, 就会不太灵活, 例如需要对一个问答系统的某一个方面进行一个定制, 可能无法实现, 这样的基础设施功能受限; 如果你的基础设施配置灵活, 各种定制定制接口丰富, 那么复杂度实际还暴露在用户侧, 配置搭建所需要的专业性和时间精力就会大大增加. 这是一个比较棘手的问题. 具体可以参考 No Code 和 Low Code 词条相关背景.
Achiii
2020-09-14 11:49:40 +08:00
想要自定义装修功能?
n37r09u3
2020-09-14 11:51:43 +08:00
说的就是 headless cms 吧 CaaS
Achiii
2020-09-14 11:54:54 +08:00
我用过一个小程序的留言功能,同 leancloud 一起的,感觉就是特别方便
abcbuzhiming
2020-09-14 11:56:16 +08:00
楼主,你不要以为就你一个聪明人,类似的想法早就有人想过,只是他们都复杂度打败了,非定制的组件无法应对复杂度问题,否则通用组件早就淘汰所有程序员了
walsh
2020-09-14 12:02:33 +08:00
当然可以,设计一个强人工智能就实现了,更简单的,招聘几个码农
hoyixi
2020-09-14 12:07:54 +08:00
其实国外已经有很多产品了,面向小白建站的。
matrix67
2020-09-14 12:19:00 +08:00
面向特定领域的软件工具之所以让人觉得复杂,是因为这个问题本身复杂。我们把解决特定领域问题而所需的知识叫做”领域模型“(domain model)。如果我们不了解领域模型,就不能理解为什么 Photoshop 比系统自带的 Paint 复杂几千倍, 或者为什么我们需要正则表达式这种诡异的东西。我们讲的复杂与简单,都是工具设计哲学层面的。

以王垠说的 TeX 为例。写出《计算机程序设计艺术》的 Knuth 到底知不知道程序语言设计的基本原则我们可以不加讨论。了解一点字体设计和排版的都知道,计算机排版问题是个复杂的问题。的确,软件工具的设计目标,是把复杂的问题简化。然而,大多数人不知道的是,简化问题是一个两步过程。第一步,我们需要把现实的问题映射到一个领域模型。第二步,是把这个模型简化到我们人可以处理的地步。很多时候这两步合并起来了,让我们觉得这两步好像是一步,并且认为所有的设计,都应该朝简化的方向走。这是一个对设计的错误认识。

举个非计算机领域的例子:用电饭锅煮饭非常简单,加米加水再按个按钮就行了。电饭锅的设计者的设计目标是操作简单且能完美地煮米。作为工具的设计者,它一方面需要了解大米是怎么煮熟的,另一方面需要提供给用户一个简单的按钮。TeX 作者,从一开始就不是设计一个电饭锅,而是一个精确的温控炉子。有了这个精确的温控炉子,想烧饭的可以把它封装成电饭锅,想做蛋糕的可以把它封装成蛋糕烤箱。设计电饭锅的人的设计,并不比设计精确的温控炉子的人好,或者差。设计者的初衷决定了产品的形状。Kunth 的初衷,正是设计一个可以让他人排版出任何想排版的东西的系统。也就是说,做出一个最终非常简单的,只有一个按钮的排版系统不是他的设计目标。做出一个可以高度定制的系统才是他的目标。


我感觉上面这段说的挺好。
cheunjq
2020-09-14 12:35:16 +08:00
感觉这不是技术的问题,而是利益的问题
shm7
2020-09-14 12:37:26 +08:00
可以啊。所以 web 开发可替代性就像这些集装箱一样。
windyCity
2020-09-14 13:57:23 +08:00
@cheunjq #53 是技术的问题,也是成本的问题,模板粒度太细,太繁琐。粒度不够细,适应面就不够大,可定制性就弱。

通用的模板太难做,就算做出来,维护成本也高到不划算。不同行业,不同公司,个性化需求多到你怀疑人生。最后发现还是招程序员定制开发来的划算。
azcvcza
2020-09-14 14:03:08 +08:00
前端这种那么吃用户体验的地方,套模板倒也不是不行,万一哪里需要改了,需要的工作量不比重新开发来的少
springz
2020-09-14 14:09:47 +08:00
前端微服务吗?我记得有个方案,稍等我查下。
v2orz
2020-09-14 14:09:53 +08:00
可能楼主说的是金蝶用友这样的?这行业里面的大部分需求都是配置组装了
xianxiaobo
2020-09-14 14:10:14 +08:00
其实很多外包公司在做这个事情,如何最快的搭建开发完成网站,并满足用户多样化的需求。
但是没办法做到你想象的那么完美。
提供接口就稍微简单些,但是提供 UI 模块就难了,除非你们都用统一的前端框架,并且用统一的样式。
而且缺点就是扩展性问题,如果要扩展开发就很难。

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

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

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

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

© 2021 V2EX