V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
eGlhb2Jhb2Jhbw
V2EX  ›  问与答

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

  •  
  •   eGlhb2Jhb2Jhbw · 2022-03-29 13:06:13 +08:00 · 5408 次点击
    这是一个创建于 972 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我之前是 mobile 开发。最近做过两三个 web 前端项目,当遇到一些问题的时候,去问资深的前端开发(四五个人),得到的答案基本都是“都可以”、“无所谓”、“暂时先这样”,甚至我问工程目录管理的最优实践的时候,也这样回答我。
    我有点接受不了这样子的答案,我希望得到的是这么做的优点是什么,缺点是什么,之前项目遇到过什么坑,所以更推荐哪种方式。
    因为遇到过太多的这样的前端开发了,所以我开始怀疑,是不是因为前端技术栈的某种特殊性,导致确实不像其他技术栈一样,能明确的说出方案的优缺点,给出一个明确的最佳实践。
    第 1 条附言  ·  2022-03-29 22:19:18 +08:00
    @DrakeXiang #65 可能帖子比较多,你没注意到中间的讨论。我的点并不是在于想追求万金油,而是对 “规范” 的理解和认知,我认同你说的“都可以”,但是不认同你的“无所谓”。


    @loading #66 这个帖子的重点不在是不是该追求规范。而是在我周围的人里,相比其他技术栈的人来说前端人的“规范”概念不强。到底是我圈子的前端人这样,还是整个社会的前端人这样,这样的状况是由于水平导致的,还是技术栈的局限性导致的。
    第 2 条附言  ·  2022-03-29 22:51:20 +08:00
    来找架吵的人别回贴了(无论是正方反方),我是确实有困惑,并不是想攻击人或者技术栈。

    可能有些人会因为我某些措辞而感到被攻击了,我对他们道歉!!!
    97 条回复    2022-03-30 23:01:47 +08:00
    czfy
        1
    czfy  
       2022-03-29 13:14:05 +08:00   ❤️ 6
    这种回答就是人的问题
    你也可以说是公司的问题

    公司把敷衍随便的人招进来了
    或者公司管理不好,把本来对技术有热情的人变成了敷衍随便的人
    eGlhb2Jhb2Jhbw
        2
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 13:20:15 +08:00
    @czfy #1 在公司遇到其他技术栈这样的人比例偏低,前端这样人比例很高,所以想着是不是和技术栈有关系
    Chism
        3
    Chism  
       2022-03-29 13:26:39 +08:00
    这种问题建议 V2EX 发帖问
    wxsm
        4
    wxsm  
       2022-03-29 13:27:39 +08:00
    我自己做前端,我可以明确地告诉你:前端开发同学之间的技术水平差距非常之大,尤其是资深前端之间。对你所提的这些问题有追求的,更是寥寥无几。
    wxsm
        5
    wxsm  
       2022-03-29 13:29:20 +08:00
    当然也有可能是我自己技术也不怎么样,没去到人才济济的地方。
    eGlhb2Jhb2Jhbw
        6
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 13:32:15 +08:00
    @Chism #3 也不是说我自己不能通过查找,发帖等方式去问去学习。实际上问项目上的人,也是一种项目内部对齐的过程,不过我感觉对不齐罢了。。。
    ccmiao
        7
    ccmiao  
       2022-03-29 13:35:59 +08:00
    等遇到过一个项目里面需要应用到 N 个来源的数据之后,等你知道大家只是你的同事不是你的老师,等你自己管理那种短期就会经历两三个的大小规模的项目之后
    eGlhb2Jhb2Jhbw
        8
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 13:38:40 +08:00
    @wxsm #4 我其实就是这样的感觉,暂且不说 mobile 技术栈我自己就能搞定,我遇到做后端的开发,无论是 java 、.Net 、甚至 nodejs 的,都能和我讨论个有来有回。所以 #1 说的公司的问题,我觉得权重会比较低,要不然我也不会单独说前端技术栈了。
    转回问题,我只是想问问,是不是因为前端技术栈的某些特性,导致了这样的市场现状。
    marcong95
        9
    marcong95  
       2022-03-29 13:38:58 +08:00
    工程目录管理指的是工程文件夹里文件怎么放的那种问题?

    若是,我觉得前端迫于不想折腾 webpack ,都是脚手架怎么放就怎么放。。。。
    3dwelcome
        10
    3dwelcome  
       2022-03-29 13:41:04 +08:00 via Android
    前端确实不太重视积累,和前端本身项目周期短,代码复用率偏低有直接关系。

    当然大牛也有,你在 github 自己找项目看,还是有很强的人。

    只是公司找牛人很难。
    ryougifujino
        11
    ryougifujino  
       2022-03-29 13:43:33 +08:00
    你去问喜欢用 angular 的大概会有不一样的答案。
    eGlhb2Jhb2Jhbw
        12
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 13:45:05 +08:00
    @ccmiao #7 我已经工作 7 年了,你说的这些我都经历过,也带过几个项目。我们公司整体氛围比较好,有很好的互相学习氛围。所以我的问题问的点并不是在于别人为什么这样子对我,而是前端技术栈是不是有什么特殊性。
    eGlhb2Jhb2Jhbw
        13
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 13:48:36 +08:00
    @marcong95 #9 可能是更细节一点的那种,比如某些业务要不要拆文件出来,拆文件出来放在哪里,会不会对复用有影响之类的。
    eGlhb2Jhb2Jhbw
        14
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 13:50:18 +08:00
    @3dwelcome #10 但是我感觉 mobile 的周期也挺短的,当然,我们公司 mobile 和前端人的量级差距有点大。有你说的这种可能。
    eGlhb2Jhb2Jhbw
        15
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 13:50:40 +08:00
    @ryougifujino #11 angular 是有什么特殊的吗,求教
    ryougifujino
        16
    ryougifujino  
       2022-03-29 14:00:04 +08:00
    @eGlhb2Jhb2Jhbw #15 angular 算是三大框架里面最注重工程化的吧,很多东西都有官方的最佳实践,喜欢 angular 这种比较“重”的框架的人大概率也对这方面比较注意。
    yukiiceqqq
        17
    yukiiceqqq  
       2022-03-29 14:06:42 +08:00   ❤️ 2
    因为前端本来就是很多种解决方案啊,你应该甩出你的具体问题,我想看知道你问的是啥。
    iidear2015
        18
    iidear2015  
       2022-03-29 14:14:51 +08:00   ❤️ 6
    简单来说,如果你只是简单地问一嘴,得到的就是简单的回答。如果你追问,追加场景,资深的前端是有能力补充回答你说的优缺点的。

    为什么得到的答案基本都是“都可以”。因为绝大部分前端业务场景下,各种方案确实都可以 cover ,并没有明显优劣。
    比如用 React 还是 Vue 好,大家可以分析出很多优点、缺点。但是第一反应也只会告诉你“都可以”。
    3dwelcome
        19
    3dwelcome  
       2022-03-29 14:20:22 +08:00
    前端最大的问题,是技术方面很容易陷入到某一个舒适圈,导致技术没进步。

    我有一段时间,在 V2 大力推广 WASM 前端技术,结果发现在前端技术栈里,根本不需要所谓的 WASM 这种新技术。

    你是很难把一个人从舒适圈里拉出来的。
    whyrookie
        20
    whyrookie  
       2022-03-29 14:43:40 +08:00
    @eGlhb2Jhb2Jhbw 没有写过其他端的项目,只是知识上有些涉猎,本职是客户端。我一直觉得,写客户端需要解决各种各样的坑,应对各种奇奇怪怪的问题,能力要求其实不低,也可能是我一叶障目
    cmdOptionKana
        21
    cmdOptionKana  
       2022-03-29 14:56:23 +08:00
    “我希望得到的是这么做的优点是什么,缺点是什么,之前项目遇到过什么坑,所以更推荐哪种方式” ……

    工作时间聊这个不合适,日常工作是干活生产,不是培训。如果专门组织学习会、分享会则另当别论。

    而如果是下班时间聊,则主要看兴趣。上论坛问,可能有几千人几万人看到你的问题,其中大多数人都没兴趣讨论,只有少数十几个、几十个人插科打诨,认真聊的也就几个人,比例是很低的。在线下,你一共才问几个人,大概率碰到没兴趣聊这个话题的人,很正常啊。
    erlking
        22
    erlking  
       2022-03-29 14:56:30 +08:00
    这不是很正常吗,你看现在这么流行的 react ,一百个前端可以写出一百种套路,前端娱乐圈不是白叫的。
    RomeoHong
        23
    RomeoHong  
       2022-03-29 14:56:42 +08:00   ❤️ 1
    个人觉得前端这个说法是相对于后端的,狭义的前端就是 web 前端。web 前端三要素是由标准组织定义的,并没有定义像开发框架之类的东西,自由度就很高。而 ios & android 的开发是由商业公司定义好的,有自己的开发规范,自由度相对就低一些。
    sankemao
        24
    sankemao  
       2022-03-29 15:07:05 +08:00
    之前做 anroid ,经常遇到小问题源码翻到天昏地暗,现在做 react ,只能说简单,自由,遇到问题请教同事,他们解决不了但有一万种方法绕过去。
    sutaking
        25
    sutaking  
       2022-03-29 15:09:12 +08:00
    楼主你问了啥问题
    要是有人没事就问我是用 vue 写还是 react ,ng ,我也会回答无所谓,都行的
    otakustay
        26
    otakustay  
       2022-03-29 15:17:45 +08:00
    前端就是一堆初级,一些资深,中间的高级部分一片空白
    yunyuyuan
        27
    yunyuyuan  
       2022-03-29 17:44:06 +08:00
    因为都是打工的,前端技术更新又快,我觉得初级,中级前端大环境很浮躁
    RealJacob
        28
    RealJacob  
       2022-03-29 17:50:42 +08:00
    @eGlhb2Jhb2Jhbw 敷衍的回答和人的关系最大。但是和技术栈肯定也有关系啊,前端可选方案太多了,技术选择太多了,很多时候没有所谓的“最佳实践”,各有千秋。可能实际上就是「都可以」。。。
    eGlhb2Jhb2Jhbw
        29
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 18:55:43 +08:00
    @iidear2015 #18
    @cmdOptionKana #21 上边我有说,公司有很好的互相学习氛围。其他技术栈的人,遇到这种情况很少。
    @sutaking #25

    我一般都是带着实际的问题去,上班时间,我也不会去和他们仔细去聊哪种框架之类的问题。

    比如我问过一个问题:“你说我这块初始化值的时候用 null 还是 undefined”。得到的答案是 “都行”。
    因为我俩经验和技术水平在前端技术栈是不对等的,我无法继续从技术角度引起话题,我只能从工程实践方面和他聊,我说这样的话,会出现有些页面初始化值是 null ,有些会是 undefined ,得要统一一个规则吧。然后人家回复我:“这没关系吧,无所谓的”。
    eGlhb2Jhb2Jhbw
        30
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 18:56:48 +08:00
    @yukiiceqqq #17 ⬆️
    eGlhb2Jhb2Jhbw
        31
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 18:57:22 +08:00
    @ryougifujino #16 谢谢科普
    cmdOptionKana
        32
    cmdOptionKana  
       2022-03-29 19:09:49 +08:00
    @eGlhb2Jhb2Jhbw 就这个具体的问题,对于 JavaScript 来说,还真是都行,null == undefined ,真的是没关系无所谓,而且也没必要统一规则(因为内部统一没用,一大堆第三方库不统一)。
    eGlhb2Jhb2Jhbw
        33
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 19:24:16 +08:00
    @cmdOptionKana #32 如果他像你一样这样子回复我的话,我会继续和他就这个问题讨论下去,然后这个帖子本身就不会存在了。😂

    换句话来复述下帖子问题:
    他没像你一样这样回复我,是因为前端人太多了,我恰好遇到了不好的人,不愿意给我说这么多。还是说因为前端技术栈太多的不统一,导致大部分前端开发并不能理解我的问题和痛点,也没心思去思考一些工程实践上的最优实践。
    (只是举个例子,不是结论,不是引战)
    xu45525584
        34
    xu45525584  
       2022-03-29 20:10:33 +08:00
    人的问题。你可以看优秀的团队是如何管理的
    规范 没有随便,而是必须这样做。
    ruoxie
        35
    ruoxie  
       2022-03-29 20:26:06 +08:00
    前端的项目,如果没有人定规范,多少个人接手过就会有多少种代码风格。最佳实践,也许 angular 的项目你能看到
    WhateverYouLike
        36
    WhateverYouLike  
       2022-03-29 20:28:33 +08:00 via Android
    null 是显式空,undefined 是隐式空,所以当然是用 null 啦,undefined 没有手动声明的必要。
    seakingii
        37
    seakingii  
       2022-03-29 20:43:19 +08:00
    前端技术本来就是又杂又乱,更新还快,没有什么固定的最佳实践.后端你可能可以用 10 年前的 JAVA 写,前端你试试用 5 年前的技术?
    Leviathann
        38
    Leviathann  
       2022-03-29 20:47:04 +08:00
    @eGlhb2Jhb2Jhbw react 、dom 相关的 api 用 null ,因为内置的很多声明就是 null 作为空值,其他可以用 undefined 也可以 null 无所谓把
    paradoxs
        39
    paradoxs  
       2022-03-29 20:47:13 +08:00
    事实上就是没所谓,项目能跑起来就行。

    (如果真的存在最优解,IDEA 会直接给你带进来了。)
    seakingii
        40
    seakingii  
       2022-03-29 20:47:20 +08:00
    楼主你不妨把你的问题发这里看看.
    seakingii
        41
    seakingii  
       2022-03-29 20:48:30 +08:00
    比如这样的问题:
    我是用 css 好,还是 scss,还是 less 好,我也只能说:都可以...
    eGlhb2Jhb2Jhbw
        42
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 20:48:45 +08:00
    @xu45525584 #34 是这样的没错,我自己 host 的项目,我都会明确的定出规范,但是我一般定规范前都会和团队同步为什么会有这样的规范,哪怕只是我个人习惯,并没有优缺点,我也会和团队挑明说出来。所以我在前端项目上才会那样子问别人。
    前端同事给我的感觉就是他们不在乎,并且“个人习惯”之类的问题比较多,他们也不愿意限制大家,并不觉得“规范”有多必要。
    eGlhb2Jhb2Jhbw
        43
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 20:53:19 +08:00
    @WhateverYouLike #36

    @Leviathann #38

    谢谢指导


    @seakingii #40

    我不会去聊你说的那么大的东西,都是比较实际的项目实施中的“规范”,比如上边有描述个 null 还是 undefined 的问题,这种问题遇到的比较多,导致我有个错觉就是前端开发并不在乎“规范”,所以才有了这个帖子。
    eGlhb2Jhb2Jhbw
        44
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 20:56:57 +08:00
    @ruoxie #35
    给我的感觉现在就是这个样子的,很乱。


    @seakingii #37
    我寻求的不是万金油,只是一种态度,有没有对这些问题思考过,觉得这些问题重要程度是什么样子的。


    @paradoxs #39
    这种态度的人的话,我可能就考虑换公司了。。。
    Biwood
        45
    Biwood  
       2022-03-29 21:02:33 +08:00 via iPhone


    特性就是比较感性、浮躁、情绪化、逻辑能力略差,因为门槛低,入门太容易,JavaScript 搞事多,曝光度高,语法糖多,Vue 这类框架更是语法糖中的语法糖,看似资深,其实大部分半瓶水晃荡
    adoal
        46
    adoal  
       2022-03-29 21:03:14 +08:00
    @3dwelcome 说到 wasm ,前些天我在盆友圈转一条关于用 wasm 写数据库插件的推文时,想到两点个人看法:

    1. wasm 是云原生时代冒出的互联网技术里少有能不依赖庞大的基础设施团队就能被个人开发者以一己之力掌握到生产级水平的
    2. wasm 可能墙里开花墙外香,在非前段领域更有前途
    adoal
        47
    adoal  
       2022-03-29 21:05:58 +08:00
    @eGlhb2Jhb2Jhbw 和前端有一定关系。因为前端早期是比较乱的,工程化程度太低,后来是从后端和桌面 GUI 领域的成熟工程经验借鉴了很多才发展起来的,还算是个年轻的、多变的领域。
    xiangyuecn
        48
    xiangyuecn  
       2022-03-29 21:06:08 +08:00   ❤️ 1
    web 前端项目,得到什么样的回答都算正常,都是正解。不要拘束🐶
    learnshare
        49
    learnshare  
       2022-03-29 21:12:32 +08:00   ❤️ 1
    前端是这样随意的,具体问题都不好具体分析

    即便是一个按钮,10 个人能有 30 种写法
    agagega
        50
    agagega  
       2022-03-29 21:19:41 +08:00
    前端有热衷于装配零件的文化。楼上有人提到的 Angular 因为更重视整体解决方案,所以没有楼主说的这么多问题。另外一个例子是 Ruby on Rails ,作者喜欢日本料理,很推崇所谓 Omakase 的理念(让厨师帮你决定吃什么而不是客人自己一道道点菜)
    seakingii
        51
    seakingii  
       2022-03-29 21:25:04 +08:00   ❤️ 1
    前端不是不在乎规范,是没办法规范,主要一是 js 太灵活,二是更新太快,三是技术太多

    一 js 太灵活,怎么写都可以.现在又开始流行 ts 了,ts 的严格规则还容易"规范"一点

    二 更新太快,js 就有 N 个版本

    三 技术太多,js 就有 js,ts,wasm,以及 N 种可以编译成 JS 的其它语言
    css 又一大堆
    html 又有 N 个版本
    浏览器又有 N 种的 N 个版本,还有各种 WEBVIEW,
    终端设备又有 N 种
    还有各种可以用 NODE.JS 开发的 APP,比如 VSCODE
    还有 N 种打包器之类的工具,比如 WEBPACK,VITE 之类
    还有 N 种框架,比如 VUE,REACT,每种有自己的推荐做法
    还有 N 种 UI 框架,比如 ELEMENT UI, antd 等等...
    还有各种用 JS 开发 APP 的技术,比如 React Native , Uni-app,微信小程序之样的

    以上都算是"前端"的技术吧,请问怎么统一规范?

    只能说,或许在某个短期时间内,在某个范围内(比如公司里,开发团队里),可以由权威人士做某个技术范围内出个"最佳实践"...
    yhxx
        52
    yhxx  
       2022-03-29 21:25:08 +08:00
    因为大部分场景下确实是都可以。。。
    就像 js 到底要不要加分号这种问题,争不出结果的,一般都是团队强制指定一种然后大家遵守
    还有 React 这种东西,根本没有什么最佳实践,怎么写都能实现需求
    seakingii
        53
    seakingii  
       2022-03-29 21:26:38 +08:00
    感觉如果能由 Flutter 统一所有"前端"开发,那还是有可能有个"规范",语言就只有一种 Dart,也不用关心什么 HTML,CSS 了,所有的统一成一种实现方式
    eGlhb2Jhb2Jhbw
        54
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 21:32:19 +08:00
    @seakingii #51 你说的上边的一堆我都能明白,我也说了,我要的不是万金油,任何技术栈都没有万金油的最佳实践。
    其实我恰恰想表达的一点就是你说的最后一句话,有些时候,我接受你告诉我“都可以”,但是你是“权威”,你需要给我或者说是团队,制定一个“最佳实践”。但是我遇到的前端人很少有这种 sense 的,甚至有点抗拒。
    charlie21
        55
    charlie21  
       2022-03-29 21:34:36 +08:00
    来,说说你都问了什么
    loading
        56
    loading  
       2022-03-29 21:36:49 +08:00   ❤️ 1
    建议先看《提问的智慧》
    jamosLi
        57
    jamosLi  
       2022-03-29 21:37:55 +08:00   ❤️ 1
    确实在大多数情况下“都可以”、“无所谓”、“暂时先这样”,并且有些骚操作太骚,动的不好就会 g ,改起来又是改一串。并且前端也很少出现一些性能上的问题,都分摊了,除非卡死,大部分时间都是能跑的。我想不管前端后端,大多数人都是能跑起来就行的吧。我觉得能给你“都可以”、“无所谓”、“暂时先这样”这样结论的人也说明他踩过不少坑了。混子另说。
    eGlhb2Jhb2Jhbw
        58
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 21:39:39 +08:00
    @loading #56 不知道有没有《回答的智慧》
    eGlhb2Jhb2Jhbw
        59
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 21:42:39 +08:00
    @jamosLi #57 嗯,我会把这些问题抛出来就是因为我觉得太难受了。所以想着是不是可以通过那些方式方法能改善这种情况。至少像我前面描述的那个问题场景,我不用写一个判断的时候,还要去看看定义是 undefined 还是 null 。
    jamosLi
        60
    jamosLi  
       2022-03-29 21:44:22 +08:00
    当然前端能大胆叫出前端也才几年。15 年开始?以前都叫切图仔。并且又是多种技术栈开花,谁也不服谁,风格也是迥异。不像安卓就是安卓,java 基本就是 spring maven 。时间短,没沉淀,技术杂,没规范。写程序确实有些人靠天赋,但绝大多数还不是靠时间,靠磨砺么。显然还是都差点。
    jamosLi
        61
    jamosLi  
       2022-03-29 21:47:12 +08:00
    @eGlhb2Jhb2Jhbw eslint + git husky 。至少在代码风格上可以达到你的要求。
    eGlhb2Jhb2Jhbw
        62
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 21:51:22 +08:00
    @jamosLi #61 嗯,谢谢回答。

    eslint + git husky 大部分项目也都有,我提出问题之后,得到的答案不是说我们可以在 eslint 里把这个规则加上,而是 “无所谓”
    xiaofan305
        63
    xiaofan305  
       2022-03-29 21:52:39 +08:00
    @jamosLi 哈哈,"切图仔"这词太有古老味道了。还依稀的记得以前 QQ 群里有人吐槽,说新来的实习生全部用 table ,一个 div 都不写。用 table 切,用 div+css 切,用自定义组件切。。。
    eGlhb2Jhb2Jhbw
        64
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-29 21:57:16 +08:00
    @xiaofan305 #63 我以为他只是吐槽说说,对前端历史不太了解,没想到还真有这段故事,我继续搜索了。。。
    DrakeXiang
        65
    DrakeXiang  
       2022-03-29 22:03:36 +08:00   ❤️ 1
    我觉得还是看具体问题,大概翻了下你的问题一个是目录管理一个是初始化值类型,虽然我比较菜,是真菜,但是从我来说这两个问题确实没有标准答案。目录管理我理解是项目文件目录的结构?这个很多时候是受限于脚手架和框架,我当初学前端的时候在网上找了几个外国的博客啥的找这方面的最佳实践,但是几乎没有两篇文章是讲的一样的。至于 null 和 undefined 我更是觉得是 js 的糟粕,以至于后面看到 dart 里面只有 null 一种空值的时候都觉得“这样才对嘛”。而且哪有那么多最佳实践,如果有的话 AI 写代码要比现在厉害很多,前端的代码风格也或者框架风格也不会这么千奇百怪了
    loading
        66
    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
        67
    seakingii  
       2022-03-29 22:14:51 +08:00
    @eGlhb2Jhb2Jhbw 不是,我还是第一次看到有程序员主动要求要"权威"硬性规定给自己"规范"怎么编程的....

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

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

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

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

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

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

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

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

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

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

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

    要吵架,你们去吵,别打扰我更舒服的赚钱,毕竟我在知乎 github 和别人吵架 插旗 拉帮派 不会提高收入
    yaphets666
        81
    yaphets666  
       2022-03-30 09:09:15 +08:00
    目录这种东西除了某些特殊的,本来就是放在哪都可以,本来就是这样的,前端是个发展中岗位,甚至 js 这门语言都是在高速发展中.
    devwolf
        82
    devwolf  
       2022-03-30 09:32:11 +08:00
    我猜……因为前端和后端精进的方向不太一样?
    规范的话,
    后端的很多规范,在前端来说,或者对于 js 来说是过于严格的,js 可以受用这些后端规范,但是真就没有“区别”。
    我不太熟悉后端,没法子总结前端区别于后端有哪些特有的规范。
    summerLast
        83
    summerLast  
       2022-03-30 09:33:40 +08:00
    个人认为是 js 之前的模块管理的概念很弱化,很多都是三方的,import export 语法也是 ES6 开始使用的,而之前前端组合大一些的项目应该也多是面向页面 而非是封装组件 组件在组合成页面 组件模块化的概念教弱,而且前端这几年变化也确实挺快的,最佳实践有的时候是和特定框架 特定版本有关的,所以不必过多纠结,先默认使用官方的脚手架,后面有了自己的领悟再去寻找最佳实践。包和组件化与模块化是将大问题分解成若干小问题人为抽象出的概念,其实还是没有跳出 目录 文件 的概念
    YoRolling
        84
    YoRolling  
       2022-03-30 09:44:59 +08:00
    1. 具体到某些问题的解决方案来说,前端确实有很多“都可以”的方案
    2. 目录这种问题来说,也确实“都可以”,前端的“抽象”能力其实比较弱,一些组件的封装其实是个挺操蛋的事儿,就像有些老哥说的那样,复用度太少了。
    3. 比如前端工程化这类的问题,很多人是不 care 的,“写代码就写代码,剩下的我不管也不想管”,这些东西首先来说没有像后端那样比较成熟通用的方案,各个公司的场景不一样,其次有些前端甚至认为上了 webpack 就是做了工程化
    4. 最后也得扯到人身上,众所周知,前端的人是参差不齐的,当然后端也是,只不过前端更明显。有些人只知道该这么写,而不知道为什么。

    最后说一句额外的一个事儿吧,我一朋友,也写了好几年前端了,npm scripts 抛出 error 到控制台,error 清清楚楚明明白白的,然而就是看不懂。
    wygege
        85
    wygege  
       2022-03-30 10:09:07 +08:00
    身为前端,讲一点俺的看法
    我觉得浅层次的原因是,前端入行最容易,培训班转行的人最多,导致前端人员的水平层次不齐

    但是我觉得根本原因是 JavaScript 本身就是动态语言,写法本身就很灵活,不存在什么固定的规范,很多开源项目或者大公司都是搞一套自己的规范,不存在什么大一统的概念。这种灵活也是前端这些年发展很快的一个原因吧。而且 js 本身也不存在一个“官方”的概念,ECMA 只是制定了一个标准,实际也是各家实现各家的
    zooeymango
        86
    zooeymango  
       2022-03-30 10:18:03 +08:00
    本来 js 就不是强类型语言, 写法就是可以很随便, 虽然随着模块化的发展现在有工程化的趋势, 但是总体来说很多地方就是可以“随便写”的, 要不然也不会有那么多轮子那么多框架了, 最终落实到项目的业务上, 能贴合业务、逻辑自洽, 就是好前端, 没有最佳实践之说
    horizon
        87
    horizon  
       2022-03-30 11:00:58 +08:00
    你这是群体归因错误
    horizon
        88
    horizon  
       2022-03-30 11:03:42 +08:00
    @3dwelcome 喷了,虽然前端有这样那样的问题,但你这个和舒适圈有什么关系?
    拿着锤子到处找钉子
    zhaol
        89
    zhaol  
       2022-03-30 11:03:58 +08:00
    追求统一规范即可,最佳实践不必强求。很多时候,这个最佳实践并不一样,一味的追求没有意义。但是你如果是想统一项目的代码规范,我觉得比较靠谱。
    encro
        90
    encro  
       2022-03-30 11:09:05 +08:00
    作为一个后端偶尔学点前端,我鉴定是:问题没有问好。

    “工程目录管理的最优实践”

    每个前端框架一开始基本都定下来了,现在都是 page,state,component 那一套,不需要什么目录管理最佳实践,也没有讨论点。

    所以问这个问题相当外行,小白一样,人家不想回答你是理所当然。当你问出这个问题,就将小白的标签给自己打上了----至少没用用过多个前端框架。
    3dwelcome
        91
    3dwelcome  
       2022-03-30 11:13:40 +08:00
    @horizon "虽然前端有这样那样的问题,但你这个和舒适圈有什么关系?"

    后端需要学各种语言,大部分前端都只用 JS ,别的语言都不想学的,所以 WASM 对大部分从业者,就是空气。
    nieboqiang
        92
    nieboqiang  
       2022-03-30 11:15:06 +08:00
    @3dwelcome 你要知道,技术的替代不是他能更高的做什么,而是之前的技术不能做什么。
    nieboqiang
        93
    nieboqiang  
       2022-03-30 11:20:24 +08:00
    我觉得技术不必太过于执着,尤其是工程目录这种不打粮食的问题,只要有规律,那怎么样都好啊。这东西本来就是为了让后来人看懂的,你遵循脚手架就好了啊。

    其实你要不要想一下代码的本质是什么,我觉得他的本质是解决问题,什么规范之类的,只是为了让你同事看懂你的东西,这是个管理问题,不是技术问题。
    3dwelcome
        94
    3dwelcome  
       2022-03-30 11:23:50 +08:00
    @nieboqiang 怎么说呢,我总觉得真正的编程,应该不分语言,不分运行环境。

    但是 V 站上,前端和后端的割裂感是非常明显的。也就是前端的帖子,后端很少会参与。后端的帖子,前端也很少会参与。原因就是用的语言和技术栈不一样。

    好不容易能通过 WASM 技术,把浏览器开发语言给众生平等了。结果大部分前端还是被 JS 给禁锢了,不免有点点可惜。
    nieboqiang
        95
    nieboqiang  
       2022-03-30 11:30:40 +08:00   ❤️ 1
    @3dwelcome 我也觉得,程序员准确定位应该是工程师,为了解决问题而存在的。

    但是现在的这套并没有出现不能解决的问题,那为什么要引入新的东西呢?新的技术,新的思想,那一定是能解决之前不能解决的问题,才会有活力。
    Envov
        96
    Envov  
       2022-03-30 22:20:29 +08:00
    是这种语境吗?

    你:hello 在吗?这个项目工程目录管理的最优实践是什么啊?
    资深的前端开发: 都可以。

    如果是这种语境,我的看法是语境不对,没有表达的欲望。如果真的要表达,我可能需要精心的准备一个写稿的地方,毕竟写稿的地方也是最优实践的一种
    eGlhb2Jhb2Jhbw
        97
    eGlhb2Jhb2Jhbw  
    OP
       2022-03-30 23:01:47 +08:00
    @Envov #96 可能回帖太多了,你没注意到中间楼层,我问的问题都是实际开发中遇到的细节问题,我在工作时候也没时间和别人大扯特扯 high level 的东西。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3239 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:06 · PVG 21:06 · LAX 05:06 · JFK 08:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.