三年,1095天,0个周末,1条快废的老腰,和一份CLOC生成的神秘报告。
一、开战:从“我会了”到“我裂了”
三年前那个阳光明媚的下午,我对着屏幕上的WPF教程,自信地敲下第一行Hello, World!,心中豪情万丈:“做个工具箱,能有多难?”
我错了。
三年后,当我终于颤巍巍地点击项目的“生成”按钮,看到那个熟悉的绿色对勾时,我悟了:这哪是写代码,这分明是肉身铸剑,以命炼丹。
白天构思架构,晚上继续爆肝实现功能。周末?不存在的,那叫“沉浸式编程日”。
唯一的“休息”,是揉着发僵的腰,对着镜子问那个胡子拉碴的男人:“这需求,咱非做不可吗?”
镜子里的男人目光坚定:“做!不然这三年白熬了?”
二、神器出鞘:当CLOC撞上我的“巨作”
项目终于能跑起来了,像个蹒跚学步的孩子。成就感?有一点,但更多的是麻木。
是时候清点“战损”了。听说高手都用CLOC,我也搞来一把。
在项目根目录,我虔诚地输入:
C:\Users\liu\Downloads\cloc-2.08.exe .\Eding.ICU.Toolkit\
按下回车,屏幕开始翻滚。那一刻,我仿佛在等待命运的宣判。
结果出来了——
总计:727,307 行!
我虎躯一震,热泪盈眶:“七十万行!我真是天选码畜!这战绩够我吹到下个本命年!”
三、残酷的“脱水”时刻:从70万到14万
激动的心,颤抖的手,我定睛细看分类,笑容逐渐消失:
- JSON文件:6个文件,210,320行。(内心OS:一定是哪个
package-lock.json在冒充主力!拖出去!) - Text文件:3个文件,351,420行。(这一定是哪个天杀的日志文件滚了三年没清!)
- XAML文件:128个文件,60,080行。(嗯,XAML界面文件,亲生的,算你一份苦劳。)
- C#文件:727个文件,79,797行。(来了来了!朕的纯血亲卫队!)
从天堂到地狱,只需要一次分类汇总。
我引以为傲的七十万大军,一夜之间缩水成十四万精锐,附带五十万“后勤杂役”和二十万“战场迷雾”。
那一刻,我理解了什么叫“代码通胀”,什么叫“虚假繁荣”。
四、十四万精兵的含金量
但很快,我释然了,甚至有点想笑。
这十四万行XAML/C#代码,可是实打实、一滴汗一滴血敲出来的。 它们包括:
- 让用户双击直呼“卧槽”的300多种文件格式一键互转引擎。
- 把隔壁团队看懵的自定义渲染流水线,复杂得像蜘蛛网,但跑起来丝滑如德芙。
- 自己造的轮子,从数据绑定黑魔法到异步任务调度器,能写的绝不用第三方。
- 还有那些深夜灵光一现的骚操作,现在看注释都想给自己磕一个。
这十四万行,每一行都认识我。它们见过我凌晨四点的黑眼圈,听过我对着Bug的喃喃自语,也分享过我搞定难题后对着空气打的组合拳。
它们不是冰冷的符号,是我三年的时光切片。
五、战利品:除了代码,我还得到了什么?
- 一副“WPF人柱力”的称号:从数据绑定、依赖属性到自定义控件、复杂布局,闭着眼都能画出来。MVVM?那不是模式,那是我的呼吸。
- 一套“独立开发者综合症”:包括但不限于:跟测试机自言自语、坚信自己写的文档全世界都看得懂、以及觉得产品经理这个职位(如果我有的话)很多余。
- 最重要的,是一种“创造者”的踏实。这行数,这功能,这从无到有的一切,都在大声告诉我和世界:“看,这玩意儿,我能造出来。”
六、给同行们的“战地报告”
如果你也在单人挖一座名叫“个人项目”的山,以下血泪经验,或许有用:
- 定期跑CLOC,但别太把总行数当回事。核心逻辑代码量和项目结构清晰度,才是硬通货。
- 腰,腰,腰! 重要的事说三遍。升降桌、人体工学椅、定时起来蹦跶,投资这些比投资键盘轴体值一万倍。你的代码不会怀念你的腰椎间盘。
- 版本控制是你的时光机。每一次提交,都是给未来那个“这TM当初为啥这么写”的自己留下的救命锦囊。
含泪PS:最初还是菜鸡的我,还不懂版本控制,半年后的一天硬盘坏了、代码丢了。我不怪固盘是最便宜的杂牌,我不怪PC-3000也无能为力,哈哈哈,因为我从C盘缓存中找回了9成,虽然我还丢失了一些其它次重要的东西。在此感谢ILSpy、VS缓存机制以及同样垃圾的C盘没有一起损坏。
再次PS:两年前开始版本控制,距离今天已经Commit了1131次,不得不说真尼玛废腰啊。。。
三年,140K代码。 这个数字,说出去不够惊天动地,比不上开源巨擘的星辰大海。
但我知道,每一行里,都藏着一个深夜、一个灵感、一次debug到崩溃又重来的瞬间。它不完美,但它独一无二,它从我手中生长出来。
值了。
(朋友们,你们的“战绩”又如何?评论区晒出来,让彼此知道,这条路上,我们都不曾是孤勇者。)
后记:
本文由一位腰肌已初步劳损(天天疼)但精神依然亢奋的独立开发者,含着热泪撰写。代码不开源,经验可分享,但腰子,真的只有一个。且码且珍惜。
本站启用域名:Eding.ICU,谐音【一定到ICU】,已经五年的老域名了,我为什么选择它?也许冥冥中有感?不,肯定是因为它便宜罢了。




评论(0)