好奇大家是怎么组织代码和历史函数的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
3dwelcome
V2EX    问与答

好奇大家是怎么组织代码和历史函数的?

  •  
  •   3dwelcome 2021-08-08 15:19:59 +08:00 1849 次点击
    这是一个创建于 1603 天前的主题,其中的信息可能已经有所发展或是发生改变。

    码农每天要写很多的函数,分布在不同的文件里,日积月累下来,数量也不少。

    有一些可以复用,有一些和业务紧密关联,不能直接复用,但是可以在未来做为代码参考。

    那么问题来了,那么多函数,光凭脑子记忆,几个月后自己都忘记了。有什么趁手工具,或者有什么方法,能快速列出并查找自己写的所有历史函数吗?

    11 条回复    2021-08-09 07:26:42 +08:00
    yitingbai
        1
    yitingbai  
       2021-08-08 15:43:42 +08:00
    面向对象编程, 项目初期就要把架构设计好, 业务逻辑要用接口实现, 尽可能的在代码里面约束自己的行为, 能封装的一定要封装, 能抽象的一定要抽象, 同样的代码不要复制粘贴, 必须封装. 简单的说, 就是把代码写出库那样感觉, 利用 IDE 的提示立马就知道该怎么用这些函数, 而不是靠脑子记忆
    3dwelcome
        2
    3dwelcome  
    OP
       2021-08-08 16:07:21 +08:00 via Android
    @yitingbai 你这是理想状态,事实上项目压力一大,写代码就变成了赶时间,很难预先规划好。
    而且同一个项目文件组织容易,但不同的项目,就不太好组织了。
    我在想能不能通过某些管理工具,来帮助自己回溯所有写过的历史函数。
    ipwx
        3
    ipwx  
       2021-08-08 16:31:36 +08:00   1
    @3dwelcome 是不是理想状态,主要还是看你们公司的领导是不是能稍微沉得住气一点。

    众所周知,软件工程的必要代价总是要支付的。要么前期打好地基,要么拖延到未来某个版本。。。
    3dwelcome
        4
    3dwelcome  
    OP
       2021-08-08 16:34:17 +08:00 via Android
    @ipwx 是的,最后一句深有感触。

    现在欠下的技术债,早晚要还的。
    ipwx
        5
    ipwx  
       2021-08-08 16:39:24 +08:00   1
    @3dwelcome 说起来我在 macOS 上的时候,乱七八糟的代码用 SnippetsLab

    https://www.renfei.org/snippets-lab/
    jones2000
        6
    jones2000  
       2021-08-09 00:26:46 +08:00
    说明写的少了, 像玩农药, LOL 一样, 用什么人物,在什么情况下发什么技能, 快捷键是什么, 条件反射就出来了, 还需要记吗?
    3dwelcome
        7
    3dwelcome  
    OP
       2021-08-09 00:35:08 +08:00 via Android
    @jones2000 这和写多写少没关系,你能想起自己三年前写的代码片段吗?正常人都想不起来。
    所以才需要工具的辅助,来帮助函数归类。
    软件行业变化快,一年一小变,三年一大变,哪怕复用率很低,我也不太希望自己代码写完就丢,毕竟这也算技术成长的足迹。
    jones2000
        8
    jones2000  
       2021-08-09 00:39:58 +08:00
    @3dwelcome 只要是自己写的代码, 不是 ctrl+c, ctrl+v 考过来的, 基本一时半会不能忘记的. 你写一个函数,先要有设计思路, 画流程图, 写代码, 调试, 测试, 然后修正 bug, 最后可能还要重构, 这一趟下来, 怎么可能马上就忘记呢.
    3dwelcome
        9
    3dwelcome  
    OP
       2021-08-09 01:01:13 +08:00 via Android
    @jones2000 那你可能是长期专注一个项目,反复打磨重构,确实可以加深记忆。
    可惜我前端项目周期短,项目杂,客户催得紧,只想早点收工,周末不加班。
    我其实是想自己写一个的源码回溯工具的。我看有大神会给函数写特殊注释,带有特殊符号便于程序查找,想先在 V2 找一下思路。
    jupiter157
        10
    jupiter157  
       2021-08-09 05:08:15 +08:00   1
    我习惯在注释里加上关键词:{{keyword1;keyword2;keyword3}},然后写一个程序命名为 search,用 search(keyword1)把相关文件、同一行存在的关键词全部列出来,也支持用多个关键词缩小查找范围。search(keyword1,'o',1) 打开该文件到关键词所在行; search(keyword,'od',1)打开所在文件夹。关键词可以给同一个意思多写几个不同的表达方法,增加匹配可能性。
    hackyuan
        11
    hackyuan  
       2021-08-09 07:26:42 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3308 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 00:48 PVG 08:48 LAX 16:48 JFK 19:48
    Do have faith in what you're doing.
    ubao msn 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