知乎这种纯前端渲染真的没问题么?

2017-07-03 14:34:30 +08:00
 autoxbc
类似专栏页面这种,body 里就是空标签和 json
https://zhuanlan.zhihu.com/p/26644788

我就不说禁用 js 会怎样了
就是那大几万行的脚本,随便抛出个错误就会导致页面白板
Web 设计第一课,老师说要 "平稳退化,渐进增强"
是不是知乎的高逼格导致他们的前端也很吊?
17596 次点击
所在节点    前端开发
103 条回复
libook
2017-07-03 23:51:14 +08:00
@autoxbc

楼主是从完美主义来考虑的,而我以及一些朋友们是从实用主义来考虑的,双方考虑的角度完全不同。

楼主对于技术本身的观点没有问题,但仅限于学术上面,实际情况往往不像学术研究那样理想化,而且复杂得多。

相信这里回复的朋友们在企业里工作的居多,企业的最终目的是赚钱,赚钱的主要原则是以最小成本实现最大收益,只有高性价比的事情都做完了才会考虑性价比不那么高的事情。知乎也是企业,而且是互联网创业企业,对于互联网创业企业来说,收支平衡+稳定的盈利模式才算作“能活下去”,暂且不说他们在技术层面的决策是否合理,但毕竟作为一个离“能活下去”还相差甚远的企业,不得不持续和融资余额赛跑,所以必须在每一个决策上都要掂量性价比。

只有企业实现了“能活下去”的目标,并过上了“衣食无忧”的日子,才会逐渐从实用主义转变为完美主义,一个很好的例子就是 Alphabet(Google),靠着强大无比的营收能力,Alphabet 现在市值 6295.74 亿美金,基本上到了想干啥就干啥不愁钱花的状态。
而知乎前段时间才估值 10 亿美金,看起来觉得很多,但实际上只是估值而已,实际余额远少于这个数。余额就这么多,搞出了稳定的盈利模式以及达到了收支平衡,公司就可以活下去;否则的话运气好还能再融资续命,运气不好就只能散伙。

综上,知乎的网站并不适合拿来讨论“平稳退化,渐进增强”,因为技术理想并不是决定知乎技术团队决策的唯一因素,甚至可能都不是主要因素。
tlday
2017-07-03 23:51:45 +08:00
@autoxbc 无障碍浏览这么长时间我只见 mdn 和 w3c 有做过。理想确实很丰满,标签语义化,无障碍浏览,平稳退化这些东西,很酷,但几乎是前端界的 OSI 七层模型。你要求一个商业网站花与收益不对等的成本去做额外的开发工作来取悦极少数用户是不现实的。

知乎: 北京智者天下科技有限公司

公司是指一般依法设立的,有独立的法人财产,以__营利__为目的的企业法人。
公司是指全部资本由股东出资构成,以__营利__为目的而依法设立的一种企业组织形式;
企业一般是指以__盈利__为目的,运用各种生产要素(土地、劳动力、资本、技术和企业家才能等),向市场提供商品或服务,实行自主经营、自负盈亏、独立核算的法人或其他社会经济组织。

如果你喷教你这些的那个老师自己做的网站或者学校做的网站都不标签语义化,平稳退化,无障碍浏览,那我是兹辞的。
autoxbc
2017-07-04 02:28:35 +08:00
@libook
@tlday

我觉得成本驱动是对的,那么知乎这个级别的站,写一个退化规则,要求专栏可以看见文章,问答可以看见问题和答案,需要多少人月?
FragmentLs
2017-07-04 03:03:28 +08:00
noscript 用户表示现在真的没几个网站能够无 js 正常运作了,即使是简单的 landing page 都没几个人去做平稳退化了
markocen
2017-07-04 03:32:56 +08:00
我猜知乎会判断是不是爬虫访问,如果是就在服务器端渲染,这样比较节省资源
isbase
2017-07-04 05:29:58 +08:00
@autoxbc 你不是 Google
jingniao
2017-07-04 05:32:52 +08:00
知乎的前端风格还是没有统一,两种风格切换好难受啊
GoBeyond
2017-07-04 07:38:19 +08:00
相信现代浏览器的性能,当然如果非要拿低版本 ie 讲这个的话,我相信谁也没办法
libook
2017-07-04 08:18:45 +08:00
@autoxbc

这并不是单单需要多少人月开发的问题,通常在正式制定开发方案之前就要首先评估需求的“合理性”,可能要考虑更多的问题:
1. 受众有多少?目标用户在其中的占比为多少?
2. 能带来多少盈收或潜在盈收?
3. 长期维护成本有多少?
4. 运营成本有多少?
5. 目前全公司整体项目计划优先级和排期以及人力资源的分配是什么情况?

第 1 项我已经做过简单说明,我不清楚知乎自己在市场营销和产品设计方面的“目标与用户”是什么定义,所以也无法给出估计。
第 2 项需要有进行中的或者实验中的盈利模式,和内部的数据分析,这个外部人是不知道的。
第 3 项肯定是存在的,而且不一定会少,基本上日后所有产品需求设计都需要考虑是否要同时在两个前端上实现(或修改)、有什么区别设计、功能逻辑是否互恰、现有架构是否能够实现、因为差异化带来的额外技术成本有多少。
第 4 项不一定会便宜,最起码渲染用服务端要有一套分布式集群,要做负载均衡和弹性伸缩,而且也要长期负担带宽和流量费用,也要有足够的人力运维。
第 4 项要看知乎内部的具体情况了,如果项目排满而且有很多更高优先级的项目在占用资源的话,即便服务端渲染机制要开发,也会被排到后面,而且前面有可能会不断有更高优先级的新项目插入。

