V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
34531535
V2EX  ›  程序员

V 友们,绷不住了,分享下我们学校暑假请的培训机构老师写的珍贵代码,这就是占用我 20 天老师的代码水平,

  •  
  •   34531535 · 60 天前 · 4971 次点击
    这是一个创建于 60 天前的主题,其中的信息可能已经有所发展或是发生改变。
    V 友们,绷不住了,分享下我们学校暑假请的培训机构老师写的珍贵代码,这就是占用我 20 天老师的代码水平,
    https://gitee.com/organizations/hainingtong/projects
    ,有兴趣的看一下,重点在这个 core 模块.
    54 条回复    2021-07-28 16:34:18 +08:00
    qwertyzzz
        1
    qwertyzzz   60 天前
    那你倒是说下是什么水平
    statumer
        2
    statumer   60 天前 via Android
    槽点是?要 V 友们自己找?
    bunnyblueair
        3
    bunnyblueair   60 天前
    Iterator var5 = realms.iterator(); 很强
    shilianmlxg
        5
    shilianmlxg   60 天前
    有前端有后端,
    这就是全栈嘛
    liubaicai
        6
    liubaicai   60 天前
    能把你培训到觉得老师写的很烂的水平不正说明他很成功嘛?
    当然,如果你一开始就会,那何必跟他学 20 天浪费自己时间。
    chendy
        7
    chendy   60 天前
    水平其实不好说,市面上写不明白 crud 的开发其实很多很多
    除非能加入好公司的好项目,否则的话……
    silk
        9
    silk   60 天前   ❤️ 3
    这就是 人菜瘾大? 我看前端写的还可以啊 能用
    34531535
        10
    34531535   60 天前
    特别喜欢 try catch,特别特别. 我没听过他课,只不过要交大作业在开始 clone 下他的代码
    34531535
        11
    34531535   60 天前
    controller 当 service 用,返回数据格式不会用泛型,非用 object,用的时候真的很丑
    secsilm
        12
    secsilm   60 天前 via Android
    @34531535 没看你的图片,进不去。不过 try catch 挺正常的吧,保证稳定
    xrr2016
        13
    xrr2016   60 天前
    放图啊...
    Vegetable
        14
    Vegetable   60 天前
    中规中矩吧
    主流业务代码就这样,后端是 spring,没什么犯傻的空间,不过风格不太统一,应该有不少 cv 的。
    前端就是典型的 vue 面条代码,没啥可吐槽的。
    puzzle9
        15
    puzzle9   60 天前
    开始的开始 都是复制粘贴 如果后续发现改起来很麻烦的话 可能就相同代码不会出现了
    JYii
        16
    JYii   60 天前
    随便翻了一下,我觉得还可以,我上学那会暑假培训有教这些我得好好感谢学校...
    Hurriance
        17
    Hurriance   60 天前
    为啥不直接用 ConcurrentHashMap
    kop1989
        18
    kop1989   60 天前   ❤️ 3
    搞大自报虚空批判一个人,完全没有任何意义。
    建议 lz 可以晒出你认为的改进代码,以供大家学习与交流。

    "Talk is cheap. Show me the code." --Linus Torvalds
    loryyang
        19
    loryyang   60 天前
    @34531535 #10 吐槽 try catch 太多只能说明你太年轻了,没吃过苦头
    emeab
        20
    emeab   60 天前
    @34531535 喜欢用 try catch 没啥问题把.
    x86
        21
    x86   60 天前   ❤️ 3
    结果老师在某社区发帖:带了 20 天学生碰到个特别装的,受不了...
    loryyang
        22
    loryyang   60 天前
    @loryyang #19 哦,或者你的应用没有这么高的稳定性要求
    yukiww233
        23
    yukiww233   60 天前
    比较正常的业务代码啊...水准 /经验应该比大部分的大学授课老师好了...值得用那么夸张的语气来吐槽?
    IvanLi127
        24
    IvanLi127   60 天前
    还行吧,这代码。
    培训机构的老师好不好就不提了,你都不听他的课.....主要是这老师是靠讲课挣钱的,又不是靠写代码挣钱,所以目测代码水平在培训老师里,可能不算差。。。
    efaun
        25
    efaun   60 天前
    能挣钱就行,行业就是这个水平
    p786317875
        26
    p786317875   60 天前
    @34531535 说实话这种教学内容整合了一堆常用框架,作为一个搞了多年后端的,稍微扫了几眼他的后端代码,感觉挺正常的,框架这种其实就是用到的时候去学一下,一般几天就上手能用了,还没参加工作的建议专注业务以及底层和原理,当然,为了找到好工作还得算法熟练。
    p786317875
        27
    p786317875   60 天前
    @34531535 这里的 trycatch 已经是入门级的异常处理了,你真参与到大项目遇到 bug 就知道 trycatch 有多重要了,人越多的项目异常处理代码越重要。
    34531535
        28
    34531535   60 天前
    @p786317875 谢谢,学习了. 我有个问题想请教下,8 楼图中的 get 方法代码他为啥也用 trycatch?
    sherlockwhite
        29
    sherlockwhite   60 天前
    在学校多学习,不要目空一切,把自己放低点
    xuanbg
        30
    xuanbg   59 天前
    @34531535 controller 当 service 用,返回数据格式不会用泛型,非用 object,用的时候真的很丑
    restapi 返回值 object 没毛病啊,反正都序列化了,范型又有什么意义呢?
    v2orz
        31
    v2orz   59 天前
    业务型代码太过洁癖会搞得自己很累,成效不明显
    自己研究学习时怎么优雅怎么来
    simonlu9
        32
    simonlu9   59 天前
    servie 没做事务控制吧,而且抛异常通过 contain 判断有点笨
    chocotan
        33
    chocotan   59 天前
    楼主追求很好

    简单瞅了一下 java 部分,没看出来有啥问题。我个人是觉得部分 javadoc 注释和双斜杠的注释没任何用处,并且部分变量的命名太随意了,不好看。但老板不管代码漂不漂亮,程序能跑起来就行。
    qiumaoyuan
        34
    qiumaoyuan   59 天前
    “占用我 20 天的老师的代码水平。”
    antidoom
        35
    antidoom   59 天前 via Android
    你等你老师来回你。
    plk403
        36
    plk403   59 天前
    哟,海宁人啊,我桐乡滴
    code4you
        37
    code4you   59 天前
    等 我就是教他的那个老师出现 😁
    Terry05
        38
    Terry05   59 天前
    会加 try/catch 明明是优点,这就被你认为是缺点了?孩子,你以后开始做项目就知道了
    gBurnX
        39
    gBurnX   59 天前
    @34531535

    计算机专业本科大一的课程,就会教你,编程要讲究鲁棒性。

    人家大量 try catch 拿来提高系统鲁棒性,被你这小白当初缺点喷。
    Pichai
        40
    Pichai   59 天前
    师傅引进门,修行靠个人!
    mirone
        41
    mirone   59 天前
    不是,问题是他要是水平足够进哪怕腾讯,他也不会去培训班当老师啊。
    Senorsen
        42
    Senorsen   59 天前
    粗略看了后端部分,大体上是“能跑,有些地方写的不太好,不符合最佳实践”的感觉,可能本身写这个项目的人水平也一般,强行拼凑出来的项目。

    如果楼主的水平很高,能轻松重写一个新的、碾压这个项目的话,发出这样的感慨也很正常。如果有闲功夫的话,可以考虑花点时间,整理这个项目的缺点部分,写个博客,或把这个项目重构成自己心中理想的样子。

    如果楼主本身也还在学习阶段,那么还是建议勿眼高手低。结合网上的文档,尝试理解整个项目的思路,取其精华去其糟粕,学习它有用的部分。

    顺便给你个小建议,非要用英文标点的话,逗号或句号后加个空格。
    meteor957
        43
    meteor957   59 天前
    你是想让 v 友一起喷他吗
    Keyi
        44
    Keyi   59 天前
    try-catch 增加鲁棒性的前提是异常被正确的处理,否则会阻碍问题的尽早暴露,像 https://gitee.com/hainingtong/hainingtong/blob/master/mini-app/src/main/java/com/hainingtong/miniapp/controller/BusController.java#L100 纯属没有处理异常吧......
    34531535
        45
    34531535   59 天前
    @Senorsen 非常感谢您, 每条建议都很有帮助, 确实不能眼高手低, 主要我对对学校强制培训 20 天感到很气, 听去的同学说讲的也很水, 就是稍微讲讲, 发链接自学,
    krapnik
        46
    krapnik   59 天前
    打开项目看了一下这个老师的名字,有点眼熟,搜了一下,原来是一个技术群的群友,有段时间发言比较积极所以有点印象,这是公开处刑吗。。。。。。
    34531535
        47
    34531535   59 天前
    @krapnik 我靠, 兄弟别说出去啊, 我还想过呢.
    Anonywp
        48
    Anonywp   59 天前
    遇事不决,try/catch 解决,业务代码是这样的,还有随处可见的 null 判断。我之前的后端好像封装了一个 basecontroller,直接 return 就行了,有异常会抛出并返回一个服务端异常的 response,但我不知道具体怎么做的
    msg7086
        49
    msg7086   59 天前   ❤️ 1
    我跟着组里学了一年的 Java 以后的感想是,

    做项目用的 Java 就不要谈什么美观了,写来写去都像屎山……
    你可以把 Java 写得很优雅,但是,我没看到有人这么写的。
    做项目就是要快要鲁棒,谁管你优雅……

    我们这,年薪 15 万的,和年薪 20 万的,和年薪 30 万的,写的代码真都像屎山。
    当然我写的也是屎山。
    到最后,项目能跑起来,公司能挣到钱,你能拿到工资,这些才是真的。
    GiantHard
        50
    GiantHard   58 天前
    @Keyi 是的,这样的异常处理还不如不写,还有 104 行的 System.out.printfn,感觉再怎么样应该也要通过 logger 输出吧。。
    wdlth
        51
    wdlth   58 天前
    Charset charset = Charset.forName("UTF-8");
    下次谁再教写这个的请直接拖走
    EscYezi
        52
    EscYezi   58 天前 via iPhone
    UserService#register 捕获重复 key 异常,然后再根据异常信息来判断哪个字段重复?这个虽然能跑,但是也太怪了,先按用户名查询一下不就行了吗……
    Akiya
        53
    Akiya   57 天前 via iPhone
    觉得 Java 写 try catch 多余的,写 go 不得气死去
    p786317875
        54
    p786317875   55 天前
    @34531535 其实注释写的挺清楚了,这是 Map 后面要改成 redis,你从 redis 进行 get 就会有一些奇奇怪怪的异常比如网络之类的,你开发的时候遇不到,生产环境下使劲抛这种异常受不了,再高级点的做法就是异常自己定义,抛出来的异常也要处理好,比如 redis 挂了、网络异常等等,要返回给用户提示,而不是直接返回一个空的数据让用户感到迷惑。
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   830 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:41 · PVG 04:41 · LAX 13:41 · JFK 16:41
    ♥ Do have faith in what you're doing.