不知道是人能力的问题还是前端技术栈的问题

2022-03-29 13:06:13 +08:00
 eGlhb2Jhb2Jhbw
我之前是 mobile 开发。最近做过两三个 web 前端项目,当遇到一些问题的时候,去问资深的前端开发(四五个人),得到的答案基本都是“都可以”、“无所谓”、“暂时先这样”,甚至我问工程目录管理的最优实践的时候,也这样回答我。
我有点接受不了这样子的答案,我希望得到的是这么做的优点是什么,缺点是什么,之前项目遇到过什么坑,所以更推荐哪种方式。
因为遇到过太多的这样的前端开发了,所以我开始怀疑,是不是因为前端技术栈的某种特殊性,导致确实不像其他技术栈一样,能明确的说出方案的优缺点,给出一个明确的最佳实践。
5433 次点击
所在节点    问与答
97 条回复
jamosLi
2022-03-29 21:47:12 +08:00
@eGlhb2Jhb2Jhbw eslint + git husky 。至少在代码风格上可以达到你的要求。
eGlhb2Jhb2Jhbw
2022-03-29 21:51:22 +08:00
@jamosLi #61 嗯,谢谢回答。

eslint + git husky 大部分项目也都有,我提出问题之后,得到的答案不是说我们可以在 eslint 里把这个规则加上,而是 “无所谓”
xiaofan305
2022-03-29 21:52:39 +08:00
@jamosLi 哈哈,"切图仔"这词太有古老味道了。还依稀的记得以前 QQ 群里有人吐槽,说新来的实习生全部用 table ,一个 div 都不写。用 table 切,用 div+css 切,用自定义组件切。。。
eGlhb2Jhb2Jhbw
2022-03-29 21:57:16 +08:00
@xiaofan305 #63 我以为他只是吐槽说说,对前端历史不太了解,没想到还真有这段故事,我继续搜索了。。。
DrakeXiang
2022-03-29 22:03:36 +08:00
我觉得还是看具体问题,大概翻了下你的问题一个是目录管理一个是初始化值类型,虽然我比较菜,是真菜,但是从我来说这两个问题确实没有标准答案。目录管理我理解是项目文件目录的结构?这个很多时候是受限于脚手架和框架,我当初学前端的时候在网上找了几个外国的博客啥的找这方面的最佳实践,但是几乎没有两篇文章是讲的一样的。至于 null 和 undefined 我更是觉得是 js 的糟粕,以至于后面看到 dart 里面只有 null 一种空值的时候都觉得“这样才对嘛”。而且哪有那么多最佳实践,如果有的话 AI 写代码要比现在厉害很多,前端的代码风格也或者框架风格也不会这么千奇百怪了
loading
2022-03-29 22:03:43 +08:00
@eGlhb2Jhb2Jhbw #64 从 frontpage 到 dw 切图,从 ie5.5 到 ie8 的 css hack ,table 布局是最稳的,就现在内部系统也推荐用这种方式,你做 mobile 开发面对的起码也是比较先进的浏览器了,你试一下在 ie6 玩个 border-radius 看看,png 透明通道都需要滤镜。

还有一句话,有点欠妥,但在目前 996 情况下,似乎挺实用:
程序和你,有一个能跑就行。
seakingii
2022-03-29 22:14:51 +08:00
@eGlhb2Jhb2Jhbw 不是,我还是第一次看到有程序员主动要求要"权威"硬性规定给自己"规范"怎么编程的....

我个人最讨厌别人的"规定了"

你真的想有个"最佳范式",为什么不自己研究?

你这种人,我估计真的有"最佳实践",你又会来吐槽了,比如上面说的,如果规定能不用分号就不要用分号,你是不是又不满意了,自己就想用分号...
seakingii
2022-03-29 22:22:14 +08:00
就 null ,undefined 的问题,<<JAVASCRIPT 权威指南>>里就有说了,"最佳选择是使用 null",

显然我认为楼主从强类型语言转到脚本语言开发,不适应,尝试从身边寻找别人的指导,没有达到理想的结果....
waiaan
2022-03-29 22:24:03 +08:00
...当遇到一些问题的时候,去问资深的前端开发(四五个人)...

