公司招的 1w 多的前端,写出的代码,让我这个后端无言以对 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
lovescar
V2EX    程序员

公司招的 1w 多的前端,写出的代码,让我这个后端无言以对

  •  3
     
  •   lovescar 2019-05-05 14:40:50 +08:00 10994 次点击
    这是一个创建于 2352 天前的主题,其中的信息可能已经有所发展或是发生改变。

    坐标天津 直接看图吧 图片

    第 1 条附言    2019-05-05 15:17:41 +08:00
    更新一下:看了大家的回复,觉得自己做的不对,他代码写的确实不错,值得我这种菜鸡后端学习,而且当时和前端交流时,只是告诉他做个校验,没有告诉他做非空校验,不需要提示出来用户名密码是啥。还有下次一定好好分析接口代码,做个合格的后端
    76 条回复    2019-05-07 17:26:19 +08:00
    zaima
        1
    zaima  
       2019-05-05 14:42:57 +08:00
    图裂了
    programHui
        2
    programHui  
       2019-05-05 14:45:11 +08:00
    图炸了
    yjmhero007
        3
    yjmhero007  
       2019-05-05 14:47:08 +08:00
    fighterlyt
        4
    fighterlyt  
       2019-05-05 14:47:09 +08:00   2
    就你这贴图的本事,让其他观众无言以对
    Patrick95
        5
    Patrick95  
       2019-05-05 14:47:43 +08:00
    哈哈哈哈哈哈直接提示账号密码是 admin ?屎一样的代码。

    PS:图裂是因为新浪图床防盗链了。
    Sanko
        6
    Sanko  
       2019-05-05 14:47:45 +08:00 via Android
    贵公司还招前端吗?我可以去学
    lovescar
        7
    lovescar  
    OP
       2019-05-05 14:50:27 +08:00
    @zaima 我错了,下次换个图床
    lovescar
        8
    lovescar  
    OP
       2019-05-05 14:50:38 +08:00
    @fighterlyt 没经验
    wizardoz
        9
    wizardoz  
       2019-05-05 14:51:13 +08:00
    这能说明啥?这明显不是他的最终代码……
    也许他只是想先调一下错误提示样式,等业务上确定了提示的内容和提示方式以后,才能真正放入提示逻辑。
    我觉得这是一个有自己开发方法的前端
    yuezhengling
        10
    yuezhengling  
       2019-05-05 14:51:17 +08:00 via Android
    [img] [img]


    不用谢
    shawshi
        11
    shawshi  
       2019-05-05 14:51:20 +08:00
    这代码完全没毛病,Demo 代码不都这样么?
    dingyaguang117
        12
    dingyaguang117  
       2019-05-05 14:51:43 +08:00
    这有点断章取义吧, 也许是因为 lz 后端接口没搞定,前端写些填充代码呢
    lovescar
        13
    lovescar  
    OP
       2019-05-05 14:52:32 +08:00
    @shawshi emmm 给公司行政用的系统,行政说了,这系统好,不怕忘记密码
    Mithril
        14
    Mithril  
       2019-05-05 14:53:50 +08:00
    @lovescar 这个账号和密码感到很悲伤,因为自己完全没有存在的价值。
    lovescar
        15
    lovescar  
    OP
       2019-05-05 14:54:28 +08:00
    @wizardoz 给我的就是他的最终版了
    learnshare
        16
    learnshare  
       2019-05-05 14:55:13 +08:00   2
    @lovescar 不如去掉账号验证算了
    zzNucker
        17
    zzNucker  
       2019-05-05 14:55:47 +08:00
    看到这代码我是想先吐槽楼主公司的系统这么屎
    tianxia
        18
    tianxia  
       2019-05-05 14:55:56 +08:00 via Android
    一点毛病都没有
    Tink
        19
    Tink  
    PRO
       2019-05-05 14:57:23 +08:00
    没毛病,行政一般都希望 admin/admin
    yalin
        20
    yalin  
       2019-05-05 14:57:36 +08:00   1
    本是同根生
    doco
        21
    doco  
       2019-05-05 14:59:26 +08:00
    这个代码如果真的这个逻辑的话还可以优化吧...
    verifyAccount 和 verifyPwd 改一下再在 submit 里直接调用就可以了吧
    supuwoerc
        22
    supuwoerc  
       2019-05-05 15:00:11 +08:00
    都 return 了为啥还要 else 啊。。。
    sunjourney
        23
    sunjourney  
       2019-05-05 15:00:39 +08:00
    这不是 PM 的锅吗? PM 也许就是这么要求的。。如果不是,贵司问题大得老去了
    tianxia
        24
    tianxia  
       2019-05-05 15:01:04 +08:00 via Android   1
    人家还用 vue 做,敢问你后端用的是什么?
    zzNucker
        25
    zzNucker  
       2019-05-05 15:02:37 +08:00
    @doco 我也这么想的,不过我感觉这个系统反正也没啥逻辑,开发估计就是直接拷贝粘贴拉倒了。
    chinesestudio
        26
    chinesestudio  
       2019-05-05 15:02:40 +08:00 via Android
    内部非技术人员用 正常的很 简单粗暴 他们只管用起来舒服 不管怎么实现
    tianxia
        27
    tianxia  
       2019-05-05 15:03:39 +08:00 via Android
    @supuwoerc 看清楚,不 return 就继续往下走了
    paloalto
        28
    paloalto  
       2019-05-05 15:04:03 +08:00
    说下我的观点,

    优点:首先他知道面向对象编程,而且代码逻辑很明白,即使是小白都能懂,以后别人接手修改时就没有难度;其次,代码规范不错,空格、标点、换行、驼峰命名都没毛病,甚至能用 !== 而不是 != ,很不错了。

    唯一的缺点,可能就是没有做到代码复用。submit() 里的那俩判断其实可以通过给上面的俩方法参调用来简化。
    ThomasZ
        29
    ThomasZ  
       2019-05-05 15:04:47 +08:00 via Android
    @supuwoerc 好好审题,认真看图
    stiekel
        30
    stiekel  
       2019-05-05 15:04:51 +08:00
    @supuwoerc submit() 中第一个 return 是没有问题的,用户名错了直接就不检查密码了。
    axwz88
        31
    axwz88  
       2019-05-05 15:06:12 +08:00 via Android
    @supuwoerc 满足 if 条件才 return,不满足就 else
    st2udio
        32
    st2udio  
       2019-05-05 15:07:18 +08:00
    这明显是别人要求这样做的吧,内网部署,不是很重要之类的。

    总不能他自己想的这种需求?
    supuwoerc
        33
    supuwoerc  
       2019-05-05 15:07:42 +08:00
    呜呜呜,我错了,习惯性的不写 else,每次都是 return 解决~ 下次一定审题
    binux
        34
    binux  
       2019-05-05 15:09:05 +08:00
    你们难道就没想过这个问题吗?
    前端为什么要验证账号密码?
    lovescar
        35
    lovescar  
    OP
       2019-05-05 15:10:49 +08:00 via Android
    @st2udio 我就是哪个后端,我告诉他做个校验,没了
    lovescar
        36
    lovescar  
    OP
       2019-05-05 15:12:11 +08:00
    @binux 前端为什么不能校验非空
    tianxia
        37
    tianxia  
       2019-05-05 15:12:27 +08:00 via Android
    @binux 因为后端要求,哈哈
    lovescar
        38
    lovescar  
    OP
       2019-05-05 15:12:30 +08:00
    @tianxia .netcore
    daydaydayup
        39
    daydaydayup  
       2019-05-05 15:12:34 +08:00 via iPhone
    为何不是后端去验证返回验证错误码?
    lovescar
        40
    lovescar  
    OP
       2019-05-05 15:14:28 +08:00
    @daydaydayup 这个逻辑有呀
    phxsuns
        41
    phxsuns  
       2019-05-05 15:17:23 +08:00
    这个代码是很屎。。。
    and
    我感觉你们前后端的实现方案也是有问题的。。。
    123s
        42
    123s  
       2019-05-05 15:18:58 +08:00
    你是看不起 vue 写得辣鸡吗?
    shawshi
        43
    shawshi  
       2019-05-05 15:21:01 +08:00
    @lovescar 你看着功能都得到别人的一直好评了,说明这个代码很优秀。
    EulerChen
        44
    EulerChen  
       2019-05-05 15:21:36 +08:00
    歪个楼:

    前后端互看不爽,都举得这么简单的事情应该是对方做,以免污染了自己的代码……

    所以前后端还是都自己干吧……

    不要跟我说没精力,这是技术架构的问题,本来前后端就不应该分得太清楚
    lovescar
        45
    lovescar  
    OP
       2019-05-05 15:24:51 +08:00
    @shawshi 也就是说,没有开发业务经验,只要代码优秀就可以咯。了解了
    mars0prince
        46
    mars0prince  
       2019-05-05 15:27:09 +08:00
    我只想知道你为啥知道前端的薪资
    shawshi
        47
    shawshi  
       2019-05-05 15:28:35 +08:00
    @lovescar 前端 感觉用户体验优先。后端注意自己的参数校验和业务逻辑。
    huijiewei
        48
    huijiewei  
       2019-05-05 15:30:47 +08:00
    反正这种代码我是看着难受。。。

    return else 什么的 ,同样的代码写 2 遍。看着难受
    lovescar
        49
    lovescar  
    OP
       2019-05-05 15:32:15 +08:00
    而且无言以对,并不是觉得他写的不好,真的只是无言以对
    LaplaceTransform
        50
    LaplaceTransform  
       2019-05-05 15:34:06 +08:00
    如果不是有人强烈要求这样提示的话,我觉得这代码写的有点置气的意思了。
    janxin
        51
    janxin  
       2019-05-05 16:03:17 +08:00
    这系统为什么要做登录啊,直接打开就能用不好吗
    AV1
        52
    AV1  
       2019-05-05 16:07:58 +08:00
    @lovescar
    你不应该怪开发,应该怪奇葩的需求
    WordTian
        53
    WordTian  
       2019-05-05 16:15:03 +08:00 via Android
    说下我的看法
    为什么不直接把用户密码填充好呢?
    简单省事,点击登录就行了,还要绕个圈子
    meteor957
        54
    meteor957  
       2019-05-05 16:15:07 +08:00
    内容就不评价了,『公司招的 1w 多的前端』 这什么鬼?
    s112
        55
    s112  
       2019-05-05 16:15:48 +08:00
    这个时候就体现出薪资保密的重要性了
    meteor957
        56
    meteor957  
       2019-05-05 16:16:29 +08:00
    『公司招的 1w 多的前端』 跟你想表达的东西有什么关联吗
    smiledoll
        57
    smiledoll  
       2019-05-05 16:23:38 +08:00 via Android
    把业务实现就好了。为啥还会在意代码质量。这代码是可以继续优化,不过功能就是这么简单实现了不就好了嘛。要不你教一下他怎么写嘛。
    niguyi
        58
    niguyi  
       2019-05-05 16:31:09 +08:00
    文人相轻?
    都是领工资的,说的好听点是程序员。
    orqzsf1
        59
    orqzsf1  
       2019-05-05 16:35:43 +08:00
    楼主怎么知道前端的薪资的,没有保密吗
    lovescar
        60
    lvescar  
    OP
       2019-05-05 16:51:44 +08:00
    @orqzsf1 难道你就不知道公司其他人的薪资么?
    jevirs
        61
    jevirs  
       2019-05-05 16:52:35 +08:00
    其实都是需求的锅,不要起内讧,这段代码没有复用验证可以轻喷,其他挺好啦
    lovescar
        62
    lovescar  
    OP
       2019-05-05 16:56:53 +08:00
    @jevirs 搞不懂做个非空校验,有必要这么写么,而且当时就交付了,交付给我用户名为 admin ,到你手里,我不知道你会不会觉得写的不错,但是一言难尽呢
    Cloutain
        63
    Cloutain  
       2019-05-05 17:24:12 +08:00
    没 JB 说个图ε=ε=ε=┏(ロ;)┛
    lovescar
        64
    lovescar  
    OP
       2019-05-05 17:36:23 +08:00
    @Cloutain 没 jb 不能说么
    DAMNYOU
        65
    DAMNYOU  
       2019-05-05 17:40:41 +08:00
    这个是不是得先看 是不是需求比较奇葩。。

    ps 我看不懂代码 哈哈
    catinsides
        66
    catinsides  
       2019-05-05 17:52:07 +08:00
    所以说不能打听别人工资,比你多比你少心里都不舒服.
    abc612008
        67
    abc612008  
       2019-05-05 18:00:52 +08:00   1
    @tianxia
    @stiekel
    @axwz88
    @ThomasZ
    可能问的是为什么有 return 了还写 else。
    比如
    ```
    if(something()){
    // do A
    return;
    }else{
    // do B
    }
    ``

    ```
    if(something()){
    // do A
    return;
    }
    // do B
    ```
    的区别。不少 IDE 都会提示使用下面的写法的吧。
    shuax
        68
    shuax  
       2019-05-05 18:14:15 +08:00
    所以为啥要账号密码,看着爽?
    dfjslkjdf
        69
    dfjslkjdf  
       2019-05-05 18:54:20 +08:00
    是不是没什么水平的人都喜欢满瓶子不响,半瓶子咣当?

    lz 这种口吻我看不像是科班出身的,倒想是培训班出来的,不知道我猜测的对不对?
    给我的感受就是,一个木匠吹嘘自己了不起,为什么了不起?我一分钟能敲个 72 个钉子,他只能敲 60 个。
    给人一股没见过世面的感觉。
    dfjslkjdf
        70
    dfjslkjdf  
       2019-05-05 18:57:56 +08:00
    真的,咱们要说也说点高大上的东西,比点真正能代表程序员水平的东西,
    谈点架构,编程技巧,可读性提升之类的,
    毕竟自认是工程师,
    自嘲是码农,就真把自己当农民了,比起我比你插秧快多少多少,
    觉得鄙薄无知,这就是我的感受。
    jimliang
        71
    jimliang  
       2019-05-05 19:17:26 +08:00
    水份很大啊。相同的逻辑在不同人上实现的风格都不同,特别是像 js 这种灵活性很大的语言
    wly19960911
        72
    wly19960911  
       2019-05-05 21:02:11 +08:00
    我有个业务问题问问,

    this.account !== 'admin' 才报错,等于的时候不报错,这个是什么业务?

    而且这代码没问题,逻辑简单,也没什么冗余或者特别的东西,这样挺好的啊。
    Wolfsin
        73
    Wolfsin  
       2019-05-05 21:33:36 +08:00
    @wly19960911 #72 登陆提示?登陆不进去就直接告诉你账号和密码吧
    msg7086
        74
    msg7086  
       2019-05-06 02:26:25 +08:00
    @abc612008 只是体现出了 v2 中一部分人的水平而已,看过笑过就行了,我都不想去提……
    laodao
        75
    laodao  
       2019-05-06 13:37:40 +08:00
    这是业务逻辑问题,业务逻辑正常情况下是产品去梳理,包括提示内容按理都是产品给的。你没给他详细业务逻辑,每个人对业务逻辑实现有自己的理解。另外可能你俩沟通问题,或者分工问题,有的公司前段只写页面,js 逻辑也是后段写的。
    lingxipaofan
        76
    lingxipaofan  
       2019-05-07 17:26:19 +08:00
    感觉是需求有点乱
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2606 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 10:43 PVG 18:43 LAX 03:43 JFK 06:43
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86