结合自己写代码的一些经验,提炼几点思考。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Amose2024
V2EX    程序员

结合自己写代码的一些经验,提炼几点思考。

  •  
  •   Amose2024 318 天前 3561 次点击
    这是一个创建于 318 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 有些时候并不需要追求高可复用,特别是有很多自定义行为的时候,需要传入多个参数来到自定义目的。这个时候,追求复用容易造成后续维护不便。

    2. 避免追求“一步到位”。当自己的项目很可能没有多少用户的时候,切忌上来就搞分布式高并发集群部署。多数项目生命可能也就几个月,没必要一开始就推高成本。在使用框架的时候,也要考虑用户基数,并不是队列就一定要用百万吞吐的 Kafka 。

    3. 避免盲目追求项目性能。C++比 Java 快,Java 比 Python 快,这没有问题,但并不是因为要追求快,项目就必须用 C++。绝大多数情况下,项目的访问速度到不了要拼语言速度的程度,其它的诸如硬件配置,网络带宽才是影响性能的大头。

    4. Web 开发并不只有 Java Spring 一家。项目快速出原型并推向市场试错,如果心里只有 Java 就太重太慢了。不妨考虑一下 Ruby on Rails, NextJs 等能够快速出产品的方案。某种程度上 PHP 就是最好的语言,Wordpress 就是能更快建站。能快速满足需求,比耗时长久的大而全要好得多。

    5. 避免追求广度,缺乏深度。并不需要了解大多数的语言和大多数的框架,很多东西其实是相通的,能够深度掌握某一个的意义更大。

    6. 项目部署能用云服务商的方案就用它的方案,不要自己折腾,犯不着一到部署就要自己买个云服务器,整个 EC2 ,然后发现性能监控,日志服务,安全策略等都要自己搞,费时费力还做不好。

    7. 理解需求后再动手写代码,可以显著提升后续维护的舒适度。

    8. 保持乐观开放的心态,学会合作很重要。一个人造不出 Google ,团队有时虽然沟通成本高,但也确实有集体智慧。

    9. 是否会看文档是判别程序员水平的最重要依据之一,但不是接手一个新东西就要花费 10 天半个月去看完它所有文档,考虑一下网上 30 分钟入门视频先上手又何妨。

    10.碎片时间很重要。现在已经很难有大块的时间让你去研究某个技术了,利用好碎片时间,专注某一个题目,日积月累效果惊人。相反,东一下西一下,最后什么也捞不到。

    11. 很多时候开发机不需要那么强的性能。一个长续航的轻薄本解决问题的时候,不需要花冤枉钱追求 128G 内存,4090 显卡。

    声明:个人原创,转载请注明出处。
    23 条回复    2024-11-27 20:41:53 +08:00
    speedmancs
        1
    speedmancs  
       317 天前
    - 过早优化是罪恶之源

    - 单元测试很重要,还有 code review
    wmui
        2
    wmui  
       317 天前 via iPhone   1
    我以前特别喜欢优化代码,看到乱的就想改,后来我这毛病改了,因为导致代码乱的是变态的需求
    murmur
        3
    murmur  
       317 天前
    现在除非是我一眼就能看到复用的代码我才会抽出来,AI 加持下还是复制粘贴爽
    murmur
        4
    murmur  
       317 天前
    Spring 这个是因为国内大量 to b to g 的项目需要用,不是 java = web ,是因为没有企业开发,互联网那点市场早萎缩了,根本不需要什么 web 程序员,都去做小程序 app 了,以前是 h5 pc 几套页面,现在给你个下载页面都是抬举你
    guanhui07
        5
    guanhui07  
       317 天前 via iPhone
    @wmui 写完面条代码的当事人不优化重构 可读性才是原罪,比如 if 嵌套,方法提炼,用卫语句,变量名提炼都写代码的基础操作 很多人
    harryWebb
        6
    harryWebb  
      nbsp;317 天前
    现在是能简化需求尽量把需求简化掉

    需求结构越简单,代码越不容易出错,后续修复起来也容易
    GradyJ
        7
    GradyJ  
       317 天前
    学习了
    AlexHsu
        8
    AlexHsu  
       317 天前   2
    现在这个年头一定要分清自己项目和公司项目的区别 不要过分去重构和封装公司项目 公司项目文档这个东西也是得过且过就行 不管是什么级别的程序员一定不要从公司的角度去考虑技术 一定要从个人角度考虑 听懂掌声
    反倒是自己的开源项目要下点功夫 那毕竟是体现个人能力的最直接体现方式 面试这个东西已经苍白无力了
    systemGuest
        9
    systemGuest  
       317 天前
    “上来就搞分布式高并发集群部署” 这是很多小公司的通病,他们一般是招了大厂背景的人,或者听了“大厂”的朋友话,不结合实际情况,用户量都没有就一股脑去模仿架构,如果他们是这种情况你可千万别去讲道理,他们会认为你不专业,人家大厂就是这么干的你还 BBB ,会更加坚信这是对的。
    linxl
        10
    linxl  
       317 天前
    单测+一个函数就干一件事。curd boy 表示能碰到这样的就很满意了。
    supermama
        11
    supermama  
       317 天前
    不要过早优化!当然可以比你现在业务需要的基础上领先个 30%,也已经足够了。
    tool2dx
        12
    tool2dx  
       317 天前
    现在偷懒取巧欠下的技术债,在未来的某一天,早晚要让你还出来的。
    hellojukay
        13
    hellojukay  
       317 天前
    说的很好
    horizon
        14
    horizon  
       317 天前
    第一点很重要,多少人写的垃圾代码都是因为追求复用
    其实毛用没有
    flmn
        15
    flmn  
       317 天前
    变态的需求是避免不了的,所以我们在设计代码架构的时候,要把干净东西和脏东西分开存放,不要混在一起,你中有我,我中有你。

    那块是个屎堆,对,我知道,但是我把屎都堆在一起了……
    fov6363
        16
    fov6363  
       317 天前
    过早优化、过度设计是万恶之源。

    忘了从哪本书看到的三枪理论,先简单粗暴实现,如果有问题就改,如果同一个地方有问题超过 3 次,就可以考虑重构了,否则怎么快怎么来
    ixx
        17
    ixx  
       317 天前
    第 4 点 应该说要结合个人/团队整体看,找到自己最熟悉的技术栈,如果对 java 最熟悉,重一点也比学习一门新技术靠谱。
    第 7 点 其实就是根据需求写技术设计文档,然后再开发,文档写完需求基本就透了。
    darkengine
        18
    darkengine  
       317 天前
    @tool2dx “取舍”是个很艺术的东西,舍多了后期还债还得要哭,取多了项目周期受影响。
    vfs
        19
    vfs  
       317 天前
    尽可能用你能想到的最最最简单的技术解决方案
    xuxian4321
        20
    xuxian4321  
       317 天前
    基本没错
    aleimu
        21
    aleimu  
       317 天前
    你少提了一点: AI 是个好东西,只要你把握得住
    justdoit123
        22
    justdoit123  
       317 天前
    先前跟同事写一个要营销页面。我跟他说,你就 v1 、v2 、v3 这样一直命名下去就好,前后端代码都这样命名。不要想着复用。

    这种营销页面,果然写了整整 5 个版本,到了 v5 。每个版本的逻辑、UI 结构都出入较大,难以复用。

    这要是一开始就在那边思考怎么通用、怎么易扩展,可想而知会有多痛苦。

    工作中的一些需求,一看就能知道是实验性的、试探性的,这种东西别想着去抽象复用。

    另一个例子,是我们的 UI 团队。一个人一个风格,上来一个 UI leader 就要订一套 UI 规范。我以前还乖乖听,写过两个版本的 UI 组件。后来就不鸟了。当然,我不是说 UI 组件不用抽离,规范稳定的 UI 设计语言,很值得沉淀组件。我们这种信誓旦旦的说 “以后都这样”,但是实际活不过一周的 “UI 规范” 当屁话听就行。
    Amose2024
        23
    Amose2024  
    OP
       317 天前
    谢谢大家回复,从回复中也学到了很多
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     941 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 22:08 PVG 06:08 LAX 15:08 JFK 18:08
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86