获得徽章 0
- 业务代码与竞赛代码是存在着本质差别的,竞赛代码追求的是更快更好,其余的例如可维护性等不值一提,所以你尽可以定义变量为a、b、c,尽可以一个方法写几百行,尽可以追求奇技淫巧,而业务代码追求的则是业务实现和团队协作
业务团队第一要义是保障业务的实现,例如为了应对千变万化的业务需求,代码必然需要保证一定的灵活度,说的具体点,相比于引入一套有着各种条条框框限制的模式,多写点 if...else 并不一定就真的不好。
团队协作是把团队放在第一位,那么必然需要放弃个人的一些习惯,例如编程风格、技术选型等,必须要考虑到你写的代码不仅是你自己看更可能是要给别人看,要考虑ROI是否值得
或许你比较新潮,知道很多前沿技术,但不代表你就要把这些很酷的东西一股脑引入到团队代码中来,要考虑到这些东西对于其他人来说是不是可接受的,相比于用二进制运算替换四则运算带来的那点性能提升,代码可读性才是更重要的,相比于写复杂的类型体操,老老实实地给每个变量、每个函数入参出参写好类型才是更有用的
当然了,如果能把代码写得优雅点那自然最好不过,但优先级必须要放到业务之后,如果可能妨碍到业务,那么这个优雅不要也罢展开46 - #晒出你的读书笔记#
书名:挪威的森林
金句分享:“每个人都有属于自己的一片森林,也许我们从来不曾去过,但它一直在那里,总会在那里。迷失的人迷失了,相逢的人会再相逢。”
读书总结:迷失的人迷失了,相逢的人会再相逢。12 - 2022年祝你冒泡排序,选择排序,插入排序,快速排序,堆排序,归并排序,希尔排序,桶排序,基数排序新年帮您排忧解难。
有向图,无向图,有环图,无环图,完全图,稠密图,稀疏图,拓扑图祝您新年宏图大展。
最长路,最短路,单源路径,所有节点对路径祝您新年路路通畅。
二叉树,红黑树,van Emde Boas树,最小生成树祝您新年好运枝繁叶茂。
最大流,网络流,标准输入流,标准输出流,文件输入流,文件输出流祝您新年顺顺流流。
线性动规,区间动规,坐标动规,背包动规,树型动归为您的新年规划精彩。
散列表,哈希表,邻接表,双向链表,循环链表帮您在新年表达喜悦。展开评论4 - 几乎所有程序员都会拥有在屎山中作业的经历,并且所有有此经历的人基本上都会关切地问候一下写下这些代码的人
我曾经和很多人一样,一边骂一边暗自笃定,我是绝不可能写出这种代码的,但随着接触的项目多了之后,我终于明白,每个人都极可能是屎山的贡献者
业务屎山的存在是不可避免的,这跟写代码的人的水平和修养无关,大部分人都觉得自己是不会写出屎山的,并且可能也真的在努力写好代码,但实际上到了最后,终将变成自己讨厌的人
在项目初始阶段,还可以凭借着强硬的技术水平,保证整个系统处于所谓的“优雅”状态,但随着业务的快速迭代,参与的人数越来越多,这种初期建构起来的壁垒不堪一击
可能你认为你自己的水平很高,但你无法保证团队内所有人的水平都和你不相上下,参差不齐的团队水平是一件非常常见的事情
退一步,就算你拼尽全力保证进来的人都具备很高的技术水准,结果可能会更麻烦,因为技术是没有统一答案的,你觉得你的设计、架构好,但你怎么保证别人也觉得你的好,他完全可能觉得另外一种好,并且水平越高的人就越会有一种固执的自视清高,他不认可你,自然就不会遵守你的规则
再退一步,你拼劲全力保证团队内的人都具备很好的技术水平和修养,并且说服了所有人都认可你的思想,但这个时候业务方来了一个需求,众所周知,发展中的业务不可能是一成不变的,可以说是五花八门,甚至做着做着自己否定自己, 很可能有一个需求只要做了,就会对你的架构造成破坏,你做不做?
一个不做,两个三个五个呢?你都不做,那你的价值是什么,业务要你干什么?
技术是为业务所服务的,而不是用来体现你自身代码水平的,这种天然存在的优先级就决定了技术在绝大多数情况下需要向业务妥协
所以你不得不做,但只要你做了,根据破窗理论,你的所谓设计自此将不可避免地开始加速“堕落”,最终变成传说中的屎山,而 git 忠实地记录下了你对这座屎山所有的贡献
绝大部分的项目都避免不了成为屎山的结局(除非创业未半而中道崩殂,但这种更惨),但并不代表我们就应当自暴自弃顺其自然了,我们要做不是避免屎山的出现,因为大概率是避免不了的,我们应当为它们的出现提前做好规划,预留充足的空间,让屎山的艰难险阻仅流于表面,而保证内核的一如初心
屎山是不优雅的,但可以是可维护的,可以存在大量的反设计业务逻辑和 hack 代码,但不应当在里面尽情地挖坑,可以让人全神应对,但不应当让人头破血流展开421
![[捂脸]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_28.8981538.png)
,要走出来,要每天都开开心心的,工作顺利,赚多点钱!