2022-12-29

19 篇热帖

1. 我和锅贴女孩
女方 1999 年 身高 163cm 体重 120 斤 (老家隔壁村的,她在北京有房没户口,我在北京租房)

本人 1996 年 身高 175cm 体重 135 斤

一开始家里推送了女孩微信,聊天很尬,抛了几个梗对方都接不上。过了两周,女孩和我要照片,看我长的比较清秀,于是女孩提出第二天见面。于是我答应赴约女孩。

一个很凑巧的事情,我租的地方,距离她家只有 1 公里。

(一个插曲,偶然和大学女同学聊上了,大学到时候关系挺铁的一个小姑娘,她在追公司一个同事,我在追这个女孩,偶尔聊天探讨一下如何追对象)

## 8 月 29 日周日(第 1 天)第一次见面

总体流程就是三里屯吃饭,然后去抓娃娃,然后就是瞎逛到下午 5 点就回家了。中间聊天说到她之前想玲娜贝儿和星黛露的娃娃没有抢到,我便号召几个朋友一起抢,过了几天就抢了一个大号星黛露和小号玲娜贝儿送给她。(大号玲娜贝儿实在太难抢了)

晚上 7 点多,说饿了,于是又一起去吃了麻辣烫,她当时还叫了她发小,一个和她差不多年龄的男生。吃完把她发小丢饭店里,我们出来逛了一会儿, 我提议下周日我同学的婚礼带她一起去玩,她同意了。昏暗的街道上月光洒在她的脸上,只觉得比白天化妆的好看多了。十字路口我们各自分别便回去了。

这周还约了几次压马路,因为她当时没工作,我晚上 8 点能到家。晚上还能出来逛一会儿。很快到了周末要赴约去婚礼了。

## 9 月 4 日周日 (第 8 天)赴约同学婚礼。

带去婚礼就见了大部分大学同学了。她心里也觉得我是要认真想和她在一起的。婚礼结束,我们一帮同学去玩了密室。密室里亲了女孩。关系进一步递进。婚礼回来后一周里确认了关系,其实是女孩非要我告白的。我是那种觉得在一起了很明显就不用告白了,但是女孩觉得一定要有告白仪式。其实就在大街上口头告白了一下没有什么准备。


## 9 月 10 日周六(第 14 天)中秋

说来我家一起玩游戏,顺理成章就在我家过夜了。

## 9 月 11 日周日(第 15 天)亮马桥

一起去了亮马桥,本来以为可以坐船的,原来这东西要提前预约,我们不知情,没票只能绕着河岸压马路,其实也挺好看的。

## 9 月 11 日周一(第 16 天)游乐园官宣

一起去石景山的游乐园玩了一整天。晚上两个人一起发了朋友圈官宣。


## 9 月 25 日周四 (第 30 天)踩雷

当天本来在我家过夜,半夜,她认为我和女大学同学聊天过火了,很生气。直接走了。我当然觉得还是女朋友重要,虽然是八卦她和那个男生的进度,好像确实对不起她。第二天无奈我删了女大学同学微信。正好买的施华洛世奇的项链快递到了。第一次买不太懂。单纯觉得挺好看的就买了。她说了一句,不应该买这个牌子的,有分手的魔咒,但是项链确实挺好看的。女大学同学的事情暂时过去了。

## 9 月 28 日周二(第 33 天)新店开业(丰台地铁站旁边的锅贴店)

她不上班的日子终于结束了,开始给自己开的店铺打工了。过去的一个月算是热恋的一个月。

9 月这段时间中间基本每天下班都出来陪她到 11 点吧。她每隔 2-3 天会到我家过夜。热恋的一个月总是美好的。


## 10 月 1 日(第 36 天) 国庆期间

新店开业比较忙,遂去帮忙了 7 天。见到了她家很多亲戚。大家都很祝福我们。

大约 40 多天的时候,她买了两条手链一人一条,一条 500 吧,她希望我们能用这手链拴住彼此。

## 10 月 16 日 (第 51 天) 一起吃火锅

中间她打电话一直避开我。我很奇怪,追问之下,她说店里总部派来的小张想追她,她在联系总部的人想把这个人调走,我问她为什么不和我说,她妈妈说别告诉我比较好,怕影响我们的感情。(其实妈妈不知道这件事情,这句话是骗我的)小张好像送了一束玫瑰到她家。美团买的。当时我并不知情。

过了几天她和我说小张和他道歉了,说那天小张女朋友说分手发疯了,就不在打算调走小张了。

## 10 月 19 日周三(第 54 天) 提出上门见父母

她提出要我上门见父母,建议周末就见。我觉得太快了,我不能空手去,要准备东西,这样仓促上门我怕她父母对我印象不好。但是也勉强答应下来,正好她爸爸有事情周末最后并不在家,所以没有上门。于是提议延迟到下周。

这个时间开始,一边要上门,一边要陪我对象,其实压力挺大的。她因为工作也很忙,双方都有点累。

## 10 月 23 日周日(第 58 天)她决定开始出轨,小张变小三

这个时间是她自己说的,说最早追寻到应该是这天,她和小三已经开始了。应该是每天回家微信语音聊天。骗我说在聊工作。
小三是她店开业,总部派过来帮忙开业的员工。认真说起来样样不如我。(当时还不知情,这是上帝视角)
她有问过闺蜜,闺蜜说,都没结婚,没必要拴死在一个人身上,有人追你就两个都试试。

## 10 月 26 日周三 (第 61 天)想起要当伴郎

我朋友问我有没有西装皮鞋。我才想起来,之前答应这周末去给同学当伴郎。这周又不能去上门了。只能再推到下一周上门了。已经买好茅台准备上门了。

## 10 月 28 日周五 (第 63 天)送万圣节礼物

后面怕婚礼忙忘了,提前几天先送了,去接她的时候她已经全程不敢看我了。我还觉得很奇怪。而且之前说好今晚去我家睡,结果不去了。当时没想这么多。


## 10 月 29 日周六(第 64 天)我去当伴郎

