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

为什么写业务逻辑代码提不起兴趣,写自己的轮子就两眼发光?

  •  1
     
  •   3dwelcome · 2021-03-23 14:05:57 +08:00 · 5033 次点击
    这是一个创建于 1101 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本来吃老本,在小公司写前端业务逻辑代码,总是兴趣不大。代码写着写着,思维就发散,上网东看看,西逛逛,一天时间很容易流失。

    后来闲了一段时光,写了一小段时间的轮子后,发现又开始重拾对编程的兴趣。连番茄工作法都不需要,所谓兴趣就是最好的老师,加班都能自觉主动,完成后也很有成就感。

    感觉码农这条路要坚持走下去,有两点必不可少。

    一是自我价值的认同。(虽然老板每次都说代码好,业务向更重要,但业内人人都能写的基础逻辑脚本,人员随时可以被替代,项目随时可能被舍弃,自己完全不觉得有什么好的)

    二是代码的累积效应。不能一个项目写完了,历史代码就扔掉。(虽然这很难,在团队协作里,不可能总能随心所欲用上自己喜欢的技术,技术偏向总要有取舍。)

    27 条回复    2021-03-24 20:49:52 +08:00
    zzzzzzggggggg
        1
    zzzzzzggggggg  
       2021-03-23 14:37:32 +08:00   ❤️ 1
    因为造轮子的最终受益者是你,决策者也是你;写业务逻辑是为公司写的,老板是受益者和决策者,你只是老板的笔而已。
    这两者差异巨大
    weizhen199
        2
    weizhen199  
       2021-03-23 14:42:26 +08:00   ❤️ 1
    黄脸婆和小秘咯
    Variazioni
        3
    Variazioni  
       2021-03-23 14:47:16 +08:00   ❤️ 3
    写业务的 curd 是帮别人养孩子。。造轮子是养自己孩子。。。
    BarZu
        4
    BarZu  
       2021-03-23 14:48:12 +08:00   ❤️ 3
    因为造轮子可以让你一年积累两年的工作经验,写业务只会让你十年积累一年的工作经验
    arthas2234
        5
    arthas2234  
       2021-03-23 14:51:03 +08:00
    写业务代码,很多都是重复性的东西,增删改查。。。
    造轮子是富有挑战性的东西。但是最好想想再放在项目上去,搞不好会被人骂。。。
    ppgs8903
        6
    ppgs8903  
       2021-03-23 14:53:19 +08:00
    造了升值加薪答辩有的说、你总不能在晋升的时候说自己一直 crud 没点技术创新把。
    timethinker
        7
    timethinker  
       2021-03-23 15:18:36 +08:00   ❤️ 5
    CRUD 也是有讲究的,你看,实际上就两种操作,一种是修改,一种是查询。
    简单的 CRUD 从前端到后端甚至数据库字段都完全一致,就是面向数据库编程,Service 都不需要。

    复杂一点的,把这两种操作当成两套代码来写:

    修改操作多以动词命名,会精炼出业务的实际需要的操作列表,把他们全部放在 Service 里面,每一个方法就是一个事务,或者使用门面模式封装独立的命令执行(命令模式)。

    查询操作完全取决于你的消费方需要什么样的数据,把查询的逻辑处理全部放到 Repository 里面,返回 View 或者 DTO 啥的,只专注于如何批量查询并组合成需要的数据,可以是 SQL,可以是 HTTP 请求。很多人喜欢把查询也放到 Service 中,但实际上两者的关注点是不一样的。

    读写分离以后好处是显而易见的,查询和修改都可以单独进行优化,最重要的是更加清晰可读。
    当然以上只是一种方法,从技术上来讲,写业务代码最大的难度和关键点在于需求是否足够清晰,领域知识是否完备。反之造轮子则不需要这些额外的知识,但终究来讲轮子也是服务于某一个技术点的,最终也是要服务于业务的。
    jenlors
        8
    jenlors  
       2021-03-23 15:47:33 +08:00
    同感
    3dwelcome
        9
    3dwelcome  
    OP
       2021-03-23 15:48:20 +08:00
    @qwe520liao 道理都懂,就是写 CRUD,时间一长,很难保持极大的写代码热情。
    就算有点热情,也会迅速被各种需求 /开会 /沟通成本给浇灭。只想早点写完,早点收工。代码一把梭,也不会刻意去考虑复用问题。
    而且你团队开发,一个人写的爽没用,你使劲的往里搬水,团队里总有菜鸟,木桶的最短板在给你往外漏水。修修补补查 BUG,一天又一天。
    写轮子不一样,真的可以自己怎么爽,怎么来,随心所欲写,才是兴趣冒泡的源头。
    KouShuiYu
        10
    KouShuiYu  
       2021-03-23 15:51:48 +08:00
    为什么不把业务代码封装成轮子,两不误😂
    https://github.com/ckpack
    https://www.npmjs.com/~ckpack
    tedzhou1221
        11
    tedzhou1221  
       2021-03-23 16:20:49 +08:00 via iPhone   ❤️ 1
    轮子不是建立在实际业务需求之上的吗?
    timethinker
        12
    timethinker  
       2021-03-23 16:26:31 +08:00   ❤️ 1
    @3dwelcome 这应该是国内大多数中小型公司的常态,我们都知道有些事情是对的,但是却往往被情感左右。说到底一个人都不完美,更何况一个群体了。

    所以尽管工作氛围不尽如人意,但是决定我们自身如何的还是我们自己。工作沟通上保持积极,认真做好自己的工作,专注和坚持从来都不容易,真的是需要长久的磨练的。有点鸡汤的味道了,祝你能够踏上自己所想的那条路。
    ch2
        13
    ch2  
       2021-03-23 17:53:57 +08:00
    给别人打工毕竟成果是别人的,干的再多跟自己也没关系
    abersheeran
        14
    abersheeran  
       2021-03-23 20:07:29 +08:00
    我的工作就是造轮子+趟坑。比如这几个月的工作,我在业务里完善了 index-py 这个 Python Web 框架,写了一个带自动迁移功能的 ORM,这周在学 k8s,下一步估计是把我之前写的 rpc-py 投入实际生产……
    ArJun
        15
    ArJun  
       2021-03-23 20:57:31 +08:00
    @KouShuiYu 保密协议允许这样操作吗
    zhao372716335
        16
    zhao372716335  
       2021-03-23 21:44:18 +08:00
    写自己的轮子是兴趣,可以随心所欲,还有成就感

    https://github.com/fecshop/yii2_fecshop

    我的轮子 4636+ star 了。
    kiripeng
        17
    kiripeng  
       2021-03-23 21:56:09 +08:00
    我现在就是慢慢搞点轮子,业务开发快了,就有自己的时间,搞事了
    no1xsyzy
        18
    no1xsyzy  
       2021-03-23 22:11:33 +08:00
    https://www.guokr.com/article/459401 感觉有相通之处
    > “空心人”就是这么养育出来的,一直在满足别人的期望,人生的动机很大程度上建立在“恐惧”的基础上,而不是热爱。

    Simon Sinek 提出的概念不错:你人招进来了之后,就像是养小孩。
    (只不过有点陈词滥调,一句话兜兜转转说千遍)
    Zzzz77
        19
    Zzzz77  
       2021-03-23 22:56:25 +08:00 via Android
    主要是需求可以自己定。。
    Jat001
        20
    Jat001  
       2021-03-23 23:09:01 +08:00
    @ArJun #15 我也有这问题,以前我在公司也弄过代码封装,框架本身没有业务代码,但我离职的时候也没敢把代码拷出来。从法律上讲,在工作时间或利用公司设备写的代码,所有权都归公司,要是还包含业务代码,那就不止是代码所有权的问题了。
    byaiu
        21
    byaiu  
       2021-03-24 08:33:04 +08:00 via iPhone
    @Jat001 有需要时,有了一次经验,重写还会有惊喜。

    对个人能力的提升会有很大帮助的。
    lap510200
        22
    lap510200  
       2021-03-24 11:01:43 +08:00
    写轮子自由还可以提升自己, 写业务逻辑不自由还没什么提升, 业务代码容易被其他人修改,自己的轮子自己的东西
    wanguorui123
        23
    wanguorui123  
       2021-03-24 11:19:26 +08:00
    写轮子是自由人

    写业务是工具人
    ychost
        24
    ychost  
       2021-03-24 13:36:34 +08:00
    写业务要面对屎山
    jinsongzhao
        25
    jinsongzhao  
       2021-03-24 13:37:12 +08:00
    我的想法不同, 我认为是没找到自己的大方向. 写轮子提升自己的效率, 只是小方向, 人的大方向最终都是能够做全套业务, 并且为客户提供业务经验.
    jmk92
        26
    jmk92  
       2021-03-24 18:10:57 +08:00
    搬砖没有任何的兴趣可言,当然即使有挑战,也不是自己喜欢的方面,所以提不起来精神。
    给自己做东西,你肯定做自己喜欢或者受益的东西,当然激情澎拜不眠不休了。
    3dwelcome
        27
    3dwelcome  
    OP
       2021-03-24 20:49:52 +08:00
    @jinsongzhao 你是老板吧,普通的码农大多内向,很难自己确定大方向。
    都是客户 /老板指哪里,去哪里搬砖救济,没人会和钱过不去。
    小公司的 CRUD 就是那么的无奈,只有挤到行业头部,代码才能写的稍微舒服一点。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3066 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:36 · PVG 22:36 · LAX 07:36 · JFK 10:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.