以上几项评估出来的结果会被作为此项需求“合理性”的参考。举个例子,如果成本远大于盈收期望,而现阶段还有更多盈收期望大于成本的项目在计划中,那么这个需求就暂时可以被定为“不合理”。

如果是“合理”的需求,可以安排开发计划的话,只从开发成本上来说:
1. 因为之前是前后端完全分离的项目,至少需要单独写一套渲用染服务端,渲染用模板要重新开发,简单来说会按照原有纯前端渲染的产品能设计取一定的完成度比例重制。
2. 原有提供数据和业务逻辑的服务端,要针对渲染用服务端,进行 API 和业务逻辑的重新设计,以保证通用性或者兼容性;因为如果服务端渲染的产品呢不能完全实现纯前端渲染产品的所有功能的话,必须要确保服务端渲染的产品也能够具备严密的业务逻辑。这其中最恶心的莫过于在两个前端产品中出现完全不同的功能逻辑设计,这会增加数据资源服务端的复杂度。
3. 原有纯前端项目里,要重新考虑整个优雅降级的机制如何糅合进去,如果遇到架构或可行性问题的话可能要对其进行一定程度的重构。
具体工作量要按照产品设计者规定的产品设计来评估。当然因为并不清楚知乎内部的项目运作方式,这里只是做一个简单的猜测。
Reign
2017-07-04 08:23:29 +08:00
这可苦了百度这种上古时代的爬虫了,不识别 js 咋办?要不我把知乎全爬下来提交给百度,百度会不会认为我的全是原创新鲜内容,给我高权重?
libook
2017-07-04 08:24:18 +08:00
另外一个方面,产品设计上会因为某些目的故意对用户做出限制。举个例子,如果市场营销方面认为手机号极其重要,那产品设计上有可能会故意关闭除了手机号以外的其他注册方式,虽然用户可能会觉得不够友好,但是产品设计和市场营销方面认为可以在其中获得的好处远大于对用户的影响。
Silicon
2017-07-04 08:26:03 +08:00
我的看法是,如果关了 JS 这个页面的主要内容没展示出来,那么这页面最高 59.9 分
doubleflower
2017-07-04 08:31:09 +08:00
这个专栏基本一个静态的网页也用纯 JS 是不是脑抽了?这个开发更麻烦,用户体验更差。
Clarencep
2017-07-04 08:50:32 +08:00
textarea 里面的居然真的有助于 SEO。。。

tairan2006
2017-07-04 09:01:58 +08:00
楼主,你是产品经理?兼容到哪个版本是产品说了算啊…老板讲究的是性价比,既然不影响绝大部分用户,为什么不能用…

愿意的话,兼容到 IE1 也行啊,又有什么意义。
leewayhsu
2017-07-04 09:30:57 +08:00
现在有些前端兼容到 IE8 都不愿意的,你还让他们平稳退化?不过话又说回来这个还是产品和老板决定的,前端的想法只是一个参考。
dtysky
2017-07-04 10:00:31 +08:00
前端渲染没毛病
不过我觉得首屏服务端渲染至少要做的吧。。。
AntiGameZ
2017-07-04 10:09:16 +08:00
个人揣测下几种可能:

1、知乎团队压根没想到这层事儿。

解决办法:提一个 ticket,看他们怎么应对。

2、知乎团队知道这回事儿(比如已经有人给他们提过 ticket ),但是选择不处理。

解决办法:不停的提这件事儿,搞个大新闻,逼着知乎表态。确实像你说的,这不是一个真要耗费多少人月的事儿。

3、知乎知道这件事儿,并且已经在做了,只是还没做出来。

解决办法:和上面一样。

--

个人做点无端揣测,在公司里大家都是一堆 TODO list 等着做,无数个 Deadline 要赶。如果一个设置紧急级别为普通的 Task,因为一直有紧急的 Task 插队排在它前面的话,那么这个普通的 Task 就永远也不会被完成。

上面也说到了,互联网创业公司做事儿有个轻重缓急,如果就这么“知道但是没实现”的话,我觉得可以理解。我们作为局外人,唯一能做的,似乎就是应该想些办法,去看看有没有办法提高这个 Task 的优先级吧。
shunia
2017-07-04 10:17:44 +08:00
瞎说什么大实话,不整点高科技,怎么才能在下次找工作的时候要更高的工资啊.难道告诉面试官:我做了一些退化的支持工作?
coolzjy
2017-07-04 10:24:21 +08:00
> 就是那大几万行的脚本,随便抛出个错误就会导致页面白板

同理

就是那大几万行的脚本,随便抛出个错误就会导致服务器当机

就是那大几万行的脚本,随便抛出个错误就会导致数据库死掉

就是那大几万行的脚本,随便抛出个错误就会导致操作系统崩溃

处理异常难道不是程序员的基本工作?楼主是小学生?

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

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

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

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

© 2021 V2EX