伴郎需要提前一天去,本来想带她一起去,但是她周末餐厅很忙。我只能自己去了。我要在新郎家前一天过夜。
晚上她下班,她和小三玩嗨了,一起去很远的地方吃烤肉到 12 点。后面和小三去开房了。这是我能查到最早的一天了。前面的她和小三的故事我已经查不到细节了。

## 10 月 30 日周日(第 65 天)婚礼结束

当伴郎走完婚礼流程,晚上回来接她下班,一起去吃完饭 11 点了,因为她前一天和小三搞太晚了,这天晚上扛不住,到了我家倒头就睡了。

## 10 月 31 日周一(第 66 天)拍电子婚纱照

她一直含糊不清的说今天要不要放假,我说放假我就请假陪她。最后她把我骗去上班后,又说自己放假,偷偷和小三去海马体拍了电子婚纱照。

当天晚上她发了自己单人照到朋友圈,双人的照片只保留在小三那边。(后面被我发现是和小三拍的后,多次和我狡辩她只在乎自己拍的好不好看,没有关心谁和她搭档。信你个鬼)

## 11 月 1 日周二 (第 67 天) 万圣节

我们一起在朋友圈发了万圣节的礼物,我顺便发了她前几天拍的白色婚纱照,当时并不知情是小三陪她去拍的。以为拍的单人。有点万圣节新娘的意味,正好柯南上映了万圣节新娘电影。我的朋友都过来评论等着吃喜糖了。

不知道从哪一天开始,她就拒绝让我接她下班了,用了各种理由,比如没有化妆不好看什么的。

## 11 月 2 日-6 日 (第 68 天)小三做主的一周

这中间应该和小三开房 2-3 次,有一次是钟点房,还有一次是第二天早上要上 6 点早班,她骗我说 6 点上完早班才去开房的,实际是前一天晚上就开房了。她和小三在一的时间老装自己手机没电失联。期间小三送了她一条 6000 块的碎钻项链。因为她和我讨论结婚的时候,我有说过,钻石是骗局建议花钱买黄金尽量不要买钻石。她应该把这个事情告诉小三了,小三当机立断送出钻石项链。她骗我是妈妈的朋友送的。(这期间我有提议给她买一条 2000 块纯金的项链,不知道是比小三送的晚,还是她选择了更贵的带钻项链,她拒绝了我的那条项链)

## 11 月 5 日周六 (第 71 天)回想起的自爆

她已经大约一周没来我家过夜了,我和她闲聊抱怨了几句,她说了一句,不行下面还疼呢。我以为她工作压力太大生病还是怎么了,问她为什么疼。她赶紧说大姨妈快来了。然后里面穿了一件露腰的打底外面穿羽绒服,我还奇怪这么冷为什么穿这件衣服,其实是为了给小三摸她的腰。(和小三聊天记录里多次提及摸腰)

## 11 月 6 日周日 (第 72 天)害怕露馅

她说想吃草莓我就去给她买了一盒送到她店里,结果她说自己已经买了两盒。这时候她怕露馅,对我没什么好脸色就赶紧让我走了。

## 11 月 7 日周一 (第 73 天) 突然说分手

下午的时候突然微信和我说想和我暂时分开一段时间,说了她自己很多毛病。中间穿插的说了一句,她很容易喜欢上别人。然后又骗我说什么还是喜欢我的,只是没有一开始喜欢我了。(其实是觉得和小三搞上了对不起,想和我分开,把小三处理完,反正小三最迟半个月就走了。这样最多算无缝衔接,不能按出轨算了)

其实前面这段时间感觉她状态很不对劲了。但是那个小三样样不如我,我没往出轨的方向想,以为是她工作压力太大了。其实我感觉到出事了,但是没想到是什么事情。反正最后我就哭了。晚上在家里哭了一晚上,喝了一些酒,她过来安慰了我一会儿,然后 11 点半了,她硬是要走。当时好像是小三也和她闹,准备回总部,不再留下了。(其实早晚要走的,小三不会永远留在这,迟早要回总部上班的)

然后她就回去找小三了,她直接开好房让小三直接去。她出门被她妈妈撞到了,她只能骗她妈妈说去找我。(她妈妈当时是认我当女婿的)

## 11 月 8 日周二(第 74 天) 找不到你

早上我起来没心情去上班了,于是想着去找她问清楚到底怎么回事。于是去她家小区门口等。结果没等到,当时以为她坐她妈妈的车从小区后门去上班了。其实她是直接从宾馆去上班的,所以我没等到。11 点多我直接去店里找她了。她吓死了,一脸惊讶的看着我。很久都说不出话。我说你昨天到底想说什么。她胡诌了一会儿。最后说她要上班,让我回家。
下午她和小三去旁边染头了,小三陪了一会儿,她妈妈来了,小三就走了。她断断续续的和我微信说在染头,妈妈在陪她。说好晚上回家和我微信视频给我看看新染的头发。

这时候已经说好小三和小强明天就回总部了,所以今晚吃个散伙饭,她,发小,小三,小强四个人去吃散伙饭了。晚上吃完,小三和她散步回家。我从 10 点半开始联系她联系不到,11 点半还是联系不上。因为和他约好了要微信视频,觉得很奇怪,于是去她家找她了。结果她不在家,她妈妈说他们去吃散伙饭应该不会出事,便让我回家了。这时候已经 12 点了,我刚走 2 分钟,她到家门口和小三接吻完,被她妈妈看到了。

她看到她妈妈在小区门口等她才知道我找她了。她就打电话给我,我就回去找她了,我就去她家坐了一个小时,她妈妈已经有点意识到不对劲了。说别上门了,改天有空一起吃个饭得了,上门的事情过年再来把,那时候回老家了,就直接上门+订婚,不要弄的这么麻烦(其实是个缓兵之计她妈妈有点意识到出事了)。 明天正好轮到她放假。我让她别去送小三和小强了。她说放假才起不来呢。

## 11 月 9 日周三(第 75 天)陪我又陪他

