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

2021-03-23 14:05:57 +08:00
 3dwelcome

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

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

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

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

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

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

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

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

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

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

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

https://github.com/fecshop/yii2_fecshop

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/764248

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX