注册
环信即时通讯云

环信即时通讯云

单聊、群聊、聊天室...
环信开发文档

环信开发文档

Demo体验

Demo体验

场景Demo,开箱即用
RTE开发者社区

RTE开发者社区

汇聚音视频领域技术干货,分享行业资讯
技术讨论区

技术讨论区

技术交流、答疑
资源下载

资源下载

收集了海量宝藏开发资源
iOS Library

iOS Library

不需要辛辛苦苦的去找轮子, 这里都有
Android Library

Android Library

不需要辛辛苦苦的去找轮子, 这里都有

马斯克接手Twitter一年后的成果-工作量化的重要性

大家好,我是云舒编程。 马斯克接手Twitter的一年后,在10.27其官方团队发布了一条推文展示这一年的工程成果。 有点国内那味了,论工作量化的重要性。 这一年里,我们在工程技术上取得了许多出色的成就,除了大家在应用中看到的明显变化之外,在幕后我们还做了...
继续阅读 »

大家好,我是云舒编程。


马斯克接手Twitter的一年后,在10.27其官方团队发布了一条推文展示这一年的工程成果。



有点国内那味了,论工作量化的重要性。



这一年里,我们在工程技术上取得了许多出色的成就,除了大家在应用中看到的明显变化之外,在幕后我们还做了一系列重要的优化和改进。



  • 将「为你推荐」、「关注」、「搜索」、「个人主页」、「列表」、「社区」和「探索」等功能的技术栈整合到了一个统一的产品框架中。

  • 彻底重建了「为你推荐」的服务和排名系统,代码行数从700K减少到70k,减少了90%;同时计算资源减少了50%,处理相同请求的能力提升了80%。

  • 统一了「为你推荐」和视频的个性化、排名模型,显著提高了视频推荐质量。

  • 重构了API中间层的架构,删除了超过10万行代码和数千个未使用的内部废弃接口,同时删除了一些没人用的客户端服务。

  • 将获取帖子元数据的时间减半,全局API超时错误减少90%。

  • 对外部机器人、爬虫的屏蔽,相比2022年,增长了37%。平均每天,阻止了超过100万次机器人注册,并将私信中的无用信息减少了95%。

  • 关闭了位于萨克拉门托的数据中心,重新调配了5200台机架和148000台服务器,每年为公司节约了超1亿美元,总的来说,节约了48兆瓦的电量,60000磅的网络机架。

  • 优化了对云服务厂商的使用,开始在本地进行更多的工作,这一转变使得每月的云服务成本降低60%,同时我们还将所有的媒体和大文件从云端迁出,减少了60%的云端存储空间,除此之外,还成功将云数据处理成本减少了75%。

  • 构建本地GPU超级计算集群,并设计、交付了43.2Tbps 的高性能网络架构。

  • 提升网络主干的容量和冗余性,每年节省1390万美元。

  • 开展了自动化峰值流量故障转移测试,以持续验证平台的可扩展性和可用性。


作者:云舒编程
来源:juejin.cn/post/7295397683397066762
收起阅读 »

年,是团圆

大概是我刚上小学时候,村子里流行起来出门打工,每个家庭里面的壮年男人都会去湖北挖桩,组团去。他们过完年出发,先走路下山,坐车再坐船。 出门一段时间后,他们会寄钱回家,那时寄钱的方式我不清楚也还从没有问过,只记得家里女人们听到对门肉嗓子大喊“xxx,来拿汇票”时...
继续阅读 »

大概是我刚上小学时候,村子里流行起来出门打工,每个家庭里面的壮年男人都会去湖北挖桩,组团去。他们过完年出发,先走路下山,坐车再坐船。


出门一段时间后,他们会寄钱回家,那时寄钱的方式我不清楚也还从没有问过,只记得家里女人们听到对门肉嗓子大喊“xxx,来拿汇票”时,她们是很开心的。


快过年,男人们从外面回家,背着或挑着大件的行李,行李中是破旧的棉穗,小孩的新衣与不常见的水果糖。


挖桩需要两个人配合,一人在井里往下挖,一人在上面接桶转移土石,隔一段时间换人。有想法的男人认为他可以一直待在井里,女人提桶倒土是完全没有问题的,如果与自己的女人组团,工钱不用与别人分,挣钱的速度便会快上一倍。


于是,到我上初中时候,出门打工的规模更加扩大,家中的男人女人一起出门,小孩交给父母带着。


男人女人外出打工的时间是一样的,过完年出门,快过年时回家。


男人女人年龄渐长,他们的小孩长成大人,成人都外出打工,过完年出门,快过年时回家。


男人女人与小孩的目的地并不相同。于是过年,成为一家团圆的日子。


家家张灯结彩,人人喜笑颜开。


初一的早餐,是可以很简单的,汤圆或是包面;也可以是复杂的,蒸米饭,炸鱼、牛肉干、猪耳朵、凉拌鸡脚等许多凉菜,昨天的猪脚炖鸡汤,再配几个新鲜炒菜,满满一桌。复杂与简单的差异,来自于当天行程的安排,马上要走亲戚就简单些,家中要来客人便复杂点。


午饭,必然是丰盛的,一锅必不可少的鲜炖的猪脚炖鸡汤(是的,猪脚与鸡年三十只炖四分之一,留着客人来后能炖新的猪脚汤),一盆小孩儿最是欢迎的洋芋片,一锅人人喜爱的猪头汤清炖萝卜,两盘肥腻多汁男人们热衷的辣椒炒三线儿,一盘香肠、两碗扣肉,再来一盘炸豆腐……凉菜有猪肝、猪耳朵、鸡脚、炸鱼、牛肉干、萝卜干儿、折耳根……炒一个青菜,或是再加一碗青菜猪血汤。


男人们大都是会喝点酒的,他们互相劝着,你敬我一口酒,我回你两句话:“这酒好甜啊!”女人们偶尔也喝些酒,但更多是和小孩一起喝饮料。主妇是最后上桌吃饭的,大家吃饭时,她为桌上换热汤,为客人盛热饭。


吃过午饭,晒晒太阳烤烤火,嗑嗑瓜子吹吹牛。客人准备回家,临出发告诫主人:“你们明天一定要来啊,都要来。”


初二初三初四初五初六,是初一的重复。


隔得近,午饭的重复便是晚饭。吃过晚饭,今日不用再做饭,男人女人们围着炉子说过去说现在,说去年说当下,那“哈哈”大笑声,是时常能传到地坝的。


地坝里,孩子们的游戏一个接一个的切换。老鹰抓小鸡、三个字(一个人追众人跑,快被抓到时喊出随便的三个字,被抓者定住等待救援,抓人者切换目标;待所有人都被定住,便问“桃花开了没?”)、跳绳、打沙包……四岁五岁的,大多数游戏还玩不太明白,但他们的参与感该是最强的,因为哥哥姐姐叔叔阿姨都护着他们。


地坝里的叽叽喳喳,盖过屋子里哈哈哈哈。


年,是团圆!


作者:我要改名叫嘟嘟
来源:juejin.cn/post/7337957655190847522
收起阅读 »

年收入 100 万,不敢生孩子

今日热帖,有网友发帖称:互联网大头兵夫妇,两个人都 30+ 了,老公 xhs 后端年包 80+,我私企年薪 20 左右,老家三线城市有房。本来今年要孩子了,但我这边最近又在搞优化感觉很不稳定,老公这边还挺好,他们组的 Id 和业务线比我稳一些,不知道能不能算是...
继续阅读 »

今日热帖,有网友发帖称:互联网大头兵夫妇,两个人都 30+ 了,老公 xhs 后端年包 80+,我私企年薪 20 左右,老家三线城市有房。

本来今年要孩子了,但我这边最近又在搞优化感觉很不稳定,老公这边还挺好,他们组的 Id 和业务线比我稳一些,不知道能不能算是风险对冲。

主要焦虑的点还是怕有了孩子花销太大,不知道要不要回老家发展,还是继续在大城市坚守。

2023 年中国的出生人口是 902 万,比上一年少了 208 万,已经跌破一千万了。看到这个网友的担忧,有这个出生率也就不奇怪了。

这可是年收入超过 100 万的家庭啊,这个收入都不敢生,那还有人敢生吗?

不过话说回来,现在养娃也确实费钱。回想我小时候,哪穿过什么尿不湿,一个开裆裤就养大了。

现在呢,孩子一下生就得要个月嫂、尿不湿、吸奶棒、磨牙棒、奶粉、果泥、肉泥;长大了就开始各种兴趣班,钢琴、游泳、轮滑、英语、乐高,哪一个都得学。

怪不得都说孩子就是专业碎钞机,分分钟都在烧钱。

花钱是一方面,更重要的是会牵扯家长的精力。我听好多朋友说过,有了孩子之后,就很少睡过一个整觉。

再有一个就是教育,咱们都属于穷什么都不能穷教育,在教育上,无论多少钱都能花出去。

去年年底,好多小朋友生病,结果就是一边在医院打点滴,一边做作业,太卷了。

大人在公司卷,小孩在学校卷,卷在起跑线上。

再有一个原因就是缺乏安全感。

现在经济形势不好,公司随时都有可能裁员,一旦被裁员,就断了收入,就算有一定的积蓄,也会很焦虑。

大环境我们无法改变,只能从自身出发,调整好心态,积极乐观,从容面对。

1、明确自我定位,了解优劣势,规划未来职业道路

这也是了解自己的一个过程,了解自己的优势和劣势,目标是什么。只有目标明确了,才能走的更加坚定。

2、持续学习

这一点无需多言,活到老学到老,不管是哪一个行业,做什么类型的工作,持续学习都是必须的。

3、保持身体健康

身体是革命的本钱,特别是程序员,本来就加班很多,而且每天久坐,很多人身体都不是很好。一定要保持一定时间的运动,积极锻炼,有一个好的身体才能更好的工作。

熬过这个经济周期,就又是一条好汉。

之前看过一个说法,大概意思是说如果你现在不吃苦,不在大城市扎根,那将来就得你孩子来吃苦。

我之前感觉这句话太对了,所以一定得努力,留在大城市。但现在不这么想了,凭啥就得我吃苦?宁愿孩子吃苦,也不要自己吃苦。

过年回老家,和老家的同学和朋友聊天。我说我每天基本都是十点多下班,甚至十一点或者十二点,他们都觉得不可思议。

毕竟他们都是五点多就下班了,六点多吃完饭,就是老婆孩子热炕头了。

这可能就是世界的参差,我们总在一个环境下生活,就认为生活就是这样的,工作就是应该加班的,但实际上还有很多其他的生活方式。

就看我们有没有发现,有没有勇气去尝试。

我不想把自己陷入到大城市好,还是小城市好的争论中去,毕竟我原来是铁了心的想要在大城市,但现在已经动摇了。

还是那句话,没有哪一个选择是标准的,也没有哪一个选择是一层不变的。

但有一个原则是可以坚持的,那就是选择让自己舒服的。


作者:程序员贝塔
来源:mp.weixin.qq.com/s/aQF-FEwdLkvIPFMi3ZtKWQ

收起阅读 »

年后面试,最好不要有这几种心态

大家好,我是老三,大家新年好,我在朋友圈看到有朋友已经在大张旗鼓地“内卷”,为年后的面试做准备。 成功的面试常常是源于实力+运气,失败的面试可能会有各种各样的原因,知识点的盲区、和面试官不对眼、经验不匹配……很多东西我们是没法控制的,只能尽量做好自己能做的——...
继续阅读 »

大家好,我是老三,大家新年好,我在朋友圈看到有朋友已经在大张旗鼓地“内卷”,为年后的面试做准备。


成功的面试常常是源于实力+运气,失败的面试可能会有各种各样的原因,知识点的盲区、和面试官不对眼、经验不匹配……很多东西我们是没法控制的,只能尽量做好自己能做的——八股更熟一点、算法多刷一刷,硬技能相关的暂且不多聊,我们今天聊一聊,心态相关的,哪些心态,是求职面试中最好不要有的。


我得找个特别完美的工作


“钱多事少干的爽”,几乎是所有打工人的终极梦想,但是回归现实,真有这样的工作,凭什么流转到普通人身上呢?


有人可能会说,某某在XX公司,你看干的轻松,年终还发的贼多,真爽啊。这其实可以算幸存者偏差,我们有时候只能看到经过某种筛选而产生的结果,比如今年微信视频发了十几个月的年终,一度在各个公众号刷屏——我们可能觉得微信给的钱真多啊!但其实想想,哪怕同属WXG,除了微信视频,其它的部门也有这么“钱多”吗?


“钱多”、“事少”、“干的爽”,三者里面能满足一个就很不错了,钱多一般事也多,事少一般钱也少,”干的爽“更是一个非常主观的因素,自己不去干一干真不知道,干了也可以调整。


老三经历了几次跳槽,找工作的心理预期没那么高,为什么呢?我过去的工作经历基本上从低位到高位跳的一个过程,但是有的同学比较优秀,可能一出道就是在高位,刚工作就是大厂SSP。


这些有实力的同学,也许也会面临一个幸福的烦恼,就像谈恋爱,如果一个女生的初恋特别优秀,她后面可能会单身很久,因为她发现很难找到比初恋更优秀的男朋友。“曾经沧海难为水,除却巫山不是云”。


经济学上有一个“锚定效应”:



人们需要对某个事件做定量估测时,会将某些特定数值作为起始值,起始值像锚一样制约着估测值。在做决策的时候,会不自觉地给予最初获得的信息过多的重视。



有这么好的“初恋”,一般他们都不会轻易“分手”,但是假如遇到了一些波动,主观或者客观的原因,导致“分手”,那么在找下一份工作的时候,可能需要正视“锚定”的因素。


我们找工作的时候,也会去“锚定”,和现在的工作去比,和其它人的工作去比,但其实,相比评估价值,可能找准自己的需求更加重要,钱多发展职级大厂背书业务匹配稳定工作生活平衡 ……可以像排工作任务一样,排一下需求的优先级,哪些是必须的,哪些是可以妥协的。


找工作也和找对象类似,我有一个哥们,特别喜欢古力娜扎,可能很多人的女神也是迪丽热巴、古力娜扎、马尔扎哈……但是应该没有普通人会把自己找对象的目标定在这些女神头上。这就涉及到“吸引力”和“可得性”的平衡,很多时候,一份好的工作,对我们的“吸引力”是巨大的,但是我们也不得不承认它的“可得性”是极低的。


外包,是互联网软件行业一个比较普遍,而且越来越普遍的用工方式,有的朋友在外包——“你为什么要做外包呢?”,我觉得一般人也不会问这个问题,这就像之前有个主持人:“为什么不吃肉呢?因为肉不好吃吗?”生活所迫嘛,我们很多时候,只是在可选的选择里选一个相对最优的。


尤其是在现在整体行情不景气,如果真的没有办法,比如空窗了很久,妥协也是可以接受的,华为进不去OD也能凑合。


在经济学上,资源的配置常常达不到最优,找工作也是一样,能在一定可达性的基础上,通过努力获取次优的选择,已经很不错了。


“幻想不是理想”,这个世界上少有完美的工作,也少有完美的人生,我们很多时候,都要接受这些不完美,做一些适当的取舍。


留下还是跑路,好纠结


45度的人生最难受。


我去年经历了很纠结的时刻,当时的工作满足不了我的需求,但是我又不敢跑路,因为市场的寒气实在让人望而却步,就在这种纠结中,我错过了最好的面试备战和简历投递的时机,当时的第一目标快手,等我十月份觉得可以面一面的时候,HC已经锁了一个月了。


最怕的就是这种纠结的心态,工作投入不进去,面试也准备不好。还是那句话,找准现在的问题和需求。


第一,我现在的工作是不是已经非常让我难以接受了?有哪些点让我难以接受?是客观的原因还是主观的原因?我有没有尝试最大的努力去解决?我有没有寻求别人的帮助?


第二,现在这份工作的问题解决不了,我能通过跳槽解决吗?是不是换一个公司,换一个环境,就能解决或者缓解我的问题?什么样的公司能解决或者缓解我的问题?这样的公司对我的可得性大概有多少?


想清楚这两点,就能确认自己离开的意向,留下就好好干,努力去解决问题;要走就做好规划,挤出时间准备。


第三,工作和面试,不是绝对冲突的。只要有想离开的想法,再忙每天也能抽点时间出来准备的,把刷抖音,打游戏的时间拿一部分出来准备面试,做好规划,每天时间充足就拉短周期,每天时间少就拉长周期。


其实很多的时候的纠结,只是给自己找放纵的借口,“其实,我不是特别想走”,“外面现在行情很差,没什么机会”,这样一来,就可以心安理得地玩游戏、刷抖音,至于面试准备,后面再说吧。


我也经历了这样当鸵鸟的时期,直到一些关系比较好的同事因为各种原因离开,再加上一些裁员的传言,才彻底打醒了我。


打破纠结的最好办法就是行动,最怕的就是找个借口,让自己停在了原地。


这个面试没啥,随便面面


面试有自信是一件好事,比如老三,可能会觉得自己的八股比较熟;有的朋友,可能会觉得,自己的算法比较溜;有的觉得自己的项目比较亮眼。


自信,不是轻敌。我有个朋友吃了这样的亏,面飞猪的时候,随便约了个时间,当时那个时间是在旅行中,感觉的时候觉得很简单,结果挂了,事后一问,面试官说根本听不清;后面他面快手,也吃了同样的亏,因为没怎么准备,一面挂在了自己最擅长的算法上。


同样,面试,难和简单,也是一个很主观的感觉,别人感觉简单的,自己未必简单,还是那个朋友,他面飞猪,相对简单,我面飞猪,写了两道题,几乎问到了所有知识点的八股,足足面了九十多分钟。


认真对待每一场面试,现在这个环境,每一个机会都是非常难得的,很多面试机会,错过了就不再有。每一场面试,都尽量拿比较好的状态去面。


有的人说,我不咋想去,只是练手,练手也要认真一点,就像模拟考,也得好好考。而且现在不想去,可能只是了解不多,后面如果了解多了,未必不是完全不想去。


完全准备好了再面


面试,永远没有完全准备好的时候。很多时候,觉得准备个七八成的时候,就可以去面了。


第一,很多岗位的窗口期是很短的,在现在这种僧多粥少的局面下,一个岗位可能很短的时间就关闭了,如果不及时地去面,可能就会失去这个机会。


第二,面试永远会有答不上来的问题,面试本身就是个非对称的场景,以面试官之长,攻己之短,面试,也有一些运气的成分在里面。


第三,准备六个月,未必效果比三个月好,人的投入,是有边际递减的效应的,短时间高效率的准备,也许比拉长战线更有效果。


机会来了,估计着差不多就冲,我有个同事,很短的时间准备,但是因为年底的机会很好,也认真地准备了,一年多的经验,拿下了美团和京东的Offer。


我和面试官是对立的


面试是一场交流,一头是面试官,一头是候选人,有这么一个段子,面试是”三分天注定,七分靠打拼,九十分看面试官心情“,我和这样一个能一票否决我的人,我应该怎么打交道呢?


对立情绪是不可取的,在考试这个逻辑的下面,其实我们和面试官还有合作的逻辑。我以前作为面试官,面了几十个人,面到后面,我的感受是什么呢?赶紧招一个合适的人选吧,别让我面试了。


在这种关系里,面试官也是有需求的,面试官希望尽快招到合适的人,让自己早点摆脱面试对自己的干扰。面试官也是有投入的,毕竟面试的时间,基本都不会算进工作排期。


既然双方都有需求和投入,当然候选人的需求和投入会更多,那么这段关系就不是完全从上到下俯视的,我觉得最好的面对面试官的心态,就是萍水相逢的路人,尊重但不谄媚、存异但是和谐、热情但有边界,如果有缘份的话,我们可能会成为真正的朋友,如果没有缘分那就相忘江湖。


很多人说,程序员都不太擅长交流,但至少请保持礼貌,“您好”,“谢谢”,“不好意思”,“感谢你的时间”,我觉得这些礼貌用语,应该小孩子都会吧。


面试,不仅有硬实力的碰撞,也有人情世故的交融。


面试官让我不爽


我在之前,某个博主的文章里,看到他在某个公司的三面挂了,因为感觉和面试官不太对味。根据我的经验,其实三面很少挂人,这种,就是和面试官的”碰撞“激烈了一些。


我们应该明白一个道理:在面试的流程中,我们是没有挑选的权利的,只有拿到Offer后,我们才是真正有挑选的权利。


这个世界我们不认同的东西多了,要么改变它,要么适应它,这句话不太好听,既然选择了打工,那大概率是只能适应的。


面试里,面试官说的东西,我们可能不认同,面试官的态度甚至可能不友好,我觉得我们能做的,就是保持礼貌:


“对对,你是对的。”


我去年面西二旗某厂,三面面试官给我的感觉是无知且蛮横,她的很多问题都让我无言以对,但是我还是全程保持了微笑,努力保持了风度,没想到最后面试过了。


如果你真的看面试官不爽,在Offer后拒绝他们,不比在面试阶段,闹得不欢而散,最后只能心里默默骂着傻叉要痛快?


面的不好,放弃吧


面试永远有我们不会的问题,这是正常的。可能在某个问题卡壳之后,心态就慢慢崩掉,破罐子破摔。这时候,一定要给自己一些积极的心理暗示,面试直接发生在面试官和候选人之间,间接发生在候选人和候选人之间。


“我这种八股文职业选手都答不好,其他人更不行了。”


而且,答的不好,未必就是没戏,很多时候,面试官可能通过一些开放性的问题或者压力面的方式,考察候选人的广度深度,思维方式。


所以,哪怕偶有一个点答不好,也一定要绷住心态,我之前作为面试官,面试实习生,一个候选人,坦白说,她面的不好,同事的实习生,他觉得可以,那就通过吧,结果告知她面试通过后,那个候选人心态崩了,放弃了后面的面试。


最差不过挂了,最坏的结果都能接受,那就朝最好的方向尝试努力。


失败了好几次,没信心了


我们经常在网上,刷到一些“Offer收割机”“吊打面试官”,但是经过我本人的实践,反正我是做不到,比如美团,我面了四个岗位才拿到Offer。


面试失败,是一件很正常的事情,“面了不一定能过,过了不一定能Offer”,我们可能因为各种原因挂掉。但是,千万不能因为失败几次,就灰心丧气,面一次总结一次,查缺补漏,面的多了,自然会面了,就能面过了。


而且面试也有运气的成分,此路不通,未必别路也不通。


很多人恐惧面试,其实我也怕面试,每次面试前,都很忐忑,但是想一想,最差不过挂了,越淡定的面试发挥地越好,越紧张的面试发挥地越差。


在挫折里不断进步,保持心态,才有机会拿到好的结果。






工作是为了更好地生活,生活是为了快乐和幸福,每个人的快乐和幸福都是自己定义的,祝大家既能找到好的工作,也能享受生活的快乐和幸福。






参考:


[1].《长的好看,能当饭吃吗:提升认知的33个经济学常识》


[2].《经济学原理》






作者:三分恶
来源:juejin.cn/post/7334623638116057099
收起阅读 »

全世界都想让程序员专心写业务代码

最近两年我不知道你是否和我拥有同样的感受,编程容易了许多,同时乐趣也少了许多 一 最近有两个契机让我写这篇文章,一是过去一年我陆续把我所有 side project 后端从 Azure App Service 迁移到 Digital Oce...
继续阅读 »

最近两年我不知道你是否和我拥有同样的感受,编程容易了许多,同时乐趣也少了许多



最近有两个契机让我写这篇文章,一是过去一年我陆续把我所有 side project 后端从 Azure App Service 迁移到 Digital Ocean(以下简称 DC) 的 Droplet(Virtual Machine),再迁移到 DC 的 K8S,目的是剥离应用内托管型(managed)资源;前端顺便也从 Azure Static Web Apps 迁移到 Vercel;二是最近读完《Competing in the Age of AI》,其中关于于 operation model 的论述与近期迁移应用的感受不谋而合


书中把公司价值划分为两部分,首先是商业模型(business model),即为消费者带来了何种价值;其次是运营模型(operation model),即如何将价值传递到消费者手中。运营的难点不在交付本身,而在于如何大规模(scale)、大范围(scope)交付,并且持续对交付方法改进和创新(learning)


同样,如果代码的价值在于上线(通俗说派上用场),无论是对自己还是客户还是用户,那么交付对我们来说同样重要,以上所说的大规模、大范围、以及保证持续改进的交付难点也同样成立。


先上线,剩下的以后再说



你们有没有想过 Netlify 和 Vercel 究竟是做什么生意的?如果你的答案依然是 JAM stack,只能说明你已经 out 了。不妨去看看 Netlify 官网的 slogan,甚至不用是 slogan,看看网站首页的 title 写的是什么:



Scale & Ship Faster with a Composable Web Architecture



Netlify 所做的正如上述所标榜的,帮助代码更快的交付上线。换而言之,它们售卖的的是一站式 web 应用的部署解决方案,除 host 和流水线外,还提供免费的用户行为分析、页面性能监控、日志等工具,以及 Redis/SQL/Blob 数据库。


Azure 不是也提供类似的服务吗?问题的关键在于不同平台间的开发者体验,Vercel 能够真正做到上述服务一键集成,你会明显感觉到 Vercel 在加速你的交付,让你更快得到对于产品的反馈。而在 Azure 下开发更像是赤裸裸的买卖,Azure 团队按照他们的理解提供一个最低限度可以使用产品,至于多好用,多大程度能和其它 Azure 服务契合则不在他们的考虑范围内。如下图所示在 Vercel 的 dashboard 上,你可以纵览所有从部署状态到线上监测一系列信息。试想一下如果在 Azure 上集成所有对应的功能并呈现类似的 dashboard 需要付出多少外的精力


vercel-screenshot.png



再简单聊聊 DevSpace。这里的 DevSpace,也可以是 tilt,可以是 skaffoldtelepresence


GitOps 无疑是伟大的,但这种伟大里依然充满了“一板一眼”——我的一次上线需要经过 push 代码、创建 release、推送镜像到GHCR、更新 yaml、通过 ArgoCD 部署。我理解它们是 necessay evil。


相比之下 DevSpace 看上去是反流程的,它可以帮助你在本地直接创建镜像并执行部署,还允许热更新容器内文件。即便是创建镜像,我发现它利用也非是既有的 pipeline,而是借助 buildkit 在我的集群上创建一个 local registry 并将镜像储存在此。


别搞糊涂了,生产环境和开发环境具有完全相反的气质,我们希望生产环境稳定、可追溯,这是 GitOps 的优势所在,但开发过程具有破坏性、需要不停试错,DevSpace 着重解决的则是开发体验问题,对于代码修改它可以带来高效的反馈。


compiling-joke.png


上图已经流传了很多年,图中的 compiling 可以替换成 uploading, deploying,running test 等等。过去十年它是事实,现在应该只是一个笑话



在 Vercel 和 DevSapce上我们看到了一类区别于传统的开发方式,这里没有 pipeline,没有 IaC,没有手动的统计埋点,无需申请第三方资源,从 GitHub 上导入 repo 的那一刻起,它自动为你匹配部署脚本,寻找项目入口。开发者所需要做的,就是专心编写他所需要的业务代码


模板化的项目是带来这些便利的主要原因,继续往上追溯,主流前端框架自带 CLI 工具的流行功不可没,从大到创建一个新项目小到执行编译,命令行一键即可完成。无论是 React,Vue 还是 Angular,你都不会在官方的教程里找到专门的章节教你为项目编写 webpack 或者 vite 的配置。也许是因为习惯了早年间凡事都需要自己动手的工作方式,我花了很长时间才想通并接受这件事:传统从0到1搭建项目的能力已不再重要。


越来越多的环节像一个个黑盒出现在开发流程中,在此之前如果我对 pipeline 感兴趣,我可以阅读 .github 文件夹中的代码看 action 是如何定义的,而现在我连机会都没有了。连同代码被一同干掉的还有程序员的编程乐趣。站在交付的角度上来说这种乐趣并没有什么道理:为什么我要花上几天的时间只为了研究如何写一段 yaml 把代码送上线运行,更何况这段代码带来不了任何产品收益。


最近另一个类似的体验是,Next.js 编写起来太无趣了,不是说它不够好,而是问题在于它太好到你只能这么写。说起来有些贱,我很怀念那个一种功能有十几个写法,然后这十几个写法还有鄙视链的“坏”时光


当我们再度审视代码的生命周期,你会发现所有人努力的目标,是想让程序员尽可能少的关心核心业务代码以外的事情。一切一切都在想方设法优化运营模型。很明显个性化配置和重复劳动在规模化前是不受欢迎的



也许换个思路会好受一些:当你加入一家公司之后,发现同等体量的应用利用市面上的工具可以做到随时上线;而你们的产品却只能选择在每个周六凌晨部署,并需要若干人值班守候,这听上去让人有些失望是不是。


cover.jpg


作者:李熠
来源:juejin.cn/post/7336538738750013440
收起阅读 »

我收到的最好的职业建议

Nicholas C. Zakas 是全世界最著名的 JavaScript 程序员之一。 今天突然看到大神在13年写的一篇长文,回顾自己的职业生涯,提到七个对他来说最重要的建议 个人觉得每一条都很受益;所以决定翻写出来;做一个学习记录。 一、Don’t be...
继续阅读 »

image.png
Nicholas C. Zakas 是全世界最著名的 JavaScript 程序员之一。


今天突然看到大神在13年写的一篇长文,回顾自己的职业生涯,提到七个对他来说最重要的建议


个人觉得每一条都很受益;所以决定翻写出来;做一个学习记录。




一、Don’t be a short-order cook 不要做一个点菜厨师



你要别人点什么;你就做什么。积极表达自己的见解



我的第一份工作持续了8个月,因为公司倒闭了。当我和我的经理谈论我下一步该怎么做时,他给了我这样的建议:


尼古拉斯,你的价值不仅仅在于你的代码。无论你的下一个工作是什么,一定要确保你不是一个按需制作的厨师。不要接受那种你被告知要构建什么以及如何构建的工作。你需要在一个既欣赏你对产品的见解,又欣赏你构建能力的地方工作。


这是我在整个职业生涯中一直牢记的事情。仅仅做一个实现者是不够的--你需要参与到实现的过程中。优秀的工程师不只是服从命令,他们会给产品负责人给予反馈,并与他们合作,使产品更好。幸运的是,我明智地选择了我的工作,从来没有在人们不尊重或不重视我的见解的情况下结束。


个人反思:在选择一份工作的时候,一定要有自主权;这个自主权可以是自己争取的;通过表达意见以及个人反馈来进行争取。侧面也说明需要自己对相关系统有更深的理解。


二、Self-promote 自我推销



推销自己



进入雅虎后;有一天,我在雅虎的团队经理把我拉到一边,给予我一些建议。他一直在看我的代码和产出内容,告诉我,觉得我有点缺失:


你做得很好。我是说真的很棒。我喜欢你的代码,它很少有bug。但是; 问题是别人看不到这一点。为了让你的工作得到认可,你必须让别人知道。你需要做一些自我推销来引起注意。


我花了一点时间来消化他说的话,但我终于弄明白了。如果你做了很好的工作,但没有人知道你做了很好的工作,那么它并没有真正帮助你。你的经理可以支持你,但不能为你辩护。组织内部的人需要了解你的价值,最好的方法就是告诉人们你做了什么。


个人反思:做一个角落里静静编码的工程师,并不可取。你的主管会支持你,但是他没法替你宣传。公司的其他人需要明白你的价值,最好的办法就是告诉别人你做了什么。一封简单的Email:"嗨,我完成了XXX,欢迎将你的想法告诉我",就很管用。


三、It’s about people 关注人员,学会团队相处



学会带领团队



在我职业生涯的早期,我非常注重头衔。我一直想知道我必须做些什么才能得到晋升。在雅虎主页上与我的新经理进行第一次一对一的交谈时,我问我需要什么才能获得晋升。他的话至今仍在我耳边回响:


当你的技术能力过关以后,就要考验你与他人相处的能力了。


从那时起,我不确定我是否对软件工程专业有了更好的了解。他是完全正确的。那时,没有人质疑我的技术能力。众所周知,我是一个写出优秀、高质量代码的人,很少有错误。我缺乏的是领导能力


从那时起,我看到无数工程师在他们的职业生涯中被困在一个层面上。聪明的人,优秀的代码,但无法与他人有效合作,使他们留在原地。每当有人觉得自己被困在软件工程生涯中时,我都会讲述这个建议,而且它总是在金钱上是正确的。


个人反思:在团队工作中,除了完成自己的工作后;更多需要学会与团队成员的相处,这决定了你是否能够走向管理;当然;领导能力也是自己需要认真培养和学习的。


四、 of this matters 这些都不重要



生活才是最重要的



我在雅虎度过了一段令人沮丧的时期。也许沮丧不是正确的词,更像是生气。我愤怒地爆发,经常与人争吵。事情出了问题,我不喜欢这样。在一个特别艰难的一天,我问我的一位导师,当很多事情出错时,他是如何保持冷静的。他的回答是:


这很简单。你看,这些都不重要。所以一些蹩脚的代码被签入了,所以网站宕机了。那又怎样?工作不可能是你的全部生活。这些不是真正的问题,而是工作问题。真正重要的是工作之外发生的事情。我回家,我的妻子在等我。这真是太好了


我从马萨诸塞州搬到加利福尼亚,很难交到朋友。工作是我的生命,它让我保持理智,所以当它不顺利时,这意味着我的生活不顺利。这次谈话让我意识到我的生活中必须有其他事情发生,我可以回去忘记我在工作中遇到的麻烦。


他是对的,一旦我改变了思维方式,将工作中烦人的事情重新归类为“工作事情”,我就能够更清楚地思考。我能够在工作中冷静下来,与人进行更愉快的互动。


个人反思:把工作和生活分开,工作不是你的全部;学会分清楚这个是工作问题;不要把工作问题带出来的情绪带入到生活中。


五、Authority, your way 自主,自己决策



找到自己道路



当我第一次被提升为雅虎的首席工程师时,我和我的主管坐下来,以更好地了解这个角色的含义。我知道我必须更像一个领导者,但我很难自主决策。我寻求帮助。他是这样说的:


以前都是我们告诉你做什么,从现在开始,你必须自己回答这个问题了,我期待你来告诉我,什么事情需要做。


很多工程师都没有完成这个转变,如果能够做到,可能就说明你成熟了,学会了取舍。你不可能把时间花在所有事情上面,必须找到一个重点。


个人反思:你需要慢慢的学会自主决策,成为专家。找到自己的风格;并显现出来。


六、Act like you’re in charge 把自己当成主人


我每天要开很多会,有些会议我根本无话可说。我对一个朋友说,我不知道自己为什么要参加这个会,也没有什么可以贡献,他说:


"不要再去开这样的会了。你参加一个会,那是因为你参与了某件事。如果不确定自己为什么要在场,就停下来问。如果这件事不需要你,就离开。不要从头到尾都静静地参加一个会,要把自己当成负责人,大家会相信你的。"


从那时起,我从没有一声不发地参加会议。我确保只参加那些需要我参加的会议。


七、找到水平更高的人


最后,让我从自己的经历出发,给我的读者一个建议。


"找到那些比你水平更高、更聪明的人,尽量和他们在一起,吃饭或者喝咖啡,向他们讨教,了解他们拥有的知识。你的职业,甚至你的生活,都会因此变得更好。"


作者:GleanWu
来源:juejin.cn/post/7337227407365423131
收起阅读 »

在上海做程序员这么多年,退休后我的工资是多少?

大家好,我是拭心。 最近看到一个很可惜的事:有个阿姨在深圳缴纳了 12 年社保,第 13 年家里突然有事不得不回老家,回去后没再缴纳社保,结果退休后无法领退休工资,还得出来打工赚钱。 之所以这样,是因为阿姨及其家人对退休的相关知识了解不多,痛失一笔收入。 吸取...
继续阅读 »

image.png


大家好,我是拭心。


最近看到一个很可惜的事:有个阿姨在深圳缴纳了 12 年社保,第 13 年家里突然有事不得不回老家,回去后没再缴纳社保,结果退休后无法领退休工资,还得出来打工赚钱。


之所以这样,是因为阿姨及其家人对退休的相关知识了解不多,痛失一笔收入。


吸取教训,作为在上海工作多年的打工人,为了老有所依,我花了些时间学习了养老金相基本知识,并且估算了一下退休后每月能拿到的钱,这篇文章来聊聊。


文章主要内容:



  1. 如何能在上海领退休工资

  2. 我退休后大概能领多少钱

  3. 退休工资的组成


如何能在上海领退休工资


image.png


上海作为全国 GDP 第一的城市,居民的收入也是很可观的。平均工资在 2023 年达到了 12183,平均退休工资在全国也位列前茅:


image.png


从上图可以看到,上海的平均退休工资居然有五千多!不用早起不用挤地铁,躺在家里每月就能领五千多,花不完,根本花不完啊!


那么问题来了,我们如何能领到上海的退休工资?


主要有 2 个条件:



  1. 达到退休年龄:男性满 60 周岁,女性满 50 周岁(灵活就业人员需要满 55 周岁)

  2. 退休前累计缴费社保 >= 180 个月(也就是 15 年),其中在上海至少缴满 120 个月(10 年)


第二点很关键:在上海需要缴满社保 10 年,上海 + 其他地方累计需要缴满 15 年。 比如小张在上海工作并缴纳社保满 10 年,然后去青岛缴纳 5 年,最后可以在上海领退休工资;但如果在青岛缴纳了 10 年,在上海缴纳了 5 年,就无法在上海领退休工资了。


需要强调的是,这里说的是「累计缴满」,即使中间有断开也没关系。


还有一个细节是,发工资不等于缴纳社保,个别不正规公司会漏缴社保,这需要我们打工人自己多关注。 身边有朋友遇到过:刚毕业加入的公司规模很小,人力资源不靠谱,干了半年多只缴纳了两个月社保。


怎么看公司有没有给自己缴社保呢?我们可以从随申办上查询:


image.png


OK,这就是在上海领退休工资的条件。


退休后大概能领多少钱


掐指一算,社保缴满 15 年的任务我已经完成了一半,但还有二十九年才能领钱,心里苦啊😭。


虽然拿不到,但我对能领多少钱还是非常好奇的,究竟比平均退休工资高还是被平均?🤔


经过一番搜索,我终于发现了退休工资的计算方法。


国家社会保险公共服务平台网站中,有一个「企业职工养老保险待遇测算」的功能:


image.png



国家社会保险公共服务平台 -> 养老保险 -> 企业职工养老保险待遇测算


链接:si.12333.gov.cn/157569.jhtm…



我们只需要输入年龄、预计退休年龄、当前缴纳年限、目前及之前平均工资、养老保险个人账户余额及未来大概工资即可测算退休工资。


如果不知道你的「养老保险个人账户余额」有多少,可以从随申办 app 搜索「养老金」查询余额:


image.png


在填完所有需要的信息后,我的预算结果是这样的:


image.png


我的天,个十百千万,居然有两万五?这还花的完??


几秒后冷静下来,我才发现算错了。。。


两万五应该是这样算的:按照当前收入,再连续缴纳 29 年。 😂


image.png


对于我们程序员,保持收入 29 年基本是不可能的,我还是重新调整参数再看看吧。


我现在社保缴纳了七年半,如果缴够 15 年社保,退休后我能领多少钱呢?


image.png


答案是一万四!看着还不错哈,每天能有 480 元左右,就是不知道 30 年后的物价怎么样了😂。


如果再悲观一点,社保缴纳到 35 岁(然后最低标准缴够 15 年),退休后大概能领多少呢?


image.png


答案是一万元!


看了下人民币的贬值率,30 年后的一万元不知道有没有今天三千块钱的购买力😷。


OK,这就是我退休后大概能领到的工资范围。


退休工资的组成


从上面的预算结果中我们可以看到,养老金由三部分组成:基础养老金、个人账户养老金和过渡性养老金,它们都是什么意思呢?


1.基础养老金 = 退休时平均工资 ×(1+平均缴费指数)÷ 2 × 累计缴费年限 × 1%。


退休时平均工资指的是退休时所在地区上年度的社会平均工资。也就是说经济发达地区的基础养老保险金,要高于欠发达地区。


平均缴费指数指的参保人选择的缴纳比例(一般在0.6-3之间)。每个月社保的缴费比例越高,相应的基础养老金越高。


例如,小张退休时,上年度的社会平均工资是 12000。虎虎的缴费指数平均值是 1,累计缴存了15年,他的基础养老金约为:12000*(1+1)/2 * 15 * 1% = 1800。


2.个人账户养老金 = 养老保险个人账户累计金额 ÷ 养老金计发月数。


我们缴纳社保时,一部分会进入个人社保账户,一部分会进入国家统筹账户。个人账户的部分,直接影响退休养老金的计算。


计发月数和我们退休的年龄有直接的关系,退休的越晚,计发月数越少;退休的时间越早,计发月数越多。一般来说,按照 60岁 退休,计发月数是 139 个月。



退休金的计发月数只是用来计算退休金,而不是说只能领这么久的退休金。



例如,小张社保的个人缴纳比例为 8%,社保的计算基数是 9339,他选择在 60 岁退休,那他的个人账户养老金约为:9339 * 8% * 12 * 15 / 139 = 967.49。


3.过渡性养老金 = 退休时平均工资 × 建立个人账户前的缴费年限 × 1.3% × 平均缴费指数


过渡性养老金,是指在养老保险制度发生变化(比如缴费标准提高、计算方法改变、退休年龄调整)的时候,给予受影响群体的资金补充。


这个奖金的计算规则说法不一,一种比较广泛的计算方法是:退休时所在地区的平均工资 x 缴费指数 x 缴费年限 x 过渡系数,其中过渡系数大概在 1% 到 1.4% 之间。


OK,这就是养老金三部分组成的含义。


总结


好了,这篇文章到这里就结束了,主要讲了:



  1. 如何能上海领退休工资:缴纳 10~15 年社保,到达退休年龄

  2. 我退休后大概能领多少钱:30 年后的一万左右

  3. 退休工资的三部分组成:基础养老金、个人账户养老金和过渡性养老金


通过写这篇文章,我对养老金的认识更多了一些,希望国家繁荣昌盛,让我退休的时候能多领点钱!


作者:张拭心
来源:juejin.cn/post/7327480122407141388
收起阅读 »

22点下班的地铁上闲看发现一个现象...求解

打工人写代码写到晚上十点😭 匆匆忙忙赶上地铁,累的手机也不想玩,因为眼睛累,也不想坐因为坐了一天了,闲的蛋疼,也不知道怎么的,脑子里就出了这么个想法😓 我发现了一个奇怪的现象,无论是大学生,还是普通的上班族,或者城市写字楼里的白领,现在很多人,包括年轻人,脚上...
继续阅读 »

打工人写代码写到晚上十点😭
匆匆忙忙赶上地铁,累的手机也不想玩,因为眼睛累,也不想坐因为坐了一天了,闲的蛋疼,也不知道怎么的,脑子里就出了这么个想法😓


我发现了一个奇怪的现象,无论是大学生,还是普通的上班族,或者城市写字楼里的白领,现在很多人,包括年轻人,脚上穿的大部分都是运动鞋,很少有人穿皮鞋了,年轻人好像只有在结婚的当天,才会去穿皮鞋。


我记得,以前穿皮鞋才叫时尚,出门的时候,一个阳光的年轻人,为了给人一个好的形象,都会把皮鞋擦的增明透亮,上面再配上西装、西裤,走起路来,咔咔地响,那才叫一个酷,女孩子穿皮鞋的更多,上身穿什么的都有,脚上穿的基本上都是高跟皮鞋,走起路来,左扭一下,右扭一下,在大街上会很吸人眼球的。


不知从何时起,皮鞋突然失宠了,人们都喜欢穿运动鞋了,商场里售卖的鞋子,大部分也都是运动鞋,基本上看不到皮鞋的影子了。


前几天,我就去了一趟卖鞋的商场,里面销售的鞋子,品牌很多,但几乎全是运动鞋,包括特步、鸿星尔克、李宁、安踏等等,还有一些叫不出名字洋品牌。


我自己也已经有十多年没有穿皮鞋的习惯了,穿的也都是运动鞋,这是为什么呢


作者:threerocks
来源:juejin.cn/post/7337867671096885286
收起阅读 »

程序员的副业发展

前言 之前总有小伙伴问我,现在没有工作,或者想在空闲时间做一些程序员兼职,怎么做,做什么,能赚点外快 因为我之前发别的文章的时候有捎带着说过一嘴我做一些副业,这里就说一下我是怎么做的,都做了什么 希望能对你有些帮助~ 正文 学生单 学生单是我接过最多的,已经写...
继续阅读 »

前言


之前总有小伙伴问我,现在没有工作,或者想在空闲时间做一些程序员兼职,怎么做,做什么,能赚点外快


因为我之前发别的文章的时候有捎带着说过一嘴我做一些副业,这里就说一下我是怎么做的,都做了什么


希望能对你有些帮助~


正文


学生单


学生单是我接过最多的,已经写了100多份毕设,上百份大作业了,这里给大家介绍一下


python这种的数据处理的大作业也很多,但是我个人不太会,所以没结过,我只说我做过的


我大致做过几种单子,最多的是学生的单子,分为大作业单子毕设单子


大作业单一般指一个小作业,比如:



  • 几个web界面(大多是html、css、js)

  • 一个全栈的小demo,大多是jsp+SSM或者vue+springboot,之所以不算是毕设是因为,页面的数目不多,数据库表少,而且后端也很简单


我不知道掘金这里能不能说价格,以防万一我就不说大致价格了,大家想参考价格可以去tb或者咸鱼之类的打听就行


然后最多的就是毕设单子,一般就是一个全栈的项目



  • 最多的是vue+springboot的项目,需求量特别大,这里说一下,之前基本都是vue2的项目,现在很多学校要求vue3了,但是大部分商家vue3的模板很少,所以tb上接vue3的项目要么少,要么很贵,所以我觉得能接vue3和springboot项目的可以打一定的价格战,vue2的市面上价格差不多,模板差不多,不好竞争的

  • 少数vue+node的全栈项目,一般是express或者koa,价格和springboot差不多,但是需求量特别少

  • uni+vue+springboot的项目,其实和vue+springboot项目差不多,因为单纯的vue+springboot项目太多了,所以现在很多人要求做个uni手机端,需求量适中

  • .net项目,信管专业的学生用.net的很多,需求量不少,有会的可以考虑一下


这是我接过的比较多的项目,数据库我没有单说,基本上都是MySQL,然后会要求几张表,以及主从表有几对,这就看客户具体要求了



需要注意的点:大部分你得给客户配环境,跑程序,还是就是毕设一般是要求论文的,有论文的会比单纯程序赚的多,但是一定要注意对方是否要求查重,如果要求查重,一般是不建议接的,一般都是要求维普和知网查重,会要了你的老命。还有需要注意的是,学生单子一般是需要答辩的,你可以选择是否包答辩,当然可以调整价格,但是你一旦包答辩,你的微信在答辩期间就不会停了。你永远不知道他们会有怎样的问题



商业单


商业单有大有小,小的跟毕设差不多,大的需要签合同


我接的单子大致就一种,小程序+后台管理+后端,也就是一个大型的全栈项目,要比学生单复杂,而且你还要打包、部署、上线,售后,有一个周期性,时间也比较长


72761aa2847097aa719f2c9728dc560.jpg


image.png


ff5d9aaae6207ab8cbbe847c73cbd36.jpg


9e157d5ddab294d3214fa1d8ece07dc.jpg


为了防止大家不信,稍微放几个聊天记录,是这两个月来找的,也没有给自己打广告,大家都是开发者,开发个小程序有什么打广告,可吹的(真的是被杠怕了)


技术栈有两种情况:自己定客户定


UI也有两种情况:有设计图的无设计图的(也就是自己设计)


基本上也就是两种客户:懂技术的客户,不懂技术的客户


指定技术栈的我就不说了,对于不指定技术栈的我大致分为两种



  • 小程序端:uni/小程序原生、后台:vue、后端:云开发

  • 小程序端:uni/小程序原生、后台:vue、后端:springboot


这取决于预算,预算高的就用springboot、预算不高的就云开发一把嗦,需要说的是并不是说云开发差,其实现在云开发已经满足绝大部分的需求,很完善了,而springboot则是应用广泛,客户后期找别人接手更方便


对于没有UI设计图的,我会选择去各种设计网站去找一些灵感


当项目达到一定金额,会签署合同,预付定金,这是对双方的一种保障


其实在整个项目中比较费劲的是沟通,不是单独说与客户的沟通,更多的是三方沟通,作为上线的程序,需要一些资料手续,这样就需要三方沟通,同时还有一定的周期,可能会被催


讲解单


当然,有的时候人家是有程序的,可能是别人代写的,可能是从开源扒下来的,这个时候客户有程序,但是看不懂,他们可能需要答辩,所以会花钱找人给他们梳理一下,讲一讲, 这种情况比较简单,因为不需要你去写代码,但是需要你能看懂别人的代码


这种情况不在少数,尤其是在小红书这种单子特别多,来钱快,我一般是按照小时收费


cb519bce3fedc451116b659f6cb7388.jpg


e4531c4d8d6527208a03e1dcc6ede32.jpg


aef2baeabe8859caac59fd7ae0b456c.jpg


知识付费这东西很有意思,有时候你回答别人的一些问题,对方也会象征性地给你个几十的红包


接单渠道


我觉得相对于什么单,大家更在意的是怎么接单,很多人都接不到单,这才是最难受的


其实对此我个人并没有太好的建议的方法,我认为最重要的,还是你的交际能力,你在现实中不善于交际,网络上也不善于交际,那就很难了


因为我之前是在学校,在校期间干过一些兼职,所以认识的同学比较多,同时自身能力还可以,所以会有很多人来找,然后做完之后,熟人之间会慢慢介绍,人就越来越多,所以我不太担心能否接单这件事,反而是单太多,自己甚至成立一个小型工作室去接单


如果你是学生的话,一定要在学校积累客户,这样会越来越多,哪怕是现在我还看到学校的各种群天天有毕业很多年以及社会人士来打广告呢,你为什么就不可以呢


当然但是很多人现在已经不是学生了,也不知道怎么接触学生,那么我给大家推荐另外的道路



  • 闲鱼接单

  • 小红书接单


大部分学生找的写手都会比较贵,这种情况下,很多学生都会选择去上面的两个平台去货比三家,那么你的机会就来了


有人说不行啊,这种平台发接单帖子就被删了,那么你就想,为什么那么多人没被删,我也没被删,为什么你被删除了


其次是我最不推荐的一种接单方式:tb写手


为什么不推荐呢,其实就是tb去接单,然后会在tb写手群外包给写手,也就是tb在赚你的差价


这种感觉很难受,而且赚的不多,但是如果你找不到别的渠道,也可以尝试一下


最后


我只是分享一下自己接单的方式,但是说实在的,接一个毕设单或者是商业单其实挺累的,不是说技术层面的,更多的是心累,大家自行体会吧,而且现在商场内卷严重,甚至有人200、300就一个小程序。。。


所以大家要想,走什么渠道,拿什么竞争


另外,像什么猪八戒这种的外包项目的网站,我只是见过,但是没实际用过,接过,所以不好评价


希望大家赚钱顺利,私单是一种赚钱的方式,但是是不稳定的,一定还是要以自己本身的工作为主,自行判断~


作者:Shaka
来源:juejin.cn/post/7297124052174848036
收起阅读 »

程序员必看的几大定律,你中招了吗?

一 晕轮效应 我们通常会从局部信息形成一个完整的印象,根据最少量的情况对别人或其他事物做出全面的结论。 举个简单的例子,当你看到一个陌生美女的时候,你通常会认为对方长得这么好看,笑起来这么甜,肯定哪哪都好! 当你看到一位发量稀疏的开发老哥,你通常会觉得这位...
继续阅读 »

一 晕轮效应



我们通常会从局部信息形成一个完整的印象,根据最少量的情况对别人或其他事物做出全面的结论。



举个简单的例子,当你看到一个陌生美女的时候,你通常会认为对方长得这么好看,笑起来这么甜,肯定哪哪都好!


当你看到一位发量稀疏的开发老哥,你通常会觉得这位老哥技术能力肯定非常强,做人肯定也很靠谱!



在晕轮效应影响下,一个人或事物的优点或缺点一旦变为光圈被扩大,其缺点或优点也就隐退到光圈的背后,被别人视而不见了。



对于程序员来说,有两点可以考虑:



  1. 打造自己的光晕:让自己成为专家或者像个专家,可以提升自己的话语权。


    比如在掘金写文章,当你拥有几千粉丝,几十万阅读量的时候,即使你什么都不说,别人看到这个账号都会觉得你是个厉害人物,与你交流的时候都会注意几分。


  2. 突破别人的光晕:在我使用npm上各种组件或者工具的时候,常常会感慨,好厉害!这么多star的项目,肯定没有Bug吧,如果有,那一定是我用的方式不对!打开源码看的时候更是惊呼,好厉害,完全看不懂,也不可能看的懂吧?


    但其实,褪去这些光环,你会发现,即使是成熟的项目,也会有bug,高深的代码,也都只是一个个基础的语句组合起来的,当你理解了作者的思想,也就能理解代码。



二 眼不见为净定律



看不见的,就是干净的。



看到这个定律,我的第一反应就是,屎山代码为什么会存在?


还不是因为管理人员看不到这坨屎山,他看到的是一个功能正常运行的系统,所以人家并不觉得这是屎山,而是美丽的风景线!


只有我们这些天天在这座屎山上添砖加瓦的程序员才能会感受到这种绝望!


所以面对屎山代码,不要抱怨,最好的方法就是找个机会把这座屎山丢给其他人,毕竟眼不见为净嘛!


当它不在你手上的时候,你会发现其实它也挺好的,毕竟眼不见为净嘛!


三 虚假同感偏差


你们是否会遇到这种情况:明明一件很重要的事情,催了某个人很久了,他却迟迟未做!


这里就涉及到虚假同感偏差,因为这件事对你来说很重要,所以通常会自我推断,觉得别人也会认为这件事情很重要,然而事实上,对你很重要的事,对他人来说可能回过头就给忘记了!


所以啊,要让别人重视一件你觉得很重要的事情,就是也让他感觉到重要,这样别人就不敢忘记了,比如可以补充一句:某某领导正在关注这件事,麻烦尽快,谢谢!


另外就是当我们非常确信自己观点或意见的时候,也很容易产生虚假同感偏差,这时候如果有人提出不同的观点,我们会下意识的反驳,并且觉得问题来自于他人。


比如我们自信满满地写完一段代码并且自测之后,提交给测试人员进行测试,当测试人员跟你反馈存在某BUG,我相信第一时间反应大多都是:我不信!!!


然后就有以下对话:



你:可能前端有缓存,你刷新一下再试试?


测试:行,我试一下。


过了十分钟......


测试:还是一样的问题啊,你看一下。


你:是不是测试数据有问题啊,我自己都测试过了,不应该有问题!


测试:行吧,我再看看。


过了十分钟......


测试:数据都排查过了,是正常的,你检查一下吧!


你:(还想再挣扎一下)你怎么操作的?


测试:就点击一下这个按钮,我还能玩出什么花吗?


排查了一会,哦~居然是空值的情况没有判断,我还能再白痴一点吗!


你:问题已经修复了,是某某复杂的场景我没考虑清楚,你再测试一下!



四 自我宽恕定律



人性有个根深蒂固的特点,就是容易发现别人的缺点和错误,却不容易看到自己的不足。


正所谓,见人之过易,见己之过难。




  • 当看到别人的代码存在一个空指针异常,心里想:这都能忘记判断,其他代码会不会也有问题!

  • 当发现自己的代码存在一个空指针异常,心里想:只是不小心忘记判断了嘛,加一下就好了!

  • 当接手别人项目的时候:卧槽,这代码写的啥啊,注释没几句,变量命名这么奇葩,逻辑这么混乱,我要咋接啊!!

  • 当项目给别人接手时候:我这代码虽然注释不多,但是很规范的,你看这变量命名不就能知道是什么含义了嘛,逻辑也非常顺,这个方法几百行你按顺序看下来就行了,我都给你写在一起,不需要跳来跳去地看,多方便!


五 补偿作用:



弱点也是一种力量源!



大家应该都听说过这个现象:瞎子的眼睛虽然看不见了,听力通常会变得非常灵敏!


这种生理上的现象吸引了很多有兴趣的心理学家,所谓补偿,就是发挥一个人的最大优势,激发其自信心,抵消其弱点。


看到补偿机制,我第一想到的就是在掘金看到的各种专科大佬。


虽然学历起点比其他人低一些,但有时候正是因为学历劣势,更加激发他们深耕技术的决心,反而达到其他更高学历人员都无法达到的高度。


这又让我想起了一句话:打不倒我的,会让我更强大!!


六 皮尔斯定理



意识到无知,才是知道的开始。



还有一句话,我觉得很适合接在这句话后面:知道的越多,才发现自己不懂的越多!


于是就形成了一个闭环: 意识到无知->开始知道->知道的越多->意识到无知


这句话我相信大部分人都听过很多遍了,不知道你们是从什么时候开始意识到自己的无知呢?


曾经,我还是小白的时候,在福州某公司上班,每天做的事情就是SpringBoot接口的开发,或者修改某些业务逻辑,我以为这差不多就是开发的全部了。


那时候对接的前端是使用Vue写的,我甚至不知道什么是Vue,只知道是某个挺流行的前端技术。


每次部署,我看前端文件里就只有一个index.html文件,我真的非常奇怪,为什么这么大的项目,只有一个html文件?


那时候我对前端认知还停留在html+js+css+jquery的时代,所以完全想不通。


本来还觉得自己前端也是有点基础的,直到接触Vue,我才惊呼,卧槽,前端怎么变成这样子了?什么nodejs,什么npm完全没听说过。


用过一段时间之后,我更是惊呼,卧槽,前端还能这样子?明明我HTML+CSS+JS只懂一点,都能做出这么好看的页面了。


有了各种开源前端组件,即使对原生HTML标签和CSS不太懂,也能算是个还不错的前端开发了。


还有这ES6语法用起来也太爽了吧,比JAVA可自由太多了。


所以很感慨,当我没进入前端圈子的时候,还以为自己懂一些,进入之后,才发现自己真的是一窍不通,啥都要学。


更感慨的是,当我第一次接触掘金,我惊呼,卧槽,这个社区分享的东西都好干啊,好多听都没听过的标题,原来我有这么多东西都不懂!原来前端是个这么卷的领域!


结语


感谢阅读,希望本篇文章对你有所帮助!


作者:林劭敏
来源:juejin.cn/post/7295623585363771443
收起阅读 »

宏观经济的一些判断

估计谁都没想到2023年,疫情恢复的第一年竟然如此:大厂裁员、楼市继续下跌、年底股市暴跌等。 这篇文章说下笔者对宏观经济的一些理解和判断,以试图解释过去一年发生的一些事情。 宏观经济周期 笔者看来,由于美元具备全球货币属性,美元加息是全球的麻烦。所以总体而言,...
继续阅读 »

估计谁都没想到2023年,疫情恢复的第一年竟然如此:大厂裁员、楼市继续下跌、年底股市暴跌等。


这篇文章说下笔者对宏观经济的一些理解和判断,以试图解释过去一年发生的一些事情。


宏观经济周期


笔者看来,由于美元具备全球货币属性,美元加息是全球的麻烦。所以总体而言,全球经济处于美元加息影响下的结果中,也就是处于美元回流,全球货币紧缩,全球经济处于下行周期中


但每个主要经济体又有其自身的宏观经济周期,比如说我们国家,疫情三年为了人民的生命健康,我们国家没有像西方打开方便之门,大肆放水,而是选择严守死防。


三年疫情,我们国家保护了人民的生命健康,但我们也封闭了三年,紧缩了三年。我们国家处于疫情恢复周期中,处于上行周期中。但始作俑者的美国因为超发货币,自身经济过热,所以需要降低过热经济,所以宏观经济也处于下行周期中。


这里说一个题外话,宏观经济是通缩好还是通货膨胀好呢?实际上,过分的通缩和过分的通货膨胀都不好,适度的通胀最好,一般来说维持在2%左右是比较好的,这也就是美国一直想通过加息实现的通胀水平。


不管是通缩还是通胀代表的都是一种趋势,通缩经济逐渐下行,规模逐渐减小,反之通胀经济处于上行,规模逐渐扩大,这样才能实现GDP的增长,实现经济的发展。


回来继续说宏观经济周期,当下国家要做的就是让经济处于扩张区间,或者说实现经济的适度通胀。


2023年CPI和PPI一直不温不火,其实有一点通缩的迹象,所以国家在出台各种手段改善这种迹象:



  1. 对楼市逐渐降低首付比例,逐渐放开楼市,逐渐降息,逐渐降低存款准备金等

  2. 对股市降低印花税,转融通暂停,加大逆回购力度,证监会新管理层上任等


但改变趋势谈何容易,同时还要考虑美国的加息节奏。所以出台的手段并不是那么尽如人意,也因为受到美国加息节奏的影响,为了维持外汇的稳定性,出台的时机也并未尽如人意。


笔者觉得正因为上述原因:美元加息周期、国内降息周期导致2023大厂裁员、楼市继续下跌、年底股市暴跌。


2024年宏观经济


目前美国已经暂停加息半年,加息周期已经到顶,预期5、6月份后降息。也正因为暂停加息,加息到顶我国央行今天进一步降低5年期贷款利率。


2024年的国内的宏观经济依然是将经济恢复为适度通胀的水平。笔者的判断是在汇率稳定的前提下,稳定楼市,因为楼市涉及的面太大。稳定了楼市才能稳定经济稳定预期,才能稳定股市。


完全有可能的是央行在美国降息后选择再一次降息贷款利息的方式,加强人们的信心,加强人们对国家进一步搞活经济的决心,给人们信心。


稳定楼市而不是大力发展楼市。笔者认为未来国家的发展会逐渐向高科技产业倾斜,从依靠楼市带动GDP增长改为依靠科技带动。


综上,一些配套的改革一定也会有:比如真正支持优秀公司发展的证券市场,比如政府职能转变为服务好企业,比如更加开放的区域市场(现在的浦东新区)等等。


而笔者比较关心的股票市场,隶属于证券市场,笔者觉得未来中国的股市一定会越来越好,尤其优秀的科技公司。


(本文完)


作者:通往自由之路
来源:juejin.cn/post/7337227407365963803
收起阅读 »

总结一下程序员的一些经历

前言 大学毕业已经6年了,不知不觉已经到了30岁,不免会对中年危机产生焦虑心理。平常上掘金浏览文章,除了一些技术相关的,还有倔友工作经历相关的,以求得一丝共鸣。最近有感而发,仔细想想自己也没有写过总结的文章,所以想总结一下自己的经历,同时有什么想法大家也可以交...
继续阅读 »

前言


大学毕业已经6年了,不知不觉已经到了30岁,不免会对中年危机产生焦虑心理。平常上掘金浏览文章,除了一些技术相关的,还有倔友工作经历相关的,以求得一丝共鸣。最近有感而发,仔细想想自己也没有写过总结的文章,所以想总结一下自己的经历,同时有什么想法大家也可以交流一下。


大学


我大学学的计算机专业,不知道大家的专业是自己深思熟虑后报的还是随便报的,反正我是随便报的。当时填志愿的时候家里人希望我去学医,其实我是有点不太想,但是我又不知道该报什么专业。由于我个人的性格是比较内向的,不太喜欢和人打交道,所以希望以后的工作也如此。在排除了一些专业后,发现计算机专业是和电脑打交道,然后就报了,后来家里人也同意了,最后在杭州上的。


大学期间大一学的课程学的是基础课和java,c#等基础语言,大二学的是计算机组成和网络相关。期间我也没怎么规划未来方向,目标是拿了学分就行。


到了大三,专业细分,我选择了软件工程,其他的数字媒体和计算机科学感觉不太适合我。大一大二的课程安排还算紧凑,大三课程少了很多,平均下来,一天两门课,也就是4课时。学校管的比较宽,那会儿有空闲的时间就在寝室里玩游戏。到了期末的时候,就临时抱佛脚,正所谓“一花一世界,一叶一菩提,一天一本书,一周一学期”,所以现在感觉那个时候还是挺没有目标的。


不知道大家有没有这样的感受:大三的课程要求大多是软件设计,老师教的都是理论知识,但是实际需要完成一个项目。比方说,上课的时候教的是“类”,“设计模式”,到了期末就要做一个课程管理系统。那个时候感觉知识体系都挺零散的,也没有UI框架(或者是组件)的概念,甚至java里的swing也要学,基本使用的是原生的,也没有什么思路,一个页面也不知道怎么去做。但是最终为了完成期末作业,我不得不上网一步一步跟着做,没有加入自己的想法
,就这样搬运完成了。


实习


到了大四,基本没有课程,要求就是实习。我的技术总结起来就仅仅是学过,想着能有公司收留就行,投了几家,面了两家,都失败了。那会儿是G20,留在杭州还挺麻烦的,需要学校报备,然后还要和学校签免责协议。回老家又没有什么软件公司,正在为实习这个事情发愁的时候,好在有一个亲戚在老家有开公司,所以我就趁着这个机会被介绍进去了。


介绍的时候亲戚说建议我去学习他的本行业,也就是制造行业;意思是他在软件这块投了挺多钱,不对软件抱太大期望,希望我转其他的。我考虑到我的实习是需要和开发相关的,所以想要毕业,必须做开发,最终我被安排在一个软件子公司下面。第二天报到之后,我的上级领导就了解我的背景,有没有学过数据库之类的,我就说有。还有刚来上几天班的两个小伙伴,他们是社招的。然后我们几个就一起学习公司的相关框架。


公司实际上是二次开发,之前是花钱买的开发平台。页面也比较简单,就是一些单据。所以我们的工作内容也比较简单,就是拖拖控件,写写增删改查事件。简单的表单熟练了之后一下午可以搞三四个。很长时间都是比较清闲。当然一方面也是因为我是实习,优先安排学校的事,然而我也是写写实习总结。中间也碰到了一些困难,确实业务上复杂的情况也有,需要写存储过程;那时我以为做不出来是能力不行,想一个人硬着抗下所有。最后在一个小时没有解决用户反馈的问题之后,然而我的上级领导态度挺好的,说这个业务挺复杂,他来亲自上手。


就这样过了一个月,等到了发工资的时候,人家都发了,我才发现我没有谈论这个问题,后来上级领导跟总经理反馈了,总经理说实习是没有工资的。这里说一下,我那个亲戚是总裁,总经理是他的侄子,执行权在总经理,况且我跟他也不认识。我想着实习就算了吧,毕业后再说。


过了三个月,不知道是不是我上级领导提的,竟然和我签合同,说是总经理破例给我发工资。等到发工资那天,发了2K的实习工资,我还是挺开心的,毕竟是我自己的劳动所得。由于这几个月吃住都是家里的,我选择给了家里,然而家里给我留了一半当生活费。这几个月实习期间,有学到一些知识和经验,到了后期基本就是重复的工作,没有了更多的技术提升。


毕业


然后到了毕业前的上半年,由于要做毕业设计,需要和导师经常沟通,所以呆在老家不太方便,所以我得换公司实习。其实这个时候我留在学校做毕业设计就可以了,但是看到周围的童鞋都在公司上班,我也不想掉队。然后我又在手机招聘上投了几家公司,但又是石沉大海。后来突然收到杭州的两家面试,我很奇怪竟然不是我投的那几家,估计招聘软件可以看到,后面面了之后过了。然后我就跟领导说我要回学校了,明天就要走,当时我也不太清楚交接的概念,感觉做的内容也挺简单的。没想到领导竟然也同意了,然后我一天内交接完,之后就回学校了。


毕业来了杭州的这家公司(简称公司A),一待就是4年半,你们可能会问为什么第一家公司可以待这么久,包括我和同事都这么说,其实也是无奈。公司规模还挺大,用的是.NET,之前写的是C#客户端,所以很多东西需要重新学。在这家公司实习,也没有安排太多活,主要是学习一些技术,写几个简单的页面。同时也搞一下学校的毕业设计。等到2017年6月份答辩完,我就正式签了合同。同时我也离开了学校,得知大学同学公司在同一个区,就和他们一起租了一个160平的大套房,几个人平均下来人均1300一月。那时公司A开的工资不高,只有几k,然后每个月都在精打细算,看看能存下多少钱。


公司A不是外包公司,但是我所在的部门是做项目的,主要为甲方做定制,有时候采集数据和开发方便需要驻现场。没过多久,公司便派我出去出差。出差所做的内容基本上是数据综合展示页面,没有涉及核心业务,只需要从底层获取数据展示就好了。出差还有个好处就是有补贴,每日固定,由于甲方不提供住宿,我们就2人一组一起住酒店,有时还会跟老板说常住进行讨价还价。算下来,一个月的出差补贴能和工资差不多。所以就算每个月经常加班,也都是可以接受。这个项目上干完2个月可能又到其他项目上去干,然后根据项目时长又考虑是租房还是住酒店,如此往复。那时感觉和同学比起来,赚得还算可以。


不知不觉这样子已经过了两年,公司A涨的工资并不多,同学跳槽获得了更高的工资,换了公司去了其他区,我们一起租的房子也退了,各自重新去租了单间。一方面那时我一个月的工资算上出差补贴,也不算高了,也就是正常水平,另一方面长期到处出差没有归宿感,长期下去找不到对象也不是办法,此时我已经萌生了跳槽的念头。但是回过头来发现,这两年一直是在用.NET做一些展示的界面,说技术没有用到很深的技术,说业务也不是懂业务,这才发现出去面试的时候也不是很有竞争力。看看市场行情java比C#好点,我把这两年的项目包装成java,但面了几家都杳无音信。最后有一家外包发了offer,我这次的目的有两个,一是不出差,2是可以学到技术,显然外包不满足这两个条件,所以我放弃了。考虑到一个月存下的钱还能接受,我就妥协了,继续干着,这次在平常工作之余,学习java相关的技术。


迷茫


然而到了第三年,公司组织架构变动,部门缩减预算,我负责维护产品,有什么问题远程支持。也就是意味着出差的频次减少了,必要的情况下有时出去一个礼拜,赚得出差补贴也少了。这样算下来,相比两年工作经验的人,我赚得是少的,而且进来的新人都比我们老人多,同事问起来,说真的,我都不好意思跟他讲。这个时候我想跳槽的心思再一次涌起,但是快到了年底,也没有什么机会,打算过年后再看看。不过令人惊喜的是,这次年终奖给了不少,估计是考虑到我们工资比较低,工资不涨,年终奖来凑,也算是补了一点内心的不平衡。


原先部门的人员还一直挺稳定,到了20年中,老人也走了几个,新人进来了几个,这时我已经算是比较老了,平常同事问起来,意思说第一家公司待了3年有点久,平常一年或两年就跳槽了,我也是表面上呵呵一下,内心也想着逃离。然后我开始看起了行情,发现行情又不好了,加上我java没有项目实践,只是学了点基础的技术,业务也不精通。是的,我放弃了,我再一次陷入迷茫,难道我就只能一直这样子待下去了吗。


没过多久,公司组织架构再一次变动,部门业务也有调整,我们的技术从.NET过渡到java,这一次对于我来说是一件好事,意味着我可以用java做项目了。而且这次公司的业务是做新的产品,不再维护老的项目,做开发的都知道,一直维护老的项目学不到太多的技术,所以这对于我来说是一种解脱。在大公司的好处是,可以及时跟进技术,然后我就接触了微服务和docker相关的技术,k8s是其他同事在研究。


不知不觉又干了两年,这两年算是学到了一些技术,工资目前还偏低,这个时候我也思考过,我以后的方向,是在大厂当凤尾,还是去小公司当鸡头。加上之前家里催着相亲,前前后后见了不少个都没有结果。有些是因为在老家,异地不太方便,也就算了。加上家里的条件不太好,这几年也没存到什么钱,在杭州买房有很大的压力。然后我就考虑回老家,老家的软件行情也不太好,毕竟是二线城市(现在已经是三线了),机会不是很多。刚好碰到校友群里有老乡在银行工作,发了招聘,然后我联系他,获得了面试机会。在这次面试中,我自认为技术上还是比较自信的,然而银行的流程比较复杂,有5轮面试,由总行的和分行的。然而又失败了,这次失败是因为用词表达不够准确,被分行的领导们否决了。但我不知道是不是有其他因素考虑在内,比如外貌、言行举止,需要体现银行人的面貌,不过都不重要了。


回家


到了2022年初,在某聘发现老家有公司(公司B)在招架构师,我就去试试看。业务刚起步,我心想如果能够能有发展的话,以后在技术部门还是有话语权的。公司B工资给的一般,但考虑到可以住在家里,生活成本会少很多,有什么事情家里沟通也很方便。于是我就进了这家公司。说真的公司A待了4年半,还有些不舍。公司还是原来的公司,但是部门调整,人员流动、调整、拆分,部门是否还是原来那个部门。


在公司B的经历只能用两个字概括:闲着。情况是公司原先有老系统的经验,现在BOSS他们在进行业务架构,我们就做一些技术架构的学习,在我看来前期还会是项目级别的开发,不会一下子上升到K8S集群管理。一来是真正成熟的产品还需从项目开始落地,二来是管理成本会很大,人员有限。


公司实习生来了几个,又走了几个。到现在持续了快两年,如果不是工资能够正常发并且人员还在招,我都怀疑公司是不是在正常运作。好在也是在回家的这两年,经过家里人介绍,我完成了另一件终身大事。


总结


不知不觉写了很多,有些细节还没写出来。这几年铺天盖地的技术,我们是学了又学,卷了又卷。当软件技术不能够有效提高生产力的时候,意味着软件开发的红利已经过去。想想以前,如果我毕业时考研读了人工智能的专业,现在会不会好很多;如果大学的时候努努力,进互联网的大厂,现在又会不会不一样。但是我不后悔,我把原因归结于没有规划,大学如此,工作的时候也是如此,等行情不好的时候或者是中年危机出现的时候,再去准备就已经迟了。一切的焦虑来源于没有充足的准备。


要为最坏的打算做好准备,如果公司不行了,难道还回杭州去背井离乡吗。所以未来我打算发展一下副业,不需要依赖于公司也可以自己生计。


作者:哥伦比亚拆迁队
来源:juejin.cn/post/7337112282575323146
收起阅读 »

研发误删的库,凭什么要 DBA 承担责任

镇楼图 三个角色 删库以及更宽泛的数据库变更场景中有三个角色,业务研发,DBA 以及使用的数据库变更工具: 业务研发通常指的是后端研发。国内最主流的技术栈还是 Java,此外 Go 也有一部分,另有全栈的则使用 Node。这些语言通常会配备对应的 ORM ...
继续阅读 »

镇楼图


file


三个角色


删库以及更宽泛的数据库变更场景中有三个角色,业务研发,DBA 以及使用的数据库变更工具:



  • 业务研发通常指的是后端研发。国内最主流的技术栈还是 Java,此外 Go 也有一部分,另有全栈的则使用 Node。这些语言通常会配备对应的 ORM 和数据库打交道,Java 的 MyBatis,Go 的 GORM,Node 的 TypeORM 等。

  • DBA 就是数据库管理员。有些公司即使没有全职 DBA,也会有看着数据库的那个人。

  • 数据库变更工具。公司业务稍微上了规模,一般会选择在专门的数据库变更工具上执行操作,开源的产品里比较主流的有 Archery, Yearning, Bytebase。


生命周期


交代完出场角色,我们再来说一下,数据库变更的整个生命周期:



  • 研发在数据库变更工具上提交了一个变更工单。

  • 工具可能进行一些自动化检测,修改字段会提示锁表,删库,删表会警告破坏应用代码的兼容性。

  • DBA 进行审核。

  • 审核通过后,进行发布。

  • 告警铺天盖地/客诉蜂拥而来,业务一排查,怀疑可能是之前的数据库变更引起的,拉上 DBA,实锤。于是再一起制定补救方案。

  • 经过几天的奋战,最终修复了问题。

  • 开始进行复盘。


上一期回顾的 Linear 删库故障就是这样一套流程。到了复盘阶段,国外普遍采用 blameless postmortem,对事不对人,但国内通常会给故障定主责和次责。安全生产的角度来说,定责任人的威慑力肯定更强。但对于数据库变更,往往一出就是大故障,承担主责往往意味着全年绩效最低档。所以每当业务研发和 DBA 还有他们的主管走进会议室,都会很认真地想着怎样一起复盘。


场景模拟


我们先来模拟一个场景:


业务研发想在 MySQL 8.0 上把一个 VARCHAR 列的长度从 20 改成 100:


ALTER TABLE person MODIFY name VARCHAR (100); 

研发在数据库变更工具上提交了这个语句,因为 DBA 也读了 MySQL 8.0 官方文档,知道 MySQL 8.0 修改列不会锁表导致不可用,所以审批通过,然后 DBA 执行这条语句。业务居然挂了!原来 MySQL 8.0 里当把 VARCHAR 长度修改为超过 64 时,还是会锁表的!


切回复盘室里认真讨论的气氛。业务团队主张 DBA 主责,业务研发次责,因为



  • 工具没有自动检测出这个风险,进行提示。

  • DBA 作为专业人员在审核阶段没有发现锁表问题。

  • 最后是由 DBA 去执行了变更操作。

  • 业务研发提交了导致问题的 SQL,但要求业务研发了解这个 MySQL 的执行细节有点强人所难。


DBA 团队主张业务团队主责,DBA 次责,因为:



  • 业务研发应该为自己的业务负责,包括数据库在内。

  • 问题 SQL 是由业务发起的。业务研发并没有提示业务风险,比如业务的重要性,业务的高峰期等。

  • DBA 没有识别到这个问题,督查失职。


好了,到了这里两边其实都有各自的道理,小伙伴们可以停下来思考一下,更倾向于如何定责。下面说一下我的观点。


我认为这个情况应该是**「业务团队主责,DBA 次责」**。


针对业务团队的几个主张:



工具没有自动检测出这个风险,进行提示。



那好,既然 DBA 引入带自动检测的工具反而留下把柄,那大家还是提交在文档上吧,完全没有自动化检测。



DBA 作为专业人员在审核阶段没有发现锁表问题。



双方这点都有共识,但光这条属于失查,次责。



最后是由 DBA 去执行了变更操作。



是 DBA 执行还是研发执行,这是流程的设计。谁去点执行按钮都改变不了这次故障的发生。



业务研发提交了导致问题的 SQL,但要求业务研发了解这个 MySQL 的执行细节有点强人所难。



没有错,但我们来换一个角度。研发写代码调用了一个 API,让 API 的维护者审核一下。结果 API 维护者也没有审核出来一个 bug,上线后导致故障。研发确实可以说让他了解 API 的实现细节有点难,但是研发为了完成自己的任务,使用了一个自己不熟悉的 API,那是不是应该由自己承担风险?


但在实际 PK 中由 DBA 承担主责的情况时有发生,往往是因为第 3 点,最后是由 DBA 点了发布按钮。但就像上面说的,我认为这点是站不住脚的。流程设计让 DBA 点那下,是因为由 DBA 来点效率是更高的,但如果因为 DBA 点了而要背锅,那 DBA 就会拒绝这个流程,甩给研发自己去发布,这样流程只会更加低效。这里也要澄清一下,也不是 DBA 点就一定是更高效的流程,但只想表达定责应该和谁最后点发布那一下无关。


场景泛化


我们再进一步把这个场景泛化一下。在垂直业务团队和横向平台团队的协作中,因为业务开发造成的故障,通常应该都由业务团队承担主责,否则的话,就会造成权责不对等,把平台团队推向消极合作的情况。


这个就像老师带着小朋友和家长们集体活动,照看小朋友的第一责任人始终是家长,如果要让老师承担主责,大概率就不会组织活动了。当然这也有例外,比如假设老师罔顾家长的嘱托,携带小朋友参加不适合的活动,造成意外,那就是老师的责任了。


回到模拟的场景,业务研发应该做的,是给 DBA 更多的业务风险提示,比如说哪些高峰时段不能做变更。如果研发说了这些,但是 DBA 依然置若罔闻,发布造成事故,那 DBA 也自然难辞其咎。


故障定责是一个激烈的话题,关乎到大家的奖金,加薪,升职。本文尝试给出一个判定的原则,也欢迎大家留言探讨。回忆起那些年参加过的复盘会议,就像抄起刚一同肝完的啤酒瓶,朝对方劈头盖脸扔了过去。我心中不禁泛起丝丝寒意,想到了鲁迅的呐喊:


「 从来如此,便对么?」


作者:Bytebase
来源:juejin.cn/post/7332346676165574707
收起阅读 »

对于软件开发者来说什么证书含金量最高

1. 引言 在快速变化的软件行业,持续学习和证书认证成为了许多开发者职业发展的关键。不仅因为这些证书能够提升个人技能,而且在求职过程中,这些证书也是向雇主展示专业技能和承诺的重要方式。 2. 市场上主流的软件开发相关证书 2.1 Oracle Certifie...
继续阅读 »

1. 引言


在快速变化的软件行业,持续学习和证书认证成为了许多开发者职业发展的关键。不仅因为这些证书能够提升个人技能,而且在求职过程中,这些证书也是向雇主展示专业技能和承诺的重要方式。


2. 市场上主流的软件开发相关证书


2.1 Oracle Certified Professional, Java SE Programmer (OCPJP)



  • 相关技能:Java 编程、面向对象的设计原理、Java SE API。

  • 为何重要:Java 是世界上最受欢迎的编程语言之一,Oracle 的 Java 认证能够显著提升一个开发者在Java领域的专业性。


ocpjp-8-certificate.jpg


2.2 Microsoft Certified: Azure Solutions Architect Expert



  • 相关技能:云计算、Azure服务设计和管理、安全和合规性。

  • 为何重要:随着云计算的普及,熟练掌握微软Azure平台的专家需求量大增。


2.3 AWS Certified Solutions Architect – Associate



  • 相关技能:云计算、AWS服务设计和管理、网络技术。

  • 为何重要:AWS 是市场上最大的云服务提供商,此认证证明了在AWS平台上设计高可用、成本效益高的系统的能力。


2.4 Certified ScrumMaster (CSM)



  • 相关技能:敏捷和Scrum实践、团队合作、项目管理。

  • 为何重要:Scrum 是最流行的敏捷开发方法之一,CSM证书证明了在使用Scrum方法管理项目方面的专业知识。


1625704928523.png


2.5 PMP (Project Management Professional)



  • 相关技能:项目管理、领导和团队管理、风险管理。

  • 为何重要:对于希望在项目管理方面发展的软件开发人员,PMP是一个国际认可的高级证书。


3. 选择正确的证书



  • 自我评估:首先,理解自己的职业目标和兴趣所在是非常重要的。例如,如果我们对云计算充满热情,那么AWS或Azure相关的证书可能更适合我们,在国内阿里云和腾讯云的认证也可以。

  • 行业需求:研究市场需求和趋势,选择对应的证书。例如,随着云计算和数据科学的兴起,相关的证书需求量也在增长。

  • 长期价值:考虑证书对我们长期职业发展的帮助。一些证书可能需要持续的教育和更新。


4. Certified ScrumMaster(CSM)推荐


在当今快速变化的软件开发领域,敏捷方法论已成为推动项目成功的关键因素。作为最受欢迎的敏捷实践之一,Scrum 方法论在全球范围内得到了广泛应用。Certified ScrumMaster(CSM)认证对软件开发者和项目管理者来说是一项宝贵的资格认证。


CSM-Banner.png


4.1. CSM 认证概述


Certified ScrumMaster(CSM)是由 Scrum Alliance 提供的一项认证,旨在确认个人在理解和实践 Scrum 方法论方面的能力。CSM 认证不仅涉及 Scrum 的基本原则和实践,还包括团队合作、项目管理和敏捷思维。


4.2. CSM 认证的重要性



  • 提升职业素养:CSM 认证可以显著提高个人在敏捷项目管理领域的专业知识和技能。

  • 增强市场竞争力:随着敏捷方法的普及,CSM 认证成为了求职者在简历中的一个亮点,增加了他们在市场上的竞争力。

  • 促进团队合作:CSM 认证的持有者能更有效地领导和促进敏捷团队的合作与沟通。

  • 优化项目管理:CSM 认证有助于改进项目的交付周期,提高项目成功率。


4.3. 获取 CSM 认证的流程



  • 参加培训:首先需要参加为期两天的认证课程,由 Scrum Alliance 认证的培训师(CST)授课。

  • 通过考试:完成课程后,参加在线考试,考试内容涵盖 Scrum 的基本原则、框架和实践。

  • 维持认证:CSM 认证需要每两年续期一次,通过积累 Scrum 教育单位(SEUs)和缴纳续费来实现。


4.4. 为何选择 CSM 认证



  • 适用范围广:无论是软件开发者、项目经理还是希望提高项目管理能力的专业人士,CSM 认证都是一个极佳的选择。

  • 实践导向:CSM 认证不仅仅是理论知识的学习,更重要的是它强调实践和实际应用。

  • 全球认可:CSM 是一项国际认可的认证,对于追求国际职业发展的专业人士来说具有重要意义。


Certified ScrumMaster 认证是一项对软件开发者和项目管理者极具价值的资格认证。它不仅提供了敏捷方法论的深入理解,还有助于在职业生涯中获得更多的机会和挑战。无论我们是刚刚开始职业生涯,还是希望在当前领域有更深入的发展,CSM 认证都是一个值得考虑的优秀选择。


5. 总结


选择正确的证书对于软件开发者的职业发展至关重要。在选择时,应当考虑个人的职业规划、市场需求以及证书的长期价值。同时,持续学习和保持技能的最新性是每个软件开发者成功的关键。


作者:王义杰
来源:juejin.cn/post/7329573732597776410
收起阅读 »

年终总结:工作三年,满腔热血已然消散

毕业到现在也已经有三年多的工作经验了,最开始坚信努力就会有结果,到被社会毒打后开始迷茫,一直在思考生活和工作之间的关系和意义。目前是彻底的技术躺平,如今供需关系变化了,单纯的提升技术也不见得能找到一份好的工作,所以有点学不动技术了,感觉学习技术的价值不如以前大...
继续阅读 »

毕业到现在也已经有三年多的工作经验了,最开始坚信努力就会有结果,到被社会毒打后开始迷茫,一直在思考生活和工作之间的关系和意义。目前是彻底的技术躺平,如今供需关系变化了,单纯的提升技术也不见得能找到一份好的工作,所以有点学不动技术了,感觉学习技术的价值不如以前大了,还不如学点软技能,或者看看书拓宽视野也好。好在人没有躺平,一直在尝试寻找一个破局的契机。既然改变不了环境,那就先改变自己吧。



说说以前


第一份工作


刚毕业的第一份工作工资很低而且996,花了很多钱去报名学习编程技术的课程,当时觉得只有技术上去了薪资才会随之上涨,果不其然,最开始先投资自己才能更快提高身价的方式很对,来年跳槽工资是第一份工作的2.X倍吧,一方面当时环境还没这么糟糕,另一方面HR问期望薪资的时候自己也比较敢开价,主要是当时学了不少技术课程,面试的时候也是一顿Vue源码输出,所以当时底气比较足敢报价,现在回想起来确实有点狮子大开口的感觉[笑哭]。


第二份工作


第二份工作虽然比第一份工作的薪资高了很多,不过好景不长,待遇上去了,伴随而来的是更多的挑战和更大的压力,我倒是不抵触压力和挑战,适当的压力会让人更快的成长,我抵触的是那家公司的“坐牢”文化,明面上写着5点半下班,暗地里大搞工时考核,工作日至少需要待够11.5个小时,工时不够的就会被谈话了,就算没啥事也得待在公司刷工时,后面11.5都没法满足了。


休养


人到底能有多坏?一直以为大家同是打工人,矛盾是一致对外的,直到碰到了上家公司领导无底线的压榨、转正临近人事威胁劝退的恶心事之后,才体验到真正的险恶和残酷。没了工作后,开始怀疑自我,变得迷茫,每天都要出去走走,不让自己闷在屋子里,或许是阅历不足、亦或是承受能力不够吧,能熬过去的都会有成长。


休息了近半年才重新开始找工作,这半年时间基本上是边做个低代码开源,边外出散心的状态,见见老友,吃饭叙旧,也尝试了很多新奇的体验。


新工作入职前去了趟南通,在大学室友那住几天,算起来我俩都是无业游民,他住的附近有一个很大的批发市场,海鲜还算便宜种类也多,每天都让他骑着小电驴载着我去,我俩连续吃了很多顿海鲜,吃饱后骑着小电驴去看山山水水、逛逛公园,晚上回来一起开黑。对比一线城市的物价,感觉那的东西还挺实惠,可能我们是工作日去逛的,车少人也少,没有大城市的拥挤和喧嚣,也没有匆忙的旅人,突然间感觉生活节奏变得很慢,原来很多事情都可以慢慢来。


不过小城市的工作收入确实很低很多,没有收入来源的话,这种生活不会持续太久,活在当下尽情享受当前的每分每秒。


回到现在


现在这份工作


当时休息完开始找工作的时候,知道环境不好,心里已经有一个预期了,不过这难找的程度还是超过了我的预期,找的时间越长人越焦虑,虽然焦虑并没有什么正向作用,反而让人睡不着吃不好,但很难控制得住不去焦虑,当时想着随便有个外包都去了,好在最终结果是好的,拿到了唯一一份offer,也就是现在这份工作,没有太多的考虑的余地就买机票去了。


这份工作虽然降薪了,但是双休不加班,工作上也没什么太大的压力,下班后晚上就去跑步,很喜欢跑完大汗淋漓的感觉。


不过最近公司好像是收益不太行了,少了很多人,收益不行的时候就开始抓考勤、算考核绩效,几个人的活压到一个人身上,见怪不怪了,一般公司开始走下坡路的时候就出现这种操作。总感觉码农这份工作抗风险能力还是很差的,要资源没资源,要人脉没人脉,多数劳动合同上还限制了不能干副业,风险来临前要早做打算才是。


谈谈未来


2023年完成的目标


1、看完5本书(趁着地铁通勤时看的,对扩宽视野很有帮助)


2、坚持跑步(每个工作周至少去跑一次)


3、打卡背单词(一直想提升英语能力,不过感觉每天只是花点时间背单词的话,还是提升太慢了)


4、附近城市旅游(珠海跨年、清远漂流、桂林竹筏、江门海岛沙滩等,基本都是周末去的,玩得也很开心,节假日的时候人多不想去挤)


5、交朋友(总感觉这一年交到的朋友太少了,想玩个桌游都凑不够人)


2024年我想要做什么


1、雅思,目标定在5.5以上吧(我的英语一直很差很差,以前没怎么学,考试基本靠蒙,想着年后报个班提升一下效率,在英语上欠下的债总归要还的)


2、看书(闲的时候多看几本书)


3、旅游(旅游是一个享受世界的过程,我喜欢慢慢悠悠的,总想着没工作的时候去一趟新疆或者内蒙,估摸着能住一个月吧,就想静静的在一望无际的草原上躺这么几天)


4、出去外面看看(护-照最近也办下来了,想体验更多的风土人情,见识更宽阔的世界)


5、运动(养生和跑步不能停,目标累计到一千公里以上吧,23年已累计到八百公里了,剩下两百公里应该洒洒水)


6、交朋友(交到更多的朋友,偶尔想去玩一些东西,总是没有合适的朋友一起)


寻破局之路


什么局


总觉得程序员这个职业稳定性差,没什么安全感,要么是三十五岁槛,要么是身体扛不住,不乏有些大咖支招转管理岗,可现实就是管理坑位就这么些,绝多大数人是坐不上的,再者拼命去卷竞争管理岗,到时身体垮了,ICU住一住,抵不住可能会人财两空。到时候年龄大了失业了,找不到工作,即没人脉和资源,也不会别的专业技能,这种可预见性的危机可以提前做些准备,避免走到这一步。


如何破


感觉自己总是走不出眼前的一亩三分地,不停的在这小圈子里兜兜转转,世界规则的条条例例已经把人框在一个范围里了,人生应该是旷野而不是轨道,如果自己再给自己设限,那么这个框将更小。很多时候出于对未知的恐惧,没勇气踏出第一步。我给自己找了两个破土而生的方向:1、换个赛道;2、换个环境,若当下环境找不到破局的希望,那就朝外面看看,试着换个环境,让变数更大。


两个方向的结果未定,好在变数够大,不至于一眼就看到头。


作者:Daw
来源:juejin.cn/post/7330521390510866495
收起阅读 »

热爱前端,也没能逃过七年之痒

大家好,我是杨成功。 从参加工作到今年十月底,我做前端已经整整七年了。都说婚姻有七年之痒,我觉得工作也同样如此。所谓工作的“七年之痒”,即职业倦怠期。我觉得我倒没有倦怠,但感受不一样了。 以前我一直想前端可以干到退休,这是我的理想职业。现在我虽然还是一名前端工...
继续阅读 »

大家好,我是杨成功。


从参加工作到今年十月底,我做前端已经整整七年了。都说婚姻有七年之痒,我觉得工作也同样如此。所谓工作的“七年之痒”,即职业倦怠期。我觉得我倒没有倦怠,但感受不一样了。


以前我一直想前端可以干到退休,这是我的理想职业。现在我虽然还是一名前端工程师,但是工作内容已经离前端越来越远了。


以前我觉得做一个骨灰级程序员、掌握各种牛逼的技术是毕生目标;现在我会想人生精彩多样,多尝试一些不一样的事情不也同样有趣?


1-3 年:热爱、探索


我参加工作很早,二十出头。那时候啥也不懂,但是精力旺盛啥也想学,经常写代码到凌晨 2 点也不觉得累。有一部分人选择前端是因为简单,我就是纯粹的喜欢前端。


前端中有很多好玩的东西,比如各种动画、特效,我都非常感兴趣。在工作中常常因为研究出一种“高级”的写法、实现了某个“牛逼”的功能而沾沾自喜。虽然现在看起来很小儿科,但想起来真让人怀念。


我的第一份工作工资很低(<3k),应该比 95% 的前端都低。当时没有经验,心里想着只要能学到东西就成。在那家公司干了一年多,公司用到的技术基本都学了一遍,进步飞快。“又穷又爱”的状态估计以后再也不会有了。


3-5 年:积累、挑战


工作三年多的时候,我换了家公司,带一个前端小团队,每天都扎在项目里。以前总是追求新技术,怎么花哨怎么来。可负责项目后才发现,解决问题和快速产出才是第一位。


当时的前端非常火热,全社会都是跳槽的机会,跳槽等于涨薪。于是面试变得千奇百怪,大家在卷各种原理、源码、八股文,不管面不面试刷题成了必修课。很多开发者们非常讨厌这些东西,但是又不得不去做。


当然也有好处,就是各种新技术层出不穷。虽然很多都是轮子,但确实有不少突破性的技术,帮助传统前端接触到更广的技术面,能做更多的事情。


我没有花大量时间刷面试题,新技术倒是跟了不少,而且很多都用在了项目中。像 JS 原理题、算法题、某些框架的源码之类,我基本没怎么看过;但是像 Node.js、Android、Linux、跨端开发这些,我花了很多的时间研究,因为确实可以解决项目中的问题。


我一直认为我属于“外卷”类型的:Title 一直是前端,但从不认为自己只是一个前端。什么技术都想试试。所以后来我承担过很多攻坚的角色,像服务器、原生 App、音视频等。我发现能让我上头的可能并不是前端,而是搞定一个难题的快感。


得益于这种心态吧,五年内我积累了很多,但我认为收获最大的是习惯了面对挑战。


5-7 年:瓶颈、迷茫


工作五年以上,年龄直逼 30 岁,好像一瞬间就老了,可我总觉得自己还是个孩子。这个时候总会问自己:我的工作有什么意义?我要一直这样下去吗?我想要什么样的生活?


我是在第 6 年的时候感受到了瓶颈。技术方面一直在进步,但对项目的帮助越来越小———项目进入了稳定期。稳定期意味着没有了涨薪的机会,工作重点逐渐从“怎么实现”变成了“怎么汇报”。以前写日报是“汇总成果”,现在变成了“显得有事可做”。


可能任何一家产品成熟的公司都是这样吧,我不习惯,我还在适应阶段。


从今年开始,我最大的迷茫是工作与生活如何平衡。我在北京这几年,大部分精力都扑在了工作上,家人离的很远,每年见个一两次,也没把谈女朋友当回事。想和家人朋友在一块,可工作又不能放弃。成年人说自己不做选择全都要,而我好像只能二选一。


以前一门心思地想靠技术跳槽、进大厂,今年突然觉得没意思。看到很多人被裁员、加班、互卷,我突然想也许现在挺好的呢?双休不加班、领导也 Nice、没有绩效考核、办公室关系也简单。是不是以前自己太浮躁了,没有好好享受当下呢?


所以,要不要继续写代码?还是回老家做别的事?工作上要不要再卷一点?努力攒钱还是趁年轻消费?要不要参加相亲考虑结婚?一连串的问题汹涌而来。


有些问题能想明白,有些问题还是不明白,但更多的是想明白了也做不到。人的成长流失最快的是勇气,可能某天一件意料之外的事情,会让你一下子做出决定。


写了一本书


工作五年之后,我常常会思考一个问题:如果有一天不做程序员了,我还能干什么?


程序员大概都不喜欢社交吧,或者不擅长社交。我特别羡慕大圣老师,他可以把自己的知识通过视频很生动的表达出来。但我就不行,我好像对镜头恐惧,尝试过好多次全身的不自在。


录视频有难度,不过写文章还行。正好积累了很多知识经验,一边总结一边练笔,于是开始写掘金。后来又碰到个机会写书,我就觉得这个更好,可以把这么多年的经验总结浓缩到一本书里。或许可以帮助一些前端朋友快速进阶,或许还能赚点稿费。


这本书名叫 《前端开发实战派》


之后怎么走


七年之前觉得我会写代码到 70 岁,直到写不动了为止。七年之后,我最喜欢的工作依然是程序员,但我不再执着于能不能干到 35 岁了。世界还有很多不一样的精彩,我不能把自己困在程序里。


与那些大厂大佬们相比,我赚的不多,心气也不高。没有想过一定要留在大城市,也不觉得以后有了小孩,就一定要奔着“好的教育”和“名校”去卷,太累了。其实只要没有大城市和名校的执念,生活压力也不会那么大。


这样来看,如果有一天我被裁了,其实也没什么可担心的。选择一个离家近的地方,没有大都市的物欲和诱惑,过一些简单轻松的生活,或许并不糟糕。只是身在大城市,面对万千繁华仿佛难以自拔,但你心里好像知道这不是你追求的,却又停不下来。


我有一个预感,可能 30 岁后不再做程序员了,至少不会只埋头钻研技术。做前端这几年让我在各方面成长迅速,不过做久了也有弊端,比如表达能力、社交能力退化,不擅长处理人际关系,不直接接触商业,而这些往往是人生下半场,决定幸福和事业的关键。


但我依然喜欢技术。无论做什么,技术都会是我自己的优势。


我们大老板是技术出身,孩子都上小学了,还经常熬夜帮我们处理技术难题。有次聚会我问他,公司那么多事情要忙,怎么还有精力写代码呢?他说写代码就是我最放松的时候。我不由得一阵佩服,或许这就是技术人的魅力吧。


但在 30 岁之前,我会继续站在技术一线,做一个什么都搞的前端人。


作者:杨成功
来源:juejin.cn/post/7295551745580793919
收起阅读 »

8年前端,那就聊聊被裁的感悟吧!!

前端开发,8年工作经验,一共呆了2家公司,一个是做积分兑换的广告公司。这是一个让我成长并快乐的公司,并不是因为公司多好,而是遇到了一群快乐的朋友,直到现在还依旧联系着。 另一家是做电子签名的独角兽,我人生的至暗时刻就是在这里这里并不是说公司特别不好,而是自己的...
继续阅读 »

前端开发,8年工作经验,一共呆了2家公司,一个是做积分兑换的广告公司。这是一个让我成长并快乐的公司,并不是因为公司多好,而是遇到了一群快乐的朋友,直到现在还依旧联系着。
另一家是做电子签名的独角兽,我人生的至暗时刻就是在这里这里并不是说公司特别不好,而是自己的际遇


我的经历


第一家公司


第一家公司说来也巧,本来是准备入职一家外包的,在杭州和同学吃个饭,接到了面试通知,一看地址就在楼上,上去一共就3轮面试,不到2个小时直接给了offer。有些东西真的就是命中注定


第二家公司


第二家公司我入职以后挖了上家公司诸多墙角,我一共挖了6个前端,2个后端。拯救朋友们于水深火热之中。





我本以为我能开启美好的新生活,结果第二年就传来我父亲重病的噩耗 肺癌晚期,我学习了大量的肺癌知识什么小细胞,非小细胞,基因检测呀等等。。。





可是最后还是没有挽留住他的生命,我记得我俩在最后一次去武汉的时候,睡在一起,他给我说了很多。


他说:治不好就算了,只是没能看到自己的孙子有些可惜罢了。

他说:我这一辈碌碌无为,没给你带来多么优越的条件,结婚、买房、工作都没给到任何帮助,唯一让我感到欣慰的是你那么努力,比我强多了,家里邻居很多都眼馋你呢。
他说:你小孩的名字想好了吗?你媳妇真是个孝顺的孩子,性格也好,心地善良,你要好好对待她。

他说了很多。。。我都快忘了他说了啥了,我不想忘来着,可是可是,想起来就又好难过。


这只是我人生历程的一部分,我把这些讲出来,是为了让大家明白,你现在所经历的困苦其实没有那么严重,人在逆境之中会放大自己的困难,以博得同情。所以现在很多人给我倒苦水的时候,我总有点不屑一顾的感觉,并不是我有多强,我只是觉得都能过去。


在灰暗的时候,工作总是心不在焉,情绪莫名冲动,我和领导吵过架,和ui妹妹撕破脸,导致人家天天投诉我。我leader说我态度极其嚣张,我说你再多说一句,我干死你所以不裁我裁谁


我的人生感悟


我时常以我爸的角度换位思考,我在得知这个消息后我该咋办?是积极面对,还是放弃治疗?可是所有的都是在假设的前提之下,一切不可为真。只有在其中的才最能明白其中的感受。
那一年我看着他积极想活着的毅力,也看到了他身体日渐消瘦的无奈,无奈之余还要应付各种亲戚的嘘寒问暖


我现在很能明白《天道》中那段,丁元英说的如果为了孝顺的名声,让父亲痛苦没有尊严地活着,还不如让父亲走了。 的意思了。在他昏迷不醒的时候,大小便失禁的时候,真不如有尊严的走了。


我其实已经预感到自己要被裁,我原本是挺担心的,可是后来想想父亲的话,我总结成一句话圆滑对事,诚以待人。 这句话看上去前后矛盾,无外乎俩个观点。


圆滑对事的意思是:就是要学会嘴甜,事嘛能少干就少干,能干几分是几分,累的是别人,爽的是自己,在规则中寻求最大的自我利益化。


诚以待人的意思是:圆滑归圆滑,不能对谁都圆滑,你得有把事情办的很好的能力,你需要给真正需要的人创造价值,而不是为了给压榨者提供以自我健康为代价的价值。



用现在最流行的词来说就是「佛系」。


什么叫活明白了,通常被理解为不争不抢,得之淡然、失之泰然、顺其自然的一种心理状态。


活明白的人一般知道自己要什么样的生活,他们不世故、不圆滑,坦荡的、磊落的做自己应该做的事儿。他们与社会上潜规则里的不良之风格格不入,却不相互抵触,甚至受到局中人的青睐与欣赏。


活明白的人看着更为洒脱,得不张扬,失不气馁,心态随和、随遇而安。


不过,还有一种活明白的人,不被多数人所接受。他们玩世不恭、好吃懒做,把所有一切交给命运去背锅。这种人极度自我,没有什么可以超越他自己的利益,无法想象这种活法,简直就是在浪费六道轮回的名额。


总之,有的人活明白了,是调整自己的心态,维护社会的稳定和安宁。有的人活明白了,是以自我为中心,一边依赖着社会救济,一边责备社会龌蹉。


所以,活明白的人也分善与恶,同样是一种积极向善,另一种是消极向恶,二者同出而异名。



我对生活的态度


离职的第一个月,便独自一人去了南京,杭州,长沙,武汉,孝感。我见了很多老朋友,听听他们发发牢骚,然后找一些小众的景点完成探险。


在南京看了看中医,在杭州露营看了看日落,在长沙夜爬了岳麓山,在武汉坐了超级大摆锤,在孝感去了无名矿坑并在一个奶奶家蹭了中午饭。


我的感受极其良好,我体验了前所未有生活态度,我热情待人,嘻嘻笑笑,我站在山顶敞怀吹风,在无尽的树林中悠然自得,治愈我不少的失落情绪。我将继续为生活的不易奔波,也将继续热爱生活,还会心怀感恩对待他人,也会圆滑处事 事事佛系。


背景1.png


图层 1.png


IMG_6214.JPG


IMG_6198.JPG


IMG_6279.JPG


可能能解决你的问题


要不要和家里人说


我屏蔽了家里人,把负面情绪隐藏,避免波及母亲本就脆弱的内心世界,我还骗她说公司今年不挣钱,提前让我们放假,只给基础工资。如果你家境殷实,家庭和睦,我建议大方的说,这样你和父母又多了一个可以聊的话题,不妨和他们多多交流,耐心一些。


裁员,真不是你的问题


请记住,你没有任何问题,你被裁员是公司的损失,你不需要为此担责,你需要做的是让自己更强,不管是心理、身体还是技术,你得让自己变得精彩,别虚度了这如花般的时光。可能你懒,可能也没什么规划,那就想到啥就做啥好了,可能前几次需要鼓足干劲,后面就会发现轻而易举。


如何度过很丧的阶段


沮丧需要一个发泄的出口,可以保持运动习惯,比如日常爬楼梯、跑步等,一场大汗淋漓后,又是一个打满鸡血积极向上的你。

不要总在家待着,要想办法出门,多建立与社会的联系,多和朋友吹吹牛逼,别把脸面看的那么重要,死皮赖脸反而是一种讨人喜欢的性格。



不管环境怎样,希望你始终向前,披荆斩棘

如果你也正在经历这个阶段,希望你放平心态,积极应对

如果你也在人生的至暗时刻,也请不要彷徨,时间总会治愈一切

不妨试试大胆一点,生活给的惊喜也同样不少

我在一个冬天的夜晚写着文字,希望能对你有些帮助


作者:顾昂_
来源:juejin.cn/post/7331657679012380722
收起阅读 »

前端项目如何准确预估个人工时

补充 看来很多小伙伴对这个问题感兴趣,大家不要忽视了压工时这个事。 领导为什么会压工时? 使他的KPI更好看 不清楚做这个东西实际要多长时间 因为第2点的原因,他也无法去争取合理时间 部分人看着下属加班,有种大权在握,言出法随的畅快感 码农为什么不要轻易答...
继续阅读 »

补充


看来很多小伙伴对这个问题感兴趣,大家不要忽视了压工时这个事。


领导为什么会压工时?



  1. 使他的KPI更好看

  2. 不清楚做这个东西实际要多长时间

  3. 因为第2点的原因,他也无法去争取合理时间

  4. 部分人看着下属加班,有种大权在握,言出法随的畅快感


码农为什么不要轻易答应压工时?



  • 无形中会打击你的自信心,当自信心全无的时候,要么是职业生涯结束,要么是变成人人都跑来拿捏一手的角色

  • 轻易妥协,会让你的说的话,可信度降低。毕竟,别人随便说一下,激一下,你就妥协了,那很容易就让人觉得,你就是随意乱说一个时间

  • 这会妨碍你对自己真实能力的认知和评估


被压工时了怎么办?



  • 偶尔有少量任务,被压了少量工时,个人认为是可以接受的,毕竟不可能一切都能按规划走

  • 大量工作被压工时,那就告知延期风险,你的工作速度应该保持不变,完不成,就让项目延期。如何解决延期问题?那是领导的事情,不是一个小码农应该操心的。


没怎么压工时,但把工作时间延长了?



  • 首先,工作该是什么速度,就是什么速度,不要替领导着急着赶进度

  • 其次,反馈这有延期风险,建议领导增派人手。(记得先和其他成员通个气)

  • 该提加班就提加班,调休或加班工资是你应得的,累了就调休,你是人,不是机器


为什么要给自己留缓冲时间?加缓冲时间是工作不饱和?



  • 加缓冲时间不是工作不饱和

  • 8小时工作日,你不可能每分每秒都在写代码,谁也做不到。

  • 你不可能熟悉每个API,总有要你查资料的时候,而查资料,可能你查了4-5个地方,才总结出正确用法,这需要额外的时间

  • 你的工作随时可能被人打断,比如:开会,喝水,同事问你问题等等,这都会耗费你的时间

  • 你拉取代码,提交代码,思考实现方式,和业务进一步确认需求细节,和UI沟通交互细节,自测,造mock数据,这都需要时间

  • 如果没有缓冲时间,一个任务延期,可能会导致,后续N个任务都延期。

  • 即使从项目角度分析,足够的缓冲时间,有利于降低项目延期风险


工作总是被人打断怎么办?



  • 比如:开会,比如插入了一个紧急工作任务,这种较长时间的打断,那就将这些被占用的时间,写进工作日志,即时向项目组反馈,要求原本的工作任务加工时或延迟开始

  • 被同事问问题。几句话能说清楚的,那不妨和他直说。几句话说不清楚的,那只能等你有空的时候,再给他解答。要优先考虑完成自己的工作任务。


大方的承认自己的不足,能力多大,就做多少事,明确自己的定位


可能有的小伙伴,可能被别人激一下,被人以质疑的语句问一下,后续就被人牵着鼻子走了。有很大因素是因为不敢承认某方面的工作能力暂有欠缺。其实大方的承认即可,有问题,那就暴露问题,如果项目组其他成员会,那就让他来教你,这也属于沟通协作。如果没人会,那说明这是一个需要集思广益的公共问题。


可能有同学觉得自己就是个小码农甚至因为自己是外包,不敢发表自己的想法和见解,其实大可不必,只要你就事论事,有理有据,完全可以大方说出来,你不说出来,你永远只能从自己的角度看这个问题,你无法确认自己是对的还是错的。错了咱改,对了继续保持。既不贬低别人,也不看轻自己,以平常心讨论即可。


明确自己的定位,就是个普通码农,普通干活的,项目延期了,天塌了也是领导想办法解决。自己不会的就反馈,别人不会自己会的,那就友好分享。不会的,不要羞于请教。干不过来了,及时告知领导,让其协调解决。坦坦荡荡,不卑不亢。


前提



  1. 此方法是在没有技术阻碍的前提条件下预估,如果有技术障碍,请先解决技术阻碍

  2. 此方法需要根据个人实际情况调整

  3. 这里以普通的以vue,element-plus,axios为基础技术的管理系统为例

  4. 这些都是个人见解,欢迎在评论区提出不同观点

  5. 请先以一个普通的CRUD界面,测算自己的基本编码速度


为啥评估会不准确


自我评估时





领导给你评估时

功能领导认为的领导忘记的领导认为的时间实际时间
加个字段加个显示字段而已,实际只要3分钟吧码农要找到对应代码,查看代码上下文,或许还涉及样式的修改,后端接口可能还没有这个字段, 还要自测20分钟2小时
做个纯列表页面前端只要把后端的字段显示出来就好了吧,肯定会很快可能没有直接可用的组件,即使有,前端可能需要查组件文档,看具体用法, 还得处理loading状态,空状态,然后还得查看后端接口文档,看哪些字段需要额外处理,最后还得自测,甚至可能在真正对接前,需要自己造mock接口2小时8小时
编辑/新增界面就写个表单,前端把数据提交给后端就完事了前端需要理解业务逻辑,需要做数据校验,对于类似下拉数据,图片上传,可能还要和后端沟通,数据从哪里取,分别表示什么意思,怎么上传图片,提交数据后,成功后要怎么做,以及失败的异常处理,用户填了一半数据之后,刷新了界面,应该如何处理,后端接口没出来前,需要自己mock接口,用来自测4小时3天
一个响应式界面就一个普通界面应该不至于有什么难度吧忽略了这是一个响应式界面,前端需要与UI设计师沟通,确认在不同情况,界面如何响应,以及思考如何实现,如果业务数据还会对界面的响应式产生影响,那还得进一步深入分析8小时3天
实现多语言功能多语言,不就是用编码代替原本的文字嘛,根本不需要额外的时间处理吧前端需要考虑多语言数据从哪里来,多语言切换之后对原本布局的影响,多语言切换之后,表单错误提示的处理方式不给额外时间3-4天
做个3/4环直接使用图表插件,调下API就出来了前端可能需要进行数据转换,需要查看图表插件的文档,图表插件可能没有现成的,需要通过搜索引擎找类似的示例,然后模仿实现,甚至图表插件根本无法实现这种效果,需要用其他技术实现3小时4天
前期一个连续的类似界面上一个界面和这个类似,把上个界面的代码复制过来,改改字段和接口,应该能很快完成很多界面看着一样,但实际业务逻辑差别很大,只是界面表现形式类似,有些字段是动态显示/隐藏的,有些可以固定写,表单字段的验证逻辑,可能也不一样。并且上一个界面的代码都还没写,还没测试,这里还有很多不确定因素,直接复制还可能导致,同一个错误,在多个界面同时出现2-3小时前一个界面花了多久,这个界面可能还是花了差不多的时间
仿照xx官网的效果,做个静态界面好多网站都是这个效果,这应该是烂大街的效果吧某个效果可能是知识盲区,需要查资料2天1周,甚至可能做不了
参考公司内部其他系统界面,实现类似界面现成的东西,这系统也上线好久了,应该把代码复制过来,稍微改改就OK了吧当前这个人从未接触过这个系统,对这个系统一点都不了解,了解需要时间,可能另外的项目有自己的框架,和当前系统的框架不同,无法直接使用, 另外一个项目无法直接给项目代码给你,只能让人给你讲解,但讲解人没时间或不是随时都有时间,或就是随意讲讲,另一个项目的这个界面,可能是经过多人集思广益,多轮讨论与重构才最终得到了这个效果5小时3-5天
用低代码平台实现个界面就是拖拖组件的事情,代码都不用写,应该很快组件可能没有,有组件可能某些业务逻辑在这个低代码平台难以实现,需要咨询低代码平台的提供方,但低代码提供方,几个人需要服务几十个人,无法优先给你解答,即使解答了,可能给出的方案不通用(或者他们还需要继续问他们内部团队的人),遇到下个类似的情况,原来的解决方案又无效了。难以调试或无法调试,前端原本的知识储备,在低代码平台,仅剩原始的js语法有效2天3周

总原则



  • 不要duang的一下,对整个界面/模块进行评估,应该对行列,表单项,逻辑点,进行评估,然后将总的时间加起来,就是这个界面的预估工时

  • 要至少多估20%的时间,一个是因为你很难持续性的投入(比如:有人突然问你问题,上厕所,喝水,或有事请假)

  • 请将一天的工作时间最多算6.5小时(因为你可能需要开会,可能被其他事情打断,可能有时不在状态,同时也算是给自己留点思考时间)

  • 尽量不要在过了一遍需求之后,立马评估工时(不要被项目经理或业务的节奏带偏),而是要自己再思考一遍需求,想想大概的实现逻辑,重难点等等,尽量不要当天给出工时评估

  • 如果是给别人评估工时,那尽可能给别人多评点工时

  • 工期紧的时候,加人有必要,但1个人干7天的活,7个人未必能1天干完

  • 有公共组件和没有公共组件完成同样的功能,所需要的时间可能天差地别, 因此,请确保先完成公共组件的开发

  • 请先将业务逻辑理顺,把工作进行拆分,直至自己能正确预估的范围内


前端有哪些地方需要耗费工时



  • 思考实现方式

  • 静态UI界面还原与响应式

  • 业务逻辑实现

  • 动态UI交互

  • 后端接口mock

  • 后端接口对接

  • 自测


前端项目应该分成几步实现



  1. 整体项目搭建以及规范与约束确认

  2. 整体页面结构,路由结构搭建

  3. 统一UI风格,以及公共组件实现

  4. 具体的界面实现


1,2点应该由项目组长完成
3点应该由项目组长以及技术较强的组员共同完成


常见的公共组件工时

组件工时
查询按钮60 分钟
提交按钮60 分钟
confirm按钮60 分钟
下拉按钮60 分钟
分页表格360 分钟
JSON配置分页表格240 分钟
动态表单360 分钟
JSON动态表单360 分钟
模态框90 分钟
抽屉组件90 分钟
select组件90 分钟
tree组件120 分钟
cascade组件90 分钟
日期选择组件60 分钟
日期范围选择组件120 分钟
axios封装360 分钟
卡片组件60 分钟
面包屑组件60 分钟

列表页拆分与编码工时预估




首先做总体拆分,分成3大部分



  1. 头部的搜索表单

每个表单项30分钟左右,每个功能按钮40分钟左右


因此这里是1个表单项(30分钟),2个功能按钮(80分钟),总计110分钟



  1. 中间的工具栏




P.S. 这里没算右侧工具条,只算了左侧功能按钮


因为是列表页,添加角色这个按钮,只考虑是个简单按钮加个点击事件,至于点击按钮之后的角色添加界面的工时不放在列表页评估,而是在添加角色界面单独评估,因此添加角色按钮算30分钟


批量操作按钮,应该使用公共组件的下拉按钮组件,以及与分页表格组件配合实现,因此算40-60分钟


因此这里整体应该总计在70分钟内



  1. 主体的分页表格




应该使用公共组件的分页表格组件实现



  • 普通列(直接显示字段值的列,和简单转换的列)每列算20分钟

  • 操作列按每个操作按钮另算

  • 复杂转换列按40-60分钟算

  • 排序列按40-60分钟算

  • 分页表格组件调用30分钟


从界面看,这里有6列,checkbox列和序号列,是分页表格组件实现的,无需再算工时,除操作列和创建时间外,其他都属于普通列算20分钟每列,创建时间列算40分钟,因此总共100分钟


操作列角色成员,角色权限和修改,都需要打开一个抽屉界面(抽屉界面里的东西另算,不算在列表页中),删除需要调后端接口以及确认,因此



  • 角色成员按钮: 20分钟

  • 角色权限按钮: 20分钟

  • 修改按钮: 20分钟

  • 删除按钮: 30分钟


总计: 100 + 20*3 + 30 = 190分钟


因此整个列表页工时


列表页需要mock 1个接口,列表接口,算20分钟


110 + 70 + 190 + 20 = 390 分钟 = 6.5小时


再在390分钟的基础上再多加20% = 390*1.2 = 468 分钟 = 7.8 小时


P.S.



  1. 添加角色/角色成员/角色权限这是独立界面,需要单独计算时间。计算方式也与上面的类似

  2. 没有单独计算自测时间,个人认为理想情况应该对1个界面,加2-3小时自测时间

  3. 没有计算联调时间,联调时间应该另算

  4. 没有计算UI还原时间,对于复杂UI界面或UI还原度要求高的界面,应该单独计算UI还原时间

  5. 对于复杂的业务逻辑,可以将业务逻辑拆解为一条条的业务逻辑项,每个业务逻辑项以40分钟左右每条作为参考实现时间

  6. 没有考虑思考时间,对于复杂的业务逻辑,或者没做过的界面形态,或者复杂的界面形态等,必须将思考时间计算进来,或者说,在已经基本想明白怎么去实现的基础上,再去评估工时


被误解的敏捷开发模式

错误的敏捷开发




  • 敏捷开发就是强调一个快字

  • 敏捷开发就是不断的压榨工时

  • 敏捷开发就是不停的加班


正确的敏捷开发



  • 测试在项目之初就介入,编写完测试用例之后,共享给开发,方便开发自测

  • 将一个完整的项目进行合理拆分,拆分为若干独立小迭代

  • 每个小迭代完成之后,进行提测以及收集用户试用反馈,尽早反馈,以及尽早发现问题

  • 在小迭代提测期间,应该让开发略作修整(改bug或修整)和总结(总结共性问题,避免下阶段,再重复出现这些共性问题),而非让开发立马进入下阶段开发,否则容易造成,开发一边赶下阶段需求,一边赶上阶段bug

  • 个人认为敏捷开发,重点在于敏捷,灵巧好掉头,分阶段交付,及早发现问题,拥抱需求变化。而非简单的抽着鞭子让程序员加班赶工996或007


相关文章


作者:悟空和大王
链接:https://juejin.cn/post/7330071686489636904
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

收起阅读 »

情人节即分手,FreeNginx 来了

时间线 2019 年 3 月 11 日,F5 Networks 宣布以 6.7 亿美元收购 Nginx。 2022.01.18, NGINX 创始人 Igor Sysoev 从 NGINX 和 F5 离职:“Igor Sysoev 选择离开 F5,以便将...
继续阅读 »

38d432781be446559f99d3d139ef6be7.png


时间线



2019 年 3 月 11 日,F5 Networks 宣布以 6.7 亿美元收购 Nginx。




2022.01.18, NGINX 创始人 Igor Sysoev 从 NGINX 和 F5 离职:“Igor Sysoev 选择离开 F5,以便将更多的时间留给陪伴家人和朋友,以及个人项目。感谢他所做的一切让全世界的网站变得更好。”




在 2024.2.14 情人节这天,作为 nginx 的长期核心开发者之一,马克西姆-杜宁(Maxim Dounin)宣布创建一个名为 Freenginx 的新分叉项目。



他在宣布 Freenginx 时说道


"你们可能知道,F5 于 2022 年关闭了莫斯科办事处,从那时起我就不再为 F5 工作了。 不过,我们已经达成协议,我将继续作为志愿者参与nginx开发。在近两年的时间里,我一直致力于改进nginx,免费为大家提供更好的nginx。
不幸的是,F5一些新的非技术管理人员最近决定干涉nginx多年来使用的安全策略,无视策略和开发者的立场。


这很好理解:他们拥有这个项目,可以对其做任何事情,包括以市场为导向的行为,无视开发者和社区的立场。 不过,这还是与我们的协议相矛盾。 更重要的是,我无法再控制F5内部对nginx的修改,也不再将nginx视为一个为公众利益开发和维护的自由开源项目。


因此,从今天起,我将不再参与F5运营的nginx开发。 取而代之的是,我将启动另一个项目,由开发者而非公司实体运行。


目标是使nginx开发不受公司任意行为的影响。 欢迎提供帮助和贡献。 希望大家都能从中受益。


freenginx.org上的简短声明



freenginx.org的目标是使nginx的开发不受任意公司行为的影响。



image.png


开源和商业


利益与目标不同决定了开源项目的不同发展方向,这不好评说好坏对错。



作为商业公司,F5毕竟真金白银花了那么多钱拥有了nginx,全职人员的成本付出,这肯定需要往商业化方向考量,希望能找到商业与开源的平衡。




Maxim Dounin 有着开发者的自由理想园,站在开发者和开源使用者的角度看开源项目的发展,nginx 能更开放更自由,方向由社区掌控。也希望 freenginx 能发展顺利。



oracle-jdk vs openjdk, mysql vs mariadb, 现在有了 nginx vs freenginx, 我们现在可以开始关注 Freenginx 的未来发展,看未来有多少其他开发者会专注于这个新的分叉。


Nginx 擦边广告,使用 HertzBeat 快速监控 Nginx



HertzBeat 是一款我们开源的实时监控系统,无需Agent,性能集群,兼容Prometheus,自定义监控和状态页构建能力。github.com/dromara/her…




它支持对应用服务,应用程序,数据库,缓存,操作系统,大数据,中间件,Web服务器,云原生,网络,自定义等监控。下面广告演示下如果使用 HertzBeat 快速监控 Nginx 服务状态。



1. 部署 HertzBeat


docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat tancloud/hertzbeat


2. 部署 Nginx


本地部署启动 Nginx, 默认监控 Nginx 可用性,若监控更多指标,则需启用 Nginx 的 ngx_http_stub_status_modulengx_http_reqstat_module 监控模块


参考文档:hertzbeat.com/zh-cn/docs/…


3. 在 HertzBeat 添加 Nginx 监控


访问 HertzBeat 控制页面,在 应用服务监控 -> Nginx服务器 添加对端 Nginx 监控,配置对端IP端口等参数。



确认添加后就OK啦,后续我们就可以看到 Nginx 的相关指标数据状态,还可以设置告警阈值通知等,当 Nginx 挂了或者某个指标异常过高时,通过邮件钉钉微信等通知我们。





10分钟搞定,快来使用 HertzBeat 24小时自动观测你的 Nginx 状态


在 Github Star 我们!


github.com/dromara/her…


gitee.com/dromara/her…



部分内容来源于 http://www.msn.com/zh-cn/chann…



作者:Dromara开源社区
来源:juejin.cn/post/7335089578321854498
收起阅读 »

2024年,为啥我不建议应届生再去互联网?

最近快过年了,和还留在成都的一些研究生同学吃了顿饭,其中博士姐姐因为今年刚刚毕业,所以在饭局里面还跟我们谈了一下今年的师弟师妹们的去向。 她说今年虽然就业挺难的,但是师弟师妹们的工作还都挺好的,有去成飞的,有去选调的还有去了一些大国企研究所的。然后我就问今年没...
继续阅读 »

最近快过年了,和还留在成都的一些研究生同学吃了顿饭,其中博士姐姐因为今年刚刚毕业,所以在饭局里面还跟我们谈了一下今年的师弟师妹们的去向。


她说今年虽然就业挺难的,但是师弟师妹们的工作还都挺好的,有去成飞的,有去选调的还有去了一些大国企研究所的。然后我就问今年没有去互联网的吗?她说有哇,有学弟去了美团,钱还开得挺多的,有学弟去了个独角兽做算法,但是也就这两个人去了互联网相关的了。


其实听到这个我还是蛮感慨的,在我毕业的时候互联网还是如日中天,大多数计算机毕业的孩子首选的就是去互联网狠狠的大赚一笔。短短3年间,去互联网的应届生就屈指可数了,一方面是这两年互联网大厂缩招严重,进互联网没有我们当年那么容易。另一方面是,在大环境不容乐观的今天,以及互联网增长见顶的背景下,互联网的工作其实已经不是应届生的首选工作了。


实际上,即使在今年你能过千军万马杀出重围拿到互联网的offer,作为一个过来人我也不是很建议你再去趟互联网这趟浑水。因为,作为一个新人在一个注定下行的行业当中,你可能搭上的不是通往财富自由的快车道,很快你需要考虑的可能就是你还能不能保住你手头的这份工作的问题。


说一个老生常谈的事情,互联网的增长确实见底了,阿里、腾讯、网易的股票最近狂跌,阿里都跌回2014年了,只有抖音还依然坚挺一些但是依然看不到未来成长的空间。从2014年到2024年,正好十年的时间,互联网员工们加班加点996,熬夜爆肝的奋斗,最终的结果尽然是回到了原点。


其实,这个事情也并不奇怪,这些互联网大厂只是坐在电梯里面的人,他们都觉得自己能够取得成功是因为自己在电梯里面做俯卧撑。实际上,跟你在电梯上做啥没有关系,你之所以能够成功只是因为你恰好赶上了这班电梯而已,跟你在里面睡觉还是瞎折腾关系都不大。如今风停了,电梯开始往下走了,作为个体你非要去搭上这个末班车并且期待在踩在早就已经上电梯的这群人的头上的话,那么我只能跟你说,祝你好运了。


其实,作为一名应届生的时候我对职场也没有清醒的认识,以为职场上的同事和学校的同学一样大家和和气气不争不抢的。但是,正是抱着这样的心态我入职了互联网之后的短短一年时间内,才深刻感受到了社会的毒打和职场真实的样貌。所以,我不知道在学校的应届生们有没有做好准备在互联网面对全方位的竞争,这种竞争不仅仅是技术,不仅仅是加班,更是向上管理和领导处理好关系。和国企、外企、体制内不一样,互联网的大多数公司是有强制末尾淘汰的,有些公司甚至连新人保护期都没有,那么你觉得你作为一个活蹦乱跳的应届生,这个名额是老油条扛呢还是你呢?


另外,以前的人扎堆朝互联网冲是因为真的有财富自由的机会的,那时候啥app都没有,张小龙找几个应届生关小黑屋都能写出未来的国民级app微信。16年的字节也还是个小公司,那时候往互联网里面冲的话搞不好真的可以一年能够赚到别人一辈子赚不到的钱,所以去互联网真是一点儿问题都没有。你那时候不去互联网我都会拿着鞭子抽你,劝你上进一点儿!但是都2024年了,市场永远比个人知道一个方向的未来,还是那句话你想创业互联网都拉不到风投的年代,你还能奢望能够实现财富自由吗?


The End

其实作为一名程序员还是挺享受写有趣代码的过程的,也希望做一点儿东西能够被大家认可,所以我劝退互联网但是并不是劝退计算机。


即使是Chatgpt大行其道的今天,我也不认为未来某一天机器能够真正意义上取代程序员,要取代也是从另外一个维度上取代,比如说根据需求直接生成机器码而不是生成代码的这种形式。虽然互联网是一片红海,但是像新的技术VR、物联网、工业软件、芯片和智能机器人等行业,在我们国家还是蕴含着无限机会的。但是,我并不认为去到我上面所说的这些行业工资收入上能够超过现在的互联网大厂给出的工资,我的意思真的有想法的人可以尝试在这些领域去找到自己的一席之地,尤其是在校学生。


你去卷一个注定下山的行业无论它钱给多少都是毫无意义的,因为入职就可能就是你职业生涯的巅峰。相比起来,我觉得华子未来比这些靠着广告赚钱的公司都更有前景,因为是真的有一些核心技术在的。


所以,选择一个还没有走过巅峰的行业,提前布局才是更有未来的职业选择。


作者:浣熊say
来源:juejin.cn/post/7327447632111419443
收起阅读 »

打工人回家过年:只想休息,讨厌拜年、走亲戚、被催婚

本文来自公众号 成功同学 大家好,我是杨成功。 昨天楼下吃饭,听到一个女孩在打电话,声音很大,听起来很生气。 原因是父母让她过年回去的时候给亲戚带礼物,女孩不愿意,和父母吵起来了。 女孩说:“今年本来就没攒下钱,回家来回的车票就花了一大笔,给你们带礼物也花了...
继续阅读 »

本文来自公众号 成功同学



大家好,我是杨成功。


昨天楼下吃饭,听到一个女孩在打电话,声音很大,听起来很生气。


原因是父母让她过年回去的时候给亲戚带礼物,女孩不愿意,和父母吵起来了。


女孩说:“今年本来就没攒下钱,回家来回的车票就花了一大笔,给你们带礼物也花了不少,为啥非得给亲戚带礼物?你们别光考虑你们的面子,能不能考虑一下我,年后还要交房租...”


听到这里,我心里一痛。


作为一个资深北漂,我被戳中了。


很多人以为呆在北上广的人光鲜亮丽,实际上也只是两点一线的打工人;看起来钱赚的不少,实际上开销大到离谱,一年到头剩不下多少。


今年互联网裁员潮,一片一片地裁,搞的大家人心惶惶。好几个朋友上午还在开心地写代码,下午就被请到会议室喝茶。


有些拿不到赔偿的伙伴年底还在跑仲裁,真的很不容易。


如果连父母都不能理解的话,我实在不敢想象,这个女孩回家过年的压力有多大。


前几天有一条热搜:为什么年轻人不愿意回家过年了?


年轻人不愿意回家过年,很多父母的第一反应是不孝顺,白眼狼,在外面呆野了。


哎,谁不想回家过年啊,不回去肯定是不开心,而且不是一点点不开心,是压力重重。


可能父母认为,孩子回家过年就图个热闹,到七大姑八大姨家串门拜年,见一见亲戚朋友兄弟姐妹,喝酒吃肉聊天,好不开心。


其实不是的,真不是。就拿我来说,我回家只想睡觉嗑瓜子看电视,不洗脸不洗头谁都不见,同学聚会我都不想去。除非是几个关系极好的发小,其他任何社交局都是负担。


除了社交压力,还有经济压力。


像开头说的那个女孩一样,回一趟家要花车票钱、礼物钱、亲戚孩子压岁钱、给老人钱。赚钱了还好,如果一年没赚钱,这些人情开销就是一笔负担。


累了一整年,只想回家休息,好好过个年,结果还要看钱包。


当然还有催婚压力。


像我这个年纪,马上奔三的人,过年回家见个人就是“找对象了没”。我家人比较开明,最多开玩笑问一句,亲戚朋友问就是“明年”。


但我知道很多朋友、尤其女性朋友,过年催婚会把人逼疯。


有些父母的催婚极其致命:“快三十了还不结婚,过了三十谁要你?你不成家我都没脸出门;人家谁谁都二胎了,你到底想咋样?你对得起...”。


现在是 2024 年啊,找对象的难度不比打工挣钱低。如果再和父母吵上一架,这个年过的还有啥意思。


这一层层的压力,早把年轻人回家过年的热情打散了,过个年比上班还累。


现在能理解为啥年轻人不回家过年了吗?


对父母来说,如果孩子愿意回家过年,就别要求那么多了,人回来图个开心就好。


如果孩子在读大学,回家后就是想享受一下。你就让他睡到自然醒,让他每天蓬头垢面打游戏看电视,反正呆不了几天。


如果愿意出去走亲戚,那就带上,不愿意也别勉强。更不要动不动就要求上酒桌,给长辈敬个酒,还得提一个,真的很尴尬。


如果孩子在上班,一年已经很累了,她回家可能只想休息。父母们管好自己的嘴,少催婚,少安排相亲,少要求这要求那。


更不要说谁谁家孩子赚了多少钱,谁谁家都抱孙子了。这样大家都不舒服,开开心心过个年不好吗?


可能会有父母认为:我不催她都不上心。


想想上学的时候,天天盯着学习,不能上网,不能找对象,不能玩这玩那,结果考上985了吗?


结婚这事催不得,终身大事,你不能随便拉一个就领证吧,现在又不是70年代。


如果逼的太急,很可能孩子明年就不回来过年了,骂也没有用。


社会压力大,年轻人不比上一代轻松。多一点体贴关照,少一点要求,开心过年。


车上没网,有感而发,到此为止。


祝各位假期快乐,新年快乐。


作者:杨成功
来源:juejin.cn/post/7332293353197748258
收起阅读 »

年会结束,立马辞职了!

那是发生在多年前的一件事,当时我也是在那家公司做 Java 开发。公司很大,大到去了很长一段时间都感觉毫无存在感。 那年年会,作为技术部的我,依然被安排到一个比较边缘化的桌子,这么多年走来,早已经习惯了这样的安排。 可能只有我们做技术人的心里才会觉得“技术牛逼...
继续阅读 »

副本_最后一天__2024-02-06+18_22_58.jpeg


那是发生在多年前的一件事,当时我也是在那家公司做 Java 开发。公司很大,大到去了很长一段时间都感觉毫无存在感。


那年年会,作为技术部的我,依然被安排到一个比较边缘化的桌子,这么多年走来,早已经习惯了这样的安排。


可能只有我们做技术人的心里才会觉得“技术牛逼,技术万岁!”,但在公司领导层看来,这技术研发部就是整个公司开销最大的一个部门,又不能直接产生效益,但开除了又不合适,还要靠他们干活呢,这真是一件即讽刺、又无奈的事儿啊。


说回正题,那年公司所有人依旧是尴尬的、极不情愿的、又不得不碍于情面凑在一起,听完了所谓的又毫无意义的年终总结,然后又敷衍的敬完酒之后,才能装模作样的挥手告别亲爱的同事。


我之所以,要等待年会的第二天才告诉我的顶头上司“我要离职”的主要原因是,年会的时候才给大家集中发年终奖。


我也是领到钱之后就不装了,我摊牌了,第二天就找到了领导,告诉他,我要离职了。这个时候上司也知道你的心思,话已经收出来了,尤其是离职的事,大概率是劝不回来了,毕竟覆水难收。大家都是明白人,寒暄了几句之后,就签了离职的申请。


工作就像谈对象,合不来也没必要勉强。那时候开发的行情还很好,出去面试 4 家公司,最少也能拿 3 个 Offer,所以跳槽基本都是裸跳,一副此地不留爷,自有留爷处的傲娇姿态。


然而,年终奖是拿到手了,新工作也很快又着落了,薪资每次跳槽也能涨到自己满意的数,但干着干着发现,好像还是原来的配方,还是原来的味道,好像也不是理想中的工作嘛。


于是,在周而复始的折腾中才发现,只要是给别人上班,永远不会有理想中的工作,因为上班的本质是你替别人办事,别人给你发薪水,工作从来都是简单的雇佣关系,那来的别人要为你的理想来买单嘛,这本来就不合理,只是想明白这点时,以是上班了十年之后(此处可见自己的笨拙)。


理解了这点之后,我才发现,给任何公司上班的区别不会太大,无非是钱多钱少、活多活少、周围人好相处与否的细微差别,但碍于生计,又不得不苟延残喘的上下班,这可能是大部分打工人的真实感受和现状了。


但即使这样,你依然会发现,你的岗位正在被新人所替代,你的选择也变的越来越少,你的挣钱能力也变的越来越弱,这可能就是所谓的“中年危机”吧。所以说“中年危机”这个词,不是那个行业的专属名称,而是所有行业共性,那要怎么解决呢?


三个小小的建议:



  1. 尽量不要买房:不要和自己过不去,买房一时爽,还贷“火葬场”。我有一个朋友,一个月 2.1W 的房贷,生活中哪怕有一点点小小的变动,对于他来说都是不可承受之殇。“如履薄冰”也不过如此吧?

  2. 培养自己的第二职业:找到自己感兴趣点,并且它能帮你长久的带来经济收益最好,不求大富大贵,只要能够日常开支已经很不错了。任何时候有准备都比没准备要强很多。还有,在做之前,不要怕起步晚、进步慢,只要肯坚持,终会有收获。路虽远,行则将至;事虽难,做则必成。

  3. 提升自己主业的能力:任何时候,提升自己主业的能力,都是收益最大的投资,也是最明智的投资,当你看不清前进的道路时,当你感觉人生黯淡无光事,唯有干好自己目前本职的工作,才是最优的选择,这也能让你为以后的新计划积攒足够的能量。


最后,愿新的一年里:奔赴热爱、享受自由,找到自己热爱的事,并为之努力。加油,XDM~


作者:Java中文社群
来源:juejin.cn/post/7332227724801753140
收起阅读 »

整理下最近做的产品里 比较典型的代码规范问题

前言 最近负责了一个产品的前端代码Code Review的工作,90%代码是从之前做过的一个项目merge过来的,由于当时开发周期紧张,没有做好足够的Code Review流程,导致代码质量很差,而产品的代码质量要求就很高。 前端开发30个左右,技术经验高的1...
继续阅读 »

前言


最近负责了一个产品的前端代码Code Review的工作,90%代码是从之前做过的一个项目merge过来的,由于当时开发周期紧张,没有做好足够的Code Review流程,导致代码质量很差,而产品的代码质量要求就很高。


前端开发30个左右,技术经验高的10年左右,低的2-3年,经过几轮的code review,整理几个比较常见,比较典型的例子,简单的总结下。


ESLint


首先,可以引入 ESLint 静态代码检测工具,它可以保证高质量的代码,尽量减少和提早发现一些错误。同时也支持IDE自动检查提示。


具体可以参考之前的文章:
ESLint配合VSCode 统一团队前端代码规范


IDE Format


当然也离不开Code Format格式化,需要配置一套固定的Format格式,保证团队内所有代码格式化统一。


我不太喜欢 Prettier 的换行机制,弄得大片大片的换行,可读性也差。团队大多用的VSCode,所以就用VSCode内置的Format功能,再加下可配置项,这样只要用VSCode开发,就会默认使用统一的代码格式化。


具体可以参考之前的文章:只用VSCode自带的Format功能,满足可配置的代码格式化需求


代码规范及习惯


下面介绍一些团队内经常遇到的代码规范、质量问题,还有一些很不好的开发习惯。


大小写



  1. 常量名:都大写或首字母大写;

  2. 变量:首字母小写,驼峰;

  3. dom id:全小写

  4. class name:全小写

  5. React router path:全小写,路由跳转的url一样。

  6. React 组件名(类\函数):大写开头,驼峰,尽量与文件名一致(除了index.jsx)


catch


这里一般是指请求后台api的catch,而且common已经封装好了fetch方法,并处理了公共异常,比如根据status提示不一样的提示语弹框:



  1. 由于common有封装,大多情况下不需要业务加catch处理;

  2. 如果有catch,必须要求throw,原因:

    1. throw会让程序中断,就是说不会再继续执行后续代码;

    2. F12 console里会打浏览器默认的error log,非常必要。



  3. 如果加了catch或finally,一定要测下程序走到这里的case,并想想是否有必要加。


减少非必要的可选链操作符 (?.)


产品里经常用到的操作符,用的很无脑,经常遇到这种代码:


// 1
const a = obj?.a?.b?.c?.d;

// 2
<div>{this.state?.name}</div>

// 3
const arr = list.filter(item=> ...);
if (arr?.length) { ... }

// 4
if(item.a) { ... }
fn(item?.b);

// 5
if (item) {
fn(item?.b);
}


  1. 如果变量或属性不能是空,不要加问号;

  2. 假如一个后台返回的值,不能是空,空就是bug了,这个时候前台加了问号,如果真有bug,就不容易发现了(反之会直接console抛错,很容易发现)

  3. 理解其原理用法,想想如果真是空,对后续是否有影响?这个值是否可能是空?

  4. 不要盲目加,有个点儿就加问号。

  5. 另一个目的:增加代码可读性,维护性。


common 控件属性


在使用common或第三方控件时:



  1. 一定要理解每个属性的作用,以及默认值;

  2. 不必须要设置的属性,不要设置;

  3. 如果属性有默认值,而且你用到的也是默认值,有些情况是不要设置的;

  4. 目的:方便维护,增加可读性。


sessionStorage 和 localStorage


思考两个问题:



  1. 是否真的了解两者的区别以及作用?

  2. 你是否真的需要它们?


async await


这里对于新手,会有很多不正确的用法,但代码运行没问题,只是用法不规范:



  1. 使用之前,一定要弄懂async await是做啥用的,不要滥用、乱用。

  2. 很多地方是不需要用的。

  3. 下面举例几个错误用法:


fn = async () => {
// 整个方法内部都没有用到await
}

fn = async () => {
return await request(); // 不需要加async await
}

fn = async () => {
const result = await request();
return Promise.resolve(result); // 可以直接return
}

深拷贝



  1. 例如:JSON.parse(JSON.stringify(obj\array))

  2. 有些开发会用的很频繁,很无脑,有很多情况下,浅拷贝就可以满足、或者根本不需要拷贝的情况下就使用了,造成了很多额外开销。

  3. 需要理解 引用类型、浅拷贝、深拷贝 三个概念。


React Hooks


这里指React官方提供的Hooks,比如 useEffect useCallback useMemo memo 这几个“常用”的。


发现业务中使用的很频繁,这里简单说下我的理解:



  • useEffect:注意第二个参数 deps,有些情况下,不是所有用到的参数都加到 deps里,会导致bug。

  • useCallbackmemo:大多数地方都是不需要的使用的(90%以上)。

  • useMemo:复杂逻辑可以用,其它情况不需要。

  • 以上,如果用的不对,反而会导致 业务bug负优化,甚至 反向优化

  • 这里说的比较浅,总结一个大致结论,详细说明网上很多。


如果提升代码经验和意识


简单总结几点:



  1. 写代码时要多问、多想、多调,不要功能好事了就完事了。

  2. 多看别人写的代码,比如团队内级别高的开发、网上大佬写的、第三方源码。

  3. 多review自己写过的代码,并优化。


总结


本文写的比较杂、也都比较浅,因为涉及到的知识点、经验太多了,不是三言两语就能说明白,详细的重要的点,也会在后续文章中详细讲解。


作者:Mark大熊
来源:juejin.cn/post/7235109911780311101
收起阅读 »

文档都写不好,当个屁的架构师!

大家好,我是冰河~~ 最近有很多小伙伴,也不乏身边的一些同事问我:哎,架构师为什么要写这么多文档啊?有啥用呢?不能跟开发一样多写写代码吗?天天写文档,又感觉自己的文档写不好,有什么写文档的技巧吗? 今天也正好看到一篇文章,就给大家统一回复下这个问题。 软件设计...
继续阅读 »

大家好,我是冰河~~


最近有很多小伙伴,也不乏身边的一些同事问我:哎,架构师为什么要写这么多文档啊?有啥用呢?不能跟开发一样多写写代码吗?天天写文档,又感觉自己的文档写不好,有什么写文档的技巧吗?


今天也正好看到一篇文章,就给大家统一回复下这个问题。


软件设计文档就是架构师的主要工作成果,它需要阐释工作过程中的各种诉求,描绘软件的完整蓝图,而软件设计文档的主要组成部分就是软件模型。


软件设计过程可以拆分成 需求分析、概要设计和详细设计 三个阶段。


在需求分析阶段,主要是通过用例图来描述系统的功能与使用场景;对于关键的业务流程,可以通过活动图描述;如果在需求阶段就提出要和现有的某些子系统整合,那么可以通过时序图描述新系统和原来的子系统的调用关系;可以通过简化的类图进行领域模型抽象,并描述核心领域对象之间的关系;如果某些对象内部会有复杂的状态变化,比如用户、订单这些,可以用状态图进行描述。


在概要设计阶段,通过部署图描述系统最终的物理蓝图;通过组件图以及组件时序图设计软件主要模块及其关系;还可以通过组件活动图描述组件间的流程逻辑。


在详细设计阶段,主要输出的就是类图和类的时序图,指导最终的代码开发,如果某个类方法内部有比较复杂的逻辑,那么可以将这个方法的逻辑用活动图进行描述。


我们在每个设计阶段使用几种UML模型对领域或者系统进行建模,然后将这些模型配上必要的文字说明写入到文档中,就可以构成一篇软件设计文档了。


由于时间关系,今天就跟大家聊到这里,后续给大家分享系统写架构文档的方法论。


好了,今天就到这儿吧,我是冰河,我们下期见~~


作者:冰_河
来源:juejin.cn/post/7330835892276838441
收起阅读 »

你要写过年,就不能只写万家灯火与团圆

昨天晚上八点过,下了地铁,走到出租屋的楼下,原本热闹的小区,也变得冷冷清清的,来到我经常吃肉沫粉的小店门口,小雨缠绵,透过那层破旧的透明胶纸,看到老板和老板娘在收拾行李。 我轻轻撩开胶纸,问老板还有吃的吗,他笑着说:兄弟,刚好还有最后一份,你来得正巧,卖给你后...
继续阅读 »

昨天晚上八点过,下了地铁,走到出租屋的楼下,原本热闹的小区,也变得冷冷清清的,来到我经常吃肉沫粉的小店门口,小雨缠绵,透过那层破旧的透明胶纸,看到老板和老板娘在收拾行李。


我轻轻撩开胶纸,问老板还有吃的吗,他笑着说:兄弟,刚好还有最后一份,你来得正巧,卖给你后我们就该回家了。


可以看出他们心中是很开心的,两个孩子也在不停叨唠:回家了,回家了。


老板做好粉给我端来,可能是最后一份,料加得特别足,我吃了一半就饱了,然后擦了擦嘴,给老板说了声新年快乐,老板和老板娘笑眯眯回了我一句:兄弟,新年快乐,明年见!


于是我就上楼了,往日上楼都有不少人在等电梯,今日五个电梯门都停在一楼,大家都回去过年了吧,再过两天,这个城市可能会更加冷清。


回到出租屋后,坐在桌子前,回想很多事情,我觉得可以动笔了!


一.“不想回家过年”的人


下班后,打了个滴滴去20公里以外的地方办点事,一上车和师傅就开始聊了起来,师傅问我还不回家过年吗?


图片


我对他说:还有好几天呢,除夕再回去。


我反问他:只有几天过年了,为啥还不回去过年呢?


他说道:平时跑车都没啥生意,过年生意好一点,多跑几天,和你一样也是除夕当天才回去。


他说好几天没遇到我这么大的单了,60块钱,平时都是10块,8块的,一天也就能跑两百块钱左右,最近一天能跑500左右。


我们在车上一直聊,聊他的年轻时进厂打工过年回家的时光,他14岁时就去浙江进厂,每年回家过年也就能带几千块钱过年,有一年从义乌坐了三天的大巴车回来,路上堵车,事故,经历“九九八十一难”才到家。


回来过年打了几天的麻将,几千块钱全部输完后,给家里要了几百块钱后,又灰溜溜地出门进厂了。这样的日子反反复复了六七年,一分钱都没存到。


后面觉得这样不行,于是家里给他说了个媳妇,还是卖了一块土地,才勉强把彩礼凑齐了。


成家后有了孩子,压力大了,于是就在家乡的县城干工地,一干就是十几年,直到35岁的时候,存了十几万块钱,2019年在县城首付买了一套房子。


没过多久,疫情就来了,他说没活干,收入彻底断了,但是房贷没有断,于是刷信用卡,借钱来还房贷,后面疫情稍微放开后,就想办法搞了一个二手车来跑,那会跑十几二十公里都很难拉到一个人,一天勉强能跑八九十块钱,勉强能够一家人吃饭,但是房贷还是要想其它的办法。


他说为啥不敢提前回去过年,就是因为还要还房贷,所以不敢松一口气。


聊了大概一个小时,一路堵车,我到站了,下车后他递了一支烟给我,说道:兄弟,很久没有和别人聊这么久了,新年快乐。


我也对他说了一句新年快乐。


我给了一个好评,并且打赏了十块钱。


是啊,我何尝不是很久没有和别人聊这么久了呢,我们都在自己该走的路上马不停蹄奔跑,一切还不是为了生活!


没有谁不想提前回家过年,没有谁不想回家看看父母,没有谁不想回家去感受热乎乎的饭菜!


可是回到了家,生活又该怎么继续继续呢?


二.想回家过年却回不了的人


上个月从广州回来,广州南站已经是人山人海了,那会朋友说抢回广西的票已经很难抢了,都不知道还能不能回去过年。


图片


这两天和在广东打工的朋友聊了下,他说根本抢不到票,不知道还能不能回家。


我打开了手机购票软件,全是暂无余票,建议抢票,抢到票的人是幸运的,但是抢不到票的人,此刻心中又是何种感受。


因为只有火车,高铁,大巴是中国大部分人能消费得起的,大部分根本不舍得买一张机票。


和滴滴师傅聊天时,他说他的哥哥和嫂子现在还在义乌进厂,由于抢不到火车票和高铁票,他们看了看机票,需要1400元,两个人就需要差不多3000多,这已经顶得上他们一个人一个月的工资了。


所以想了想还是不回了,打了几千块钱给家里的老人和孩子,让他们自己过年了。


可能下一次见到家中的老父母和孩子又是下一年了,不知道下次回家的时候,孩子看他们的眼神是不是会有一丝陌生,老人的眼神是不是又多了几分期待。


还记得在我小时候,父母在外省打工,过年的时候,他们背着很大的牛仔背包,里面有被子,衣服,只要能带回来的东西都带回来了,那时候父母还算年轻,但是回到家的时候我却感觉有点陌生。


因为长时间不见他们,当见到他们的时候,虽然心里很高兴,但是却一时表现不出来,反而会流下泪水。


我在农村看了太多这样的场景,爸爸妈妈在外打工,过年回来过年,孩子在门前呆呆坐着,叫了他几声都没答应,最后大哭了起来。


是啊,有谁能在几年时间里没见到自己的爸爸妈妈,当见到的时候能不大哭呢?


不过这就是中国大部分农村的实际情况,父母因为要赚钱回来修房子,供孩子上学,所以很多父母过年不舍得花费太多路费回来。


除了交通工具和回家路费的限制,还有很多因为工作不能回家过年的人,他们很想回来,但是却不能回来,他们有工人,有白领,有交警,有驻守边疆的战士......


此刻,不管你过年在厂区里面加班,在写字楼工作,在路上指挥车辆,还是在祖国的边疆驻守。


我都对你们表示尊敬,祝你们新年快乐!


三.不敢回家过年的人


总有人有家不敢回。


图片


可能网上的过年文案都是阖家欢乐,大团圆,但是在社会的深处,总有很多人不敢回家,或者不好意思回家。


远在深圳的朋友,和我聊天说不敢回家过年了,钱是钱没赚到,女朋友是女朋友没找到,回去面对逐渐变老的父母,心中不忍。


这几年赚钱是真的特别难,朋友在深圳搞销售,因为销售很不稳定,并且是个苦活,他一个月也就能赚几千块钱,除了花销,还要还债,就留不下几个钱。


后面觉得送外卖可能能多赚一点,但是送了不久,和别人电车又撞了,还受了伤,于是只能放弃,直接去找了一个工厂进。


我们大多数人总是看到大城市的繁华,以为都能赚到钱。但是大城市里面,大部分人都是拿着最微薄的工资,干着最累的活,最后还存不了几个钱。


可能你觉得在几十层的写字楼里面工作的白领都是年薪几十几百万,但是实际情况是,大多数都是几千块,每天通勤都是按小时来计算,加班后回到出租屋已经累趴,一趟就睡。


但是一年下来却赚不了几个钱,在亲人朋友的眼中以为你在大城市混得不错,但是苦只有自己知道。


所以带着这种压力和心理负担,很多人不敢回家。


还有一些怕回去被催婚,被相亲,被攀比,所以索性直接留在打工的地方过年,因为觉得自己不甘随便找个人结婚,不想去和谁比这比那,索性选择一个人留下来。


也许大年三十你看到了漫天的烟花,饭桌上丰盛的菜肴,但是总有人在没人看到的地方吃着泡面,烟花爆开的一瞬间,他的眼泪刚好掉下。


我经历过这样的日子,我曾看到别人团圆而自己孤身一人而落泪,也曾看到万家灯火而自己在黑暗中哭泣。


四.无家可回的人


总有人想过年,但是却没有家回的人。


图片


在我还是学生的时候,有一个朋友过年不知道去哪里过,他常年都在外面打工,过年的时候回来,我们在一起喝酒,一起聊天,但是到最后,每个人都回家了,他独自一个人去酒店了。


他父母在他小的时候就离婚了,并且父母都对他不管不顾,在他十几岁的时候就独自出门打工了,他已经没啥亲人了,所以回到家乡只是来找一个曾经的感觉。


还记得前两年,除夕的前一天我们在一起玩耍,我叫他和我去我家一起过年,他拒绝了,后面被另外的两个朋友硬拉着去他们家过年。


当时他的眼睛里面充满泪花,我从他的眼神里面看到了别人没有的坚强。


是呀,可能在我们的世界里,过年是个再寻常不过的日子了,但是在他的世界里,过年却是一件无法奢求的事情。


像我朋友这样情况的人还是比较多的。


不过我的朋友,请你相信,你失去的终究会翻倍给你偿还,你得到的会加倍给你馈赠。


---------------


行笔到此,心中百感交集。


过年是中国人独有的传统,在这个日子里面,是团圆,是喜庆,是期待……


按理这个日子应该用华丽的辞藻和温馨的言语来写。


但是在自己经历了很多事,看到了很多现实场景的时候,我无法动笔去写空洞的句子。


最后给“不想回家过年”,想回家过年却回不了,不敢回家过年,无家可回,无年可过的朋友们说一句,也给我自己说一句。


这个世界总有一盏灯会为你亮着,总有一个眼神,为你等待着。


新年快乐!


作者:苏格拉的底牌
来源:juejin.cn/post/7331940066960195584
收起阅读 »

什么样的领导值得追随?

俗话说:士为知己者死,女为悦己者容。作为一名技术人员,什么样的领导值得追随?今天就来一起聊一聊。 1. 有实权 权力意味着什么?哈哈,懂的都懂。纵观现在的互联网大厂,盘根错节,明争暗斗的利益团体一个又一个,所以你追随的领导一定要有实权,跟着有实权的领导,很容易...
继续阅读 »



俗话说:士为知己者死,女为悦己者容。作为一名技术人员,什么样的领导值得追随?今天就来一起聊一聊。


1. 有实权


权力意味着什么?哈哈,懂的都懂。纵观现在的互联网大厂,盘根错节,明争暗斗的利益团体一个又一个,所以你追随的领导一定要有实权,跟着有实权的领导,很容易获得优质,能拿结果的资源,晋升也就有了更好故事。大厂里一直流传着这样一句暗语:“代码写得好,不如 PPT做得好,PPT做得好,不如老板舔得好”。


如果你追随的领导形同虚设,在公司就很容易边缘化,在团队合作上也可能没有多大的话语权,试想,跟着这样的领导,前途在哪里?


2. 有能力


尽管**实权**在成败上起着决定性的作用,但是绝大多数的技术人员都比较单纯,不愿意参与那种复杂的权利争斗,而且,技术人,能力才是立足之根本。因此,需要选择有能力的领导,要和强者一起赛跑。有能力的领导可以让你快速的学习,快速的成长,对于未来的职业发展才能做到进可攻,退可守。


有能力主要体现在下面几点:



  1. 技术和业务能力,是团队的一个指明灯;

  2. 能辨才,领导一定要能掌握团队成员的优缺点,在项目上能够根据各自所长合理分配任务。

  3. 将才,作为领导,也许技术能力不是最强的,但是一定要有领导人才的能力,也就是我们说的将才。 


     



3. 有担当


作为技术人,在职业生涯中犯错误是在所难免的,比如出现比较大的线上事故,这个时候,领导愿不愿意和组员一起承担责任,就能很好的体现领导有没有担当,值不值得追随。


4. 会分享


特别喜欢《亮剑》中李云龙的角色,尽管他满嘴骂骂咧咧,但是在利益分配上他绝对是王者,为了团队的荣誉他可以和上级叫板,为了团队的利益他可以和其他部队的领导呲牙咧嘴,所以,作为他的下属心甘情愿为他赴死,他带领的队伍战斗力超强。


反观职场,领导能不能主动满足下属的诉求,愿不愿意主动为下属争取利益,能不能为下属指定合理的成长计划,都能充分体现出领导愿不愿意和组员一起分享。


5. 有野心


“一个不想当将军的士兵不是一个好士兵”,“一个不想当大领导的领导不是一个没有野心领导”,如果一个在权利,业务,能力上都是野心勃勃的领导,不能证明他一定很好,但是一定不会很差。如果你跟的领导对于团队扩展和业务发展都没有很大的欲望,在公司内部不会去抢资源,拿结果,甚至出现得过且过,甘于平庸,那么,跟随这样的领导,你也只能平庸。


6. 奖罚分明


对于领导,团队管理是他最重要的职责,因此,如何能管好团队?如何激发组员的斗志?这就要求领导一定赏罚分明,团队一定要有清晰的赏罚制度,不要搞平均主义,有竞争才能让组员有动力,为团队创造更多的价值。


如何选择领导呢?


本文总结了值得追随的领导可能具备的 6个特质,但是很多小伙伴会问:我在跳槽前根本不知道自己的领导是谁,他的能力如何?我该如何选择领导?这里也总结几个意见,希望能帮到你:



  1. 跳槽尽量选择技术内推,这样就可以从他那边知道你未来的领导大概是什么样子,具备什么样的能力。

  2. 公司内部转岗,平时可以多关注不同部门的领导,择机选择自己喜欢的领导转岗。

  3. 改命,如果真的没有遇到欣赏自己的领导,就要更加提升技术,让自己具备选择领导的资本。


金无足赤,人无完人,或许你的领导无法同时具备上述 6个特质,但是,只要拥有3~4个,我个人觉得该领导从一定意义上就已经很优秀。而且,日常工作和领导相处的时候,我们需要多换位思考,领导的哪些做法让你不爽,哪些做法让你心悦诚服,如果有一天你也当了领导,你该如何服众。就算不做领导,换位思考,也可以让自己在团队中更好地沟通,成长。


最后,把猿哥的座右铭送给你: 投资自己才是最大的财富。 由于水平有限,如果文章存在缺点和错误,欢迎批评指正。


作者:猿java
来源:juejin.cn/post/7329807974968131618
收起阅读 »

211 毕业就入职 30 人的小公司是什么体验

为什么“选择”了 30 人的小公司? 作为一个 211 毕业的学生,进入 30 人的小公司不管是 8 年前还是现在,应该都是比较稀少的,但是当面的我阴差阳错进了这样一个小公司。 为什么我选择进入这样一个 30 人的小公司呢?主要原因是因为没得选。 当时我在大学...
继续阅读 »

为什么“选择”了 30 人的小公司?


作为一个 211 毕业的学生,进入 30 人的小公司不管是 8 年前还是现在,应该都是比较稀少的,但是当面的我阴差阳错进了这样一个小公司。


为什么我选择进入这样一个 30 人的小公司呢?主要原因是因为没得选。


当时我在大学读的商科,跟计算机有关的课程只学了计算机基础、数据库基础和 C 语言编程基础,而且那个时候觉得这几门课程都是编外课程,没有好好学,C 语言课程期末考试还是老师放水以 60 分擦边通过。


社会消息闭塞,大学都要毕业了,也不知道社会上有哪些岗位,同寝室的同学也在打游戏中度过。


之后被一个考验小组拉进去考验,他们都准备的金融学专硕,我家穷,就准备考经济学硕士,结果没考上(现在还是比较庆幸没考上的,否则现在不知道干啥去了,个人性格也不适合证券之类的工作)。


没考上,毕业之后也不知道干啥,就来北京又考了一年,又没考上。之后进了一个小的 Java 培训机构培训,从此入行!


毕竟没什么基础,结课之后面试了几家,因为生活难以为继了,选择第一个给 offer 的 30 人小公司。


现在工作 8 年了,也经历了从 30 人的小公司、 2000 人+的传统上市企业、互联网大小厂,有兴趣可以看之前的文章:。


与大公司相比,小公司有哪些不好的地方


首先,工作环境一般都是一栋楼里面的一个小办公室,甚至有的直接在居民楼里办公,办公环境没有大公司好;


其次,薪资福利待遇相比大公司更低,而且社保等基础福利打折扣,很多小公司缴纳社保和公积金都是按照当地最低标准缴纳,相对大部分大公司会少很多钱;


再次,管理混乱,不管是老板还是管理者,都没有受过相应的教育或者训练,比较随心所欲,很多决策都是老板的一言堂,很难总结出来统一的成功经验。


小公司有哪些优点


首先,小公司对能力的培养更加全面,你可能需要同时干产产品经理、开发、测试、运维等多个角色的活,更能理解整个软件的生命周期,如果你要换岗位,如果你有在小公司的工作经历,可能会更加容易。


其次,小公司更加自由,做一个项目,它不会限制你使用的技术,只要你能实现需求,不会管你用的什么技术、什么技术方案,你可以更加容易的实现你的技术想法,验证你的想法。


再次,小公司可能更好交朋友,因为小公司人少,更多的是刚毕业的学生,更容易真心相待,我现在从进入社会之后交的朋友,有好几个都是第一家小公司的时候交的。


最后,培养更加全面,公司有一个同事,因为各方面比较优秀,在甲方爸爸的心中认可度比较高,自己成立了一个小公司,还是接原来甲方的需求,成功的从小员工变身为老板,后来还扩招了好几个员工,妥妥的打败大厂一般总监。


收获


感谢这家公司,给了我这样一个,没有技术背景、没有实习经历、技术也不够强的毕业生一个入行的机会。


在这家公司,我收获了 IT 圈的第一波朋友,也收获了工程化的思想,积攒了各类技术的经验,为我之后的工作提供了丰厚的积累。


而且,在这里,我积累了大量的技术经验和经历,也为跳槽到大公司提供了跳板。


最后,欢迎大家分享自己入职小公司的经历,让更多人了解小公司,给自己的职业选择多一个方向!


作者:六七十三
来源:juejin.cn/post/7287053284787683363
收起阅读 »

去寺庙做义工,有益身心健康

《乔布斯传》中写到:乔布斯把对事物专注的能力和对简洁的热爱归功于他的禅修。他说:“禅修磨炼了他对直觉的欣赏能力,教他如何过滤掉任何能分散时间和精力的其它不必要的事情,在他的身上培养出了专注基于至简主义的审美观。” 如何在当今物欲横流的浮躁社会里不沦陷其中?如何...
继续阅读 »

《乔布斯传》中写到:乔布斯把对事物专注的能力和对简洁的热爱归功于他的禅修。他说:“禅修磨炼了他对直觉的欣赏能力,教他如何过滤掉任何能分散时间和精力的其它不必要的事情,在他的身上培养出了专注基于至简主义的审美观。”


如何在当今物欲横流的浮躁社会里不沦陷其中?如何在每天奔波忙碌之后却不内心疲惫、焦虑?如何在巨大的工作与生活压力下保持一颗平和的心?如何在经历感情、友情和亲情的起起落落后看破放下?如何改变透支健康和生命的人生模式?


程序员无疑是一个高压的职业,尤其是在头部公司工作的程序员们,工作压力更是大。并且在互联网行业,禅修并不是一件新鲜事。我们不一定要正儿八经地参加禅修活动,只是去寺庙走一走,呼吸一下新鲜空气,给寺庙干点活,对身心健康的帮助也会很大。


我与寺庙


我最早接触寺庙是在2011年上军校的时候,我的一个老师,作为大校,经常在课上分享他周末在南京附近寺庙的奇闻轶事,也会分享他自己的一些人生体验和感悟,勾起了我对寺庙生活的向往。


2013年,作为现役军人,我跑到了江西庐山的东林寺做了一个礼拜的义工,在那里,每天早上四点起床早上寺庙早课,负责三餐的行堂,也作为机动义工,干一些杂活,比如卸菜、组装床等,晚上有时也可以听寺庙的传统文化课。


2013年底,我申请退出现役,于是14年春就可以休假了,根据流程不定期去各部门办理手续即可,期间一个周末,我弟带我去凤凰岭玩,偶遇一个皈依法会,为了能看到传说中的北大数学天才,我填了一个义工表,参加了皈依仪式。


因为没有考虑政府安排的工作,所以打算考个研,期间不时会去凤凰岭的寺庙参加活动。考完研后,到18年春季,周末节假日,基本都会去这个寺庙做义工,累计得有200天以上。


期间,作为骨干义工,参与了该寺庙组织的第二至第四届的IT禅修营,负责行堂、住宿和辅导员等相关的工作。


很多人都听过这样一件往事:2010年,张小龙(微信之父)偶然入住一个寺院,当时正是微信研发的关键时刻,因为几个技术难题,张小龙连续几天彻夜难眠,终于一气之下把资料撕得粉碎。


没想到负责打扫卫生的僧人看到后,竟然帮他把资料重新粘贴了起来,还顺手写下了几条建议。张小龙非常惊讶,打听过后才知道这位扫地僧出家前曾混迹IT界,是个著名的极客。


经扫地僧点化,张小龙回到广州苦攻一年后,微信终于大成。这件事传的很广也很玄乎,可信度不会太高,不过故事中张小龙入住的寺院,就是我常去的寺庙。


至于在故事中懂得IT的扫地僧,在这里遇到其实不是什么奇怪的事,你还有可能遇到第47届国际数学奥赛金牌得主贤宇法师,他来自北大数学系;或者是禅兴法师,他是清华大学流体力学博士;又或者贤启法师,他是清华大学核能和热能物理博士。


“扫地只不过是我的表面工作,我真正的职业是一位研究僧。” 《少林足球》这句台词的背后,隐藏着关于这个寺庙“高知僧团”的一个段子。


因为各种不可描述的原因,18年9月之后,我就很少去这个寺庙了,但我知道我依然很向往寺庙的生活。于是22年春,我下定决心离开北京去深圳,其中就有考虑到深圳后,可以去弘法寺或弘源寺做义工。


去了一次弘法寺,感觉那边人太多,后面去了一次弘源寺后,感觉这里比较适合我,人少很安静,不堵车的话,开车只需20分钟到家。


目前,只要我有时间,我都会去弘源寺干一天临时义工,或者住上几天。


何为禅?


禅,是心智的高度成熟状态。直至印度词汇传入,汉语音译为“禅那”,后世简称为“禅”,汉译意思有“静虑”、“思维修”等。


禅修的方法就是禅法,禅法是心法,并不固着于某种具体形式,也不限于宗教派别。从泛义来说,任何一种方法,如果能够让你的心灵成熟,了解生命的本质,让心获得更高层次的证悟,并从而获得生命究竟意义的了悟。这样的方法就是禅修!


从狭义来说,在绵延传承数千年的漫长时空里,形成各种系统的修行方法,存在于各种教派中。现存主要有传承并盛行于南传佛教国家的原始佛教禅法与传承并盛行于中国汉传佛教的祖师禅。


如来禅是佛陀的原始教法,注重基础练习,强调修行止观。祖师禅是中国禅宗祖师的教法,强调悟性、觉性,推崇顿悟,以参话头为代表,以开悟、明心见性为目的。


我们普遍缺乏自我觉察,甚至误解了包括自由在内的生命状态真义。禅修中,会进入深刻自我觉察中,有机会与自己整合,从而开启真我。


近年来,禅修在西方非常流行,像美国的学校、医疗机构和高科技公司都广泛地在进行打坐、禅修。美国有些科学家曾做过一个实验,实验对象是长期禅修的修行人。在实验室中,实验者一边用脑电波图测量脑波的变化,一边用功能性核磁共振测量脑部活动的位置。


最后得出结论:通过禅修,不但能够短期改变脑部的活动,而且非常有可能促成脑部永久的变化。这就是说:通过禅定,可以有效断除人的焦虑、哀伤等很多负面情绪,创造出心灵的幸福感,甚至可以重塑大脑结构。


禅修能够修复心智、疗愈抑郁、提升智慧,让我们重获身心的全面健康!禅修让人的内心变得安静。在禅修时,人能放松下来,专注于呼吸,使内心归于平静,身体和心灵才有了真正的对话与接触。


“禅修是未来科技世界中的生存必需品”时代杂志曾在封面报道中这样写道。在硅谷,禅修被认为是新的咖啡因,一种能释放能量与创造力的全新“燃料”。


禅修也帮助过谷歌、Facebook、Twitter高管们走出困惑,国内比较知名则有搜狐的张朝阳和阿里的马云,还有微信之父张小龙的传说。


对于他们来说,商海的起伏伴随着心海的沉浮,庞大的财富、名声与地位带来的更多的不是快乐,但是禅修,却在一定程度上给他们指点迷津,带领他们脱离现代社会的痛苦、让内心更加平静!


乔布斯的禅修故事


乔布斯和禅修,一直有着很深的渊源。乔布斯是当世最伟大的企业家之一,同时也是一名虔诚的禅宗教徒。他少有慧根,17岁那年,他远赴印度寻找圣人寻求精神启蒙,18岁那年,他开始追随日本禅师乙川弘文学习曹洞宗的禅法。


年轻的时候,乔布斯去印度,在印度体验,呆了七个月。乔布斯在印度干了些什么,我们不得而知。不过据我推测,也就是四处逛一逛,看一看,可能会去一些寺庙,拜访一些僧人。


我从来不认为,他遇到了什么高人,或者在印度的小村庄一待,精神就受到了莫大的洗礼。变化永远都是从内在发生的,外在的不过是缘分,是过客,负责提供一个合适的环境,或者提供一些必要的刺激。


但我们知道,从此以后,乔布斯的人生,就开始变得不一样了。乔布斯的人生追求是“改变世界”,当年他劝说百事可乐总裁,来担任苹果CEO的时候所说的话:“你是愿意一辈子卖糖水,还是跟我一起改变这个世界?”激励了无数心怀梦想的朋友。


早在1973年乔布斯已经对禅有较深的领悟了。他这样说:“我对那些超越物质的形而上的学说极感兴趣,也开始注意到比知觉及意识更高的层次——直觉和顿悟。”


他还说:“因为时间有限,不要带着面具为别人而活,不要让别人的意见左右自己内心的想法,最重要的是要勇敢地忠于自己内心的直觉。”


乔布斯说:“你不能预先把点点滴滴串在一起;唯有未来回顾时,你才会明白那些点点滴滴是如何串在一起的。所以你得相信,你现在所体会的东西,将来多少会连接在一块。你得信任某个东西,直觉也好,命运也好,生命也好,或者业力。这种作法从来没让我失望,也让我的人生整个不同起来。”


他大学时学的书法,被他用来设计能够印刷出漂亮字体的计算机,尽管他在大学选修书法课时,完全不知道学这玩意能有什么用。他被自己创立的苹果公司开除,于是转行去做动画,结果在做动画的时候,遇到了自己未来的妻子。


人呐实在不知道,自己可不可以预料。你说我一个被自己创立的公司开除的失业狗,怎么就在第二份工作里遇到了一生的挚爱呢?若干年后,他回顾起自己的人生,他把这些点点滴滴串了起来,他发现,他所经历过的每一件事,都有着特殊的意义。


所以,无论面对怎样的困境,我们都不必悲观绝望,因为在剧本结束之前,你永远不知道,自己现在面对的这件事,到底是坏事还是好事。


所谓创新就是无中生有,包括思想、产品、艺术等,重大的创新我们称为颠覆。通过那则著名的广告《think different》他告诉世人:“因为只有那些疯狂到以為自己能够改变世界的人,才能真正地改变世界。”乔布斯确实改变了世界,而且不是一次,至少五次颠覆了这个世界:



  • 通过苹果电脑Apple-I,开启了个人电脑时代;

  • 通过皮克斯电脑动画公司,颠覆了整个动漫产业;

  • 通过iPod,颠覆了整个音乐产业;

  • 通过iPhone,颠覆了整个通讯产业;

  • 通过iPad,重新定义并颠覆了平板PC行业。


程序员与禅修


编程是一门需要高度专注和创造力的艺术,它要求程序员们在面对复杂问题和压力时,能够保持内心的安宁和平静。在这个快节奏、竞争激烈的行业中,如何修炼内心的禅意境界,成为程序员们更好地发挥潜力的关键。


在编程的世界里,专注是至关重要的品质。通过培养内在专注力,程序员能够集中精力去解决问题,避免被外界的干扰所困扰。以下是几种培养内在专注的方法:



  • 冥想和呼吸练习:  通过冥想和深呼吸来调整身心状态,让自己平静下来。坚持每天进行一段时间的冥想练习,可以提高专注力和注意力的稳定性。

  • 时间管理:  制定合理的工作计划和时间表,将任务分解为小的可管理的部分,避免心理上的压力。通过专注于每个小任务,逐步完成整个项目。

  • 限制干扰:  将手机静音、关闭社交媒体和聊天工具等干扰源,创造一个安静的工作环境。使用专注工作法(如番茄钟),集中精力在一项任务上,直到完成。


编程过程中会遇到各种问题和挑战,有时甚至会感到沮丧和失望。然而,保持平和的心态是非常重要的,它可以帮助程序员更好地应对压力和困难。以下是一些培养平和心态的技巧:



  • 接受不完美性:  程序永远不会是完美的,因为它们总是在不断发展和改进中。接受这一事实,并学会从错误中汲取教训。不要过于苛求自己,给自己一些宽容和理解。

  • 积极思考:  关注积极的方面,让自己的思维更加积极向上。遇到问题时,寻找解决方案而非抱怨。积极的心态能够帮助你更好地应对挑战和困难。

  • 放松和休息:  给自己合理的休息时间,让大脑得到充分的放松和恢复。休息和娱乐能够帮助你调整心态,保持平和的状态。


编程往往是一个团队合作的过程,与他人合作的能力对于一个程序员来说至关重要。以下是一些建立团队合作意识和促进内心安宁的方法:



  • 沟通与分享:  与团队成员保持良好的沟通,分享想法和问题。倾听他人的观点和建议,尊重不同的意见。积极参与和贡献团队,建立合作关系。

  • 友善和尊重:  培养友好、尊重和包容的态度。尊重他人的工作和努力,给予鼓励和支持。与团队成员建立良好的关系,创造和谐的工作环境。

  • 共享成功:  当团队取得成功时,与他人一起分享喜悦和成就感。相信团队的力量,相信集体的智慧和努力。


修炼内心安宁需要时间和长期的自我管理。通过培养专注力、平和心态、创造力和团队合作意识,程序员们可以在面对复杂的编程任务和挑战时保持内心的安宁和平静。


禅修有许多不同的境界,其中最典型的可能包括:



  • 懵懂:刚开始禅修时,可能会觉得茫然和困惑,不知该如何开始。

  • 困扰:在进行深度内省和冥想时,可能会遇到很多烦恼和难题,需耐心思考和解决。

  • 安和:通过不断地练习和开放自己的心灵,可能会进入一种更加平和和沉静的状态。

  • 祥和:当一些心理障碍得到解决,你会感受到一种更深层的平静和和谐。

  • 转化:通过不断的冥想与内省,你可以向内看到自己的内心,获得对自己和世界的新的认识和多样的观察角度。

  • 整体意识:通过冥想,您将能够超越个人的视野和言语本身,深入探究宇宙的内心,领悟更加深入和广泛的境界和意识。


程序员写代码的境界:



  • 懵懂:刚熟悉编程语言,不知做什么。

  • 困扰:可以实现需求,但仍然会被需求所困,需要耐心思考和解决。

  • 安和:通过不断练习已经可以轻易实现需求,更加平和沉静。

  • 祥和:全栈。

  • 转化:做自己的产品。

  • 整体意识:有自己的公司。


一个创业设想


打开小红书,与“疗愈”相关的笔记高达236万篇,禅修、瑜伽、颂钵等新兴疗愈方法层出不穷,无论是性价比还是高消费,总有一种疗愈方法适合你。


比起去网红景点打卡拍照卷构图卷妆造,越来越多的年轻人正在借助上香、拜神、颂钵、冥想等更为“佛系”的方式去追寻内心的宁静。放空大脑,呼吸之间天地的能量被尽数吸收体内,一切紧张、焦虑都被稀释,现实的残酷和精神的困顿,都在此间找到了出口。


在过去,简单的瑜伽和冥想就能达到这种目的,但伴随着疗愈文化的兴起与壮大,不断在传统方式之上叠加buff,才是新兴疗愈的终极奥义。


从目标人群来看,不同的禅修对应不同的人群。比如临平青龙寺即将在8月开启的禅修,就分为了企业禅修、教育禅修、功能禅修、共修禅、突破禅、网络共修等多种形式。但从禅修内容来看,各个寺庙的安排不尽相同,但基本上跳脱不出早晚功课、上殿过堂、出坡劳作、诵经礼忏、佛学讲座等环节。


艺术疗愈,是截然不同于起参禅悟道这种更亲近自然,还原本真的另一疗愈流派。具体可以细分为戏剧疗愈、绘画疗愈、音乐疗愈等多种形式。当理论逐渐趋向现代化,投入在此间的花费,也成正比增长。


绘画疗愈 ,顾名思义就是通过绘画的方式来表达自己内心的情绪。画幅的大小、用笔的轻重、空间的配置、色彩的使用,都在某种程度上反映着创作者潜意识的情感与冲突。


在绘画过程中,绘画者也同样会获得纾解和满足。也有一些课程会在绘画创作之外,添加绘画作品鉴赏的内容,通过一幅画去窥视作者的内心,寻求心灵上的共鸣,也是舒缓压力的一种渠道。


疗愈市场之所以能够发展,还是因为有越来越多人的负面情绪需要治愈。不论是工作压力还是亲密关系所带来的情绪内耗,总要有一个释放的出口。


当前,我正在尝试依托自营绘馆老师提供优质课件,打造艺培课件分享的平台或社区,做平台前期研发投入比较大,当前融资也比较困难,同时自己也需要疗愈。


所以,最近也在调研市场,评估是否可以依托自营的门店,组织绘画手工+寺庙行禅+技术专题分享的IT艺术禅修营活动,两天含住宿1999元,包括半天寺庙义工体验、半天禅修、半天绘画手工课和半天的技术专题分享。


不知道,这样的活动,大家会考虑参加吗?


总结


出家人抛弃尘世各种欲望出家修行值得尊重,但却不是修行的唯一方法,佛经里著名的维摩洁居士就是在家修行,也取得了非凡成就,六祖惠能就非常鼓励大家在世间修行,他说:“佛法在世间,不离世间觉,离世觅菩提,恰如求兔角”。


普通人的修行是在红尘欲望中的修行,和出家人截然不同,但无分高下,同样可以证悟,工作就是他们最好的修练道场。禅学的理论学习并不困难,但这只是万里长征的第一步,最重要的是,我们要在日常实践中证悟。


简单可能比复杂更难做到:你必须努力理清思路,从而使其变得简单。但最终这是值得的,因为一旦你做到了,便可以创造奇迹。”乔布斯所说的这种专注和简单是直接相关的,如果太复杂,心即散乱,就很难保持专注,只有简单,才能做到专注,只有专注,才能极致。


作者:三一习惯
来源:juejin.cn/post/7292781589477687350
收起阅读 »

业绩一般般,如何写出漂亮的年终总结

互联网公司都讲究狼性文化。其中有一个政策就是强制的绩效考评。比如阿里的361政策,就是说每年年底都要对员工进行考评。30%的人超出预期,也就是3.75;60%的人符合预期,也就是3.5;10%的人不符合预期,也就是3.25。 为什么说是强制的绩效考评,是因为团...
继续阅读 »

互联网公司都讲究狼性文化。其中有一个政策就是强制的绩效考评。比如阿里的361政策,就是说每年年底都要对员工进行考评。30%的人超出预期,也就是3.75;60%的人符合预期,也就是3.5;10%的人不符合预期,也就是3.25。


为什么说是强制的绩效考评,是因为团队中如果有10个人。**无论这10个人产出有多多,业绩结果有多好,都会有一个人被评为不符合预期。**你能明白这个有多恶心了吧。



这篇文章的技巧任何岗位都适用,但是本人是研发,熟悉研发的工作内容,所以例子从研发的角度来写。



为什么年终总结很重要


虽然说这个很恶心。但绩效考评直接影响到年终奖以及下个财年的晋升,所以年底的年终总结一定要认真对待。尤其是全年的业绩相对一般般,这个时候更加要从年终总结中去体现价值


为什么这么说?有两方面的原因。


一个是因为老板并不很清楚每个人全年都做了什么,有哪些产出,遇到并解决了哪些困难。年终总结就一个很好的梳理机会,每个人的自评,能让老板更清晰的了解到每个人做了什么,从而做出排序。


另外,一级主管做的排序,并不一定是最终结果。大概率会在二级主管那边,把几个主管的排名进行重新排序。每个主管都希望自己团队多一些超出预期,少一些不符合预期。所以,针对在361边界的几个人,会被单独拿出来讨论,进行激烈的PK。这个PK的素材就是你的自评内容,我们要主动去准备主管能拿出来PK的素材,不然主管想帮你都帮不了。


所以你知道年终总结有多重要了吧。尤其是你在过去的一年中,没有做出让其他团队主管能记住的凸出表现,年终总结很多时候就决定了你能否多拿几个月年终奖。


今天就说一说业绩一般的情况下,如何写出漂亮的年终总结。内容有点多,写完发现有点长,所以我会分两篇内容,下一篇会把剩下的几个方法整理出来。感兴趣的可以公众号上看,我的公众号叫做写代码的浩


方法一:如果没有质量,那就先凑份量


业绩一般,往往不是没有工作量,而是没有亮点。很可能你做了很多事情,每天忙的焦头烂额,但这些事情做完后,并没有十分理想的结果。


就比如,你做了15个项目,每个项目都按时完成,但是每个项目上线后,都没有超预期的业务结果。


普通员工就会这样写:“按时完成需求”。稍微好一点的,会写“按时完成15个需求,没有线上bug。”


看到这种内容,主管会是什么反应,我不知道,但是我的反应是:哦、嗯、就这样吧。如果你的排序在不及预期的边界上, 你主管怎么去和另外一个组的主管PK,说你其实很优秀,做了很多工作。大概率PK失败,你还要怪主管为什么给你不及预期,是不是针对你,别人都是嫡系。


那应该怎么写。如果没有质量,那就先凑分量。你要让别人看了你的自评,觉得做了很多工作,且做事过程有计划有执行,不是胡乱做一通。主要是体现没有好结果(功劳),不是你的问题


可以试试这么写(挑核心项目写细节)



全年完成15个项目,按时完成,没有线上bug。


核心项目结果如下:


业务一:


目标:xxx


完成:调研了xx,完成了xx,业务结果xx


后续计划:xxx



方法二:越是没有内涵,越要重视形式


业绩一般,那么态度一定要好。 如何体现态度呢,就是用专业的形式暗示老板,你是一个态度认真的人。


就比如你的一项工作是做性能优化,优化目标没有达成。


普通员工会这么写:“性能优化目标xxx,优化到了xx”。这不是一看就知道没有达到目标,不及预期吗。主管看到这种也是只能叹气,想帮你都帮不了。


可以试试这么写(方法一也可以用,这里只讲解方法二)



性能优化:


目标:xxx


完成:


小目标1完成了xx,完成度80%


小目标2完成了xx,完成度120%



解释一下:



  1. 1. 把一个目标继续细分,对每一个细分目标进行罗列完成度。

  2. 2. 对关键数据使用不同颜色进行凸出

  3. 3. 数据多用图表


你看,这样一来,大目标虽然没完成,但是小目标有完成了的呀。是不是主管去PK时,就能有理由帮到你了。


总结


好了,已经1500字了,写的太长大家不喜欢看,后面几个技巧下一篇再继续写。觉得有收获可以关注下写代码的浩。


当然了,对绩效结果的影响,业绩一定是第一位的,平时一定要好好做项目,而不是“写PPT”。但是在年底,业绩一般的情况下,我们能做的就不多了,写好年终总结,算是我们最后的挣扎了吧。




我是写代码的浩,关注我,带你了解更多职场信息,也欢迎转发文章,传递行业真相!


文章看到这里,记得点右下角在看+点赞,感谢!****


作者:写代码的浩
来源:juejin.cn/post/7330825015049453578
收起阅读 »

为什么忘记密码时只能重设,不把旧密码告诉我?

某天小明在整理他的收藏夹时发现了一个以前很常逛,但已经将近半年多没去的一个论坛。小明想回去看看那边变得怎么样了,于是点进去那个论坛,输入了帐号密码,得到了密码错误的提示。 尝试了几次之后,系统提示小明可以使用「忘记密码」的功能,所以小明填了自己的 email ...
继续阅读 »

某天小明在整理他的收藏夹时发现了一个以前很常逛,但已经将近半年多没去的一个论坛。小明想回去看看那边变得怎么样了,于是点进去那个论坛,输入了帐号密码,得到了密码错误的提示。


尝试了几次之后,系统提示小明可以使用「忘记密码」的功能,所以小明填了自己的 email 之后去收件箱里查看,发现系统传来一个「重设密码」的链接。虽然说最后小明成功利用重新设定的密码登入,但有个问题让他百思不得其解:



奇怪呀,为啥要我重新设置密码,把旧的密码发到邮箱里给我不就好了?



应该有许多人都跟小明一样,有过类似的疑惑。把旧密码发给我不是很好吗,干嘛强迫我换密码?


这一个看似简单的问题,背后其实藏了许多信息安全相关的概念,就让我们慢慢寻找问题的答案,顺便学习一些基本的信息安全知识吧!


被偷走的数据库


大家应该很常看到新闻说哪个网站的数据又被偷走了,顾客个人数据全部都泄露出去。像是国外知名的网域代管网站 GoDaddy[1] 就泄露了 120 万笔用户数据,像国内的微博、淘宝等也有过数据泄露的情况发生。


这边我想带大家探讨的两个问题是:



  1. 数据真的这么容易泄露吗?

  2. 数据泄露之后,可能造成什么后果?


我们先来看第一个问题,有很多安全性的漏洞可以造成数据泄露,而有些漏洞的攻击方式,比你想的还简单一百倍。


图片


你想像中的黑客可能像上面那样,打着一大堆不知道在干嘛的指令,画面上出现很多黑底白字或是绿字的画面,完全搞不懂在干嘛,但是做着做着网站就被攻破下来了。


而事实上有些漏洞,可能在地址栏上面改几个字就攻击成功了,就算你不懂任何代码也做得到。


举例来说好了,假设今天有个购物网站,你买了一些东西之后送出订单,订单成立后跳转到订单页面,上面有着一大堆你的个人数据,例如说:姓名、收货地址、联络电话以及 Email 等等。


然后你发现订单页面的网址是 https://shop.xiaoming.cn/orders?id=14597


而正好你的订单编号也是 14597,在好奇心的驱使之下,你就试着把数字改成 14596,然后按下 Enter。


当网站载入完成之后,你竟然还真的能看到编号为 14596 的订单,上面出现一个你不认识的人的姓名、收货地址、联络电话跟 Email。


有些攻击就是这么朴实无华且枯燥,只要改个字就能看到属于其他人的数据。这时候如果你会写程序的话,就可以写个脚本自动去抓 id 是 1 一直到 id 是 15000 的数据,你就拿到了这个购物网站 15000 笔订单的资讯,也就是一万多个顾客的个人数据。


这过程中没有什么黑底白字的画面,也不用一直疯狂打字,唯一需要的只有改数字,个人数据就轻松到手。


这类型的漏洞有个专有名词,称为 IDOR,全名是:Insecure direct object references,大约就是不安全的直接数据存取的意思。漏洞产生的原因就是工程师在开发时,并没有注意到权限控管,因此让使用者能存取到其他人的数据。


有些人看到这边可能以为我只是为了文章浅显易懂,所以才举一个简化的例子,现实生活中的攻击才没这么简单。


这句话算是对了一半,大部分的网站确实都不会有这么明显的一个漏洞,攻击方式会更复杂一点。但可怕的是,还真的有些网站就是这么简单,就是改个数字就可以拿到别人的数据。


例如说这两个就是 IDOR 的真实漏洞:



  1. 享健身 xarefit 任意访问/下载所有会员个人数据[2]

  2. DoorGods 防疫门神实联制系统 IDOR 导致个人数据泄露[3]


对,不要怀疑,就真的只是在网址上改个数字而已这么容易。


以后只要看到网址列上有这种数字,就可以试着去改改看,搞不好不会写程序的你也可以发现 IDOR 的漏洞。


除了这种只要改个东西的漏洞之外,还有另外一个很常见但是需要一点技术能力才能攻破的漏洞,叫做 SQL Injection。


先来讲讲 SQL 是什么,简单来说就是跟数据库查询东西的一种程序语言。既然说是语言那就会有固定语法,若是以中文举例,大概就像是:



去找「订单数据」,给我「id 是 1 的」,按照「建立时间」排序



用「」框起来的部分代表可以变动,而其他关键字例如说「去找」、「给我」这些都是固定的,因为语法要固定才能写程序去解析。


同样以上面假想的购物网站为例,如果网址是 https://shop.xiaoming.cn/orders?id=14597 ,那网站去跟数据库拿数据时,指令大概就是:



去找「订单数据」,给我「id 是 14597 的」



因为网址列上的 id 是 14597 嘛,所以这个 id 就会被放到查询的指令去,如果 id 是别的,那查询的指令也会不一样。


这时候如果我的 id 不是数字,而是「1 的顺便给我使用者数据」,查询就变成:



去找「订单数据」,给我「id 是 1 的顺便给我使用者数据」



那整个网站的使用者数据就顺便被我抓下来了。


这个攻击之所以叫做 SQL injection,重点就在于那个 injection,攻击者「注入」了一段文字被当作指令的一部分执行,所以攻击者就可以执行任意查询。


比起上面讲的 IDOR,SQL injection 通常会更为致命,因为不只是订单数据本身,连其他数据也会被一起捞出来。所以除了订单数据,会员数据跟商品数据都有可能一起泄露。


这边也随便找两个公开的案例:



  1. 北一女中网站存在 SQL Injection 漏洞[4]

  2. 桃园高中 网站 SQL injection[5]


而防御方式就是不要把使用者输入的「1 的顺便给我使用者数据」直接当作指令,而是经过一些处理,让整段查询变成:「给我 id 是:『1 的顺便给我使用者数据』的数据」,那因为没有这个 id,所以什么事也不会发生。


个人数据泄漏了,然后呢?


前面我们已经看到了针对那些没有做好防御的网站,个人数据泄露是多么容易的一件事情。


那个人数据泄漏之后,对使用者会有什么影响呢?


大家最感同身受的应该就是诈骗电话吧,例如说某些买书的网站或是订房网站,打过来跟你说什么要分期退款,为了博取你的信任,连你买了哪本书,订了哪个房间,或是你家地址跟姓名全都讲得出来。


这些都是因为数据泄露的缘故,诈骗集团才会知道的这么清楚。


但除了这些个人数据以外,还有两个东西也会泄露,那就是你的帐号跟密码。


也许你会想说:「不就帐号跟密码吗,我就在那个网站上面改密码以后再用就好啦!」


事情也许没有你想的这么简单。如果你没有用密码管理软件的话,我大胆猜测你所有的密码可能都是同一个。因为怕记不起来嘛,所以干脆都用同一个密码。


这时候如果账号和密码泄露,黑客是不是就可以拿这个账号和密码去其他服务试试看?


拿去登你的 Google,登你的 Facebook,这时候用同一个密码的人就会被登进去。所以从表面看只是一个购物网站被入侵,但造成的结果却是你的 Google 还有 Facebook 也一起被盗了。


所以,有时候某个网站被盗帐号可能不是那个网站的问题,而是黑客在其他地方拿到了你的帐号密码,就来这边试试看,没想到就中了。


对于网站的开发者而言,保护好使用者的个人数据是天经地义的事情,保护密码也是,有没有什么好方法可以保护密码呢?


加密吗?把密码用某些算法加密,这样数据库储存的就会是加密后的结果,尽管被偷走了,黑客只要没有解密的方法就解不开。


听起来似乎是最安全的做法了,但其实还有一个问题,那就是网站的开发者还是会知道怎么解密,如果有工程师监守自盗怎么办?他还是可以知道每个使用者的密码是什么,可以把这些资讯拿去卖或者是自己利用。


嗯…似乎我们也不能怎么样,因为无论如何,开发者都需要有方法知道数据库存的密码究竟是多少吧?不然在登入的时候怎么确认帐号密码是对的?


再者,这样听起来应该够安全了,要怎么样才能更安全?难道要连网站的开发者都无法解密,都不知道密码是什么才够安全吗?


Bingo!答对了,就是要这样没错!


没有人知道你的密码,包括网站本身


事实上,网站的数据库是不会储存你的密码的。


或更精确地说,不会储存你的「原始密码」,但会储存密码经过某种运算后的结果,而且最重要的是, 这个运算是无法还原的


直接举例比较快,假设今天有个很简单的算法,可以把密码做转换,转换方式是:「数字不做转换,英文字母把 a 换成 1,b 换成 2…z 换成 26」,以此类推,第几个字母就换成几,大小写不分都一样(先假设不会有符号)。


如果密码是 abc123,转换完就变成 123123。


在使用者注册的时候,网站就把使用者输入的 abc123 转成 123123,然后存到数据库里面。因此数据库存的密码是 123123,而不是 abc123。


当使用者登入时,我们就再把输入的值用同样的逻辑转换,如果输入一样,转换后的结果就会一样对吧?就知道密码是不是正确的。


当黑客把数据库偷走以后,会拿到 123123 这组密码,那一样啊,不是可以推论出原本是 abc123 吗?不不不,没这么简单。


123123、abcabc、12cab3…这些密码转换之后,不也是 123123 吗?所以尽管知道转换规则跟结果,却没有办法还原成「唯一一个密码」,这就是这个算法厉害的地方!


这样的转换就叫做哈希(Hash),abc123 每次 hash 过后的结果都会是 123123,但是从 123123 却无法得到输入一定是 abc123,因为有其他种可能性存在。


这就是 hash 跟加密最大的不同。


加密跟解密是成对的,如果可以加密就一定可以解密,所以你知道密文跟密钥,就可以知道明文。但 hash 不同,你知道 hash 算法的结果,却无法逆推出原本的输入是什么。


而这个机制最常见的应用之一,就在于密码的储存。


在注册时把 hash 过后的密码存进数据库,登入时把输入的密码 hash 过后跟数据库比对,就知道密码是否正确。就算数据库被偷,黑客也不知道使用者的密码是什么,因为逆推不出来。


这就是为什么忘记密码的时候,网站不会跟你讲原本的密码是什么,因为网站本身也不知道啊!


所以不能「找回密码」,只能「重设密码」,因为重设就代表你输入新的密码,然后网站把新的密码 hash 之后存进数据库,未来登入时就会用这组新的 hash 去比对。


有些人可能会注意到这样的储存方式似乎有个漏洞,延续前面的例子,数据库存的是 123123 而我的原始密码是 abc123,这样如果用「abcabc」,hash 过后也是 123123,不就也可以登入吗?这样不太对吧,这不是我的密码嘛


有两个不同的输入却产生出同一个输出,这种状况称为碰撞(hash collision),碰撞一定会发生,但如果算法设计的好,碰撞的机率就超级无敌小,小到几乎可以忽略。


前面提的转换规则只是为了方便举例,真实世界中用的算法复杂许多,就算只有一个字不同,结果都会天差地远,以 SHA256 这个算法为例:



  1. abc123 => 6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090

  2. abc124 => cd7011e7a6b27d44ce22a71a4cdfc2c47d5c67e335319ed7f6ae72cc03d7d63f


类似的输入却产生截然不同的输出。


像我前面举例用的转换就是不安全的 hash 算法,要尽量避免使用或是避免自己设计,尽可能使用密码学家跟专家设计出的算法,像是上面提到的 SHA256。


在使用这些算法的时候,也要特别注意一下是否安全,因为有些算法虽然也是由专家设计,但已经被证明是不安全的,例如说密码用 MD5 来 hash 后储存就是不安全的,可以参考:Is MD5 considered insecure?[6]


储存 hash 后的值就没事了吗?


抱歉,其实只储存密码 hash 过后的值是不够的。


咦,为什么?我刚刚不是说没办法反推出结果吗,那为什么不够?


虽然说没办法反推出结果,但攻击者可以利用「输入一样,输出一定一样」的特性,先建好一个人数据料库。


举例来说,假设有个很常见的密码 abc123,hash 过后的值是 6ca13d,那攻击者就可以先算好,然后把这个关系存在数据库,所以攻击者的数据库里面就可能会有一百万组最常见密码的清单,里面有着每个密码跟它 hash 过后的值。


那接下来只要在 hash 过后的数据库发现 6ca13d,攻击者就可以透过查表的方式,查出原本的密码是 abc123。这不是利用算法反推结果,这只是利用现有数据来查询而已。


为了防御这种攻击,还要做一件事情叫做加盐(Salting),没错,就是盐巴的那个盐。通常会帮每个使用者产生一个独一无二的盐,例如说 5ab3od(实际上会更长,可能 16 或 32 个字以上),接着把我的密码 abc123 加上我的盐,变成 abc1235ab3od,然后用这个加盐过后的结果去做 hash。


为什么要这样做呢?


因为攻击者预先准备好的表格中,比起 abc123,出现 abc1235ab3od 的机率显然更低,同时又因为长度变长了,暴力破解的难度变得更高。如此一来,密码就变得更难破解了。


结语


忘记密码时网站不会把密码发给我,因为网站自己都不知道我的密码是什么。虽然听起来不太可能,但实际状况就是如此。为了安全性,这是必须的手段。


要达成这样的目的,背后最重要的技术原理就是 hash,「同样的密码会产生同样的 hash 值,但从 hash 值没办法对应回原本的密码」就是秘诀所在。


反之,如果你发现有网站可以找回你的密码,那就得要多加注意,有可能网站数据库存的不是 hash 值而是你的密码。在这种状况下,万一有天数据库被入侵,账号和密码被偷走,黑客就能得知你真实的密码,然后去试其他的服务。


有关于密码管理,现在浏览器也有功能可以自动帮你产生密码外加记忆密码,或也可以使用现成的密码管理软件,都可以在不同网站产生不同的密码。


这篇希望能让对这个领域陌生的读者们也能知道一些基本的概念,包括:



  1. 有些网站比你想得脆弱很多,改个网址就可以拿到别人的数据

  2. 对于安全性做得不好的网站,拿到整个人数据料库不是一件难事

  3. 忘记密码只能重设,不能找回,是因为网站也不知道你的密码

  4. 如果有网站可以把旧密码给你,那你得要小心一点


作者:写bug写bug
来源:juejin.cn/post/7330922611512262671
收起阅读 »

工作而已,千万不要上头了!

工作而已,千万不要上头了!请戒掉你那些没必要的“责任心”!职场中,有这么一类人,他们善良、事无巨细、爱操心。只要是自己工作岗位和自己相关的事情,就会负责到底,60分的事情,硬要做到90分,有假期不敢请,感觉项目缺了自己就不行。本着这样「把事做成」的心态,他们经...
继续阅读 »


工作而已,千万不要上头了!

请戒掉你那些没必要的“责任心”!

职场中,有这么一类人,他们善良、事无巨细、爱操心。

只要是自己工作岗位和自己相关的事情,就会负责到底,60分的事情,硬要做到90分,有假期不敢请,感觉项目缺了自己就不行。

本着这样「把事做成」的心态,他们经常头顶
「靠谱」「务实」「件件有着落,事事回音」的标签。

最后累身累心,还不被别人看见,做的越多,错的越多。

这类人是责任心太强了!

在职场这么多年,逐渐发现,责任心很强的人,在职场上普遍都过得不好:
➢ 明明做了很多,升职加薪却轮不到自己;
➢ 领导对别人要求却越来越低,对你却要求越来越高;
➢ 事情越做越多,关键老板还不觉得你做了。

这些现象背后,其实有一个隐秘的雷区:责任心过剩,你就输了!

不要因为责任心过剩,在职场无尽消耗自己。

找到自己内耗的来源后,运用好自己的优势,只做自己擅长的事,成功在职场顺利晋升。

如果你也想找到自己那件真正要做的事,就要去掉那些没用的责任心。

来源:mp.weixin.qq.com/s/p_GAch0qjAI-Or-u5Aj8gw

收起阅读 »

npm被滥用——上传700多个武林外传切片视频

据介绍,这些软件包每个大小约为 54.5MB,包名以 “wlwz” 作为前缀,并附带了应该是代表日期的数字。时间戳显示,这些包至少自 2023 年 12 月 4 日起就一直存在于 npm,但 GitHub 上周已经开始删除。相关链接:https://blog....
继续阅读 »

Sonatype 安全研究团队近日介绍了一起滥用 npm 的案例 —— 他们发现托管在 npm 的 748 个软件包实际上是视频文件。

据介绍,这些软件包每个大小约为 54.5MB,包名以 “wlwz” 作为前缀,并附带了应该是代表日期的数字。时间戳显示,这些包至少自 2023 年 12 月 4 日起就一直存在于 npm,但 GitHub 上周已经开始删除。

每个包中都有以 “.ts” 扩展名结尾的视频剪辑,这表明这些视频剪辑是从 DVD 和蓝光光盘中翻录的。

这里的 ts 不是 TypeScript 文件,而是 transport stream 的缩写,全称为 “MPEG2-TS”:
MPEG2-TS 传输流(MPEG-2 Transport Stream;又称 MPEG-TS、MTS、TS)是一种标准数字封装格式,用来传输和存储视频、音频与频道、节目信息,应用于数字电视广播系统,如 DVB、ATSC、ISDB [3]:118、IPTV 等。

此外,某些包(例如 “wlwz-2312”)在 JSON 文件中包含普通话字幕。

虽然这些视频不会像挖矿程序、垃圾邮件包和依赖性恶意软件那样毒害社区,但这种把开源基础设施当 CDN 的操作无疑是破坏了规则,也违反了供应商的服务条款,各位耗子尾汁吧。

相关链接:https://blog.sonatype.com/npm-flooded-with-748-packages-that-store-movies

收起阅读 »

近年来项目研发之怪现状

简述 近年来,机缘巧合之下接触了不少toG类项目。项目上颇多事情,令人疑惑频频。然而屡次沟通,却都不了了之,长此以往,心力愈发交瘁,终究心灰意冷,再无劝谏之心。 令人困惑的项目经理 孟子说天时不如地利,地利不如人和。而项目上遇到的很多事情,天时、地利终为...
继续阅读 »

简述



近年来,机缘巧合之下接触了不少toG类项目。项目上颇多事情,令人疑惑频频。然而屡次沟通,却都不了了之,长此以往,心力愈发交瘁,终究心灰意冷,再无劝谏之心。



令人困惑的项目经理



孟子说天时不如地利,地利不如人和。而项目上遇到的很多事情,天时、地利终为少数,多数在人和。



立项开工,项目经理自然是项目上的第一把手。既为第一把手,自要有调兵遣将,排兵布阵的能耐。


当然用我们业内的话来说,可分为下面几类:


第一等的自然是懂业务又懂技术,这样的项目经理可运筹帷幄之中,决胜千里之外,当然这般的项目经理可遇而不可求。


这第二等的懂业务不懂技术,或者懂技术不懂业务,这样的项目经理,辅以数名参将,只要不瞎指挥,也可稳扎稳打,有功无过。


第三等的项目经理,业务与技术皆是不懂,如这般的项目经理,若尽职尽责,配先锋、军师、参将、辎重,最好再辅之以亲信,也可功成身退。若其是领导亲信,那更可说是有惊无险了。


而这第四等的,业务与技术不懂也就罢了,既无调兵遣将之才,又无同甘共苦之心,更是贻误战机,上下推诿。若其独断专横,那便是孔明在世也捧不起来。



有这般一个项目,公司未设需求经理,常以项目经理沟通需求。工期八月,立项后,多次催促,却不与甲方沟通,以至硬生生拖了两月之后才去。然而不通业务,不明技术。甲方被生耗两个月才沟通需求,这样的情况下,如何能顺利进行,以至于项目返工现象,比比皆是。多次提及需求管理,亦是左耳进右耳出。类类数落问题,甲方、研发、产品都有问题,独独他自身若皎皎之明月,灿灿之莲花。然而纵是项目成员承星履草,夜以继日,交付一版之后。举目皆是项目经理之间的恭维之词。



我有很多朋友是优秀的项目经理。言必行,行必果。沟通起来非常愉悦。偶尔遇到一个这样的人,确实让我大开眼界。


其实我也想过,这并非是项目经理职位的问题,实在是个别人自身的问题,这样的人,在任何岗位都是令人恼火的。


技术人员的无力感


我们互联网从业者经常听到一个词,技术债。技术债是令人难受的,尤其是在做项目的时候。做产品,我们可以制定完善的迭代周期,而项目,当需求都无法把控的时候,那么就意味着一切都是可变的。


糟糕的事情是,我遇到了这样的项目。前期无法明确的需求,项目期间,子虚乌有的需求管理,项目中不断的需求变更,deadline的不断临近,最终造就了代码的无法维护。


我从未想过,在同一个紧迫的时间阶段,让研发进行需求研发、bug修复、代码解耦,仿佛每一件事情都很重要。当然,我更建议提桶跑路,这样的项目管理,完全是忽视客观现实的主观意识。


前端规范难落地


公司是有前端规范的,然而前端规范的落地却很糟糕。如果使用TS,那么对于诸多时间紧,任务重,且只有一名前端开发人员的项目来说,显得太过冗余了。所以依旧使用js,那么代码中单个性化不会少见。使用esLint怎么样呢?这当然很棒,直到你发现大部分成员直接将esLint的检查注释了。或许还可以依靠团队内不断的宣讲与code Review,这是个好主意,然而你会发现,公司的code Review也是那么形式化的过程。


或许对一些企业来说,代码的规范性不重要,所谓的技术类的东西都显得没那么重要。只有政府将钱塞到它的口袋里这件事,很重要。


崩盘的时间管理


那么,因为各方面的原因,项目不可避免的走向了失控。时间管理的崩溃,项目自然开始了不断的延期。在私下里,一些擅长酒桌文化的甲方与项目经理,开始了酒桌上的攀谈,推杯换盏之间,开始了走形式的探讨。灯红酒绿之间,公司又开始了例行的恭维。


当然,我依旧无法理解,即使管理的如此糟糕,只要在酒桌上称兄道弟,那便什么问题都没有了?若是如此,项目经理面试的第一道题,一定是酒量如何了。


作者:卷不动咯
来源:juejin.cn/post/7263372536791433275
收起阅读 »

苹果 visionOS for web

苹果的 Vision Pro 已经发布了,虽然没有拿到手,但我还是对它的操作界面充满了好奇。 我看到很多小伙伴写了 Windows for Web,Mac OS for Web,所以我也想来实现一下 Vision Pro 的系统主页。 一开始,我以为这不会太难...
继续阅读 »

苹果的 Vision Pro 已经发布了,虽然没有拿到手,但我还是对它的操作界面充满了好奇。


我看到很多小伙伴写了 Windows for Web,Mac OS for Web,所以我也想来实现一下 Vision Pro 的系统主页。


一开始,我以为这不会太难,当头一棒的就是苹果祖传优势: 动画。


CPT2401291503-845x461.gif


这动画,这模糊,还是从中心点开始逐渐向外层扩散,应该根据人眼的视觉特征进行设计的。


问题是,该如何实现呢?


模糊我知道怎么实现,


filter: blur(15px);

从中心点开始逐渐向外层扩散的效果,我直接来个
transition-delay: 0.1s;


一通操作之下,也实现就似是而非的效果。而且边缘处app图标的缓缓落下的效果也不好。


CPT2401291508-1281x733.gif


然后就是光影效果的实现,因为它的很美,让人很难忽略。


在 Vision Pro 系统演示中可以看出,为了模拟菜单栏使用了磨砂玻璃材质,而为了营造真实感,会模拟光照射到玻璃上而形成的光线边框。


我不知道这是不是菲涅尔效应,但问题是,这又该如何在前端实现呢?


我想到了 CSS Houdini,可以利用 Houdini 开放的底层能力 paint 函数来实现一个菜单栏效果。


if ('paintWorklet' in CSS) {
CSS.paintWorklet.addModule('data:text/javascript,' + encodeURIComponent(`

class FresnelAppRectPainter {
static get inputProperties() { return ['--light-angle']; }

paint(ctx, size, properties) {
const borderRadius = 30;
const fresnelColor = 'rgba(255, 255, 255, .9)';
const lightAngle = parseFloat(properties.get('--light-angle')[0]) || 0;

// 绘制圆角矩形
ctx.beginPath();
ctx.moveTo(borderRadius, 0);
ctx.lineTo(size.width - borderRadius, 0);
ctx.arcTo(size.width, 0, size.width, borderRadius, borderRadius);
ctx.lineTo(size.width, size.height - borderRadius);
ctx.arcTo(size.width, size.height, size.width - borderRadius, size.height, borderRadius);
ctx.lineTo(borderRadius, size.height);
ctx.arcTo(0, size.height, 0, size.height - borderRadius, borderRadius);
ctx.lineTo(0, borderRadius);
ctx.arcTo(0, 0, borderRadius, 0, borderRadius);
ctx.closePath();
ctx.fillStyle = 'rgba(163, 163, 163)';
ctx.fill();

// 模拟光照效果
const gradient = create360Gradient(ctx, size, lightAngle)
ctx.fillStyle = gradient;
ctx.fill();

// 添加菲涅尔效果
const borderGradient = ctx.createLinearGradient(0, 0, size.width, size.height);
borderGradient.addColorStop(0, fresnelColor);
borderGradient.addColorStop(0.2, 'rgba(255,255,255, 0.7)');
borderGradient.addColorStop(1, fresnelColor);

ctx.strokeStyle = borderGradient;
ctx.lineWidth = 1.5;
ctx.stroke();
}
}

registerPaint('fresnelAppRect', FresnelAppRectPainter);
`));
}

结果效果还可以,我甚至可以接收一个光的入射角度,来实时绘制光影效果。


 function create360Gradient(ctx, size, angle) {
// 将角度转换为弧度
const radians = angle * Math.PI / 180;

// 计算渐变的起点和终点
const x1 = size.width / 2 + size.width / 2 * Math.cos(radians);
const y1 = size.height / 2 + size.height / 2 * Math.sin(radians);
const x2 = size.width / 2 - size.width / 2 * Math.cos(radians);
const y2 = size.height / 2 - size.height / 2 * Math.sin(radians);

// 创建线性渐变
const gradient = ctx.createLinearGradient(x1, y1, x2, y2);
gradient.addColorStop(0, 'rgba(255, 255, 255, 0.2)');
gradient.addColorStop(1, 'rgba(255, 255, 255, 0)');

return gradient;
}

CPT2401291454-249x209.gif


演示效果图


哦对了,还有一个弹层底边角的缩放效果,我目前还没想到什么好办法来实现,年底还得抓紧搬砖,只能先搁置了,如果小伙伴们有好办法,欢迎告知或者讨论。


1706511484530.png


最终效果图


这里是 Demo 地址


本来是冲着纯粹娱乐(蹭流量)来写的,但写着写着就发现好像没那么简单,三个晚上过去,也只写了个首页,不得不感慨苹果真的太细了呀。


以上。


作者:于益
来源:juejin.cn/post/7329280514627600425
收起阅读 »

《卖炭翁》致敬河北程序员,初读已解诗中意,再读却是诗中人!

起初他们追杀共产主义者的时候, 我没有说话 ——因为我不是共产主义者; 接着他们追杀犹太人的时候, 我没有说话 ——因为我不是犹太人; 后来他们追杀工会成员的时候, 我没有说话 ——因为我不是工会成员; 此后他们追杀天主教徒的时候, 我没有说话 ——因为我是新...
继续阅读 »

起初他们追杀共产主义者的时候,


我没有说话


——因为我不是共产主义者;


接着他们追杀犹太人的时候,


我没有说话


——因为我不是犹太人;


后来他们追杀工会成员的时候,


我没有说话


——因为我不是工会成员;


此后他们追杀天主教徒的时候,


我没有说话


——因为我是新教教徒;


最后他们奔我而来,


那时已经没有人能为我说话了。



这一首著名的《我没有说话》是德国神学家马丁・尼莫拉牧师的忏悔诗,尽管他写的是自己,但这首诗却振聋发聩,发人深省,其描述忽视与表面上自己无关的团体所造成的结果。该诗后来常被引用,作为对事不关己高高挂起的人的呼吁。


这首诗被镌刻在美国马萨诸塞州波士顿的新英格兰犹太人大屠杀纪念碑石碑上。


马丁・尼莫拉曾经生活在一个黑暗无光的时代,遭受过极权统治的迫害,这一经历对他来说,有着切肤之痛。


因为自己的惨痛经历,尼莫拉牧师认识到:在这个世界上,人与人的命运往往是休戚与共的,不坚持真理,不伸张正义,不维护公平,在邪恶面前只顾及自身的利益,对他人被冤屈被欺凌被迫害漠然置之,最终受到惩罚的是我们自己。


最近的事情大家也都晓得了,这件事让我们禁不住想起初中课本里的一篇课文:唐代大诗人白居易所创作的《卖炭翁》:



卖炭翁,伐薪烧炭南山中。

满面尘灰烟火色,两鬓苍苍十指黑。

卖炭得钱何所营?身上衣裳口中食。

可怜身上衣正单,心忧炭贱愿天寒。

夜来城外一尺雪,晓驾炭车辗冰辙。

牛困人饥日已高,市南门外泥中歇。

翩翩两骑来是谁?黄衣使者白衫儿。

手把文书口称敕,回车叱牛牵向北。

一车炭,千余斤,宫使驱将惜不得。

半匹红纱一丈绫,系向牛头充炭直。




白居易在《新乐府》中每首诗的题目下面都有一个序,说明这首诗的主题。


《卖炭翁》的序是“苦宫市也”,就是要反映宫市给人民造成的痛苦。唐代皇宫里需要物品,就派人去市场上拿,随便给点钱,实际上是公开掠夺。


唐德宗时用太监专门负责掠夺老百姓。白居易写作《新乐府》是在宫市为害最深的时候,他对宫市有十分的了解,对太监极度的痛恨,对人民又有深切的同情,所以才能写出这首感人至深的《卖炭翁》。


这首诗的意义,远不止于对宫市的揭露。诗人在卖炭翁这个典型形象上,概括了唐代劳动人民的辛酸和悲苦,在卖炭这一件小事上反映出了当时社会的黑暗和不平。读着这首诗,读者所看到的决不仅仅是卖炭翁一个人,透过他,还能看到有许许多多种田的、打渔的、织布以及编程的人出现在眼前。


他们虽然不是“两鬓苍苍十指黑”,但也各自带着劳苦生活的标记;他们虽然不会因为卖炭而受到损害,但也各自在田租或赋税的重压下流着辛酸和仇恨的泪水。《卖炭翁》这首诗不但在当时有积极意义,即使对于今天的读者也有一定的教育作用。


正道是:



初读已解诗中意,再读却是诗中人!



作者:刘悦的技术博客
来源:juejin.cn/post/7284468618019143695
收起阅读 »

转全栈之路,会比想象中的艰难

背景 我于22年校招入职字节安全方向大前端部门,支持公司安全Tob产品的前端开发工作。今年8月,因为组织架构调整,很多同事都直接划入了业务部门,我也和另一名北京的同事互换了业务,划入业务部门。 在新部门工作2-3个月,因为种种原因,工作体验上的差别大到像是换了...
继续阅读 »

背景


我于22年校招入职字节安全方向大前端部门,支持公司安全Tob产品的前端开发工作。今年8月,因为组织架构调整,很多同事都直接划入了业务部门,我也和另一名北京的同事互换了业务,划入业务部门。


在新部门工作2-3个月,因为种种原因,工作体验上的差别大到像是换了一家公司,也很想记录一下到底有什么不同。


大前端部门业务部门
组织人数近30人,纯前端方向近40人,分为不同方向,前端背景1人
工作模式由于同事都在天南海北,需要通过视频会议进行沟通纯下线沟通,所有同事都base深圳
沟通效率较低,每次沟通都需要调试设备,共享屏幕等,并且见不到面很多信息会失真高,直接面谈,肢体语言这些信息不会丢失
工作节奏有排期压力,有承诺客户交付时间。如果排期不合理会很疲惫。没有排期压力,前端工作量相比之前轻松
设计资源有专门的UED团队出图,前端不需要思考如何进行交互,这部分工作由设计师承担无设计资源,交互的好坏完全取决于研发的审美水平与自我要求
前端技术建设每个季度会有横向建设,有组件库共建等机会,前端技术相对先进部门内部无前端建设,依赖公司基建与之前经验
同事组成深圳base全员年轻化,校招生为主,因为年龄相同且技术方向相同,天然就有很多话题资深员工多,校招生占比很低,且划分不同方向,一般自己方向的人自己内部沟通较多
和+1的关系base不同,沟通频率很低。因为主要是做业务方的需求,沟通内容主要在支持工作的进展上。base相同,沟通频率比以前高5-10倍,除同步开发进展,还会针对产品迭代方向,用户体验等问题进行沟通
技术成长受限于部门性质以及绩效评价体系,员工需要在前端技术领域保持专业且高效,但工作一定年限后有挑战性的业务需求不足,容易遇到职业发展瓶颈。因为前端人数多,所以存在横向建设的空间,可以共建组件库等基建,非常自然的会接触这些需求。角色划分不明确,前后端可以相互支援彼此,大家摘掉前后端的标签,回归通用开发的角色。技术成长依赖自驱力与公司技术水平。研发人少,没有内部的横向建设机会。

纠结


为什么要转全栈?究竟有什么收益?我会在心里时不时问自己这个问题。任何一门技能,从入门到精通,都需要很多时间的学习与实践,在初期都会经历一段相当痛苦的时光。除了学习不轻松,能否创造出更大的价值也是一个问号。


但这次转全栈,有天时地利人和的作用,总结下来就是:



  1. Leader支持:和Leader沟通过,Leader觉得在我们团队多做多学对个人,对团队都有益处,欢迎我大胆尝试

  2. 后端同学支持:我们团队的细分项目多,后端工作饱和,可以分一个相对独立的活给我

  3. 全栈化背景:原先的大前端部门已经有部分前端转为全栈开发职能,部门层面鼓励全栈化发展

  4. 需求清晰:有些开发之所以忙碌是因为开会和对齐耗时太多。但是我目前拿到的prd都非常清晰,拿到就能直接开发,对齐扯皮的时间几乎不计,我只需要完成开发工作即可。这节约了我大量时间成本。想到之前经常是一天开个1-2小时会,搞得很疲惫。

  5. 工作熟练:从实习开始算起,我已经有2年多的开发经验,可以在预期时间内完成需求开发和bugfix,因此安全的预留时间精力转全栈。


其实不仅仅是我,和很多做前端的同事、朋友也都聊过,其实内心各有各的纠结。基本上大家的内心想法就是想在有限的条件下学习后端,并在有限的条件下承担一部分后端开发。


想学后端的原因:



  1. 纯属好奇心,想研究一下后端技术栈

  2. 前端作为最终的执行角色,话语权低

  3. 业务参与度低,可以半游离业务的存在,较边缘化。未来如果希望成长为管理,难以做业务管理,只能做技术管理,想象空间天花板就是成为管理一批前端的技术管理。

  4. 工作遇到天花板,想多了解一下其他的内容


想在有限条件下学习后端的原因:



  1. 工作比较忙碌,没那么多时间学习

  2. 学习一门技能要算ROI,学太多了如果既不能升职也不能加薪就没有意义

  3. 不确定市场对于全栈人才的反应,不想all in


想承担一部分后端开发的原因:



  1. 学习任何一门技能只有理论没有实践遗忘速度最快,马上就会回归到学习之前

  2. 掌握后端技能但没有企业级实战经验,说服力很弱


不想学习后端的原因:



  1. 国内市场上的全栈岗位数量稀少,如果后端岗位有10个,前端岗位有3个,那么可能就只有1个全栈岗位

  2. 普通前后端开发薪酬基本上没有区别,未来谁更好晋升在当前的经济背景也难说

  3. 大概率前端依然是自己的职业发展主线,学多一门技能可能会分摊本可以提升前端能力的时间精力

  4. 做舒适圈里面的事情很舒服,谁知道多做会不会有好处


我就是在这种纠结中一路学过来,从8月开始,痛苦且挣扎,不过到目前为止还可以接受。学到现在甚至已经有点麻木。但我也确实不知道继续在前端领域还能专精什么技能,现有的业务没有那么大的挑战性让我快速成长,所以想跳脱出来看看更大的世界。


学习路线


曲线学习


如果说做前端开发我是如鱼得水,那做后端开发就是经常呛到水。


记得我刚开始做前端实习的时候,真心感到前端知识好像黑洞,永远也学不完。由此非常佩服之前的同事,怎么把这些代码写出来的,有些代码后面一看写的还不错,甚至可能会感觉脊背发凉,是自己太弱还是自己太强?


在实习的时候,我的学习曲线可以说是一个向外扩散的圆。比如我第一次接触webpack的时候,根本不了解这是什么工具,之前一直在用jQuery写项目,所有的js都是明文写好,然后通过script引入到html中。所以一开始我会去查这个webpack到底是什么内容,但脑海中对他的印象还是非常模糊。接着我又因为webpack了解到了babel,css-loader这些概念,又去学习。又发现这需要利用到node,又去学习了《深入浅出node.js》。再后来又了解到了sourcemap等概念。直到正式加入字节半年后,我自己配了一次webpack,并且阅读了他的源码。进行了debug,进行了一次webpack插件开发的分享,才有信心说自己是真的弄明白了。不过这个弄明白,也仅限于排查bug,配项目,进行plugin和loader的开发,如果遇到更难的领域,那又将解锁一块黑洞。


怎么学


学习后端,要学的内容也一点都不少,作为新人会遇到非常多的问题。



  1. 怎么学 - 是死皮赖脸的逮住后端同学使劲问,还是多自己研究研究?遇到所有同事都不会的问题怎么处理?

  2. 学到什么程度 - 究竟要学到怎样的程度才能进入项目开发,而不犯下一些非常愚蠢的问题呢?

  3. 学习顺序 - 最简单的办法就是去看项目,看到不懂的分析一下这是什么模块的,看看要不要系统性的去了解。


我比较喜欢一开始就系统性的学,学完后再查缺补漏,再开启第二轮学习。


比如Go,官网就有很详细的文档,但未必适合新人去学。我跟着官网学了一阵子之后跑b站找视频学习了。然后又Google了一些资料,大致讲了一下反射、切片的原理,以及一些错误用法。学习Go大概用了2-3周。刚学完直接去看项目还是会觉得非常不适应,需要不断的让自己去阅读项目代码,找到Go的那种感觉。


然后需要学习很多公司内部的基建



  • 微服务架构 - 公司内部所有服务都是微服务架构,需要了解服务发现、服务治理、观测、鉴权这些基本概念以及大致的原理。为了在本地开发环境使用微服务,还需要在本地安装doas,用来获取psm的token。

  • RDS - 公司内的项目分为了各种环境,非常复杂。可以自己先创建一个MySQL服务自测,看看公司的云平台提供了哪些能力。

  • Redis - 大致了解即可,简单用不难

  • RPC - 微服务通过RPC传递,RPC协议通过IDL来定义接口传输格式,像字节会在api管理平台做封装。你定义好的IDL可以直接生成一个gopkg上传到内部镜像,然后其他用户直接go get这个库就能调用你的服务。但如果你是node服务,就可以在本地通过字节云基建的工具库自动生成代码。

  • Gorm - 所有的MySQL最终如果通过go程序调用,都需要经过gorm的封装,来避免一些安全问题。同时也可以规避一些低级错误。还需要了解gen怎么使用,将MySQL库的定义自动生成为orm代码。


还要好好学习一下MySQL的用法,这边花了一周看完了《MySQL必知必会》,然后去leetcode刷题。国庆节刷了大概80道MySQL的题目,很爽。从简单的查询,到连接、子查询、分组、聚合,再到比较复杂的窗口函数、CTE全刷了个遍,刷上瘾了。


接着就可以去看项目代码了,这一部分还是蛮折腾的,对于新人来说。本身阅读别人的代码,对于很多开发者来说就是一件痛苦的事情,何况是去阅读自己不熟悉的语言的别人的代码。


我最近接手的一个半废弃项目,就很离谱。开发者有的已经离职了,提交记录是三四年前的。PRD也找不全,到今天权限还没拿齐,明天再找人问问。这边可能是真的上下文就是要丢失的,没法找了。只能自己创建一个新的文档,把相关重点补充一下。


明天找一下这个项目的用户,演示一下怎么使用,然后根据对用法的理解进行开发……


收获


新鲜感


一直写前端真的有点腻,虽然现在技术还在迭代,但也万变不离其宗。而且真的是有点过分内卷了,像一个打包工具从webpack -> esbuild -> vite -> turbopack -> rspack。不可否认的是这些开发者的努力,为前端生态的繁荣做出了贡献。但对于很多业务来说,其实并没有太大的性能问题,对于这部分项目来说升级的收益很小。比如云服务的控制台,基本都是微前端架构,每个前端项目都非常小,就算用webpack热更新也不会慢。而且webpack使用下来是最稳定的,我现在的项目用的是vite,会存在样式引入顺序的问题,导致开发环境和生产环境的页面区别。


后端技术栈不管好还是不好,反正对我来说是很新鲜的。虽然我之前Python、Go也都用过,也用Python写出了完整的项目,但论企业级开发这算第一次~各方面都更正规


Go写起来很舒服,虽然写同样的需求代码量比TypeScript多一堆……习惯之后还是可以感受到Go的简单与安心。Go打包就没那么多事,你本地怎么跑服务器那边就怎么跑,不像前端可能碰到一堆兼容性问题。


真的有学到


我前几个月买了掘金大佬神说要有光的小课《Nest 通关秘籍》,据我了解我的几个同事也买了。不过我没坚持下来,因为工作上实在是没有使用到Nest的机会。我无法接受学了两三个月却无法在工作里做出产出的感觉。


但这一次学了可以立马去用,可以在工作中得到检验,可以接受用户的检验。我就会得到价值感与成就感。


而且字节的Go基建在我认知里很牛叉,一家以Go为主的大厂,养得起很多做基建的人。比如张金柱Gorm的作者,竟然就在字节,我前几天知道感觉牛人竟然……


Go的学习资料也非常多,还有很多实战的,真的像突然打开了新世界的大门~


与业务更近,以及更平和的心态


如果我没有学后端,会在“前端已死”的氛围里胡思乱想,忽略了前端的业务价值,前端依旧是很重要的岗位。让后端来写前端不是不行,但只有分工才能达到最高的效率。对于一个正常的业务团队来说,也完全没必要让后端去硬写前端,好几个后端配一个前端,也不是什么事。


就我目前的工作经验来看,后端可以和业务的使用者更近的对接。我们这里的后端开发会和非常多用户对接需求,了解他们的真实使用场景,思考他们背后的需求,可能还能弥补一下产品思考上的不周。和用户对齐数据传递、转换、存储、查询、以及需要不需要定时任务等等,这些后端会去负责。


而前端负责最终的交互,基本可以不用碰到使用者,基本上只需要根据后端给的接口文档,调用接口把内容渲染在表格上即可。碰到用户提反馈一般在于,加载慢(往往是数据请求很慢,但是用户会觉得是前端的问题)、交互不满意(交互美不美真的是一个很难量化的问题,按理说这属于UI的绩效)、数据请求失败(前后端接口对齐虽然体验越来越好,但是开发阶段经常改动还是免不了,最后导致前后端没有同步)。


之前开周会的时候,我基本上说不上什么话。一个是刚转岗,确实不熟。另一个是前端半游离于业务的状态,单纯的把接口内容渲染出来也很难有什么思考,导致开会比较尴尬。基本是后端在谈解决了什么oncall,解决了什么技术问题,有什么业务建设的思考等等。


这次看了别人代码之后非常期盼未来能独立owner一个方向,享受闭环一个小功能的乐趣。


职业安全感


我学的这项技能能够立马投入到工作中进行自我检验,因此我相信自己学的是“有效技能”。我理解的无效技能指学了用不上,然后忘了,花了很多时间精力最后不升职不加薪。之前看李运华大佬的网课《大厂晋升指南》里面有提到,有人花了半年把编译原理这个看似非常重要的计算机基础课学的很扎实,但因为业务不需要,不产生业务价值,也不可能获得提拔的机会。


其实内部全栈化我的理解,还有一个原因,那就是灵活调度。现在这个背景下,老板更希望用有限的人力去做更多事情。有些业务前端过剩了,但是缺后端,这个时候如果直接去招后端,一方面增加成本,再就是没有解决剩的前端,反之也是。在盘点hc的时候就容易出现调整。


多学一些有效技能,提高解决问题的深度、广度,让自己更值钱。我想不管是什么职能,最终都要回归到为业务服务的目标上。


End


写到这里,我依旧在转全栈的路上,只是想给自己一个阶段性的答案。


脱离舒适圈,进入拉伸区,需要付出,需要勇气,也需要把握机遇。给自己多一种可能,去做,去挑战自己不会的。我相信他山之石可以攻玉,越往深处走,就越能触类旁通。


作者:程序员Alvin
来源:juejin.cn/post/7287426666417700919
收起阅读 »

为什么说程序员到国企就废了?

事实上,单纯技术上来说,确实程序员进国企就废了。虽然我也是在央企,但是这确实是一件很无奈也很真实的事情,广大想来国企的小伙伴们也做好心理准备。 倒不是因为什么技术栈老旧这种广泛传播老掉牙的原因,而是一种工作气氛、工作压力、项目规模和大家吐槽最多的”工作压力“方...
继续阅读 »

事实上,单纯技术上来说,确实程序员进国企就废了。虽然我也是在央企,但是这确实是一件很无奈也很真实的事情,广大想来国企的小伙伴们也做好心理准备。


倒不是因为什么技术栈老旧这种广泛传播老掉牙的原因,而是一种工作气氛、工作压力、项目规模和大家吐槽最多的”工作压力“方面的原因。


首先,我本身互联网和央企都呆过,对于两者的工作环境和工作模式等是比较有发言权的。


由于互联网大多是to C项目,面向的是广大用户,是非常有竞争压力的,因为市场上同类产品的数目很多,如果你的代码出现了bug,那么影响到的可就是成千上万的普通用户。


就像微博崩溃了,在整个中国至少几亿人知道,那么你产生一个bug的成本是极大的,因此整体上来说互联网对代码质量的要求就非常高。


相对应来说的就是程序员个人的压力会极大,你必须确保你写的代码的严谨性,不能出现哪怕任何一点儿线上问题,否则等待你的可能就是辞退和担责。


同样也是上面的原因,由于你写的每一行代码都是需要经历成千上万人的使用来检验的,你和你的同时在写每一行代码的时候考虑的场景和风险就会更加全面,而不是简单的curd来完成业务即可。


并且,软件的复杂程度也是与软件的用户使用数量成正比的,使用的用户量越大,你的软件复杂性越高,你所需要解决的问题就越多,技术上涉及到的深度也更深,所以你在互联网企业中编程能力提升得会更快。


但但但 。。。是,并不是呆在互联网的所有程序员能力上都会有提升的,前面我说的这些都是互联网中的那群写核心代码的程序员,在别人框架上修修改改干些搬砖的活儿的人不在其中。


因为,大多数的大厂都有着自己的技术建设团队,会设计一堆自己内部用的工具,哪怕这种工具市面上已经有了也要自己造。长期在这种环境下,干使用别人框架的活儿,但是不继续学习承担更重要工作的人也是挺惨的,而且大概率会被大厂所淘汰。


但是国企的逻辑跟上面互联网的底层逻辑完全不同,互联网的项目大多数要拿到市场上去经历残酷的厮杀,只有做得最好的产品才能够最终活下来,获得垄断地位。


而国企的软件项目一般是一些集团的内部项目,或者有一些作为乙方为其它公司开发的项目也是常年合作下来的项目。


就如同中石油、中国五矿这样的集团内部的智慧化建设项目,本质上是不存在竞争的,因为即使我的软件开发部分可以外包出去或者找外包人员来做,但是这个软件必须得是你们集团牵头来做的。


包括版权和数据什么的最终必须属于你们的集团,而且大领导也热衷于将企业整体的智慧化建设作为工作成果向上汇报 。


所以这也就决定了,国企很多的软件是不太会面对竞争问题的,比如你很难想象让一个私企来做油田的智慧化管理软件。


因此,目前来说石油大体上还是垄断的,油田建设也只有中石油、中石化集团的相关公司可以进行建设,配套的软件你让私企自己来做个产品也是空中楼阁,做出来的东西也不一定能用。


但是,正是由于软件项目没有生存压力,并且国企的正式员工只要不犯下原则性问题,如违法犯罪,泄露公司机密、造成巨大的生产事故之类的重大问题,一般也是不会被轻易开除的,但是也可能存在不续约的情况发生。


因此,呆在国企的程序员就像温室里面的花朵一样,没有动力去优化问题,去采用新的技术,因为你代码写得再好也并不会给你更多的晋升机会,所以长期下去国企程序员的技术上确实就是惨不忍睹了。


其实,我刚从互联网大厂那边跳过来的时候,心理还极度不平衡,倒不是因为国企工资给得有多么低,而是我一直耿耿于怀的是我呆的那个大厂给的钱真的太少了。


但是,当我今年和一些工作好多年的成都普通程序员交流之后,我才发现了我作为校招生进入大厂之后整个人的狂妄与无知。


前一段时间,很多人看了我分享的去5A级景区写代码的blog之后,很多人都找到我问我们公司是否还有HC,是否还能够内推,其中一个哥们令我印象深刻。


他是西南某一本毕业的本科生,从学校毕业现在已经3~4年,也是Java后台开发,一直也是在一些中小型企业里面打转转。


和他聊的时候,才发现毕业短短3~4年他已经换过4~5份工作了,而且工资才渐渐的从当初刚毕业的几千块涨到现在的1w左右。


所以,怎么说呢,对于广大普通程序员来说,近几年的主题是活下来,如果这个时候能够有个地方能让你待到春暖花开的时候,也未尝不是件好事情。


至于技术,废了就废了吧,本质上来说job和career是两回事儿,job也就是“just over break”,每一个打工人,无论在国企还是私企都必须开启自己的”career“,而不是一直打工下去,这就是我的人生信条。


作者:浣熊say
来源:juejin.cn/post/7327724945761452042
收起阅读 »

4天卖600万份的爆款游戏《幻兽帕鲁》,真的是AI缝合怪吗

AI一天,人间一年。我是卷福同学,一个在福报厂修过福报的程序员。现在专注AI领域整活分享 大家好啊,最近2天,Steam上出了一款非常火的游戏《幻兽帕鲁》。到今天1月24日,才过去4天。它就卖出超过600万份,最高时180万人同时在线,直接登上Steam的热...
继续阅读 »

AI一天,人间一年。我是卷福同学,一个在福报厂修过福报的程序员。现在专注AI领域整活分享



大家好啊,最近2天,Steam上出了一款非常火的游戏《幻兽帕鲁》。到今天1月24日,才过去4天。它就卖出超过600万份,最高时180万人同时在线,直接登上Steam的热销游戏和最热游戏榜首。


1.png


这个成绩,放在Steam游戏史上甚至赶超了前段时间特火的《完蛋!我被美女包围了!》


同时,在玩家近7万的评测里,高达93%的评价都是好评


2.png


到底是一款什么样的游戏能拿到这样的成绩呢?


游戏内容


0.png


游戏世界是类似《塞尔达传说 旷野之息》那样的开发探索世界,玩家可以在庞大的世界里收集各种各样的幻兽,而幻兽借鉴了任天堂《宝可梦》这个大IP中的神奇生物系统,通过AI缝合而成的。


玩家们可以在游戏里找到各种熟悉的宝可梦的影子。


4.png


5.png


在游戏里,玩家可以进行开放世界探索、宝可梦式抓幻兽、第三人称射击战斗、生存建造房屋、养成宠物等各种玩法,不同的玩家都能在里面找到属于自己的乐趣。


6.png


7.png


现在已有小学生玩家体会到了在游戏当老板,压榨帕鲁的乐趣,还总结出一套帕鲁圣经:



缝合怪,但是全缝了


让人难以想象的是,这样一款现象级的爆款游戏在项目开始时只有10人,由小作坊Pocketpair开发。而这10个人也不是专业开发游戏的,而是Pocketpair的社长在网上发掘的野生的零经验的爱好者。


相关信息可以在社长Takuro Mizobe的推特上找到,置顶是1月16日社长写给玩家们的公开信。从信中,可以找到游戏开发设计过程中的很多细节


1.游戏里的枪械动作是社长在网上找的一个爱好者做的


9.png


(PS:没事咱也上传自己做手工的视频,说不定哪天就被伯乐挖掘了)


2.帕鲁的美术师在最初在推特上应聘时被拒绝,而且出图速度惊人


美术师是个应届生,曾应聘过上百家公司,都被拒绝了。社长表示,她是一个罕见的人才,出图速度是其他原画师的四五倍(注意这句),也因为有了这位美术师的加入,现在的游戏里才有了100种帕鲁。


10.png


11.png


另外给大家说一下熟知的《怪物猎人世界》游戏里的怪物类型也才50种。


如此惊人的出图速度,以及反馈修改,一分钟内就能修改完成,很难让人不怀疑其中有AI的参与。


社长Takuro Mizobe自身就是生成式AI的拥护者,早期在推特上就有分享过用AI制作游戏的动态。几乎可以实锤AI缝合怪的传闻了!


如何玩《幻兽帕鲁》


游戏在Steam上上架的,需要先安装Steam,然后游戏售价现在有优惠,是168港币,折合人民币为152元钱。冲着这几天爆火的程度,还是值得入手玩一玩的。


12.png


但是因为游戏实在太火爆了,官方服务器已经支撑不了这么多玩家了。好在官方提供了自建游戏服务器的方法,也就是你可以在云服务器上,甚至自己电脑上搭建幻兽帕鲁的服务器,然后游戏客户端登录就行。


甚至可以搭建个局域网服务器,约着几个好朋友一起在游戏世界里探索。


13.png


小卷已经给大家整理了云服务器部署幻兽帕鲁服务端的教程。在我的公众号内发关键词幻兽帕鲁领取


作者:卷福同学
来源:juejin.cn/post/7327538517528772618
收起阅读 »

很多人是无知的,但是他们总是觉得自己是对的!

昨天在朋友圈看到了我少年时期的初恋在朋友圈晒娃,她的娃拿了省里文艺比赛的冠军,站在C位拿着话筒演讲。 同时也看到了另外的朋友晒娃,只是二者形成了很鲜明的对比。 我在动车上陷入了沉思,然后和好朋友聊了几句,他说:我们那个时代的成长和教育方式在这个时代已经不可取了...
继续阅读 »

图片


昨天在朋友圈看到了我少年时期的初恋在朋友圈晒娃,她的娃拿了省里文艺比赛的冠军,站在C位拿着话筒演讲。


同时也看到了另外的朋友晒娃,只是二者形成了很鲜明的对比。


我在动车上陷入了沉思,然后和好朋友聊了几句,他说:我们那个时代的成长和教育方式在这个时代已经不可取了!


在我小时候,农活干得很熟练,挖地,跳水,放牛,割草,整天脏兮兮的,没条件学习艺术,没条件去旅游,眼睛看到的永远是门前那一望无尽的大山。


虽然三年级就到了镇里读书,五年级就到了城里读书,但是自卑伴随了很久。不过好在父母基本上一直都在身边,虽然物质条件不充足,但是精神上并不是那么贫乏。


但是我想说的是,对于我这种农村出来的95后,这种事情发生在那个年代是正常的,是可以理解的。但是发生在今天,那就是有问题的,因为那时候大多父母的文化水平都比较低,农村人的土地思维还根深蒂固。 只要孩子能平平安安成长,至于将来有没有出息,就看命吧。


但是今天不一样了,即使是大山里面的,那也看过了外面的世界,文化水平也提高了许多,但是为什么依然还会出现很多年轻人即使物质生活多么贫乏,依然还是选择要孩子,而孩子无论从教育还是各方面都非常落后。


在我小时候那个年代,早上打着电筒去上学的事情是有,但是到了今天,我亲眼看见了七八岁的小孩子早晨六七点在乡村充满泥泞的路上打着电筒,穿着陈旧的衣服,冷得打哆嗦,走几公里的路去上学。


而在他们没见过,没听过,没想过的大中小城市里面,小孩子早上起来吃了营养餐,父母或者爷爷奶奶再送去上学,每天学习各种技能,才艺,人一说都特别有自信。


你也别说这说那,比如:干嘛要送孩子啊,你看人家日本,孩子从来都是自己去上学,从小就锻炼了独立的意识,而国内则当成老祖宗一样,上下学都接送。


但是人家和你一样吗,人家那是选择这样,而我们大部分人是只能这样,这个问题下面我们会谈。


所以我们发现一个问题,农村出来的孩子在这个时代大多混得都比较差,还比较自卑,只有极少的能稍微改命,但一定是经过脱胎换骨换来的。


我们经常在网上看到一些视频,父母在外务工,一个小孩子就在开始干家务,做饭,还要照顾比自己小的弟弟妹妹。


然后下面的人就说:这孩子以后一定能成大器,一定有一番作为。


有些人也深深认同,甚至搬出一些名人的故事来:比如董卿很小的时候父亲就让她承包家务,每天还要去酒店打扫很多房间的卫生,最后人家不也成就一番事业了。


我想说:简直荒诞得不行,就算这种事情是真实存在过,那我们也别用来乱套在所有孩子身上。


现在很多人就喜欢说,孩子要穷养,这样对他以后才好,但是穷养并不是你想的那样的,你也别乱套在孩子身上。


首先要区分真穷养还是假穷养


董卿的父母都是复旦大学毕业的高材生,这种家庭放在今天都是炸裂的存在,更何况是八九十年代,所以文化水平和经济水平都是很强的。


那么人家穷养的目的是啥,无非就是锻炼孩子的心智,让她以后的路走得更远。


所以人家是有选择性的去穷养,今天我可以让你去打扫酒店,明天就可以带你去看艺术表演,学习钢琴。


但是一般甚至过得艰难的家庭,穷养不是选择,而是没有办法,所以只能穷养,你今天干家务,明天也只能干家务,看艺术,学钢琴和你一点关系都没有,甚至你一辈子都不可能接触到。


而且孩子以后走的路大概率也是十分艰难,都是为了一次三餐,混得基本上也不会好,这是必然的。


但是奇怪的是,很多人为了所谓的人生任务,传宗接代,根本不会去思考这些问题,甚至还有一些年轻人还抱有“儿孙自有儿孙福”的落后思想,还将自己的养老任务寄托在孩子身上。


有时候真的无法想象,二十一世纪了,还抱有这种思想,实在是可恶,可悲!


我先表达自己的观点和立场:如果你没有一定的经济支撑和教育能力,而是想要孩子自己靠自己,那么就是不负责任!


那么回到文章开头,一个孩子在省里的台上演讲,一个孩子在泥泞中穿梭。


是想说什么呢?


其实无非就是想表达良好的教育和物质生活的重要性。


我亲自见过一些尖酸刻薄的人,从来不会反思自己,看到别人的孩子特别优秀,他们会说:有啥了不起的,我孩子也不差,虽然在农村玩泥巴,但是他健康啊,他快乐啊,你孩子虽然成绩优异,能歌善舞,但是你看他压力多大,没有童年。


然后转头望向旁边的几个孩子,对他们说:以后老妈就靠你们了,你们以后出来打工,一人给我买一个金戒指和金项链,直接把老妈的脖子都压弯。


上面的事情是我亲眼目睹的,他们没耐心教孩子做作业,而是直接手机上搜出来抄上去。


然后孩子的考试成绩差了,很多人就开始怪孩子了,大声呵斥:你是怎么学的,你怎么一点出息都没有,你看看人家为啥能考第一,你为啥只能考这么点分?


而这样的例子少吗?我想说,一点也不少,特别是在落后的农村和小县城,很普遍。


因为他们的目的就是怕以后自己老了没人养啊,死了没人送终啊,然后又一直给孩子灌输这种思想,最终造成了恶性循环。


而孩子从小就没有得到良好的教育和生活体验,进入社会会恐惧,也没多少竞争力。


你以为那些初入职场就特别优秀的人是进入职场才优秀的吗?


不,人家在读书的时候就已经开始崭露头角了。


国内外你只要能数得出来的优秀企业家,作家,艺术家等等,要么从小家境就不错,即使不是大富大贵,但是也是小康以上,要么文化,教育气氛特别浓厚,要么二者都兼顾,基本很难找出一个没有具备这二者的条件人。


就拿几个熟悉的人来说,人家余华当年能在家全职写作,罗永浩能在家看两年闲书,马老师能复读。


那已经是八九十年代的事情了。


试问,就算现在有多少家庭能扛得住?


并不是说经济条件和教育条件一定要多么优越才能养孩子,而是最起码要有基本的保障吧,能做到负责二字吧。


你总不可能让他以后再把你的老路走一遍吧,这和害人没有任何区别。


还有很多父母总是逼着自己的孩子结婚生子,哪怕孩子现在都自身难保。


他们会说:生了以后放孩子在农村,我们给你带啊,你们再去外面打工,几年后孩子长大了就能自己读书,就能自己做饭了。


嗯。。。。。。。。。。。。。


很离谱。


但是依旧有很多按照旨意去做了,不为别的,就是为了所谓的责任。


然后就开始赌下一代会有出息,好给自己打个漂亮的翻身仗,自己的晚年就能安稳度过了。


二三十几岁,就已经开始去担心65岁以后的日子了,把话说难听一点,如果当下都不能好好去生活,还指望65岁以后能够生活好?


反正我不信,这逻辑本来就行不通。


作者:苏格拉的底牌
来源:juejin.cn/post/7327138554756612148
收起阅读 »

程序员为什么不能一次把功能写好,是因为他不想吗

引言 交流一下为什么他做的功能这么多Bug 大家好,最近看到一个有趣的问题: 程序员为什么要不能一次性写好,需要一直改Bug? 在我看来,程序员也是人,并非机器。 拿这个问题去质问程序员,答案无非那么几个。 1.需求的理解 有时候,在项目一开始,需求可能并...
继续阅读 »

为什么他做的功能那么多Bug


引言


交流一下为什么他做的功能这么多Bug


大家好,最近看到一个有趣的问题



程序员为什么要不能一次性写好,需要一直改Bug?



在我看来,程序员也是人,并非机器。


拿这个问题去质问程序员,答案无非那么几个


1.需求的理解


有时候,在项目一开始,需求可能并没有被完全理解清楚。


随着项目的推进,更多的细节可能浮现,需要对代码进行调整以适应新的或更清晰的需求。


首先需求的传递,通常有以下几种



  • 口头传递:程序员可能无意间听到策划的一句话,就认定为需求就是这样。

  • 需求会议:这是笔者认为比较正式的,相关人员一起,进行需求的分析和探讨。

  • 临时加的:前面提需求的时候遗漏的,后面补的。

  • 非工作日加的:在非工作日休息时,收到经理或者老板的电话需求。


这里面都涉及人与人之间交流和理解。它是极其容易受到人的状态和情绪影响的。


可能因为程序员在理解需求时较真策划无意或者有意的一句话


也可能因为程序员在会议过程中打瞌睡或者不以为然


甚至在程序员情绪不满的状态下接到了需求。


2.功能的复杂性


许多功能都涉及复杂的业务逻辑、数据处理和用户交互


理解整个功能如何运作的过程中,程序员可能会对功能的梳理不够清晰,导致一开始的实现可能考虑得不够完善


相信大家都清楚,无论是大功能还是小功能,都会有Bug


但是在相对复杂的功能下,Bug会更加容易出现甚至更多。


笔者认为这和人生的选择有点相似,越是关键的选择,越难选择


3.新的内容


项目迭代过程中,可能需要引入新的功能,他可能与项目框架或者方向完全不同。


这必然会导致程序的稳定性受到影响。


越是底层的内容,在修改时引发的内容变化就越容易,影响的面更广


这里面可能新的内容旧项目完全不搭,强行要引入这样的内容,在设计层面就不对。


也可能是因为程序员考虑不当,没有更加全面的考虑到策划或者经理的变化


4.时间的压力


项目通常有时间限制,导致程序员可能不得不在有限的时间内完成任务。


这可能导致在一开始时忽略一些潜在的问题,需要在后期修复


迫于时间的压力,程序员往往会不断地跳过遇到的问题,往更容易完成的方向去执行


那么这些卡点会被放到功能的最后处理,这和我们以前考试是相类似的。


老师教导我们,在考试遇到困难的问题时,先跳过,等到试卷做完一遍之后回来再看难题。


但往往问题也会出现在这些跳过的内容,要么难题还是难题,做不出来。要么就是给到这些难题的时间已经不多了。


5.功能的耦合


在团队协作的环境中,不同部分的代码可能同时被多个程序员修改,可能导致冲突和Bug


此外,不同模块之间的复杂交互可能在测试之前难以被完全预测


这种问题通常表现为,A程序员修改的项目的A功能,但是出乎意料的的是B程序员B功能出了问题。


这里面就涉及框架和项目的耦合情况,越是耦合严重的代码(通常被称为"屎山"),你的修改越是不能一干二净出乎意料地影响了其他功能。


6.硬件和环境变化


程序可能在不同的硬件和环境中运行,这可能导致一些未考虑到的问题。


为了适应不同的环境,可能需要进行一些修复和调整


大家知道用户的使用环境可能千奇百怪


首先设备环境就分为好几种,原生的Android,iOS,网页的H5,还有PC小程序


其次不同的网络环境,2g,3g,4g,5g和wifi


程序员在开发时以最好的网络最好的机器,去到用户的千元机,万元机和老人机的时候表现都不尽相同。


怎么解决


一把需求给你,你就那么多问题,都是不能解决的吗?


笔者认为事实并不如此,人是会进步的,通过不断的总结和优化,能逐步减少Bug的产生,但是不能杜绝



  • 需求理解:程序员与策划/经理的关系要融洽,工作时沟通和交流不要存在个人情绪和意见。认真对待每次需求会议。

  • 功能的复杂性:程序员与策划/经理要一同考虑功能的复杂性,策划与经理不能一味地提需求而不考虑复杂性,程序员不能一味地实现功能不考虑功能的变化。

  • 新的内容:程序员要仔细评估新内容对旧项目的冲击,策划/经理要认真考虑,这个功能是不是真的合适项目。

  • 时间的压力:更合理地评估功能的完成时间,拒绝不合理的降本增效。

  • 功能的耦合:不断提升代码能力,学习更加优秀的写法,应对不同需求的变化。

  • 硬件和环境变化:加强不同环境的测试,这里面要考虑的是不同环境测试的便捷性,不断优化测试环境,不要让测试困难导致了Bug的产生。


结语


不管是程序员还是策划还是经理,沟通是减少问题的关键,而不是质问。


在哪里可以看到如此清晰的思路,快跟上我的节奏!关注我,和我一起了解游戏行业最新动态,学习游戏开发技巧。


作者:亿元程序员
来源:juejin.cn/post/7320906381795672116
收起阅读 »

北京职场50万定律:在北京不论你在任何单位工作,只要年收入大于50w,基本上都要牺牲个人生活

大家有没有注意到北京职场里的一个不成文的规则?就是,不管你在哪个单位,干什么活,只要年薪过了50万,基本上个人生活就得打个折扣。无论是教书、看病,还是在金融和互联网领域打拼,或是在央企、民企工作,年入五十万似乎成了个隐形的分水岭。当然,销售岗位除外,那里可能情...
继续阅读 »
大家有没有注意到北京职场里的一个不成文的规则?

就是,不管你在哪个单位,干什么活,只要年薪过了50万,基本上个人生活就得打个折扣。

无论是教书、看病,还是在金融和互联网领域打拼,或是在央企、民企工作,年入五十万似乎成了个隐形的分水岭。当然,销售岗位除外,那里可能情况会有点不同。

但大体上,挣得多,似乎就得在个人时间上付出更多。

北京这地儿,竞争激烈,生活成本高。这就导致了“高薪等于高投入”的默认规则。

想挣大钱,自然得付出相应的努力和时间。这里的“牺牲”,就不仅仅是晚上加个班、周末去办公室那么简单,更多的是一种持续性的、深入骨髓的工作状态。

再看看我们周围,无论是医生还是教师,这些本来应该是相对稳定的职业,现在也变得跟时代的步伐紧密相连。

医生要不断学习新技术,教师要跟上教育的最新趋势。在金融或互联网行业就更不用说了,几乎每时每刻都在发生变化,稍有不慎,就可能被淘汰。

这种压力下,不仅仅是时间的牺牲,还有心理上的压力和身体上的消耗。

那些年薪过50万的人,大多数都不是刚入门的新手,而是那些担任一定职位、肩负一定责任的中高层管理者。

他们不仅要管理好自己的工作,还要带领团队达成目标。这里面的付出,远远超过了普通员工。

作为领导者,他们需要有自我牺牲的精神,不仅要把工作做好,还要让团队成员感到鼓舞和尊重。

但这就带来了一个问题,工作和生活的平衡怎么办?在这样的工作强度下,家庭、朋友、爱好,甚至是基本的休息和锻炼时间,都可能被挤压。有的人为了工作,可能连基本的身体健康都顾不上。

长此以往,无论是身体还是心理上都可能出现问题。

这种“牺牲个人生活”的现象,在体制内也同样存在。想象一下,一个普通的公务员或企业职员,如果只是每天按时上下班,不加班不出差,他的年薪可能也就在25万到35万之间。

但如果想要年薪超过50万,那就必须得承担更多的工作,比如疯狂地做业务,或者成为领导,这几乎意味着要把全部的精力和时间都投入到工作中去,个人生活自然会受到很大影响。

这里的“50万定律”并不是一个精确的数字,可能在40万到60万之间都有类似的现象。

有些行业里,三十岁之前如果年薪没达到这个水平,可能就被认为是没什么前途;而有些行业则突然间成为热门,员工的收入在短时间内暴涨,这都是市场变化的常态

但不可否认的是,这种现象背后反映出的是一个更深层次的社会和文化问题。

在北京这样一个高度竞争的环境下,很多人为了职业成功,不得不放弃其他很多东西,比如时间、家庭甚至是自己的价值观和人格。

说实话,这个“50万定律”真是让人又爱又恨。我们都知道,钱虽然不是万能的,但没钱是万万不能的。

在北京这样的大城市里,不拼一拼,可能连基本的生活水平都难以保障。所以,能拿到高薪的人,确实值得尊敬。

他们的努力和付出是显而易见的。

但话说回来,这种高强度的工作压力真的值得吗?工作再好,钱再多,如果没有时间和精力去享受生活,那这一切又有什么意义呢?

有时候,我真的在想,我们这些在职场打拼的人,是不是都陷入了一个误区:认为只有工作成功了,人生才算成功。这种想法真的对吗?

我觉得,工作是为了更好的生活,而不是生活只为了工作。我们要追求的,应该是一种平衡。不是说不努力工作,而是在努力工作的同时,也要关注自己的身心健康,家庭和人际关系。

毕竟,当我们老了回头看这一生的时候,可能不会因为多挣了几个钱而感到自豪,反而会因为错过了孩子的成长、家人的陪伴而感到遗憾。


作者:升职笔谈
来源:mp.weixin.qq.com/s/Ku-qjNYERd2sqWuNA7IwCw

收起阅读 »

互联网大厂,开始对领导层动刀了

最近,我周围有挺多互联网大厂leader级别的同事或朋友,被“降本增效”了。 其中最有意思的是,我的前同事老Z今年刚刚晋升了一级,在这个级别上还没待热乎了,然后就下来了。 有句话是这么说的:“世界上最残忍的事,莫过于让其拥有一切,然后再剥夺其所有。” 有次我跟...
继续阅读 »

最近,我周围有挺多互联网大厂leader级别的同事或朋友,被“降本增效”了。


其中最有意思的是,我的前同事老Z今年刚刚晋升了一级,在这个级别上还没待热乎了,然后就下来了。


有句话是这么说的:“世界上最残忍的事,莫过于让其拥有一切,然后再剥夺其所有。”


有次我跟老Z吃饭,他苦笑着跟我说:“妈的,如果不晋升,没准还能待下去呢,晋升之后反而目标变大了。”


我问他:“那你最近看新机会的结果怎么样,有没有拿到比较满意的offer呢?”


他说:“面试机会倒是不少,大厂已经面了五六个,但最后都无疾而终了。”


接下来,他又把话题聊了回来,说:“你说,如果公司对我不满意,为什么还给我晋升呢,但如果公司对我满意,又为什么还要裁我呢?”


我给他举了一个这样的例子:“就算大款给小三买奢侈品,让她住豪宅,但并不代表不会甩了她啊,对吧。”


他听了哈哈大笑,似乎释怀了。


接下来,我盘点一下,具备什么特征的管理层最容易被“降本增效”,以及在未来的日子里,我们应该如何应对这种不确定性。


“降本增效”画像


跟大家聊下,哪类用户画像的领导层最容易被“降本增效”,请大家对号入座,别心存侥幸。


(1)非嫡系


不管到哪天,大厂也都是个江湖,是江湖就有人情世故。


如果你不是老板的嫡系,那公司裁员指标下来了,你不背锅谁背锅,你不下地狱谁下地狱。


你可能会说:“我的能力比老板的嫡系强啊,公司这种操作,不成了劣币驱逐良币了吗?”


其实,这个时候对于公司来说,无论是劣币还是良币,都不如人民币来得实在。


人员冗余对于公司来讲就是负担,这个时候谁还跟你讲任人唯亲还是任人唯贤啊。


(2)老员工


可能有人会这么认为,老员工不但忠诚,而且N+1赔的钱也多,为什么会优先裁掉老员工呢。


我认为,一个员工年复一年、日复一日地待在熟悉的工作环境,就犹如温水煮青蛙一样,很容易停留在舒适区,有的甚至混成了老油子。


而老板最希望看到的是,人才要像水一样流动起来,企业要像大自然一样吐故纳新,这样才会一直保持朝气和活力。


总之,老板并不认为员工和公司一起慢慢变老,是一件最浪漫的事。


(3)高职级


对于公司来讲,职级越高的员工,薪资成本也就越高,如果能够创造价值,那自不必多说,否则的话,呵呵呵。。。


现在越来越多的公司,在制定裁员目标的时候,已经不是要裁掉百分之多少的人了,而是裁员后把人均薪资降到多少。


嗯,这就是传说中的“降均薪”,目标用户是谁,不多说也知道了吧?


(4)高龄


35+,40+,嗯,你懂的。


老夫少妻难和谐,大龄下属跟小领导不和谐的几率也很大,一个觉得年轻人不要抬气盛,另外一个觉得不气盛就不是年轻人。


不确定性——在职


恭喜你,幸存者,老天确实待你不薄,在应对不确定性这件事情上,给了你一段时间来缓冲。


如果你已经35+了,那接下来你需要把在职的每一天,都当成是最后一天来度过,然后疯狂地给自己找后路,找副业。


一定要给你自己压力,给自己紧迫感。


因为说不定哪天,曾经对你笑圃如花的HR,会忽然把你叫到一个偏僻的会议室里,面无表情地递给你一式两份的离职协议书,让你签字。


在你心乱如麻地拿起签字笔之际,她没准还得最后PUA你几句:“这次公司不是裁员,而是优化。你要反思自己过去的贡献,认识到自己的不足,这样才能持续发展。


当然,你有大厂员工的光环加持,到市场上还是非常抢手的,你要以人才输出的高度来看这次优化,为社会做贡献。”


至于找后路和副业的方式,现在网上有很多类似的星球,付费和免费的都有,加一个进去,先好好看看,主要是先把思路和视野打开。


当然,如果你周围要是有一个副业做得比较好的同事,并且他愿意言传身教你,那就更好了。


然后,找一个自己适合的方向和领域,动手去做,一定动手去做,先迈出第一步,可以给自己定一个小目标,在未来几个月内,从副业中赚到第一次钱。


从0到1最难,再接下来,应该就顺了。


不确定性——不在职


如果35+的你刚刚下来,而且手头还算殷实的话,我先劝你第一件事:放弃重返职场。


原因很简单,如果一个方向,随着你经验的积累和年龄的增长,不仅不会带来复利,而是路会越走越窄,那你坚持的意义是什么?难道仅仅是凑合活着吗?


第二件事,慢下来,别立马急急忙忙地找出路,更不要一下子拿出很多本金砸在一个项目上。据说,有的项目是专门盯着大厂员工的遣散费来割韭菜的。


有人会说,在职的人你劝要有紧迫感,离职的人你又劝慢下来,这不是“劝风尘从良,逼良家为娼”吗?


其实不是的,只是无论是在职还是离职,我们都需要在某件事情的推进上,保持一个适合且持久的节奏,不要止步不前,也不要急于求成,用力过猛。


第三件事,就是舍得把面子喂狗,不要觉得做这个不体面,做那个有辱斯文,只要在合理合法的情况下,能赚到钱才是最光荣的。


接下来,盘点周围可用资源,调研有哪些领域和方向适合你,并愿意投入下半生的精力all in去做。


这个过程可能会很痛苦,尤其对于一些悲观者来说,一上来会有一种“世界那么大,竟然再也找不到一个我能谋生的手段”的感觉,咬牙挺过去就好了。


这里说一句,人只要自己不主动崩,还是远比想象中耐操很多的。


结语


好像也没什么好说的,大家各自安好,且行且珍惜吧。


作者:托尼学长
来源:juejin.cn/post/7317859658285318170
收起阅读 »

备案的域名过期后没管,竟然违法了?

写在前面 去年曾经申请过一个域名玩,特别便宜,九块钱一年。放上去了一个静态页面,当时研究了一下配置https,然后给自己的网站做过一次备案。 前几天,到期后一直提醒我,但是我工作繁忙,也忘了去处理。直到前两天,突然一个云厂商电话打过来,居然说我的网站涉嫌赌博,...
继续阅读 »

写在前面


去年曾经申请过一个域名玩,特别便宜,九块钱一年。放上去了一个静态页面,当时研究了一下配置https,然后给自己的网站做过一次备案。


前几天,到期后一直提醒我,但是我工作繁忙,也忘了去处理。直到前两天,突然一个云厂商电话打过来,居然说我的网站涉嫌赌博,存在违法行为,要取消备案???


备案域名接管


我的网站就是一个静态页面啊?咋可能涉嫌赌博,而且域名也早已过期了?


电话过来之后,然后收到了一封云服务商发来的邮件



好家伙,这咋突然变成赌博网站了???


完了,域名接管算是让我碰到了,域名到期直接被抢注了,然后把备案信息也直接接管了。


因为电话里已经确认域名过期了,但是备案信息忘了取消,所以云厂商这边就自动发起了取消流程。这个赌博网站已经访问不到了。


写在后面


这危害还挺大的,通过抢注过期的备案域名,来部署违法网站,这就代表着这是一个拥有国内工信部备案的违法网站。


万万没想到,这波让我碰上了,没意识备案信息没有随域名到期一块取消,导致自己的备案信息被接管了。


大家也注意,域名到期的时候记得把自己的备案信息给取消掉。


作者:银空飞羽
来源:juejin.cn/post/7327116051438780456
收起阅读 »

2023年底被裁,分享一下面试经历

人生中第一次被裁员 2023年11月11日。 “来一下小会议室”。 领导给我私发了一条消息。 我隐约感觉到有不好的事情要发生了。在经历了一段时间的996之后,公司也开始陆续裁员了。前几天就已经连续走了好几个同事。我也是猜到被单独叫到小会议室意味着什么。虽然有所...
继续阅读 »

人生中第一次被裁员


2023年11月11日。


“来一下小会议室”。


领导给我私发了一条消息。


我隐约感觉到有不好的事情要发生了。在经历了一段时间的996之后,公司也开始陆续裁员了。前几天就已经连续走了好几个同事。我也是猜到被单独叫到小会议室意味着什么。虽然有所准备,但是还是感到忐忑。老实说做前端快5年了,我从来没有经历过裁员。基本都是发现公司情况不对,我就跳槽了。但是如今互联网it的行情已经大不如前了。我试着投过简历,根本连面试都约不到,一点机会都没。之前我有篇文章996,说明了公司和我个人的一些情况。虽然对公司的一些地方感到不满,但是年底被裁的话。找工作的压力会非常大,还是想先继续混着的。


结果事与愿违。


“你对裁员有什么看法?”


随着领导的提问,我算是明白了,轮到我被裁咯。


”我没什么看法,只要公司合法给我n+1就行“。


已经有同事被裁了,我也是懂了。被裁也没有什么办法,拿钱走人呗。领导说公司是经济性裁员,没有办法。不是我技术的问题,公司养不起这么多技术人员。产品经理、项目经理、ui、前端、后端都有被裁的。离开只是时间问题。公司是一家传统企业,现在赚不到钱了,你懂的。


我也没有过多说什么,然后人事那边的负责人就来了。跟我谈赔偿的问题,说什么公司困难。给的方案是赔偿n,这个月工资给你延几天。把东西交接一下,签字了就可以走了。我也问过之前被裁的同事,都是说公司只给赔偿n。我在公司待了快2年,赔偿我2个月的工资。我也没有挣扎,就是问了赔偿金具体多少钱,什么时候能够给我。然后就签字了,代码提交,写了一些文档。当天下午人就走了。


地铁


下午5点左右,地铁上,我拎着午睡的抱枕和键盘回家了。


我和这家公司的交集到此就结束了。当天谈完签字,人就走了。第二天产品经理还找我看问题呢,我直接说明自己被裁了。感觉就在一瞬间,后来也有一些同事联系我,都觉得我不会被裁,我也觉得自己的技术不是问题。


但是经过这件事我懂了,如果想要在一家公司长久混下去,技术不是重点,对于领导来说服从命令,按部就班就行。但是如果你想要去外面更广阔的世界,我还是推荐你要有自己的想法。不是一味得听从上级的安排。比如上家公司后端是java,但是我就是学go。上家领导想要做rn的app,我就是学flutter。当然这些都是我利用业余的时间学习的。这些额外的知识并不会影响我的基本工作,我本职还是前端开发,vue、uniapp这些会就行了。


关于赔偿的问题,听说有部分同事还在耗着,坚持要n + 1。这件事看自己的把握,我当时的想法是早点离开这个地方。因为我想要在年前找到一份新的工作,如果拖的太晚,后面离过年不久了,找工作基本就没有希望了。或者有人觉得这时候被裁,也是不好找工作。拖一天也是一天的工资,最后还能拿到n + 1那当然就最好了。一起被裁的同事感觉很多都去旅游了,回老家了什么的。


抓紧找工作


被裁第二天,我就开始改写简历了,我说一下自己的情况。


base:上海 5年前端开发经验


5年前端开发经验,其实几年经验这个没啥好说的。因为一个人多少年工作经验并不能代表一个人的实力。我学历大专,可以说是很低了。给自己的定位也不是很高,一个中高级开发。现在的市场感觉起码都是3至5年经验才好找工作。我觉得,这个年纪的开发,应该是能从0到1开发的。基本的框架搭建一下,然后熟练使用一些api就行。是的这样的开发一抓一大把,那么我们就需要有自己的加分项。接下来,我来分析一下我在2周内约到的3家面试公司的情况:


第一家公司:


主要做医疗方面的。技术栈主要是 react + taro小程序。


笔试题大概内容:



  1. flex布局的理解。

  2. 排序算法:这里推荐写快速排序,这个简单写的快,时间复杂度也ok。

  3. 递归遍历对象的属性。

  4. prototype 原型链继承 call/apply/bind

  5. 事件循环,流程控制方面的,这个前端开发面试估计都问烂了,问打印结果的顺序的。

  6. promise 的一些方法,all allsettled

  7. shadow dom 了解程度

  8. vue react 区别,如何理解虚拟dom


但是由于上家主要做的vue,所以面试官主要问的vue。当然我回答的一般,源码没看完,很多看了就忘了,不过基本用法是很熟练的。TyeScript使用情况,小程序开发的一些问题,canvas使用熟练度。最后面试官让我等一下,应该是要领导级别的来面了。结果一会儿跟我说领导今天不在,让我下次再去二面。面试失败了。


总结分析:需要熟练使用 react + taro 小程序,我只是了解taro。对于前端的问题有比较深入的了解。


第二家公司:


主要做游戏的。技术栈主要是 vue + go,需要做小程序、官网。也就是要会uniapp、nuxtjs。


是的,你没有看错。这是一个全栈开发的岗位。后端技术领导面的,说这边没有专业的前端。都是go开发、ios开发兼职前端。我理解的意思基本就是你要身兼多职。然后说要找一个主要做前端但是要会go的。不需要你搭框架,不需要写微服务。我说我会gorm、gin,面试官没有问了。后端主管估计觉得这些后端的基础都很简单,做过基本都会的。


基本都是问的前端的问题,vue 前端数据一万条卡顿怎么处理,网站需要2k 4k 手机端兼容怎么处理。游戏官网的特效活动会比较多,然后就是支付的问题。后面说考虑一下,后面给我答复。问我期望薪资,我感觉也进不去这家了。随便说了一个20+。最后凉凉啦。


总结:需要官网活动特效的制作经验,动画效果。网站兼容性的考虑,1080p 2k 4k,手机端的处理。性能优化,go开发基础。


第三家公司:


主要是供应链物流管理。技术栈 vue + uniapp, 加分项 flutter。


公司需要把老的技术vue2升级到vue3,uniapp的app开发升级成flutter。这个就是跟我上家的经历基本就一样了。vue3 + ts技术栈,小程序需要会。小程序就问了怎么获取手机号的,授权手机的流程,做过就能回答上。如何把项目从 webpack 迁移到 vite的。我之前有文章写过,vite 构建vue3项目。面试官人比较好相处,基本是熟练使用就不是问题。


主要是我展示了自己写的博客,还有一个自己开发的flutter app在我的手机上给面试官展示。面试官问我开发app的一些思路。硬件授权、状态管理、缓存、路由权限啊等等我就自己写的案例app给面试官讲解了一下。面试官比较认可,通过了,然后hr也问了一下流程问题。离职原因,之前公司的人员规模,之前的岗位,之前的直接汇报对象。距离啊,看中公司哪个方面啊。这种问题都是开放性的,积极主动回答,然后态度好一些就行。最后的结果是降薪1k元旦之后上班,我选择接受。


发展建议


最后,我根据自己的情况给大家一些跳槽和找工作的建议。开发人员还是技术为主,但是在公司上班呢要有一定的人情世故。有时候你在的业务线不行,你再厉害也不行。老板是要赚钱的,有钱的时候运气好,你就能拿到高工资。但那不一定是你真正的实力,尤其是公司效益不好的时候。需要考虑自己的下一步走向了。想要留着公司就要稳住主业务线,负责核心功能。不然就需要学习掌握一些其他公司需要的技术了。


普通学历,技术一般先不要想着跳槽了。我失业三周降薪上班的,可见大环境已经是非常的恶劣了。而且遇到的面试要求都是比较高的,大公司学历低的更进不去。还有工作的守住自己的岗位,最好是核心业务。但是如果你是边缘的业务,感觉到可能要被裁了。那么我建议你趁早准备,把自己的时间节省出来学一些技术。一个月就能学会一个小技术,增强你的职场竞争力。


如果你正在找工作。请相信机会是留给有准备的人的。就算年底被裁了,也不要直接就放松下来。因为明年找工作的人也不会少的。现在行情不好了,需要提前有个预期。需要打持久战,找工作需要一个月甚至更久。我们需要针对性的补足一些技术,比如app开发的rn、flutter、桌面端开发。webgl、threejs、canvas大屏可视化。nodejs或者其他后端语言全栈开发。seo,ssr等等。相信一两个月之后你总能掌握一两个技术点。


第一步是优化简历,把自己的优点全部展示出来。比如带过团队,从0到1开发,框架搭建。个人博客网站,github上面的项目等等。然后就要根据公司的需要,哪些是加分项的东西。针对性的学习一下,做个案例。


第二步面试。态度很重要,面试官不会喜欢高傲的面试者的。就算你真的很厉害,他也会问的你回答不上来为止。其实这些问题他也不定会。你就老实回答你所知道的,不会的不要乱扯了,不然就让人觉得你很不稳重的。基础知识稳扎稳打,不建议搜面试题。很多面试官都会问你项目中遇到的难点,怎么解决的。会看你研究问题的深度,是不是那种拿来主义的人。


然后是运气,每天学一点,慢慢积累,机会来了才能把握住得住。


新的一年,祝大家工作顺利!


作者:白筱汐
来源:juejin.cn/post/7318446300591030281
收起阅读 »

我们领证啦

是的,我们领证了。在跟她经历2年时间的相处后,我们在今天2024年1月5日正式办理了结婚登记。# 我是如何找到老婆的 其实这次还是有那么一点点波折的,因为外地人无法在上海直接领结婚证,但是这个日子是我爷爷请算命先生帮我们看好的,所以我们决定回到我的老家湖北十堰...
继续阅读 »

是的,我们领证了。在跟她经历2年时间的相处后,我们在今天2024年1月5日正式办理了结婚登记。# 我是如何找到老婆的


其实这次还是有那么一点点波折的,因为外地人无法在上海直接领结婚证,但是这个日子是我爷爷请算命先生帮我们看好的,所以我们决定回到我的老家湖北十堰办理结婚登记。


今天请了一天假,考虑到怕一些突发事件,因为我们同省不同市,我怕还要什么证明,我们选择了坐飞机,预留一些时间,比如资料不齐要补资料什么的。因为6点20的飞机,我们定了4.的闹钟,但是凌晨一点半我就醒了,然后一直睡不着,可能是有点小激动的缘故吧。没等闹钟响,我们3点50分起床,煮了2个鸡蛋,带了2盒酸奶,烧了一壶开水装了一杯就匆匆出发了,昨晚预定的出租车4点20也准时到了。到了机场安检才发现不能自带水,酸奶也得喝掉,因为好几年没有坐过飞机了,竟然连这都不知道😂。6点20的飞机,因为晚点,等了一会,大概6点30就起飞了,还好还好,早晨9点就到了武当山机场,晚出发,提前达,这也是可以了。


然后我们打车到民政局,这里有一点小波折,地图一搜随便挑了个,到那发现门口竖了一个牌子,民政局换址了。


图片


我们没办法,只能坐公交去牌子上面民政局的新地址:蓝山郡。到了那里,发现那里是市政府一带,找了好一会才得知,在一个大排档旁边上去的二楼,终于找到了张湾区民政局,忘记拍了,反正非常小的一个门面,仿佛生怕别人找到似的😂。


进了大厅我们发现此时里面只有我们办理,我本来还怕排队。办理的小姐姐人很好,很细心,业务也很熟练,我们提供身-份-证、沪口本、3张照片,期间我们填了2张表,签名,按了6个手印,大概10分钟就办好了。


图片


办理期间我们全程没有表露出很兴奋的表情,以至于出民政局时,我在想当时应该面露开心一点,我甚至觉得自己没有表现好。不过这些都不重要了,此时我们很开心,我们一起走出大厅,我们觉得我们俩此刻是最幸福的人。


总的来看,此次回老家办理结婚登记,整个过程还是挺顺利的。


最后,祝天下有情人终成眷属,希望大家龙年行大运!


作者:大数据技术派
来源:juejin.cn/post/7322355350921461800
收起阅读 »

我们应避免感动自己的无效学习!

Hello,大家好,我是 Sunday。 很多同学老找我沟通时,多会说:“Sunday老师,我想要学 angular,我想要学 node,我还要学 go,学 python,学 java。对了,数据库也得学! sunday 老师,你觉得 webGL 有必要学吗?...
继续阅读 »

Hello,大家好,我是 Sunday。


很多同学老找我沟通时,多会说:“Sunday老师,我想要学 angular,我想要学 node,我还要学 go,学 python,学 java。对了,数据库也得学! sunday 老师,你觉得 webGL 有必要学吗?我听说现在好多公司都在用”。


天呢!为了学而学,你学的完吗?


每次,看到这种情况,我都需要安慰他们好久,舒缓大家的紧张情绪。


我能够明显感觉到,在现在 “内卷” 日益严重的大行情之下,很多同学都会充满的焦虑,生怕自己一个不小心就会被淘汰掉。从而开始学习很多很多的内容,期望可以通过这种方式来 “安慰自己”,告诉我已经很努力了,我不会被淘汰。


可是很多时候,这种无目标,无结果的努力,其实是 毫无价值 的!



为了学而学,毫无价值


我们学习的目的只有一个,那就是:“通过最小的付出,获得最高的收入”。


所以,不要做 “感动自己的事情”。


通过无意义的折磨自己,无效的努力学习,只会为你带来痛苦。而痛苦就是痛苦,它和成功毫无关系!



那么我们应该如何做呢?


01:做减法


我做开发有 10 多年了,做技术讲师也有 5 年了。期间见过大量的、各种各样情况的同学。



  • 有同学: 学完了 Vue、React、Angular,但是哪个都不精,所以只能一边拿着不算高的薪水,一边问我:“sunday 老师,为什么我学完了这么多的东西,还没有办法拿到更高的薪资?”

  • 有同学: 不光学习前端,还学习后端。美其名曰 全栈。并期望以此来获得更高的薪资。但是往往事与愿违,老板不愿意给他涨薪,让他时常觉得自己 “怀才不遇”。

  • 有同学: 每天都会学习到晚上 12 点,永远在追逐最新的技术。有了什么新的框架、哪位大佬说了什么话、圈子里面发生了什么事 了熟于胸。日常吹牛高谈阔论,一到面试百无一能。

  • 有同学: 钻研 “技术细节”,5 种实现继承的方法、JS 打印有几种写法 摸得门清。但是一到日常开发,却 bug 百出,百思不得其解。

  • 有同学: ......


对于现在很多的同学而言,大家都已经非常的 “卷” 了。并且已经把 “卷” 当成了日常,生怕自己跑的太慢,而被 “抛弃”。


但是,漫无目的的跑,本身毫无意义,只是在 “感动自己罢了”。


所以说 适当的做做减法吧!



  • 明确自己的目标: 你到底想要什么?想要涨薪?想要在社群有更多的话语权?想要掌握一些谈资?不同的目标下,你所需要做的事情是不同的。

  • 摆脱掉所有与你的目标无关的事情:

    • 买了一堆书也不看的,就把它们收起来,听我讲就行了

    • 之前整理过的笔记,把那些不看的删了,把感觉有价值的,整理成博客发出来,以输出来反哺输入

    • 炒股的同学,把炒股软件删了吧,除了影响心态,其他的没啥用




02:学而不用,是为 null


有人多同学学习的时候习惯 记笔记。特别是我在黑马工作的时候,经常会见到有很多同学 记了满满一大本子的笔记。但是在实际工作之后,却从来没有再次翻开过。


我们总会去学习各种各样的新知识,但是因为我们的工作内容并不会发生太大的变化,所以就会导致很多的知识点因为不经常使用而被忘掉。甚至,当我们遇到一个问题的时候,去百度发现...百度到自己的文章......


所以说 学而不用,是为空


知识分为广度和深度,任何的一个人都有自己的 “能力圈”



  1. 想清楚你的能力圈是什么

  2. 然后,学习你能力圈之内做事情


学而有用,避免学习任何你用不到的知识。


03:找到你真正喜欢的事情


有很多同学学习开发只是因为 做开发可以赚更多的钱。 这本没有错,我们都是为了钱而工作。


但是,如果你本身并不喜欢开发的话,则这份工作对你而言可能并不是一个长久之计。


所以,找到你真正喜欢做的事情很重要,因为任何一个你不喜欢的职业,你都不可能一直做下去。


所以,找到你真正喜欢做的事情。在日常工作之余,开始做这个事情。在这里给大家讲一个真实的故事:



我之前工作的时候有一个同事,咱们暂且叫他老张。老张平时不争不抢,就喜欢摆弄一些多肉。


很多在我们看起来很无聊的养护工作,在他做起来却乐此不疲。


后来在 21 年的时候,他从公司被迫离开。就开始全职 抖音卖多肉


后来跟他沟通,据说卖的还不错,比他在公司的收入要高不少。并且每天都更快乐了。



所以,找到你真正喜欢的事情,在开始的时候可以把它当做副业来去做。或许,某一天它可以给你带来意想不到的收获。


总结


随笔所写,可能并不全面。先说这些吧,如果大家有兴趣,咱们后面详聊~~~~~~


作者:程序员Sunday
来源:juejin.cn/post/7324750284190105651
收起阅读 »

送外卖,3年102万,先别着急破防

外卖小哥,三年百万 刚过去不久的周末,最火的一则新闻是上海,外卖小哥 3 年掙了 102 万。 能上热搜,说明这个收入,还是明显超出了群众普遍认知的。 我们知道,通常诸如「外卖/快递/网约车」这样的职业,强调一个多劳多得。 但一般内心都会给他们框定一个认知上的...
继续阅读 »

外卖小哥,三年百万


刚过去不久的周末,最火的一则新闻是上海,外卖小哥 3 年掙了 102 万


能上热搜,说明这个收入,还是明显超出了群众普遍认知的。


我们知道,通常诸如「外卖/快递/网约车」这样的职业,强调一个多劳多得。


但一般内心都会给他们框定一个认知上的大概上界,例如一个月再怎么也不会超过 2w。


毕竟再多劳多得,也是一天 24 小时,一个人一双手一双腿。


3 年 102 万,平均下来一个月 2.8 万。


乍一听,会以为是个明显存在逻辑漏洞的人造新闻。


如果再继续套用常规思路去理解,会发现即使外卖小哥 3 年来全年无休,一天 24 小时,也掙不了 102 万。


既然再用外行人思维分析无果,不然先纠正外卖小哥单月的收入上界的认识。


利用搜索引擎,我们发现好几年前就有「送外卖,月入2-3万」的新闻,且这些新闻的主角(外卖小哥)所在地也并不局限在一线城市。


因此,2.8 万,在单月收入里面,可以算作是一个在全国范围内,行业内公认的收入天花板水平,不至于是一个不可能完成的任务。


然后再来评估「月收入持续达到天花板水平」的难度,便可得知新闻本身的合理程度。


注意:这里强调是合理程度,而非真实程度,在不超出合理程度范围的事件,我们无法不依靠更多的信息去判别真伪。


接着分析,收入持续维持高水平的难度。


由于 3 年 102 万的外卖小哥,工作所在地是上海,上六休一,日均工作 18 小时


那么注定了其存在一些客观优势:



  • 相比于其他城市,所在地送餐单价更高;

  • 3 年里面包含了疫情封城的特殊时期;

  • 长期的上六休一,大概率覆盖了绝大多数的恶劣天气,恶劣天气有额外补贴;

  • 超长的日均工作时间,大概率覆盖了有补贴的送餐时间段;


这些客观条件的存在,使得「持续摸到全国级外卖行业收入天花板」的难度,相对低了一点,至少不是网友想象中的绝无可能。


有自媒体把该新闻和《买彩-票,10万中2.2亿》的事情放一起,说这是挑战网友智商年度事件中的卧龙凤雏。


说实话,这有点侮辱外卖小哥了。


是否真实,永远不会有一个准确的说法,但仅从合理程度来看,这俩压根不是一个量级。


我猜测这些自媒体,既不了解福利彩-票现有机制,说不出来为什么发生「10万2.2亿」实际是国有公证制度问题导致的结果;也没有了解外卖行业的基础现状,只会套用自己日常点外卖的配送费多少和送餐时长的错误了解,就动手写文案了。


...


分析完事件的合理程度,习惯性的,我还想了解一下新闻的报道倾向性。


毕竟再大的事件,也不都必然能够引起全国热议。


反过来说,那些能够引起全国热议的事件,背后必然有神秘力量使然。


注意,即使只是任其发酵,那也是力量的体现。


要看清新闻报道的倾向性,可以重点看原始报道(通常没有太多加工内容)发布之后的官媒内容。


于是我释怀的笑了。


我不知道这些突如其来的流量,会不会让外卖小哥转行成为演员或带货主播。


目前这些"正能量"报道/采访,看起来至少能外卖小哥带薪多休息几天。


后续怎么发展,就不多猜测了。


...


回到主线。


实在没找到送 🍚 的题目,一起送 📦 吧。


题目描述


平台:LeetCode


题号:1011


传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。


传送带上的第 i 个包裹的重量为 weights[i]weights[i]


每一天,我们都会按给出重量的顺序往传送带上装载包裹。


我们装载的重量不会超过船的最大运载重量。


返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。


示例 1:


输入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5

输出:15

解释:
船舶最低载重 15 就能够在 5 天内送达所有包裹,如下所示:
1 天:1, 2, 3, 4, 5
2 天:6, 7
3 天:8
4 天:9
5 天:10

请注意,货物必须按照给定的顺序装运,因此使用载重能力为 14 的船舶并将包装分成 (2, 3, 4, 5), (1, 6, 7), (8), (9), (10) 是不允许的。

示例 2:


输入:weights = [3,2,2,4,1,4], D = 3

输出:6

解释:
船舶最低载重 6 就能够在 3 天内送达所有包裹,如下所示:
1 天:3, 2
2 天:2, 4
3 天:1, 4

示例 3:


输入:weights = [1,2,3,1,1], D = 4

输出:3

解释:
1 天:1
2 天:2
3 天:3
4 天:1, 1

提示:



  • 1<=D<=weights.length<=5×1041 <= D <= weights.length <= 5 \times 10^4

  • 1<=weights[i]<=5001 <= weights[i] <= 500


二分解法(精确边界)


假定「D 天内运送完所有包裹的最低运力」为 ans,那么在以 ans 为分割点的数轴上具有「二段性」:



  • 数值范围在 (,ans)(-\infty, ans) 的运力必然「不满足」 D 天内运送完所有包裹的要求

  • 数值范围在 [ans,+)[ans, +\infty) 的运力必然「满足」 D天内运送完所有包裹的要求


我们可以通过「二分」来找到恰好满足 D天内运送完所有包裹的分割点 ans


接下来我们要确定二分的范围,由于不存在包裹拆分的情况,考虑如下两种边界情况:



  • 理论最低运力:只确保所有包裹能够被运送,自然也包括重量最大的包裹,此时理论最低运力为 maxmax 为数组 weights 中的最大值

  • 理论最高运力:使得所有包裹在最短时间(一天)内运送完成,此时理论最高运力为 sumsum 为数组 weights 的总和


由此,我们可以确定二分的范围为 [max,sum][max, sum]


Java 代码:


class Solution {
public int shipWithinDays(int[] weights, int days) {
int max = 0, sum = 0;
for (int w : weights) {
max = Math.max(max, w);
sum += w;
}
int l = max, r = sum;
while (l < r) {
int mid = l + r >> 1;
if (check(weights, mid, days)) r = mid;
else l = mid + 1;
}
return r;
}
boolean check(int[] weights, int t, int days) {
int n = weights.length, cnt = 1;
for (int i = 1, sum = weights[0]; i < n; sum = 0, cnt++) {
while (i < n && sum + weights[i] <= t) sum += weights[i++];
}
return cnt - 1 <= days;
}
}

C++ 代码:


class Solution {
public:
int shipWithinDays(vector<int>& weights, int days) {
int maxv = 0, sum = 0;
for (int w : weights) {
maxv = max(maxv, w);
sum += w;
}
int l = maxv, r = sum;
while (l < r) {
int mid = l + r >> 1;
if (check(weights, mid, days)) r = mid;
else l = mid + 1;
}
return r;
}
bool check(vector<int>& weights, int t, int days) {
int n = weights.size(), cnt = 1;
for (int i = 1, sum = weights[0]; i < n; sum = 0, cnt++) {
while (i < n && sum + weights[i] <= t) sum += weights[i++];
}
return cnt - 1 <= days;
}
};

Python 代码:


class Solution:
def shipWithinDays(self, weights: List[int], days: int) -> int:
def check(weights: List[int], t: int, days: int) -> bool:
n, cnt = len(weights), 1
i, sumv = 1, weights[0]
while i < n:
while i < n and sumv + weights[i] <= t:
sumv += weights[i]
i += 1
cnt += 1
sumv = 0
return cnt - 1 <= days

maxv, sumv = max(weights), sum(weights)
l, r = maxv, sumv
while l < r:
mid = l + r >> 1
if check(weights, mid, days):
r = mid
else:
l = mid + 1
return r

TypeScript 代码:


function shipWithinDays(weights: number[], days: number): number {
const check = function(weights: number[], t: number, days: number): boolean {
let n = weights.length, cnt = 1;
for (let i = 1, sum = weights[0]; i < n; sum = 0, cnt++) {
while (i < n && sum + weights[i] <= t) sum += weights[i++];
}
return cnt - 1 <= days;
}
let maxv = 0, sumv = 0;
for (const w of weights) {
maxv = Math.max(maxv, w);
sumv += w;
}
let l = maxv, r = sumv;
while (l < r) {
const mid = l + r >> 1;
if (check(weights, mid, days)) r = mid;
else l = mid + 1;
}
return r;
};


  • 时间复杂度:二分范围为 [max,sum][max, sum]check 函数的复杂度为 O(n)O(n)。整体复杂度为 O(nlog(i=0n1ws[i]))O(n\log({\sum_{i= 0}^{n - 1}ws[i]}))

  • 空间复杂度:O(1)O(1)


二分解法(粗略边界)


当然,一个合格的「二分范围」只需要确保包含分割点 ans 即可。因此我们可以利用数据范围来确立粗略的二分范围(从而少写一些代码):



  • 利用运力必然是正整数,从而确定左边界为 11

  • 根据 1Dweights.length500001 \leqslant D \leqslant weights.length \leqslant 500001weights[i]5001 \leqslant weights[i] \leqslant 500,从而确定右边界为 1e81e8


PS. 由于二分查找具有折半效率,因此「确立粗略二分范围」不会比「通过循环取得精确二分范围」效率低。


Java 代码:


class Solution {
public int shipWithinDays(int[] weights, int days) {
int l = 1, r = (int)1e8;
while (l < r) {
int mid = l + r >> 1;
if (check(weights, mid, days)) r = mid;
else l = mid + 1;
}
return r;
}
boolean check(int[] weights, int t, int days) {
if (weights[0] > t) return false;
int n = weights.length, cnt = 1;
for (int i = 1, sum = weights[0]; i < n; sum = 0, cnt++) {
if (weights[i] > t) return false;
while (i < n && sum + weights[i] <= t) sum += weights[i++];
}
return cnt - 1 <= days;
}
}

C++ 代码:


class Solution {
public:
int shipWithinDays(vector<int>& weights, int days) {
int l = 1, r = 1e8;
while (l < r) {
int mid = l + r >> 1;
if (check(weights, mid, days)) r = mid;
else l = mid + 1;
}
return r;
}
bool check(vector<int>& weights, int t, int days) {
if (weights[0] > t) return false;
int n = weights.size(), cnt = 1;
for (int i = 1, sum = weights[0]; i < n; sum = 0, cnt++) {
if (weights[i] > t) return false;
while (i < n && sum + weights[i] <= t) sum += weights[i++];
}
return cnt - 1 <= days;
}
};

Python 代码:


class Solution:
def shipWithinDays(self, weights: List[int], days: int) -> int:
def check(weights: List[int], t: int, days: int) -> bool:
if weights[0] > t: return False
n, cnt = len(weights), 1
i, sumv = 1, weights[0]
while i < n:
if weights[i] > t: return False
while i < n and sumv + weights[i] <= t:
sumv += weights[i]
i += 1
cnt += 1
sumv = 0
return cnt - 1 <= days

l, r = 1, 10**8
while l < r:
mid = l + r >> 1
if check(weights, mid, days):
r = mid
else:
l = mid + 1
return r

TypeScript 代码:


function shipWithinDays(weights: number[], days: number): number {
const check = function(weights: number[], t: number, days: number): boolean {
if (weights[0] > t) return false;
let n = weights.length, cnt = 1;
for (let i = 1, sum = weights[0]; i < n; sum = 0, cnt++) {
if (weights[i] > t) return false;
while (i < n && sum + weights[i] <= t) sum += weights[i++];
}
return cnt - 1 <= days;
}
let l = 0, r = 1e8;
while (l < r) {
const mid = l + r >> 1;
if (check(weights, mid, days)) r = mid;
else l = mid + 1;
}
return r;
};


  • 时间复杂度:二分范围为 [1,1e8][1, 1e8]check 函数的复杂度为 O(n)O(n)。整体复杂度为 O(nlog1e8)O(n\log{1e8})

  • 空间复杂度:O(1)O(1)




作者:宫水三叶的刷题日记
来源:juejin.cn/post/7325132036242882586
收起阅读 »

8年前端,那就聊聊被裁的感悟吧!

前端开发,8年工作经验,一共呆了2家公司,一个是做积分兑换的广告公司。这是一个让我成长并快乐的公司,并不是因为公司多好,而是遇到了一群快乐的朋友,直到现在还依旧联系着。 另一家是做电子签名的独角兽,我人生的至暗时刻就是在这里这里并不是说公司特别不好,而是自己的...
继续阅读 »

前端开发,8年工作经验,一共呆了2家公司,一个是做积分兑换的广告公司。这是一个让我成长并快乐的公司,并不是因为公司多好,而是遇到了一群快乐的朋友,直到现在还依旧联系着。
另一家是做电子签名的独角兽,我人生的至暗时刻就是在这里这里并不是说公司特别不好,而是自己的际遇


我的经历


第一家公司


第一家公司说来也巧,本来是准备入职一家外包的,在杭州和同学吃个饭,接到了面试通知,一看地址就在楼上,上去一共就3轮面试,不到2个小时直接给了offer。有些东西真的就是命中注定


第二家公司


第二家公司我入职以后挖了上家公司诸多墙角,我一共挖了6个前端,2个后端。拯救朋友们于水深火热之中。





我本以为我能开启美好的新生活,结果第二年就传来我父亲重病的噩耗 肺癌晚期,我学习了大量的肺癌知识什么小细胞,非小细胞,基因检测呀等等。。。





可是最后还是没有挽留住他的生命,我记得我俩在最后一次去武汉的时候,睡在一起,他给我说了很多。


他说:治不好就算了,只是没能看到自己的孙子有些可惜罢了。

他说:我这一辈碌碌无为,没给你带来多么优越的条件,结婚、买房、工作都没给到任何帮助,唯一让我感到欣慰的是你那么努力,比我强多了,家里邻居很多都眼馋你呢。
他说:你小孩的名字想好了吗?你媳妇真是个孝顺的孩子,性格也好,心地善良,你要好好对待她。

他说了很多。。。我都快忘了他说了啥了,我不想忘来着,可是可是,想起来就又好难过。


这只是我人生历程的一部分,我把这些讲出来,是为了让大家明白,你现在所经历的困苦其实没有那么严重,人在逆境之中会放大自己的困难,以博得同情。所以现在很多人给我倒苦水的时候,我总有点不屑一顾的感觉,并不是我有多强,我只是觉得都能过去。


在灰暗的时候,工作总是心不在焉,情绪莫名冲动,我和领导吵过架,和ui妹妹撕破脸,导致人家天天投诉我。我leader说我态度极其嚣张,我说你再多说一句,我干死你所以不裁我裁谁


我的人生感悟


我时常以我爸的角度换位思考,我在得知这个消息后我该咋办?是积极面对,还是放弃治疗?可是所有的都是在假设的前提之下,一切不可为真。只有在其中的才最能明白其中的感受。
那一年我看着他积极想活着的毅力,也看到了他身体日渐消瘦的无奈,无奈之余还要应付各种亲戚的嘘寒问暖


我现在很能明白《天道》中那段,丁元英说的如果为了孝顺的名声,让父亲痛苦没有尊严地活着,还不如让父亲走了。 的意思了。在他昏迷不醒的时候,大小便失禁的时候,真不如有尊严的走了。


我其实已经预感到自己要被裁,我原本是挺担心的,可是后来想想父亲的话,我总结成一句话圆滑对事,诚以待人。 这句话看上去前后矛盾,无外乎俩个观点。


圆滑对事的意思是:就是要学会嘴甜,事嘛能少干就少干,能干几分是几分,累的是别人,爽的是自己,在规则中寻求最大的自我利益化。


诚以待人的意思是:圆滑归圆滑,不能对谁都圆滑,你得有把事情办的很好的能力,你需要给真正需要的人创造价值,而不是为了给压榨者提供以自我健康为代价的价值。



用现在最流行的词来说就是「佛系」。


什么叫活明白了,通常被理解为不争不抢,得之淡然、失之泰然、顺其自然的一种心理状态。


活明白的人一般知道自己要什么样的生活,他们不世故、不圆滑,坦荡的、磊落的做自己应该做的事儿。他们与社会上潜规则里的不良之风格格不入,却不相互抵触,甚至受到局中人的青睐与欣赏。


活明白的人看着更为洒脱,得不张扬,失不气馁,心态随和、随遇而安。


不过,还有一种活明白的人,不被多数人所接受。他们玩世不恭、好吃懒做,把所有一切交给命运去背锅。这种人极度自我,没有什么可以超越他自己的利益,无法想象这种活法,简直就是在浪费六道轮回的名额。


总之,有的人活明白了,是调整自己的心态,维护社会的稳定和安宁。有的人活明白了,是以自我为中心,一边依赖着社会救济,一边责备社会龌蹉。


所以,活明白的人也分善与恶,同样是一种积极向善,另一种是消极向恶,二者同出而异名。



我对生活的态度


离职的第一个月,便独自一人去了南京,杭州,长沙,武汉,孝感。我见了很多老朋友,听听他们发发牢骚,然后找一些小众的景点完成探险。


在南京看了看中医,在杭州露营看了看日落,在长沙夜爬了岳麓山,在武汉坐了超级大摆锤,在孝感去了无名矿坑并在一个奶奶家蹭了中午饭。


我的感受极其良好,我体验了前所未有生活态度,我热情待人,嘻嘻笑笑,我站在山顶敞怀吹风,在无尽的树林中悠然自得,治愈我不少的失落情绪。我将继续为生活的不易奔波,也将继续热爱生活,还会心怀感恩对待他人,也会圆滑处事 事事佛系。


背景1.png


图层 1.png


IMG_6214.JPG


IMG_6198.JPG


IMG_6279.JPG


可能能解决你的问题


要不要和家里人说


我屏蔽了家里人,把负面情绪隐藏,避免波及母亲本就脆弱的内心世界,我还骗她说公司今年不挣钱,提前让我们放假,只给基础工资。如果你家境殷实,家庭和睦,我建议大方的说,这样你和父母又多了一个可以聊的话题,不妨和他们多多交流,耐心一些。


裁员,真不是你的问题


请记住,你没有任何问题,你被裁员是公司的损失,你不需要为此担责,你需要做的是让自己更强,不管是心理、身体还是技术,你得让自己变得精彩,别虚度了这如花般的时光。可能你懒,可能也没什么规划,那就想到啥就做啥好了,可能前几次需要鼓足干劲,后面就会发现轻而易举。


如何度过很丧的阶段


沮丧需要一个发泄的出口,可以保持运动习惯,比如日常爬楼梯、跑步等,一场大汗淋漓后,又是一个打满鸡血积极向上的你。

不要总在家待着,要想办法出门,多建立与社会的联系,多和朋友吹吹牛逼,别把脸面看的那么重要,死皮赖脸反而是一种讨人喜欢的性格。



不管环境怎样,希望你始终向前,披荆斩棘

如果你也正在经历这个阶段,希望你放平心态,积极应对

如果你也在人生的至暗时刻,也请不要彷徨,时间总会治愈一切

不妨试试大胆一点,生活给的惊喜也同样不少

我在一个冬天的夜晚写着文字,希望能对你有些帮助


作者:顾昂_
来源:juejin.cn/post/7325317404551462938
收起阅读 »

2023:情若能自控,要心有何用。。。。

情若能自控,要心有何用。。。。 一、开篇   岁末将至,人心渐老,百般滋味涌上心头,话到嘴边不值得一提。词穷不是沉默,而是一言难尽。该接受的不该接受的,都接受了,没啥不公平的,习惯了。看错人,不是瞎,是心软;信错人,不是傻,是重情义;爱错人,不是愚蠢,而是你的...
继续阅读 »

情若能自控,要心有何用。。。。


一、开篇


  岁末将至,人心渐老,百般滋味涌上心头,话到嘴边不值得一提。词穷不是沉默,而是一言难尽。该接受的不该接受的,都接受了,没啥不公平的,习惯了。看错人,不是瞎,是心软;信错人,不是傻,是重情义;爱错人,不是愚蠢,而是你的劫。什么事情都要自身找原因,不要苟且他人。鞋子脏了,是因为你走的路不干净。该反省的是自己的眼光和见识,永远不要怀疑自己的真诚和善良……好了,时间到了,该走了……



  • 我本两袖一清风,赤心可抵岁月长。

  • 孤身何惧人生苦,独行敢试不平路。

  • 红尘本是无情道,偏偏痴心博君笑。

  • 红杏枝头春意闹,不过岁月风中萧。

  • 梦逆光阴初到时,强船何惧风浪涌。

  • 奈何竟遇遭人欺,一人把这悲凉谱。

  • 惊鸿一瞥忘不了,只见得炊烟袅袅。

  • 此生恐难再相逢,坠落片片葬夙梦。

  • 无人问津又何妨,逍遥自在人心好。

  • 浮云千载悠悠过,何曾片缕下中州。


二、我与职场


2.1 追风赶月莫停留


  我依然在北京这座城市漂泊,我没有勇气或者说没有足够的能力与底气回到老家扎根,我依然过着普普通通的周中上班周末摆烂的人生,两点一线的在舒适圈中挣扎,不愿逃脱。在我将近九年多的工作经历中,共经历了4家公司。在工作经验不断积累的过程中,公司各种乱象或不公,几乎都经历过。也因为长期的隐忍最终爆发,开始排斥人在公司,还要平衡工作情绪+奇葩管理,但不排斥工作。我更倾向于居家办公,你给我钱,我给你成果,不需要乌烟瘴气的办公氛围,不需要能者多劳的pua,更不需要尔虞我诈的利用。

经历了公司大规模裁员,同事有被迫离职的,也有自己跳槽走人的,导致对自己的职业生涯产生了迷茫,跳槽 or 副业,一时不知道该如何选择。对于我来说,这一年的工作情况可以用四个字来形容,那就是"平平无奇",工资也是"纹丝未动"。我好似一只大蛤蟆,公司则如一锅正在加热的温水。这一年唯一的收获就是工作越来越顺手了,然后工作也变得一成不变,接需求、分析、设计、开发、测试、上线,每天好像在坐牢一样,没有一点技术含量。感觉如果继续呆下去,再过几年我就可以回家烤红薯了。


2.2 平芜尽处是春山


  说真的,今年可能是个人技术能力提升最小的一年,我竟然没有任何值得拿出手的东西,我的时间就这样白白流逝了,好像已经很努力了,但是依然很普通,导致想跳槽都没信心。一方面是因为其他事情耽搁了,另一方面的确是有点懈怠了,在工作中用不到的新技术就很少像以前那样去学习了,对已掌握的知识点也缺少动力去继续深挖了。这点的确不太好,只要还在这个行业,就如逆水行舟,不进则退。

这一年的我,可以说是从迷茫到醒悟。现在的技术层出不穷,似乎大家都在卷各种技术,例如 Flutter、Framework、Docker等等。或许大家都有跟我一样的感受,面对不断涌现的新技术,难免会让人感到迷茫,不知所措,应该躺平呢?还是盲目跟风卷呢?我真的能选择躺平吗?拼爹不行,拼存款没有,夹杂着公司裁员、经济形势不好的情况下,我决心改变自己。虽然在工作中不能提升技术,但是自己不能放弃自己,不然辞职就等于失业。首先要改变手机占用我的时间,虽然这很困难,但我不能倒在刷剧、刷短视频的魔爪之下,以学习、编写技术文章为重要事项,逼迫自己学习。为防止自己因为太难而打退堂鼓,前期制定些简单任务:一周一个核心的技术知识点,两周一篇技术文章。随着学的东西越来越多,写的文章也被更多人阅读和关注时,任务适当加大难度。所以今年在闲暇时间学习了很多东西,如 Vue 组件、Docker容器等,立志成为一名全栈工程师。截止年底,不知不觉中竟然写了160多篇随记、40多篇技术文章。当然有的是没有发表在博客上,至于为啥就不用说了,懂得都懂。

虽然我不知道 35 岁后(如果我能活到那个时候)程序员何去何从,在中国35岁是一个比较尴尬的年龄,35岁嫌老、65嫌年轻。如果一旦失业,很有可能会受到其余公司HR的歧视。做技术的学的技术一定要顺应时代的发展,社会需要什么黑科技,就要花时间去钻研。我知道现在不努力积累自己的专业知识,未来只会如逆水行舟,一步步将我推回起点。疫情三年真的是大浪淘沙,淘汰只会是那些不脚踏实地学习和工作的人,出来混迟早要还的。只有现在奋力前行,未来才有更多的选择机会。


2.3 人生苦短,帮我倒满


  这一年我遇到让我心动的那人,其实,我现在也没想好该怎么描述这段不太好的经历,怎么说呢,那种感觉就好像开局就被针对了一样,完全发育不起来!
  这段我写下她身上我喜欢的点吧,淡妆、穿着很朴素、自然,不做作。再一个就是我很喜欢她努力学习的样子,真的安静的像一道风景,我总会在旁边偷偷的看她,一边看一边傻笑。有的时候,她还有些小小的笨拙,让我觉得很喜欢,这个姑娘我不是凑合,是真的喜欢。

虽然在一起的时间不到一个月就分开了,之后那段时间我整个人精神恍惚,开始就剧烈的呕吐,整晚头疼的睡不着,去了趟医院,诊断结果是脑内伤,可能伴有中度抑郁,情况有些麻烦,给我开了一堆又一堆的治疗抑郁的药,又建议一个月再复诊。这一点也是吓到了我,也让我意识到生活和工作应该分开的道理,工作是我们赚钱的工具,不应该成为毁坏我们身体的元凶。趁着十一放假我跟一个小伙伴一起去了拉萨(遗憾的是我手机落在了小伙伴车上),这期间我遇到一个喇嘛,姑且算是算命吧,他说木性温暖,火伏其中,钻灼而出,故木生火。而我乃火命,故而需要木属性之物常伴身旁,恰好我带着一对儿核桃,此物可助我驱祸免灾。虽然我不怎么相信这些,但为了心安勉强接受。医院复诊的结果还是不出意外的坏,又恰逢不到半年间两位友人的离世,时日不多的我不得不把这些年来开发项目(纯属个人)卖掉,再加上我工作以来积攒的钱,一部分用来做父母的养老之用,一部分给父母买了养老保险,剩下的留作我半年出行之用,毕竟有些地方我一直想去,但总因种种原因不得行,这次终于可以出动了。

人生中,多的是身不由己的时刻,得也好,失也罢,都要坦然面对。喝酒不问度数,酒后不问去处。人生苦短,帮我倒满倒满……


be0b6d6e703610cffce19cc234066e56.jpeg


三、关于个人


3.1 漫天神佛不识君,幽冥可曾有知心


  2023 是疫情恢复的第一年,褪去口罩的滤镜,我们更真切的看懂了这个世界,大家都活明白了,房子不买可以租,车子能开就行。所谓的财富,在生命和健康面前微不足道;个人的努力,在时代面前微不足道,你不涨工资、买不起眉笔,也不是能力不行,降低欲望、降低消费也可以过的很好。做饭的尽头是大铁锅,衣服的尽头是保暖舒适,消费主义的尽头是断舍离,万事的尽头是尽人事知天命,幸福的尽头是平安、健康。我们是失去了很多人,但就算公交车上空无一人,司机师傅还是会把车开到终点站。战乱也让我们明白,原来生在一个和平的国家,是那么的幸福。很多人的生日愿望,也从财富、爱情变成了希望世界和平。

2023年是割裂的一年,朋友圈好像所有的人都在旅游,但携程用户从2600万跌到了600万;外卖员、网约车司机变多了,可滴滴用户却从4500万跌到了1000万;摆地摊的越来越多了,但怪兽充电宝却从300万跌到了100万;2023年失信被执行人数突破了800万,上半年有46万多家公司倒闭,boss直聘月活用户却突破了一个亿;考公的人越来越多,创业的越来越少;药店越来越多,孩子越来越少;房子越盖越多,股民越炒越少……口罩是我们最后的遮羞布,以后再赚不到钱就没有借口了。今年甚至连除夕回家都成了奢望,这一年世界也很混乱,很多生命都定格在了2023,我最好的朋友也留在了这一年,我经常梦见他……我觉得人生就像下面这张画一样:虽前路依旧光明、未来就在彼岸,可我却深处黑暗独帆前行……


20231209201408.png


3.2 但饮孟婆解千忧,余后共赴忘川流


  日月蹉跎,人已将老而功业未建。我这等人,真的能成大业吗?我没有变,只是心情变了。我还是我,只是面对现实,多了点无奈、多了点沉默。我曾享受过一天晚上花几千,也体验100块钱都借不到。人嘛,享受过不该拥有的风光,就要承受随之而来的报应。所有的事情都抵不过时间和现实,让人成熟的从来不是年龄,而是经历。我觉得今年本该幸福的,可这烂透了的生活,却耗尽我所有的精力。样样都不顺心,事事都不如意,都说先苦后甜,可是我连最基本的快乐都给不了自己,却又无能为力!好像有迹可循,又好像无路可走。我原本以为今年我会很幸福的,可是记不清了,只记得今年心态崩多少次!我真的不喜欢今年,今年让我太难过了。我讨厌现在的自己,一边压抑着自己的情绪,一边装作什么都没事的样子,一到深夜,就彻底崩溃,天亮后还要微笑的去面对一切。

曾有人问过我,2023年我们到底收获了什么?也许,还活着,算是我今年最大的收获吧!好好活下去,朋友们,哪怕凑合的活下去。的确,不是所有的坚持都会有收获,但总有一些坚持,能在一寸冰封的土地里培育出香甜的果实……不是有所成就才算活着,梦想也不是多么了不起的东西,只喜欢看天走路、吃烧烤的人生,也很好!


9af4a8316e3a15fd71219e90a0f05b82.jpeg



日落归山海,山海藏深意,没有人能不遗憾!



四、小结



把今天最好的表现当作明天最新的起点..~



  投身于天地这熔炉,一个人可以被毁灭,但绝不会被打败!一旦决定了心中所想,便绝无动摇。迈向光明之路,注定荆棘丛生,自己选择的路,即使再荒谬、再艰难,跪着也要走下去!放弃,曾令人想要逃离,但绝境重生方为宿命。若结果并非所愿,那就在尘埃落定前奋力一搏!


划重点.gif


作者:独泪了无痕
来源:juejin.cn/post/7324165965205225522
收起阅读 »

原来我们是这样对工作失去兴趣的

大家好,我是「云舒编程」,今天我们来聊聊那些让我们对工作失去兴趣的原因。 一、前言    相信很多人有过接手别人的系统,也有将自己负责的系统交接给别人的经历。既有交接出去不用在费力治理维护技术债务的喜悦,也有接手对方系统面对一系列维护问题的愁容满面。    但...
继续阅读 »

大家好,我是「云舒编程」,今天我们来聊聊那些让我们对工作失去兴趣的原因。


一、前言


   相信很多人有过接手别人的系统,也有将自己负责的系统交接给别人的经历。既有交接出去不用在费力治理维护技术债务的喜悦,也有接手对方系统面对一系列维护问题的愁容满面。

   但是被人嫌弃的系统曾经也是「创建人」心中的白月光啊,是什么导致了「白月光」变成了「牛夫人」呢?是996,工期倒排、先上再优化,还是随时变动的需求?

   让我们来复盘系统是怎么一步一步腐化的,让我们丢失了最初的兴趣,同时总结一些经验教训以及破局之策。


二、白月光到牛夫人的经历


一般当我们设计一个系统时,总是会抱着要把该项目打造为「干净整洁」的项目的想法,


图片


但是随着时间的推移,最后总是不可避免的变成了这样:


图片


2.1、从0到1


   我们发现大多数人对于创建新项目总是会抱有极大的激情兴趣,会充分的考虑架构设计。但是对于接手的项目就会缺乏耐心。

   这种心理在《人月神话》一书中被说为编程职业的乐趣:

“首先,这种快乐是一种创建事物的纯粹快乐。如同小孩在玩泥巴时 感到快乐一样,成年人喜欢创建事物,特别是自己进行设计 。我想这种 快乐是上帝创造世界的折射,一种呈现在每片独特的、崭新的树叶和雪 花上的喜悦。”

“第四,这种快乐是持续学习的快乐,它来自于这项工作的非重复特性。人们所面临的问题总有这样那样的不同,因而解决问题的人可以从 中学习新的事物,有时是实践上的,有时是理论上的,或者兼而有之。”

图片

正是由于这样的心理,人们在面对新系统时,可以实践自身所学,主动思考如何避开曾经遇到的坑。满足了内心深处的对于创造渴望。
   当一个项目是从0到1开始设计的,并且前期是由少数「高手」成员主导开发的话,一般不会有债务体现。当然明面上没有债务,不代表没有埋下债务的种子。


2.2、抢占市场、快速迭代


   系统投入市场得到验证后,如果顺利,短期会收获大量用户。伴随着用户指数增长的同时,各种产品需求也会随着而来。一般在这个阶段将会是「工期倒排、先上再优化,需求随时变动」的高发期。

   同时由于需求的爆发,为了提高团队的交付率,在这个阶段会引入大量的“新人”。随着带来的就是新老思想的碰撞,新的同学不一定认同之前的架构设计。

   在这个阶段,如果团队存在主心骨,可以“游说”多方势力,平衡技术产品、新老开发之间的矛盾,那么在这个阶段引入的债务将会还好。但是如果团队缺乏这样的角色,就会导致公说公有理婆说婆有理,最后的结果就是架构会朝着多个方向发展,一个项目里充斥着多种不同思路的设计。有些甚至是矛盾的。如果还有【又不是不能用】的想法出现,那将是灭顶之灾。

图片

但是在这个阶段对于参与者又是幸福的,一份【有市场、有用户、有技术、有价值】的项目,无论是对未来的晋升还是跳槽都是极大的谈资。


2.3、维护治理


   褪去了前期“曾经沧海难为水,除却巫山不是云”的热恋后,剩下的就是生活的柴米油盐。系统的最终结局也是“维护治理”。

   在这个阶段,需求的数量将大大减少,但是由于前期的“快速建设”,一个小小的需求,我们可能需要耗费数周的时间去迭代。而且系统越来越复杂,迭代越来越困难。
   
同时每天需要花费大量的时间处理客诉、定位bug,精力被完全分散。系统的设计和技术慢慢的变得僵化。并且由于用户量巨大,每次改动都要承担很大的线上风险。这样的情况对于程序员的精力、体力都是一场内耗,并且如果领导的重心也不在此项目时,更会加重这种内耗。于是该系统就会显得“人老色衰”,曾经的「白月光」也就变成了「牛夫人」。

图片


三、牛夫人不好吗?


3.1、缺乏成就感


《人月神话》中关于程序员职业的苦恼曾说过以下几点:



  1. 对于系统编程人员而言,对其他人的依赖是一件非常痛苦的事情。他依靠其他人的程序,而这些程序往往设计得并不合理、实现拙劣、发布不完整(没有源代码或测试用例)或者文档记录得很糟。所以,系统编程人员不得不花费时间去研究和修改,而它们在理想情况下本应该是可靠的、完整的。

  2. 下一个苦恼---概念性设计是有趣的,但寻找琐碎的bug却是一项重复性的活动。伴随着创造性活动的,往往是枯燥沉闷的时间和艰苦的 劳动。程序编制工作也不例外。

  3. 最后一个苦恼 ,有时也是一种无奈—当投入了大量辛苦的劳动 ,***产品在即将完成或者终于完成的时候,却已显得陈旧过时。***可能是同事或竞争对手已在追逐新的、更好的构思; 也许替代方案不仅仅是在构思 ,而且己经在安排了。


随着业务趋于稳定,能够发挥创造性的地方越来越少,剩下的更多是沉闷、枯燥的维护工作。并且公司的资源会更聚焦在新业务、新方向,旧系统获得的关注更少,自然而然就缺乏成就感。也就形成了【只见新人笑,不见旧人哭


3.2、旧系统复杂、难以维护


《A Philosophy of Software Design》一书中对复杂性进行了如下定义:“Complexity is anything related to the structure of a software system that makes it hard to understand and modify the system.”,即任何使得软件难于理解和修改的因素都是复杂性。

作者John 教授又分别从三个角度进行了解释复杂性的来源:


3.2.1、变更放大


   复杂性的第一个征兆是,看似简单的变更需要在许多不同地方进行代码修改。对于复杂的系统来说,如果代码没有聚敛,那么一次小小的需求可能会导致多处修改。同时为了保证不出故障,需要对涉及的修改点、功能点进行完整的覆盖测试。这种隐藏在背后的工作量是巨大的。


3.2.2、认知负荷


   复杂性的第二个症状是认知负荷,这是指开发人员需要多少知识才能完成一项任务。当一个系统经过多年的迭代开发,其复杂度将是指数级别的。并且会充斥这很多只有“当事人”才能理解的“离谱”功能。这就对维护者提出了极高的要求,需要掌握很多“冰山下”的知识才能做到手到擒来。而这对维护者的耐心、能力又是一次挑战。

图片


3.2.3、未知的未知


   未知的未知是指必须修改哪些代码才能完成任务,或者说开发人员必须获得哪些信息才能成功地执行任务。这一项也是John Ousterhout教授认为复杂性中最糟糕的一个表现形式。
     这句话看起来比较抽象,如果映射到我们日常的工作中就是“我也不知道为啥这么改就好了”、“在我这是好的呀”、“刚刚还能运行啊,不知道为啥现在突然不行了”。

   这种情况就是我们不知道改动的这行代码是否能让程序正常运转,也不知道这行代码的改动是否又会引发新的问题。这时候我们发现,那些“上帝类”真的就只有上帝能拯救了。

   我曾经维护一个老系统,源码是通过文件相互传递的,没有仓库,里面的框架是自己撸的轮子,没有任何说明文档。服务部署是先在本地编译成二进制文件,然后在上传到服务器启动。每次改动上线都是就是一次生死劫,幸好没过多久,这个系统就被放弃了。


四、为何变成了牛夫人


4.1、伪敏捷


   “敏捷”已经成为了国内公司的银弹了。
   需求不做市场分析、不考虑用户体验、不做设计分析、不考虑前因后果,美其名曰“敏捷”。
   工期倒排、先上再说、明天能不能上、这个问题上了再优化,美其名曰“敏捷”。

   我曾经参与过一个项目,最开始是给了三个月的时间完成产品规划+开发,但是项目立项后领导层迟迟无法达成统一,一直持续进行了两个月的讨论后,终于确定了产品模型,进入开发。到这里留给开发的时间还剩一个月,咬咬牙也能搞定。但是开发真正进场,上报了需要开发的周期后,上面觉得太慢了,要求3周搞定,过了一天还是觉得太慢,要求2周,最后变成了要求4天搞定。遇到这种情况能怎么办,只能加人,只能怎么快怎么来。

   之前阿里程序员也开玩笑式的说出了类似的场景:“2月13号上午省领导问逍遥子全省的健康码今天上线行不行,逍遥子说可以。等消息传达到产研团队的时候已经是中午了,然后团队在下午写了第一行代码。”


4.2、人的认知局限


   《人月神话》一书中提到了一种组建团队的方式「外科手术团队」:“十个人,其中七个专业人士在解决问题,而系统是一个人或者最多两个人思考的产物,因此客观上达到了概念的一致性。”
   也就是团队只需要一个或者两个掌舵人,负责规划团队的方向和系统架构,其余人配合他完成任务。目前我所待过的团队也基本是按照这个模式组成的,领导会负责重要事情的决策和团队分歧时的拍板,其余人则相互配合完成目标任务。但是这样的模式也导致了一个问题:掌舵人的认知上限就决定了团队的上限,而这种认知上限天然就会导致系统架构设计存在局限性,而这种局限性又会随着“伪敏捷”放大


4.3、人员流动


   经历过这种离职交接、活水交接的打工人应该深有体会,很多项目一旦步入这个阶段,大多数负责人就会开始放飞自我,怎么快怎么来,只想快点结束这段工作,快速奔赴下一段旅程。
   从人性的角度是很难评价这种情况的,毕竟打工人和老板天然就不是一个战线的,甚至可能是对立面的。而我们大多数人都不可能是圣人,从自身角度从发这种行为是无可厚非的。


五、如何保持白月光


   这里想首先抛个结论,系统变腐化是不可避免的。就类似人一样,随着时间的流逝,也会从以前一个连续熬夜打游戏看小说第二天依旧生龙活虎的青年变为一个在工位坐半小时都腰酸背痛,快走几步都喘的中年人。而这都来源于生活的压力、家庭的压力、工作的压力。同样的,面对业务的压力、抢占市场的压力、盈利的压力,系统也不可避免会变成“中年人”。
   就像人一样会使用护肤品、健身等手段延缓自己的衰老一样,我们也可以使用一些手段延缓系统“衰老”。
   在网上,已经有无数的文章教怎么避免代码腐化了,例如“DDD领域驱动设计”、“业务建模”、“重构”等等。
   今天我想从别的角度聊聊怎么延缓代码腐化。


5.1、避免通用


   软件领域有个特点,那就是复用。程序员们总是在思考怎么样写一段到处通用的代码,以不变应万变。特别是当国内提出中台战略后,这种情况就如脱缰的野马一般,不可阻挡。要是你做的业务、架构不带上xx中台,赋能xx,你都觉得你低人一等。
   但是其实我们大部分人做的都是业务系统,本身就是面向某块特定市场的、特定用户的。这就天然决定了其局限性。
   很多时候你会发现你用了100%的力气,设计了一个80%你认为有用的通用中台,最后只有20%产生了作用,剩下60%要么再也没有动过,要么就是被后来参与者喷的体无完肤。
   当然这里也不说,设计时就按照当前产品提出的需求设计就行,一点扩展的余地都不留,而是在「通用」与「业务需求」之间取一个平衡。而这种平衡就取决于经验了。如果你没有这方面经验,那你就去找产品要「抄袭」的是哪个产品,看看他们有哪些功能,可以预留这些功能的设计点。


5.2、Clean Code


说实话,国内的业务系统80%都没有到需要谈论架构设计的地步。能够做到以下几点已经赢麻了:



  1. 良好的代码注释和相关文档存档【重中之重】

  2. 避免过长参数

  3. 避免过长方法和类

  4. 少量的设计模式

  5. 清晰的命名

  6. 有效的Code Review【不是那种帮我CR下,对方1秒后回复你一个done】


5.3、学会拒绝


   自从国内开始掀起敏捷开发的浪潮后,在项目管理方面就出现了一个莫名其妙的指标:每次迭代的需求数都有会有一个数值,而且还不能比上一次迭代的少。
   这种情况出现的原因是需求提出者无法确定这个需求可以带来多大的收益,这个收益是否满足老板的要求。那么他只能一股脑上一堆,这样即使最后效果不及预期,也可以怪罪于用户不买账。不是他不努力。
   在这种时候,就需要开发学会识别哪些是真需求,哪些是伪需求,对于伪需求要学会说不。当然说不,不是让你上来就是开喷,而是你可以提出更加合理的理由,甚至你可以提出其他需求代替伪需求。这一般需要你对这块业务有非常深入的研究,同时对系统有上帝视角。
   基本上在每个公司的迭代周期都是有时间要求的,比如我们就是两周一迭代,如果需求是你可控的,那么你就有更多的时间和心思在维护系统上,延缓他的衰老。


结尾


       分享一些我摸鱼时喜欢看的书,除了本文总是提到的《人月神话》《A Philosophy of Software Design》外,还有《黑客与画家》、《演进式架构》。有需要的可以关注 公众号「云舒编程」,回复"书籍"即可免费获取:跳转地址


图片


作者:云舒编程
来源:juejin.cn/post/7312724606605918249
收起阅读 »