大早上 10 点她跑去找小三了,然后下午 1 点多送小三去了火车站,然后过来找我,结果太困在我家睡了 2 个小时。然后就去商场里逛了逛,她挑了条牛仔裤我付钱,还吃了顿饭。还拉着我去看了看钻戒和黄金,嘴上说着结婚什么的,实际应该只是为了看钻石黄金和谁去并不重要。晚上的时候又不在我家过夜,我觉得很奇怪了。8 点多就要回家。其实是为了回去和小三网聊。

## 11 月 10 日周四(第 76 天)没有女生能抗拒花的烂漫

经过周一和我说分手,我以为是她工作太累不想和我谈恋爱了。于是买了一束花,写了一封情书。晚上拿着花去接她下班了。晚上送她回家后,她看完信挺开心的,在微信和我说爱我。(这时候她又觉得爱我了。反正小三都走了)
这束花+小三走了,一下扭转了局面,她就只想着哄着小三慢慢分手,然后和我结婚了,我们一直说要过年的时候订婚。(她怕小三的事情暴露,所以不敢轻举乱动)

## 11 月 12 日周六(第 78 天) 抓包

中午的时候去找她吃了个饭,吃完饭,她妈妈在店里正好也要回家了,于是我就和她妈妈回家了。路上和她妈妈聊天,聊了一些店里外卖的事情,然后我们都觉得她有点被总部的人洗脑了做出很多离谱的决策。她妈妈问我最近和她有什么矛盾吗,我说就是老不让来店里。然后她妈妈问了我一句,最近她有没有去我那玩。我说没有,最近都让她很早就回家了。(她妈妈立马意识到事情不对了,周一那天原来没去找我,那肯定是去找小三了。但是我没有反应过来)

回到家,她妈妈立马把这件事情和她爸爸说了,两个人轮番轰炸给她骂了一顿。我不知情。她打电话质问我到底和她妈妈说了什么,又说要让她爸爸找人去我家推了这婚事。我一脸懵逼,说只讨论了外卖和店里的事情什么都没有说啊。我不知道发生了什么,只能赶紧去店里安慰她。我说没什么大事的。她说和家里闹翻了把她妈妈都拉黑了,以后不回家了。我说没事,那就住我家。然后她闹了一会儿,让我去接她的猫先去我家。我就打电话给她妈妈然后说我已经安慰了一会儿了,就是一直让我接猫。于是她妈妈就给我把猫送过来了。中间和她妈妈聊了一会儿,她妈妈看我一直关心她,就说了句实话,说这里面的事情没有那么简单,其实外派过来的小伙子在追她。我说我在之前听过这件事情,好像后面解决了。她妈妈便不在多说了。
(当时家里骂她店里藏人了。什么的。已经大概推算出来出事了,我只知道她和家里吵架了,不知道吵架的内容是什么)

到了晚上,她也还和小三聊着,不知道说了什么,小三给她定了一杯奶茶安慰她。她之前预定的一个戒指调货到了,然后双十一的优惠活动快结束了。她就拿着奶茶我们一起到商场里买了这个戒指,3000 元,让我掏了这个钱。

卖完了就回我家睡觉了,她被这么多事情折腾累了,早早就睡着了,但是我睡不着,我回想了一下所有事情,感觉不对劲,于是拿她手机上微信看到了他们的聊天记录,知道了她和小三的事情,顺便拿手机拍了几张聊天记录。(此时还不知道他们开房了)
聊天记录只看了个大概,就是老公老婆的各种聊骚。这时候知道了电子写真拍的是婚纱照,是那个男生陪她去的。

我躲到隔壁去看她的手机,顺便拍下了部分聊天记录,她不知道怎么醒了,发现手机找不到立马出来找我。然后抢回手机,把戒指的 3000 转给我,赶紧说分手跑路了。凌晨 1 点,这么晚了,她也不能不回家,我有点担心,就追出去跟着她。最后在大街上闹了一会儿。她一直让我离开,我躲到一边。看着她去宾馆睡下了。

大概凌晨 3 点,我还是一脸懵逼,于是去她家找她妈妈聊了几句,她妈妈知道是我来了就知道我大概抓包了,说她只是耳朵出轨了什么的,让我赶紧回去睡觉不要耽误工作。

回去我也挺难过的,也睡不着,凌晨 6 点。最后去宾馆找她了。(我真不要脸)。她觉得对不起我,就吃药了

## 11 月 13 日周日(第 79 天)以为的风平浪静

宾馆醒来,到了早上的 10 点,其实还是今天,她还是得去上班。店里人手不够。路上我一直问她真相。她不愿意多说,骗我说只亲了 3 次,没有伸舌头。我说你这么做总要给我一个交待的。她不理解,只觉得她和小三分手就行了,要是我不愿意和她在一起就也分手她谁也不谈了。我解释了一会儿没有解释通,让她自己看着办吧。

到了中午她也和小三打电话说要分手了,语气还是很温和的,说他们的感情是寄存在别人的感情之下的,她觉得还是不合适还是分开吧。我一看这温和的态度,想扭头就走了。她就一直哄我。最后把小三直接拉黑了。以为事情会到此为止。到了晚上,她觉得和家里稍微有点缓和了,决定回家睡一晚,回头收拾东西希望改天搬到我家住,我就送她回家了。

## 11 月 14 日周一(第 80 天)发现开房

送她回家后我便自己回家睡觉了。凌晨 6 点我又失眠醒来。她所做的事情实在有点伤人。于是我起床看了一眼前面拍的聊天记录,仔细阅读后,我断定 11 月 7 日那天,我在家哭完,她安慰我后去和小三开房了。于是气不打一处来,我打电话给朋友说了一下,便一个人直接跑到她家和她们家的人大吵一架。他们全家都否认她开房的事实,实际她妈妈知道那天夜不归宿找小三了。我们在她的卧室里吵,后面她爸爸来了,怼了我几句,说我没有证据不要乱说她和别人上床。于是我改口说她和脚踩两只船和别人谈恋爱这也是不对的。她爸爸留下经典名言:现在年轻人都是快餐恋爱,谁规定只能和一个谈恋爱。