楼主最好还是把问题具体描述一下,大家才有针对性地回答。
eGlhb2Jhb2Jhbw
2022-03-29 22:25:05 +08:00
@seakingii #67 不是,如果我想加分号,但是我没有强有力的理由说服你,你是项目的 host ,你不加分号我会跟着你不加。
如果出现两种风格我就要抓狂了,无论是对于代码阅读还是项目维护,都不是什么好事情。更别说如果是个二三十号人的开发团队,没有规范的话,项目会变成什么样子。
eGlhb2Jhb2Jhbw
2022-03-29 22:30:34 +08:00
@seakingii #68 那倒不至于,之前写 nodejs service 还写了一年多呢,不过是和后端一起写的,我们很容易就 align 出了一套规则。
还是我 append 说的话,我能接受 “都可以”,不能接受 “无所谓” 和 你说的 “我个人最讨厌别人的"规定了"”。
ByZHkc3
2022-03-29 22:34:55 +08:00
脱离场景都是耍流氓,至于你是想要:最优解,还是又不是不能用。这是俩问题
eGlhb2Jhb2Jhbw
2022-03-29 22:35:40 +08:00
@waiaan #69 问题其实不重要了已经,我多多少少都有答案了。。。
我这块想描述的是,我开发过程中遇到了很多的细节问题,工程实践问题,问了很多资深前端开发,并不是说我拿着一个问题问了四五个人,都给了我同样地答复。那如果是这样,那就是我的问题了。

主要点还是关于前端技术栈同学对于“规范”的理解。
avastms
2022-03-29 22:40:44 +08:00
是前端这个行业的问题。
btw 我上次喷前端某些人直接把我十多年的账号封了。

之前的号提过为什么,尤雨溪,jsx ,airbnb lint 规则,三座大山。
eGlhb2Jhb2Jhbw
2022-03-29 22:42:56 +08:00
@ByZHkc3 #72 由于我在前端比较小白,我并不觉得这是两个问题。
比如可能我考虑到了代码阅读和维护、版本升级、框架迁移之类的问题,认为 null 和 undefined 的问题我是在寻求最优解。但是实际上由于运行环境限制我只能用 null ,undefined 会在一些环境下不可用,导致奇奇怪怪的 bug 。(只是举个例子,应该不存在这种情况)
jamosLi
2022-03-29 23:05:26 +08:00
@loading 受教了。现在干活基本不管 ie 。
waiaan
2022-03-30 03:21:16 +08:00
@eGlhb2Jhb2Jhbw
由于 JS 是非常自由的语言,所以公司要有相应的前端代码规范。
Charrlles
2022-03-30 03:52:31 +08:00
其实真有可能和 JavaScript 有关。本来这门语言的糟粕就很多,导致在一些时候代码怎么写都影响不大,在另一些时候代码要怎么写就要具体情况具体分析。比如你说的 null 和 undefined 大部分情况下语义都差不多,但是又有一些例外,比如 typeof null === ‘object’为 true ,又比如在 typescript 里,可选属性的类型是 xxx | undefined ,初始化为 null 就会报类型错误,硬要在类型里加上 null 又显得很丑。所以很多时候即使有 eslint ,也不可能覆盖到所有例外情况,硬要统一一个规范反而会降低开发效率
justin2018
2022-03-30 07:04:03 +08:00
前端是一个大杂烩 技术更新快 没有啥固定的方式

有时候看着别人的项目 也觉得很累 一个人可以有 N 种最佳实现

相比 还是 喜欢 Java(项目)
TomVista
2022-03-30 08:22:18 +08:00
是这个行业 圈子的问题...

如果有人问我类似的问题,我同样会给出类似的回复

我是不在乎的,我只想更快的搞定工作,然后休息一下,对我再来说,更快,更高效才是目标,什么范式,都不在考虑之内,一两年内写的代码,即使再糟糕,也能维护的过来,够快,就够好,其他的不在乎,

要吵架,你们去吵,别打扰我更舒服的赚钱,毕竟我在知乎 github 和别人吵架 插旗 拉帮派 不会提高收入

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

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

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

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

© 2021 V2EX