V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
34531535
V2EX  ›  程序员

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

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

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

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

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

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

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

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

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

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

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