我看她爸爸已经疯了,而且在她们家,她爸爸长得还有点壮,避免我吃亏,我只能生气的跑路了。狠狠的关上了她们家的门,她爸爸追出来在门口大骂我是什么东西也敢摔他们家的门。我直接跑路。我刚跑到小区门口,她打电话给我质问我为什么这么做。我说你和别人开房的时候没有想吗。她还是死不承认开房的事情。最后吵了半个小时。我们相互死心了,她决定要去我家接回她的猫。她妈妈在旁边问她,你这样去他会不会打你。她说相处这么久,这点人品还是能保证的,不要担心。于是我们两个打车去我家然后我朋友赶到了我家,帮忙缓解了一下剑拔弩张的气息。朋友劝我们说,既然闹到了这一步那大家也确认分手了,大家好聚好散就此别过。

我朋友出去让我们自己聊会儿,她和我道歉了一会儿,还是没有承认做的坏事情,只说自己聊骚而已。我也不想和她在扯淡了,说聊到这就算了你抱着猫走吧。她想了想说想最后抱我一下,我拒绝了。我们便收拾她的东西把她送回去了。同学觉得我这事我不理亏,但是上门大闹有点鲁莽,同学便代我登门和她妈妈口头道歉了一下。我和她在楼下等着同学上去当一下和事佬,这时候她脑子又瓦特了,开始指责我在恋爱里做的不好的一些细节。我在恋爱里已经努力做到最好了,虽然最后没有做到 100 分,但是也有 80 分,那你也不能揪着这 20 分的地方指责我呀。我觉得她脑子混乱逻辑不清,等同学下来就赶紧走了。

我和同学吃完午饭回去看了一会儿喜剧,他便上班去了。她又断断续续的给我发消息说对不起我,希望我可以打她一顿出出气。我没回她。后面又打了几次电话找我,一直在哭,我又心软去找她了。我们两个去吃了点东西,两人都哭,她觉得对不起我,我觉得这个事实有点难以接受。这时候她奶奶电话打过来了,奶奶是知道这件事情,语重心长的给她说,怎么做错这种事情伤害人家男孩子,以后不要在犯这种错误了,要好好做人。她挂了电话哭的更厉害了,说之前给奶奶看过我的照片,奶奶特别喜欢我。两个人在街边哭累了,便去宾馆休息了。睡到晚上她回家了。

## 小三比我还激动

(小三已经在外地了)小三不满于被直接分手,听着她说要和我在一起,便扬言要来北京弄死我。我一脸蒙蔽,大哥那是我的台词啊。我从来没有参与她和小三之间的沟通,一直让她自己处理。她和小三反复拉扯十来天,她又把小三拉黑了。(要拉扯是因为她怕小三又闹到长辈那边)后面小三的朋友发来小三在医院的抑郁症诊断书,她又心软了,想着哄着小三慢慢再分手。我一脸惊恐,她能做出这种操作完全不顾我的感受。此时她家里因为楼里有阳性病例,导致整栋楼被封。于是我和她住宾馆了。她又和小三在微信上拉扯,还多次让我离开。

## 被封一周

断断续续的在宾馆住了 3 天后,宾馆被封了。宾馆内发现一例。我们两个在宾馆里封了一周,期间她断断续续的去厕所偷偷哄着小三。我又惊呆了这个操作,我让她把小三删了她又怕抑郁症的小三自杀了,最后拉扯无果。被封的最后两天,她发现我把大学女同学加回来了,大发雷霆。因为当初追她的时候,女大学同学支了很多招去追她,所以加回来说了一下感觉大概被绿分手了,也算有个结尾吧。她总觉得我和大学女同学有什么,她打电话给她闺蜜说了我半天,我又打电话给我朋友,我朋友拉架,意思是我有个态度就行。她还是大发雷霆。一瞬间我看透了,她搞成这样的我都没有骂她这么过分,她直接骂我和女同学是狗男女。我彻底觉悟了,凉了她一天都没有理她。第二天她冷静些了,开始和我讲道理,给了个台阶下,我想着有台阶就下吧,和她道歉了两句,她看我也不犟着了,也赶紧说原谅我了。然后她心情好点了,去了厕所收拾收拾,说了句话,要抓大放小总归是要结婚的,这种小事不能太计较。(我心想,早干嘛去了,现在又知道结婚了。)我对她哄小三的事情还是心有不满。
2. 一个 14 岁初中生开发的前端工具库,轻量级高可用,各位可以体验一下

没错,我是一个 14 岁的初中生,正在为了我开源项目的 star 数发愁 awa ,如果你体验后感觉不错,不妨给个 star 吧

目前暂时没有中文文档,非常抱歉,目前已经在做了,但碍于我要上学,时间真的不多所以可能出来的时间会比较晚

同时还有专门的脚手架用于部署项目,支持纯 fastjs 和 vue 项目,而且支持多个模块,如 vuex,vue-router,antdv,element ui vue,js-cookie ,自动配置 main.js 等文件,真正意义上的开箱即用

npm install -g fastjs-cli
fastjs create 项目名
3. 大家新冠好了会一直咳么
上周二发烧,烧几天就退了,现在过了一周多,还咳嗽,是不是要去医院排片子看看肺
4. 互联网在未来的某一天有可能也会全面放开吗?

从疫情政策突然转向想到,既然坚持了好几年的政策都可以说改就改,那是不是也可以期待一下有朝一日忽然就把互联网也放开了?毕竟当下的民族自信比起当年来可是强太多了。

5. 所以,彦祖们明天上完班去哪放松三天呢
我前天脑子一热,买了去武汉的高铁票
不知道去干嘛,现在也还没搜能去干嘛
只知道一个吃的就是 热干面
然后看了下能去的地方
长江大桥,省博物馆,黄鹤楼在外边看看?
户部巷,江汉路步行街,还有个吉庆路?
古德寺,归元禅寺,汉口江滩会不会被冻成狗?
武大应该没樱花吧?
问一下彦祖们
有啥是离了武汉湖北就很难吃到正宗的本地小吃或者菜系?
彦祖们可以的话直接给店铺名
无任何忌口
6. 程序员逃离北上广来到成都 2 年多,聊聊感想

程序员逃离北上广大厂来到成都 2 年多,聊聊我的感想

转眼到成都已经一段时间了,看着手机推送的关于北京的某某新闻,忽然感觉到曾今奋斗(打工)的城市已经离我千里之外了

回想从毕业到现在自己的一些变化,技术上从几乎啥都不会到现在会写一点代码,心态上从非常迷茫焦虑到现在有自己的节奏,头发从毕业的茂盛浓密到现在的欠茂盛浓密🤣,这些年的经历,还是需要写一篇文章来回顾一下的,里面涉及到程序员面试以及职业规划相关的东西不一定适合每个人,感兴趣的朋友可以和我讨论

本文有两条主线,一条是时间线,一条是我的个人计划线。

刚到北京

大学毕业我就直奔北京,开启了我的程序员打工生活

聊聊刚毕业这家公司吧,这个是一家做计算机视觉和 AI 的创业公司,如果是计算机视觉行业从业者,应该可以猜到这家公司的,主要以人工智能和安防为主

我当时为什么选择这家公司呢?

一方面是因为给的薪资确实比较高,在那会儿就已经给到了很高的月薪,对于刚毕业的学生来说确实是一笔巨款

另一方面是当时这家公司还是有一些牛人在的,CEO 是谷歌研究员背景,公司拿到的风投也是非常知名的,而且也给了我一些期权,在当时的我看来还是有一点财务自由的机会的😸

在这家公司我做的事情就是做安防系统,也就是中后台系统,面向 B 端用户

在这家公司我还是很快乐的,实习的时候就拿了最佳实习生的奖,年会抽到了当时华为最新款手机(从那以后我再也没抽中过大奖😅)。技术上从最开始的实习水平,到后来也可以独立做项目,也做过面试官,总体来说,过的还是很顺意的

但是,我发现我做的事情熟练之后,和大部分程序员做的事情一样,既没有后端大流量高并发,也没有比较深入的前端技术探索,而且最重要的是业务并没有像我预先想的一样逐渐做大,很多大牛也纷纷离职了

这是我的第一次危机感,也是我第一次跳槽的原因。

从决定跳槽开始,我就在思考两个问题,第一个是我要去哪些公司,第二个是我要准备什么内容

关于第一个问题,因为我经常混迹于互联网社区和论坛,在知乎、掘金、v2ex 等等地方对国内公司的情况也有一些了解,所以我把范围划定在第一、二梯队的大公司前端岗位

关于第二个问题,我搜索了很多面经和招聘启事,也找了一些大公司的朋友问,最终把准备范围划定在这几个方面:前端基础知识,前端框架 /库原理,项目经验,数据结构与算法

划定范围之后,就开始了我的准备跳槽之路。我的规划是每天下班之后学习 1 到 2 小时,周末学习 5 个小时以上,工作中也积极的总结业务流程以及项目的亮点,准备面试的过程中非常的辛苦,经常下班后会学到 12 点以后,并且周末也很少出去玩,过程中还伴随着焦虑,终于在准备了一段时间后,我开始面试了,这也是我的第一次跳槽

在刚到北京的这一段时间内,我还定下了自己的个人计划。从我了解到北京的房价、户口、学区等等问题之后,我就断定我以后不会长期在北京发展,因为定居的难度和压力是很大的,人没必要把自己弄的那么累

既然不在北京发展,那去哪里呢?因为我老家是西部的,综合工作机会、买房难度、离家距离来看,最终选择了某西部二线城市——成都,于是,我的个人计划就开始了,计划的目标是在三年后定居这个二线城市

两次跳槽,定居成都

第一次跳槽面试的结果很出乎意料,因为不知道自己的水平究竟怎么样,所以这次跳槽我把能投的公司几乎都投了一遍,没想到大部分面试都很顺利,并没有事先想的那么难,拿了大概六七个 offer 吧,包含市面上的知名大厂和独角兽

这样的结果对于当时只有一年半经验的我来说,是一个非常大的惊喜,事后我还写了一篇面经贴,也认识了很多朋友,面经贴我之前写过,感兴趣的可以自己去搜一搜

最终在所有 offer 中我选择了字节跳动,因为在我看来这是一家发展迅速并且具有旺盛生命力的公司,这也是当时的我结合自己情况做出的最优解

在字节跳动工作的经历是充实和开心的,这里的工作体验和第一家创业公司是完全不同的

首先,身边的同事平均水平都比较高,在这里我也感受到了团队合作的快感,有什么问题大家可以一起讨论技术方案和解决办法,互相 review 代码的过程中也能进步不少

然后,业务种类比较多,有中后台的、混合开发的、偏 C 端的等等,只要个人积极主动,都可以获得不错的成长。并且在做业务的过程中,看着身边一些高职级的同事和领导,我对于技术和业务、职场技巧等等也有了一些新的看法

当然了每家公司都是有缺点的,比如加班比较多、干的活太碎太重复性等等问题,相信大部分程序员都会遇到类似的问题

在这段时光里,我的个人计划也有了进展,在成都买了房子,个人大事也解决了

时间总是过得很快,在成都的一切事宜都准备好了,而且差不多也到计划收尾的时间点了,终于,我“逃离”了北京,再次跳槽来到了成都定居

个人感想

毕业去大公司还是小公司

我记得我毕业那会儿,有种说法是去大公司都是螺丝钉,去小公司可以得到更多锻炼,但是后来我发现这种说法是有问题的

因为人都是有一个成长的过程的,刚毕业除非是超强的大佬,否则不管是在大公司还是小公司,做的事情都是螺丝钉类的,如果一个公司敢把很重要的事情交给应届生来做,那说明它的人才管理是有问题的

站在上帝视角来看,刚毕业就加入一家高速发展中的公司并且拿到期权是最好的,比如在 14 年的时候就加入字节跳动这样的公司,但是这样的机会很少很少,能有这样眼光的人也不会纠结,大部分暴富的人也不是靠的眼光,而是靠的运气

所以对于毕业生来说,能去大公司尽量去大公司,首先大公司的培养体系更加完善,包括技术和职场方面的都会有课程和分享

其次是大公司的同事平均水平更高一些,也能对自己带来正向的影响,提高职场上限

最后是我在跳槽和招人的时候发现的,简历上有大公司经历的人会在找工作的时候相对更加顺利一些,不管怎么说这也算是一个小小的光环

早做职业规划

凡事预则立不预则废,职业发展是需要提前思考规划的,不然很容易会陷入一年到头了然后问自己“我今年又干了些啥?”的挫败感中

如何做规划?首先需要了解自己,自己的性格,自己的长处,自己的家庭等等问题,都需要考虑到。 如果家庭无法支持在一线城市买房,是不是可以考虑下哪个二线城市比较适合自己,并且早做打算,多观察一下二线城市的工作机会

如果想在职业发展上有所突破,可以划定一条路线,常见的比较好的两条路线就是在大公司升职级和去发展中的公司拿期权,选择第一条路就需要多去主动承担一些事情并且拿好结果做好汇报,选择第二条路就需要多关注 B 轮或者 C 轮的创业公司

如果个人性格上并不是很喜欢写代码相关的工作,可以考虑是否早做打算转行去做自己更擅长的事情

总之,一切都需要早做职业规划,凡事预则立不预则废

多关注业务和产品

刚毕业的时候,我醉心于技术,后来才发现业务和产品的重要性。框架也好开源库也罢,技术对于我们来说,只是做事的工具,一次次的技术升级、新的轮子的出现,都是为了让我们可以更有质量、更快的做出产品来,如果连做什么产品、为什么做都没弄清楚,那就很容易沦为工具人,这里引用雷军在《程序人生》一文中的一段话:

有的人学习编程技术,是把高级程序员做为追求的目标,甚至是终身的奋斗目标。后来参与了真正的商品化软件开发后,反而困惑了,茫然了。

一个人只要有韧性和灵性,有机会接触并学习电脑的编程技术,就会成为一个不错的程序员。刚开始写程序,这时候学得多的人写的好,到了后来,大家都上了一个层次,谁写的好只取决于这个人是否细心、有韧性、有灵性。掌握多一点或少一点,很快就能补上。成为一个高级程序员并不是件困难的事。

当我上学的时候,高级程序员也曾是我的目标,我希望我的技术能得到别人的承认。后来发现无论多么高级的程序员都没用,关键是你是否能够出想法出产品,你的劳动是否能被社会承认,能为社会创造财富。成为高级程序员绝对不是追求的目标。

把面试当做学习

很多人会因为害怕面试失败而不敢面试,我觉得没必要,我们应该把面试当做一次学习

首先,靠一个小时左右的面试是很难面试出一个人的真实水平的,因为不可能在这么短的时间内既考察到基础知识又考察到编程素养等等,而且面试官的水平有高低,你很擅长 Nodejs ,但是面试官只熟悉 React 不懂 Nodejs ,那面试的时候面试官只会挑着他懂的问,这就是关公战秦琼,问不出来什么结果的

其次,面试失败不一定是能力问题。因为我们招人的时候发 offer 还会受这些因素的影响:当前是否有 hc ,是否性价比更高,如果是高职级还要考虑有没有坑位等等

所以,没必要害怕面试,把它当做一次学习和交流的机会,如果有可能一年可以面试一次,感受一下市场行情

展望未来

现在我在成都还是很开心的,之前在北京总觉得自己是过客,同事基本上也来来去去,现在很踏实很有节奏

希望以后可以尝试更多的东西,突破自我

7. 阿兹夫定片,网上一查,不敢吃

胸闷了几天,今早还咳嗽起来,就上午去做了 CT 检查,说是双肺内见多发斑片状磨玻璃影,诊断意见是双肺感染(考虑病毒性感染)。 医生给开了阿兹夫定片。一开始说可能没药,后来拿到药了,还挺高兴。结果晚上在网上一查,感觉非常的不靠谱(几篇文章都在说临床研究数据少,毒性大),再看看盒子里随附的说明书上罗列的一长串不良反应,实在没胆吃。请专业人士出来替我一决。

另听说 paxlovid 挺好,不知道怎么搞得到,有资源的能否分享下,付费。万一搞不到药,也希望自己能挺过去。

8. 没人评价 12 月 27 日出的红米 k60 吗

9. 路口车多时候怎么变道啊,新手慌得一批,怕撞到别人

今天变道没变过去,占了两个道,被一个泥头车开过去别了下

10. 真正应该回到 2008 年以前而不是 2019 年
就算没疫情 2019 年各行各业的不景气 房价泡沐最大化 大裁员 都忘了么 2018 年开始的 996 忘了么 2019 年是非常艰难的一年
11. 大家觉得现阶段 M 芯片的 Mac 还有哪些方面不如 Intel Mac 稳定

个人碰到的最大问题是外置移动硬盘掉速掉盘,拷贝大量文件经常会发生自动 eject ,拷贝出错,速度变慢等问题,相当烦人。

M1 和 intel Mac 都安装了相对应的 NTFS 软件,不管是 SSD 还是 普通硬盘, 都会有此问题,但是 intel Mac 一切正常。

12. 有没有一种方案可以满足在一台电脑上完成 win 玩游戏, Linux 学习, nas 下载

目前预算有限,暂定是 e52640v3+5600xt 在加个矿盘啥的,win 用来玩点游戏,nas 挂机下载,存点片。我了解过一些 all in one ,但都是在低功耗主机上的实践,不知道这样的主力机能不能做

13. 总结开源项目中的常见坏实践(Bad Practice)

一些开源项目包含了各种编程的最佳实践供人参考学习和借鉴。但是也有一些开源项目虽然初衷是好的。但是包含了一些代码的坏实践。特别是对于一部分刚入行的大学生来说,可能会给到一些错误的示范。于是在此列举一些项目中的坏实践。

1.方法的用意判断是与否却返回字符串的“0”或者“1”

图片.png 如果一个方法明确返回是与否这两种情况,那么没有必要返回字符串的 0 或者 1 。这样会造成很多地方需要使用 字符串的形式来匹配结果判断是与否。例如以下这种形式。 图片.png 方法应该直接返回 true 或者 false 。 代码会简洁明了很多。

2.滥用三元运算符

图片.png

图片.png

3.滥用机翻英语

Poor 有不好,差的意思。 例如 My english is poor. 这里的 Poor 是差的意思。 但是下图这个方法 getDatePoor 。也用 poor 来表达获取时间“差”的含义。 英语还是程序员应该要掌握学习的。不能光高靠机翻英语,不然容易闹笑话。 图片.png

4.造不必要的大量轮子

很多方法或者功能我们应该尽可能的搜索是否已经有开源成熟的 jar 包或者框架实现。成熟的开源 jar 包或者框架,有大量完备的测试以及广泛的用户来确保质量。 如果实在需要自己造小轮子,请使用单元测试来确保质量

图片.png

5.大量 if else 语句

大量的 if-else 语句,具体情况具体分析。但是大部分都可以用卫语句提前返回结果。避免大量嵌套。

例如左边的写法可以改为右边的写法

图片.png

像下图这种情况可以用 Stream Lambda 来进行简化 图片.png

优化后

图片.png

6.多余的代码判断

有些时候可能会写出一些不必要的冗余判断

图片.png

7.大量的代码细节让阅读者增加心智负担

图片.png

我们应该封装一部分代码细节,暴露出代码的主流程,优化后

图片.png

8.繁琐的代码逻辑

图片.png 像上图这种情形,我们其实可以使用一句 Stream 语句就可以描述出来。

9.数据库中是与否可以直接用 tinyInt 映射,不要用字符串来映射

这样会造成布尔字段取出时,还需要跟字符串 1 或者 0 进行比对,这是很尴尬的设计。 图片.png

10.异常捕获之后不做任何处理

我们捕获异常之后一般都需要使用 log 来记录错误情形,如果什么都不做,就很可能丢失错误信息,并且使代码排查过程更加困难。

图片.png

图片.png

11.使用 Map 填充数据

使用 Java 是静态语言,使用 Map 填充数据,反而失去了静态语言带来了代码检查以及 IDEA 识别字段引用的功能。

图片.png

12.混乱的常量

请不用将项目中所有的常量一股脑的放到一个类中。

图片.png

可以使用像这种静态类的方式,分门别类地放入不同的常量

图片.png

13.请使用驼峰命名

图片.png

14.变量的定义请在系统内保持一致,比如 1 在系统内表示是。 请勿有时表示是,有时表示否。

有时候用 1 表示肯定,有时候用 0 表示肯定,有时候用 Y 表示肯定。

图片.png

图片.png

图片.png

15.奇葩的代码脑回路

在外层方法判断一遍,在内层方法又进行一遍一样的判断

图片.png

16.常量随意的命名格式

常量的命名请使用大写加下划线的格式

图片.png

17.嵌套的 Switch 语句

就一种 case 了 完全没有必要使用 switch 语句 图片.png

18.使用魔法值

图片.png

例如项目中大量使用了“jpg”的字符串魔法值,使用魔法值使得我们无法统一找到代码的引用处。在重构的时候难免会有疏漏。

图片.png

19.单个方法代码超过 80 行

如果单个方法的代码行超过 80 行,意味你的代码缺乏封装和可读性。例如这种一大坨的代码。

public static void initColumnField(GenTableColumn column, GenTable table)
{
    String dataType = getDbType(column.getColumnType());
    String columnName = column.getColumnName();
    column.setTableId(table.getTableId());
    column.setCreateBy(table.getCreateBy());
    // 设置 java 字段名
    column.setJavaField(StringUtils.toCamelCase(columnName));
    // 设置默认类型
    column.setJavaType(GenConstants.TYPE_STRING);
    column.setQueryType(GenConstants.QUERY_EQ);

    if (arraysContains(GenConstants.COLUMNTYPE_STR, dataType) || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType))
    {
        // 字符串长度超过 500 设置为文本域
        Integer columnLength = getColumnLength(column.getColumnType());
        String htmlType = columnLength >= 500 || arraysContains(GenConstants.COLUMNTYPE_TEXT, dataType) ? GenConstants.HTML_TEXTAREA : GenConstants.HTML_INPUT;
        column.setHtmlType(htmlType);
    }
    else if (arraysContains(GenConstants.COLUMNTYPE_TIME, dataType))
    {
        column.setJavaType(GenConstants.TYPE_DATE);
        column.setHtmlType(GenConstants.HTML_DATETIME);
    }
    else if (arraysContains(GenConstants.COLUMNTYPE_NUMBER, dataType))
    {
        column.setHtmlType(GenConstants.HTML_INPUT);

        // 如果是浮点型 统一用 BigDecimal
        String[] str = StringUtils.split(StringUtils.substringBetween(column.getColumnType(), "(", ")"), ",");
        if (str != null && str.length == 2 && Integer.parseInt(str[1]) > 0)
        {
            column.setJavaType(GenConstants.TYPE_BIGDECIMAL);
        }
        // 如果是整形
        else if (str != null && str.length == 1 && Integer.parseInt(str[0]) <= 10)
        {
            column.setJavaType(GenConstants.TYPE_INTEGER);
        }
        // 长整形
        else
        {
            column.setJavaType(GenConstants.TYPE_LONG);
        }
    }

    // 插入字段(默认所有字段都需要插入)
    column.setIsInsert(GenConstants.REQUIRE);

    // 编辑字段
    if (!arraysContains(GenConstants.COLUMNNAME_NOT_EDIT, columnName) && !column.isPk())
    {
        column.setIsEdit(GenConstants.REQUIRE);
    }
    // 列表字段
    if (!arraysContains(GenConstants.COLUMNNAME_NOT_LIST, columnName) && !column.isPk())
    {
        column.setIsList(GenConstants.REQUIRE);
    }
    // 查询字段
    if (!arraysContains(GenConstants.COLUMNNAME_NOT_QUERY, columnName) && !column.isPk())
    {
        column.setIsQuery(GenConstants.REQUIRE);
    }

    // 查询字段类型
    if (StringUtils.endsWithIgnoreCase(columnName, "name"))
    {
        column.setQueryType(GenConstants.QUERY_LIKE);
    }
    // 状态字段设置单选框
    if (StringUtils.endsWithIgnoreCase(columnName, "status"))
    {
        column.setHtmlType(GenConstants.HTML_RADIO);
    }
    // 类型&性别字段设置下拉框
    else if (StringUtils.endsWithIgnoreCase(columnName, "type")
            || StringUtils.endsWithIgnoreCase(columnName, "sex"))
    {
        column.setHtmlType(GenConstants.HTML_SELECT);
    }
    // 图片字段设置图片上传控件
    else if (StringUtils.endsWithIgnoreCase(columnName, "image"))
    {
        column.setHtmlType(GenConstants.HTML_IMAGE_UPLOAD);
    }
    // 文件字段设置文件上传控件
    else if (StringUtils.endsWithIgnoreCase(columnName, "file"))
    {
        column.setHtmlType(GenConstants.HTML_FILE_UPLOAD);
    }
    // 内容字段设置富文本控件
    else if (StringUtils.endsWithIgnoreCase(columnName, "content"))
    {
        column.setHtmlType(GenConstants.HTML_EDITOR);
    }
}

20.避免使用反逻辑

图片.png

像图中!(x == 0) 可以直接改成x != 0 即可

还有以下这种冗余代码。

图片.png

21.复杂的判断使用有意义的变量来替代

图片.png

比如上图的判断我们可以用一个变量 isLongField 来替代 提高代码的可读性。

22.常量没有使用 final 来修饰

如果没有使用 final 来修饰的话,就有可能在代码中被修改。

图片.png

23.字符编码直接用字符串表示

图片.png

字符编码,JDK 中都有常量可以直接表示,我们可以直接使用

图片.png

24.多余的方法修饰符

Java 中 interface 类,方法默认都是 Public 的,没必要再加上 public 修饰符

图片.png

25.不必要的 ToString

图片.png

图片.png

26.多余的变量声明

如果变量声明之后没有做任何处理,请直接通过 return 返回,不要多声明一个变量

图片.png

27.使用语义不清晰的方法

例如 String 的 indexOf 方法 我们完全可以使用 contains 方法来替代,使代码的语义更一目了然。

图片.png

28.毫无必要的包装语句 unboxing 和 boxing

Integer.valueOf

返回的本身就是 int, 没有必要再调用 intValue 方法 图片.png

29.使用+=进行在循环中字符串拼接

图片.png

+=会造出临时的字符串,我们应该使用 StringBuilder 在循环中拼接字符串

以上就是总结的关于项目中的一些坏实践,请大家务必使用。有其他坏实践,恳请大家继续补充。


鄙人在业余时间弄了一个全栈项目 Agileboot ,初衷是想做一个代码规范,项目结构良好,可供大学生或者入门 3 年内的开发者参考使用的项目。

后端地址: https://github.com/valarchie/AgileBoot-Back-End
鄙人能力水平有限,如果项目中发现不足或者错误,恳请指正。欢迎 PR 。一起构建一个规范完善的后端项目。

前端地址: https://github.com/valarchie/AgileBoot-Front-End

鄙人前端小白,关于前端项目的规范以及优化仅作了力所能及的部分,还有很多优化空间。哪位前端大佬有兴趣一起帮忙规范和优化吗?

演示地址 www.agileboot.vip

欢迎加入全栈技术交流群:1398880
14. 关于过去 3 年的国内重症床位的真实增长情况

昨天在一个关于医护人员的帖子 @juded 说 国内 icu 床位数量两年不到的时间从 4 张 /10 万人增长到了 10 张 /10 万人,和香港韩国等水平相当。 于是我拉了一下过去 5 年的数据

年份 重症床位数 增加床位数 增长率
2017 48001
2018 52568 4567 9.51%
2019 57160 4592 8.74%
2020 63527 6367 11.14%
2021 67198 3671 5.78%
数据来源是每年卫健委发布的中国卫生健康统计年鉴,各位可以自行查证。

最新的是 12 月 25 日消息卫检委公布的 18.1 万张,说全国重症床位充足。另外 12 月 9 日这个数据是 13.81 万张。 我想真实的数据才是真正对医护人员的关心吧。 @juded 你说你说在论文上看到的数据,请你发下你说的论文吧。

15. 以前我以为 v2、知乎有钱多,没想到有钱人都在 Soul

村通网,最近阳在家闲的没事,去 Soul 上注册了一个号,本来想着偶遇一下小姐姐,没想到进去他们都在发布自己月入过万、年薪几十万、存款几十万,好生羡慕有钱人。

16. 不懂就问,现在 1 号那位是确认再次连任了吗?

如题,明年两会会换 1 号还是现在这位继续连任到 2028 年?

17. 行车记录仪有在用的吗。买哪家的好一些。
2023 年行车记录仪推荐。
18. 消息两则:中国停止报告新冠住院人数
两则独立的消息:

1. WHO 已经连续两周没有收到中国报告的新冠住院数据

2. 疾控中心:回归到“乙类”传染病后,会对疫情相关数据公布的频次做动态调整,最终调整到一个月一次
19. 印象笔记越来越难用了,想换一个知识管理软件,给推荐下?

之前买了 5 年的会员,但现在感觉真难用 尤其写 markdown ,有没有好用的,一用就上瘾的那种。用完不想换的,就象 readwise 这种让人眼前一亮的。大家给推荐个? 感谢