注册
环信即时通讯云

环信即时通讯云

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

环信开发文档

Demo体验

Demo体验

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

RTE开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

勇敢的人先拿到结果

上周许久未见的大学学长叫我出去喝酒,他这次来贵阳是为开分店的事情而来的,他比我高一个年级,在我毕业的时候,他就自己开始做生意了,短短两三年,到现在他已经开了七八个分店了,还在不断发展,并且加盟的人也不少,平均下来,现在每个月的收入也是很可观的。 对于我们这种末...
继续阅读 »

上周许久未见的大学学长叫我出去喝酒,他这次来贵阳是为开分店的事情而来的,他比我高一个年级,在我毕业的时候,他就自己开始做生意了,短短两三年,到现在他已经开了七八个分店了,还在不断发展,并且加盟的人也不少,平均下来,现在每个月的收入也是很可观的。


对于我们这种末流二本院校毕业的学生,特别还是在贵州这个经济相对比较落后的地区,拿到这个成绩还是挺厉害的,并且这个收入并不是固定的,还是不断增长。


学长是学市场营销的,这也算是个天坑专业,所以那会他就知道自己将来肯定是从事不了这个行业的,所以自己就在宿舍开了一个小卖部,每天下课后就骑着电瓶车去送货,虽然每个月赚不了多少钱,但是对于做生意这一块,他的思维肯定是得到了锻炼。


因为我们是在广西读书,所以螺蛳粉就比较多,在毕业后,他就去柳州考察做螺蛳粉,联系好各种渠道后,回到贵州就直接开干。


因为那会贵州的各个市里面卖螺蛳粉的还很少,并且没有特色和品牌效应,所以自己就先设计名称,logo,最后先开了一个店铺,自己亲自下厨,因为比较有特色,一个月直接干到了全市螺蛳粉餐饮销量的第二名。


随后又开了第二家,第三家......别人在看到他赚了钱后,其它市区的人也纷纷向他学习,他自己就收加盟费用,现在他要做的事情就是玩,还有考察门店,然后扩展。


从他的事迹中,我说两个点。


勇于放弃


对于很多人而言,读书的目的就是为了找一份稳定的工作,最好是体制内。


如果你读完大学后出去做销售,做生意,那么对于你身边的很多人而言,他们会觉得你这个大学白读了,因为在他们眼中,只有坐在办公室里面才是最体面了。


你和他说做生意,创业这些东西,他会给你说:这些不稳,以后没有退休工资。


但是如果你真听他们的,那么后面后悔的一定是你。


就像学长,如果他也和别人一样毕业后回到自己那地方加入考编大军,那么他现在肯定和别人一样,也在背书,焦虑,但是他选择了其它的路。


这时候有些人就会抬杠:考上了就能吃一辈子,而你做生意如果运气不好那么就直接亏光,到时候你就知道编制的香了。


这也是很多人的通病。


我觉得如果一件事情你看不到希望,就别过于去迷恋它,舍不得它,不然会被它束缚,比如学历,经验等等。


敢想敢干


可能你会觉得他家里应该有底子的,不然毕业后怎么就能开店。


但是我们问一下自己,就算你家里有底子,毕业后就给你十万块让你开店,你觉得你行吗?恐怕大部分人都不知道自己该做什么吧。


首先躬身入局本身就是一件很难的事情,我们多数人能够拼命上班,但是如果让你脱离平台去自己干一件事就比登天还难。


因为你在公司有别人给你安排好,你去做就行了,换句话来说,你就是个干苦力的,真让你去谈判,去闯市场,大多数人是没这个能力的。


这也是一种损失厌恶心态,因为你怕自己花时间去做,到后面不仅亏了钱,还把自己弄得很累,而安安稳稳打工不一样,它是“稳赚不赔”的。


但是这个世界上很难有稳赚不赔的东西,就说安安稳稳打工拿工资,但是工资不高,那一定是在亏着走的,除非你觉得自己的时间毫无价值,那么就是赚的。


作者:苏格拉的底牌
来源:juejin.cn/post/7340898858556178432
收起阅读 »

一个小公司的技术开发心酸事

背景 长话短说,就是在2022年6月的时候加入了一家很小创业公司。老板不太懂技术,也不太懂管理,靠着一腔热血加上对实体运输行业的了解,加上盲目的自信,贸然开始创业,后期经营困难,最终散伙。 自己当时也是不察,贸然加入,后边公司经营困难,连最后几个月的工资都没给...
继续阅读 »

背景


长话短说,就是在2022年6月的时候加入了一家很小创业公司。老板不太懂技术,也不太懂管理,靠着一腔热血加上对实体运输行业的了解,加上盲目的自信,贸然开始创业,后期经营困难,最终散伙。


自己当时也是不察,贸然加入,后边公司经营困难,连最后几个月的工资都没给发。


当时老板的要求就是尽力降低人力成本,尽快的开发出来App(Android+IOS),老板需要尽快的运营起来。


初期的技术选型


当时就自己加上一个刚毕业的纯前端开发以及一个前面招聘的ui,连个人事、测试都没有。


结合公司的需求与自己的技术经验(主要是前端和nodejs的经验),选择使用如下的方案:



  1. 使用uni-app进行App的开发,兼容多端,也可以为以后开发小程序什么的做方案预留,主要考虑到的点是比较快,先要解决有和无的问题;

  2. 使用egg.js + MySQL来开发后端,开发速度会快一点,行业比较小众,不太可能会遇到一些较大的性能问题,暂时看也是够用了的,后期过渡到midway.js也方便;

  3. 使用antd-vue开发运营后台,主要考虑到与uni-app技术栈的统一,节省转换成本;


也就是初期选择使用egg.js + MySQL + uni-app + antd-vue,来开发两个App和一个运营后台,快速解决0到1的问题。


关于App开发技术方案的选择


App的开发方案有很多,比如纯原生、flutter、uniapp、react-native/taro等,这里就当是的情况做一下选择。



  1. IOS与Android纯原生开发方案,需要新招人,两端同时开发,两端分别测试,这个资金及时间成本老板是不能接受的;

  2. flutter,这个要么自己从头开始学习,要么招人,相对于纯原生的方案好一点,但是也不是最好的选择;

  3. react-native/taro与uni-app是比较类似的选择,不过考虑到熟练程度、难易程度以及开发效率,最终还是选择了uni-app。


为什么选择egg.js做后端


很多时候方案的选择并不能只从技术方面考虑,当是只能选择成本最低的,当时的情况是egg.js完全能满足。



  1. 使用一些成熟的后端开发方案,如Java、、php、go之类的应该是比较好的技术方案,但对于老板来说不是好的经济方案;

  2. egg.js开发比较简单、快捷,个人也比较熟悉,对于新成员的学习成本也很低,对于JS有一定水平的也能很快掌握egg.js后端的开发


中间的各种折腾


前期开发还算顺利,在规定的时间内,完成了开发、测试、上线。但是,老板并没有如前面说的,很快运营,很快就盈利,运营的开展非常缓慢。中间还经历了各种折腾的事情。



  1. 老板运营遇到困难,就到处找一些专家(基本跟我们这事情没半毛钱关系的专家),不断的提一些业务和ui上的意见,不断的修改;

  2. 期间新来的产品还要全部推翻原有设计,重新开发;

  3. 还有个兼职的领导非要说要招聘原生开发和Java开发重新进行开发,问为什么,也说不出什么所以然,也是道听途说。


反正就是不断提出要修改产品、设计、和代码。中间经过不断的讨论,摆出自己的意见,好在最终技术方案没修改,前期的工作成果还在。后边加了一些新的需求:系统升级1.1、ui升级2.0、开发小程序版本、开发新的配套系统(小程序版本)以及开发相关的后台、添加即时通信服务、以及各种小的功能开发与升级;


中间老板要加快进度了就让招人,然后又无缘无故的要开人,就让人很无奈。最大的运营问题,始终没什么进展,明显的问题并不在产品这块,但是在这里不断的折腾这群开发,也真是难受。


明明你已经很努力的协调各种事情、站在公司的角度考虑、努力写代码,却仍然无济于事。


后期技术方案的调整



  1. 后期调整了App的打包方案;

  2. 在新的配套系统中,使用midway.js来开发新的业务,这都是基于前面的egg.js的团队掌握程度,为了后续的开发规范,做此升级;

  3. 内网管理公用npm包,开发业务组件库;

  4. 规范代码、规范开发流程;


人员招聘,团队的管理


人员招聘


如下是对于当时的人员招聘的一些感受:



  1. 小公司的人员招聘是相对比较难的,特别是还给不了多少钱的;

  2. 好在我们选择的技术方案,只要对于JS掌握的比较好就可以了,前后端都要开发一点,也方便人员工作调整,避免开发资源的浪费。


团队管理


对于小团队的管理的一些个人理解:



  1. 小公司刚起步,就应该实事求是,以业务为导向;

  2. 小公司最好采取全栈的开发方式,避免任务的不协调,造成开发资源的浪费;

  3. 设置推荐的代码规范,参照大家日常的代码习惯来制定,目标就是让大家的代码相对规范;

  4. 要求按照规范的流程设计与开发、避免一些流程的问题造成管理的混乱和公司的损失;

    1. 如按照常规的业务开发流程,产品评估 => 任务分配 => 技术评估 => 开发 => 测试 => cr => 上线 => 线上问题跟踪处理;



  5. 行之有效可量化的考核规范,如开发任务的截止日期完成、核心流程开发文档的书写、是否有线上bug、严谨手动修改数据库等;

  6. 鼓励分享,相互学习,一段工作经历总要有所提升,有所收获才是有意义的;

  7. 及时沟通反馈、团队成员的个人想法、掌握开发进度、工作难点等;


最后总结及选择创业公司避坑建议!important



  1. 选择创业公司,一定要确认老板是一个靠谱的人,别是一个总是画饼的油腻老司机,或者一个优柔寡断,没有主见的人,这样的情况下,大概率事情是干不成的;

    1. 老板靠谱,即使当前的项目搞不成,也可能未来在别的地方做出一番事情;



  2. 初了上边这个,最核心的就是,怎么样赚钱,现在这种融资环境,如果自己不能赚钱,大概率是活不下去的@自己;

  3. 抓住核心矛盾,解决主要问题,业务永远是最重要的。至于说选择的开发技术、代码规范等等这些都可以往后放;

  4. 对上要及时反馈自己的工作进度,保持好沟通,老板总是站在更高一层考虑问题,肯定会有一些不一样的想法,别总自以为什么什么的;

  5. 每段经历最好都能有所收获,人生的每一步都有意义。

作者:qiuwww
来源:juejin.cn/post/7257085326471512119
收起阅读 »

丈母娘,你这是来真的啊?

今年春节在家里呆的时间比往年都要久一些,就算离家不远也会这样感觉,随着年龄的增加,越发思念故土以及父母。 以往回家都比较晚,待着待着就想着回工作的城市。因为回家总会伴随着和二老的争论,而且我那时也很戾气,合不到一块就气,或者进房间睡觉。 要说啥事能值得争论,我...
继续阅读 »

今年春节在家里呆的时间比往年都要久一些,就算离家不远也会这样感觉,随着年龄的增加,越发思念故土以及父母。


以往回家都比较晚,待着待着就想着回工作的城市。因为回家总会伴随着和二老的争论,而且我那时也很戾气,合不到一块就气,或者进房间睡觉。


要说啥事能值得争论,我的确忘了,大概是思想观念以及家里生意的问题产生的。以至于身处异乡也要离开家里不愿意喋喋不休。


随着时间流逝,心态已经发生变化。我内心深处逐渐向着故土,和家里二老的关系也潜移默化,彼此心照不宣的拉近了很多。


二老也不过多问责一些,也不再以长者的心态和我对质。


事实也觉得普通家的孩子成年后就该放权干他自己的事,父母少些干预,有些做法和观念已经帮不上忙。父母与孩子之间往往都会产生很大分歧,尤其是思想观念的矛盾。


每一代都有可能推翻上一代的思想意识。父母与子女和谐,一般父母的思想观念足够前卫能够传承给子女,或者子女的思想观念没有很大差异,认可父母的思想体系。


我们会一起坐下来交谈家里的事情,想好对策处理外事,规划老家祠堂以及屋子的安排;参与布置家里,代替老爹出席各项习俗礼节活动。


从读大学开始到现在就没再给它们制造任何的麻烦和搞砸事情。只见他坐在店里抽着烟,沉默着望向我,迟迟不再发话,只在最后说了一句婚姻的问题。


这个话题别说他了,老家众多的亲戚都会抛出这个尖锐的问题,我说我回家只想休息,逢年过节和老朋友叙旧,去亲戚家串串门,一起乐呵乐呵聊聊家常,聊聊八卦。


95‘ 后教师彭老师


小学同学彭老师,现在是一名县城重点中学的高中老师。她是一名 90 后老师,我在她身上看到了很多老师的缩影。她毕业后第一份工作就是任高一班主任兼任课老师。


图片


▲图/ 学生:???


彭老师很是焦虑很迷茫,害怕自己不能胜任;害怕自己教不好;害怕自己耽误学生的前途。


每一个担心都很沉重,责任肩负在身上,没日没夜的备课,改作业,演练怎么让学生听懂。


图片


▲图/ 在最无能为力的学科遇到了最不想辜负的老师


小城市义务教育向来重视成绩不太注重心理建设,导致问题学生很多。彭老师经常 solo 学生和家长,试图说服他们把重心放在当前阶段要做的事。


尽管生病,喉咙发炎也坚持做着这些事情。


图片


▲图/ 除夕夜,彭老师回学校,顺道提零食带红包给她


图片


▲图/ 她赠了一罐饮料,握着只觉比当时天气还冷


图片
▲图/ 彭老师收到开工红包请吃饭,还给了红包,呜呜呜感动


有时煎熬的对着同事和朋友说,看着自己的希望学生开始堕落真的很难受,说也说不通;面对自己的学生读着读着因家里或者各种的问题而辍学时更无语。


图片


▲图/ 00 后学生在 95 后老师教案涂鸦


忍不住会直接联系家长 solo,开导家长有时候如同开山凿石一样,只有坚持不懈才使得那位学生继续读下去,尽管读大专,也改变了不少走向。


有一天她苦笑的跟我们说,她自己都没怎么谈过恋爱却还要开导失恋的学生,甚至被失恋学生反问:“老师,你谈过恋爱吗?”


???


彭老师所带的班级在 23 年第一批结业。上本率超额完成上面给的任务,这一路上面临学生堕落、早恋、辍学、逃课、网瘾...


彭老师有时候很想放弃摆烂,像那些老道的老师一样,风清云淡,看开一点,上课就上课,喝茶就喝茶,晒太阳就晒太阳。


后来她骑着小电瓶,向我重申了她那坚定的信念,绝不可能摆烂,我要对我的学生负责,要为他们的前途着想,就这么决定了。


我看着她感觉头上出现了一顶为人师表的光环。


图片


实话说,老师的行为无论是怎样的,都会被学生刻在记忆深处,尽管有时不会联系,也会在某一刻回想起,念其良莠。


图片


▲图/ 念大学的学生探望彭老师


她性格一直都很逗比很乐观,走路也喜欢蹦蹦跳跳,还被她的老师和学生嘲笑她走路蹦蹦跳跳,和她玩王者鲁班的走姿如出一辙。


在她学生毕业之后,彭老师回归万年鲁班,但技术依然停留在四五年前大学生时期,经常遭截杀一路“啊”,开疾跑徒走回水晶,也经常被我们和她的学生给护着。


现在见她时还是很逗比,嘴硬心软。脸上刻印出一副班主任的形象,坚定严肃而又亲和。


她说她带完一届之后不当班主任了,太辛苦太累了。后面她又被安排带复读班班主任。


阿姨,你来真的啊?


老家的天气很不错,逢年过节我们经常互串亲戚的门,晒晒太阳,欺负欺负小朋友,欺负过头了说送给他们一份《三年高考五年模拟卷》礼物,他们哭的更厉害。


图片


▲图/帮人带孩子真好玩


春节假期充电的时间正在倒计时,最后赶着串堂弟的门,也就是大叔家,那时他们家里很忙,家族里的会做饭打点的都来帮忙了。


原来是堂弟未来丈母娘查家环节,家里上上下下忙活。


我等闲杂人在巷子里晒着太阳,准备迎接他们。堂弟我和同岁,月份比我小,在温州工作,这几年他老爹操够了心,费了不少钱。龙年又长了一岁,他父母更是着急。


图片


▲图/ 回家路途中天色很震撼,大家都不想说话


闲聊之际,只见一列车齐刷刷地开到门口,不知道的还以为是迎亲来了。


二叔见状连忙赶上去打招呼并指挥停车泊位。只见那丈母娘下车后整理着装,望着周边的房屋装饰,一脸严肃对着二叔说位置有些偏远,绕来绕去的,二叔连忙解释可能走的道不一样,走国道会很顺。


亲友团齐刷刷招呼张罗着进去喝茶,握手,递烟,倒茶。摆了三桌才能坐下,我们自己人在旁边站着观望或帮忙。两方互相寒暄之后,不到十分钟对方便开始切入主题,商量儿女婚姻问题。


丈母娘吐露堂弟家位置偏僻,路道不好走,绕了很多弯才抵达,彩礼需要增加 3w 到 5w,作为她女儿的嫁衣钱。


阿姨,你这是来真的啊?


大叔一边忙着圆场有不同的道路可以走,镇与镇之间来往有很多路可走也方便,一边递烟倒茶使其思量再三。


丈母娘依然坚定不移,重申了一遍,对方亲戚应声附和。


大叔脸色像是喝酒上了头一样,随后陷入沉思,见其态度坚硬,且事已至此,作出退步可以增加 1w - 2w,给到对方女儿身上。


前些天,大叔带着堂弟相亲到女方家,据说对方开价 35.8w 彩礼,回礼是购买房之后支援 10w+,不知其是否商量后的价格。


只见那天大叔来我家喝茶水时带着儿子和未来儿媳去了县城买了“五金”, 4w 左右。


见此事既成,并不买二叔的帐,坚持需要增加 3w,并声称给女儿做嫁衣。


大叔又陷入了思考,心里计算着账面,上个月女儿刚嫁出去,彩礼还没捂热,就要付之东流,是为不甘且又无奈。


场面陷入了安静,对方只管握着茶杯吃着果子等待结果,势必做好了撤离的打算。


姑舅们遂即递烟倒茶聊家常。


堂弟陪同坐着喝茶望着对象低下了头,儿媳妇安静得陪在身边,挽着堂弟的手。


掂量之后大叔同意了对方的要求,双方态度方能缓和很多,继续喝茶,商量事宜,聊家常,聊孩子幸福。


饭后,互相道了别,每人随了红包礼。只觉得对方结婚习俗没有讲明白有点遗憾,但愿不会阻碍他两组建一个幸福的小家庭。


我和表弟坐在沙滩上,对着河扔石子打水漂,谁都不想再提,心里比谁都清楚。却和群里的伙伴嘲笑着自己家的那位是否也要几十个 w。


作者:程序员小榆
来源:juejin.cn/post/7336822951273824282
收起阅读 »

刚入职因为粗心大意,把事情办砸了,十分后悔

刚入职,就踩大坑,相信有很多朋友有我类似的经历。5年前,我入职一家在线教育公司,新的公司福利非常好,各种零食随便吃,据说还能正点下班,一切都超出我的期望,“可算让我找着神仙公司了”,我的心里一阵窃喜。在熟悉环境之后,我趁着上厕所的时候,顺便去旁边的零食摊挑了点...
继续阅读 »

刚入职,就踩大坑,相信有很多朋友有我类似的经历。

5年前,我入职一家在线教育公司,新的公司福利非常好,各种零食随便吃,据说还能正点下班,一切都超出我的期望,“可算让我找着神仙公司了”,我的心里一阵窃喜。

在熟悉环境之后,我趁着上厕所的时候,顺便去旁边的零食摊挑了点零食。接下来的一天里,我专注地配置开发环境、阅读新人文档,当然我也不忘兼顾手边的零食。

初出茅庐,功败垂成

"好景不长",第三天上午,刚到公司,屁股还没坐热。新组长立刻给我安排了任务。他决定让我将配置端的课程搜索,从使用现有的Lucene搜索切换到ElasticSearch搜索。这个任务并不算复杂,然而我却办砸了。

先说为什么不复杂?

  1. ElasticSearch的搜索功能 基于Lucene工具库实现的,两者在搜索请求构造方式上几乎一致,在客户端使用上差异很小。

image.png

  1. 切换方案无需顾虑太多稳定性问题。由于是配置端课程搜索,并非是用户端搜索,所以平稳切换的压力较小、性能压力也比较小。

总的来说,领导认为这个事情并不紧急,重要性也不算高,而且业务逻辑相对简单,难度能够把握,因此安排我去探索一下。可是,我却犯了两个错误,把入职的第一件事办砸了。现在回过头来看,十分遗憾!

image.png

难以解决的bug让我陷入困境

将搜索方式从Lucene切换为ElasticSearch后,如何评估切换后搜索结果的准确度呢?

除了通过不断地回归测试,还有一个更好的方案。

我的方案是,在调用搜索时同时并发调用Lucene搜索和ElasticSearch搜索。在汇总搜索结果时,比对两者的搜索结果是否完全一致。如果在切换搜索引擎的过程中,两个方案的搜索结果不一致,就打印异常搜索条件和搜索结果,并进行人工排查原因。

image.png

在实际切换过程中,我经常遇到搜索数据不一致的情况,这让我感到十分苦恼。我花了一周的时间编写代码,然后又用了两周多的时间来排查问题,这超出了预估的时间。在这个过程中,我感到非常焦虑和沮丧。作为一个新来的员工,我希望能够表现出色,给领导留下好印象。然而事与愿违,难以解决的bug让我陷入困境。

经过无数次的怀疑和尝试,我终于找到了问题的根源。原来,我忘记了添加排序方式。

因为存在很多课程数据,所以配置端搜索需要分页搜索。在之前的Lucene搜索方式中,我们使用课程Id来进行排序。然而在切换到新的ElasticSearch方案中时,我忘记了添加排序方式。这个错误的后果是,虽然整体上结果是一致的,但由于新方案没有排序方式,每一页的搜索结果是随机的,无法预测,所以与原方案的结果不一致。

image.png 新方案加上课程Id排序方式以后,搜索结果和原方案一致。

为此,我总结了分页查询的设计要点!希望大家不要重复踩坑!# 四选一,如何选择适合你的分页方案?

千万不要粗心大意

实际上,在解决以上分页搜索没有添加排序方式的问题之后,还存在着许多小问题。而这些小问题都反映了我的另一个不足:粗心大意。

正是这些小问题,导致线上环境总会出现个别搜索结果不一致的情况,导致这项工作被拖延很久。

课程模型是在线教育公司非常核心的数据模型,业务逻辑非常复杂,当然字段也非常多。在我入职时,该模型已经有120 个字段,并且有近 50 个字段可以进行检索。

在切换搜索方式时,我需要重新定义各种DO、DTO、Request等类型,还需新增多个类,并重新定义这些字段。在这个过程中,我必须确保不遗漏任何字段,也不能多加字段。当字段数量在20个以内时,这项工作出错的可能性非常低。然而,班课模型却有多达120个字段,因此出错的风险极大。当时我需要大量搬运这些字段,然而我只把这项工作看作是枯燥乏味的任务,未能深刻意识到出错的可能性极大,所以工作起来散漫随意,没有特别仔细校验重构前后代码的准确性。

image.png 墨菲定律:一件事可能出错时就一定会出错

墨菲定律是一种普遍被接受的观念,指出如果某件事情可能出错,那么它将以最不利的方式出错。这个定律起源于美国航天局的项目工程师爱德华·墨菲,在1950年代发现了这一规律。

墨菲定律还强调了人类的倾向,即将事情弄糟或让事情朝着最坏的方向发展。它提醒人们在计划和决策时要考虑可能出错的因素,并准备应对不利的情况。

墨菲定律实在是太准了,当你感觉某个事情可能会出错的时候,那它真的就会出错。而且我犯错不止一次,因为有120个字段,很多字段的命名非常相似,最终我遗漏了2个字段,拼写错误了一个字段,总共有三个字段出了问题。

不巧的是,这三个字段也参与检索。当用户在课程搜索页面选择这三个字段来进行检索时,因为字段的拼写错误和遗漏,这三个字段没有被包含在检索条件中,导致搜索结果出错……

导致这个问题的原因有很多,其中包括字段数量太多,我的工作不够细致,做事粗心大意,而且没有进行充分的测试……

为什么没有测试

小公司的测试人员相对较少,尤其是在面对课程管理后台的技术重构需求时,更加无法获取所需的测试资源!

组长对我说:“ 要人没有,要测试更没有!”

image.png

事情办砸了,十分遗憾

首先,从各个方面来看,切换搜索引擎这件事的复杂度和难度是可控的,而且目标也非常明确。作为入职后第一项任务,我应该准确快速地完成它,以留下一个良好印象。当然,领导也期望我能够做到这一点,然而事实与期望相去甚远。

虽然在线上环境没有出现问题,但在上线后,问题排查的时间却远远超出了预期,让领导对结果不太满意。

总的来说,从这件事中,我获得的最重要教训就是:对于可能出错的事情,要保持警惕。时刻用墨菲定律提醒自己,要仔细关注那些可能发生小概率错误的细节问题。

对于一些具有挑战性的工作,我们通常都非常重视,且在工作中也非常认真谨慎,往往不会出错。

然而,像大量搬运代码、搬运大量字段等这类乏味又枯燥的工作确实容易使人麻痹大意,因此我们必须提高警惕。要么我们远离这些乏味的工作,要么就要认真仔细地对待它们。

否则,如果对这些乏味工作粗心大意,墨菲定律一定会找上你,让你在线上翻车!


作者:他是程序员
来源:juejin.cn/post/7295576148364787751
收起阅读 »

买房后,害怕失业,更不敢裸辞,心情不好就提前还房贷,缓解焦虑

自从买房后,心态有很大变化。虽然住自己的房子,心情和体验都很好,但是一把掏空钱包,很焦虑。买房后现金流一直吃紧,再加上每年16万的房贷,我很焦虑会失业。之前我喜欢裸辞,现在不敢想裸辞这个话题。尤其是在行业下行期,找工作很艰难,背着房贷裸辞,简直是头孢就酒,嫌命...
继续阅读 »

自从买房后,心态有很大变化。虽然住自己的房子,心情和体验都很好,但是一把掏空钱包,很焦虑。买房后现金流一直吃紧,再加上每年16万的房贷,我很焦虑会失业。之前我喜欢裸辞,现在不敢想裸辞这个话题。尤其是在行业下行期,找工作很艰难,背着房贷裸辞,简直是头孢就酒,嫌命太久。


焦虑的根源是背负房贷,金额巨大,而且担心40岁以后失业,还不上房贷。


一次偶然的沟通


"你的贷款利率调整了吗",同事问我。


同事比我早两年在北京买房,他在顺义买的,我在昌平买的,我俩一直有沟通房贷的问题。但我没听说利率有调整,银行好像也没通知我,于是我问道:”我不知道啊,你调整了?调到多少了?“。


”调的挺多的,已经降到了 4.3%“。同事兴高采烈的回复我。


”这么牛逼,之前我记得一直是4.85%,我去看看我的利率“,我听说房贷利率下降那么多,很是兴奋。


然而我的房贷利率没有调整,我尝试给银行打电话,沟通的过程很坎坷。工商银行客服说了很多,大概意思是:利率会自动调整,无需申请,但是要等到利率调整日才会调整”。我开始很不理解,很生气,利率都调整了,别人也都调整了,凭什么不给我调整呢?


我想到同事有尝试提前还贷,生气的时候,我就萌发了提前还贷的想法。


开始尝试提前还贷,真香


我在22年初贷款买房,其中商业贷款 174 万,贷款25年,等额本息,每个月要还 1 万的房贷。公积金贷款每个月大概需要还 2500。每个月一万二的房贷还是很有压力的,尤其是刚买房的这一两年,兜里比脸都干净,没存款,不敢失业,更不敢裸辞。


即便兜里存款不多,也要提前还贷,因为实在太香了。


我在工行App上,申请 提前还贷,选择缩短 18个月的房贷,只需要 6万2,而我每个月房贷才1万,相当于是用 6 万 顶 18 万的房贷。还有比这更划算的事情吗?


image.png
预约提前还款后,银行会安排一个时间,在这个时间前,把钱存进去。到时候银行就会扣除,如果扣除金额不足,那么提前还款计划则自动终止,需要重新预约!


工行的预约还款时间大概是1个月以后,我是10-15号申请提前还款,银行给的预约日期是 11-14号,大概是1个月。


提前还款,比理财强多了


这次还贷以后,我又申请了提前还款, 提前还 24 期,只需要 9 万,也就是 9 万顶 24 万;提前还 60 期,只需要 24 万,相当于 24 万顶 60 万。


image.png


image.png


还有比提前还贷收益更高,风险更低的理财方式吗?没有! 除了存款外,任何理财都是有风险的。债券和基金收益和风险挂钩,想找到收益5%的债券基金,要承担亏本风险。你惦记人家的利息,人家惦记你的本金!


股票的风险更不必说,我买白酒股票已经被套的死死,只能躺平装死。(劝大家不要入 A 股)


提前还贷划算吗?


我目前的贷款利息是 4.85%,而存到银行的利息不会超过 3% ,很多货币基金只有 2%了。两者利息差高达 3%,肯定是提前还贷款更加合适。


要明白,一年两年短期的利息差还好,但是房贷可是高达 25 年。25年 170 万贷款 3% 的利息差,这个金额太大了。提前还了,省下来的钱还是很多的。例如刚才截图里展示的 提前还 24 万顶了 60 万的房贷。


网上很多砖家说,“要考虑通货膨胀因素,4.85% 的贷款利率和实际通货膨胀比起来不高,提前还款不划算。”


砖家说话都是昧良心的。提前还贷款是否划算,只需要和存款利率比就行了,不需要和通货膨胀比。因为把钱存在银行也会因为通货膨胀贬值。只有把钱 全都消费,全部花光才不会受通货膨胀的困扰,建议砖家,多消费,把家底败光,这样最划算!


砖家们一定是害怕太多人提前还贷,影响了银行的放贷生意。今年上半年,提前还贷已经成潮流,有些银行坐不住,甚至关闭了提前还贷的入口…… 所以要抓紧,没准哪天就提高了还贷门槛,或者直接禁止。


程序员群体收入高,手里闲钱多,可以考虑提前还贷款,比存银行划算多了,别再给银行打工了!


作者:五阳神功
来源:juejin.cn/post/7301530293378727971
收起阅读 »

决定了,转产品经理啦。

今天来聊一下产品经理这个话题,掘金上有一个读者私信问,对代码不是特别有天赋,想转行产品经理可行吗?前景如何? 那刚好之前有另外一个读者转了产品经理,女生,关键是她对当前的薪资还非常满意,“撩”天起来也特别丝滑(😂)。 那希望小姐姐的分享,能给大家带来一些启发...
继续阅读 »

今天来聊一下产品经理这个话题,掘金上有一个读者私信问,对代码不是特别有天赋,想转行产品经理可行吗?前景如何?


那刚好之前有另外一个读者转了产品经理,女生,关键是她对当前的薪资还非常满意,“撩”起来也特别丝滑(😂)。



那希望小姐姐的分享,能给大家带来一些启发和帮助🤔,尤其是 25 届 26 届,以及打算转行产品的小伙伴,注意啦。


一、你觉得找工作最关键的一环是什么?


首先首先,要有一份看的过去的简历,这里有个区别就是,如果你是 985 那种好学校没有实习经历投什么公司都可以。


但是如果你是双非一本二本之类的学校,没有实习经历就别去投大公司了,先把简历写好投个 500 人以内的小公司实习着。



7-10 月份之间挑两个月实习着,然后是多看网上的(牛客网,b 站,知乎产品面经非常多,b 站模拟面试视频也挺多的)一些面经,熟悉面试官的套路,懂得面试中常问的问题及思路。


深刻总结自己大学三年经历(实习,成绩,获奖经历),在反思自己的各个经历时,一定要有条理的、详尽的把自己的经历描述清楚,简历上写概要,但是当面试官问到你其中经历时,一定要能条理清晰地表述出来;


之后是在面试过程中根据自己的面试经验,总结面试官们对自己简历的关注重点,多次改版


Boss 直聘投递简历,大量投递简历(boss 记录我总共沟通过的 hr 是 982 位,目总共投递了 196 份简历,视频面试 23 家),说真的产品面试多面几次你就知道哪些问题会经常问了,面试期间录音,面试结束后立刻记录并分析面试过程中的问题,并不断反思自己的不足。


二、学生阶段对找工作最有用的是什么?


大一大二大三在学校都没怎么学习,基本上都是班级倒数前十,我记得上 Java 课那个老师每次都叫全班倒数前十坐第一排,所以我的学习是真的很差。


但是我这个人性格活泼开朗有社交牛杂证,喜欢玩各种 app,喜欢上网,性格内向的女生做产品不太推荐,产品面试有的时候还是要跟面试官画大饼的,要敢说敢想敢画饼。


三、自学了哪些课程?


纯纯靠在 b 站搜索产品经理学习,看视频自己总结复盘,做笔记。


四、大学四年过得怎么样?


大学前三年都在谈恋爱吧,反正没学习,不过也没挂过科,就是普通女生,后来失恋了才知道要好好考虑未来了。其实我也就是大三暑假才开始学习的,计算机专业应届生想面试产品实习好好学一个月都能行!



五、为什么走上了这条路?


因为对于我来说,计算机本身不喜爱,软件学习不好,不能硬去做软件开发,这样坐下来自己就很痛苦,软件技术就把自己的发展方向卡的死死的,转行产品经理是计算机专业学生一个更好的方向。



六、有去实习吗?


我是 9 月份才实习的,说实话有点晚了,你们最好别像我一样这么晚,那个时候找的是一个 300 多人的小公司实习,公司做的是 B 端的产品,我和带我那个导师玩的很好。


我当时跟她做一个她全程负责已经上线的项目,项目资料啥的都给我了,但是她把项目从头到尾细节都给我讲了十几遍,所以我能把这个项目完全梳理清楚。


还有产品经理的特质要求你必须要善于思考,所以虽然你做的事可能是基层的工作,但是你在整个过程中不断思考,这点是面试官比较看重的。


七、为什么选择了产品岗做了哪些准备?


本科双非软件工程专业女生,从大一开始就知道自己并不喜欢技术岗,也做不来,真正明确目标是在大三暑假,在 b 站刷到有关计算机专业做产品的视频,后来仔细了解了产品经理的相关工作,就想尝试入行。



八、推荐 B 站学习资料/或者其他资料?


B 站学习资料其实一搜产品经理学习会有一大堆,我觉得每个 up 主的视频都可以看看,另外可以关注一下人人都是产品经理这个网站,这个也可以下载 app,还有关注一些写的比较好的产品公众号,经常浏览一下培养产品思维。


九、有什么好的学习建议吗?


我觉得要多加一些产品交流学习群,因为一个人可以走得很快,但是一群人可以走得更远,一个人自学的同时也要看看别人的情况,多和未来要做产品以及现在已经做产品的人做朋友,在面试这块还能一起模拟一下。



十、工作后和学校时最大的区别?


工作后和在学校时最大的差别就是,工作后你是赚钱,而在学校你是花钱。


说真的我领第一个月实习工资的时候虽然只有 4000,但是我很开心,第二家公司实习 7000 的时候我存款都一万多了,感觉工作赚钱真好。


十一、工作后的心得体会?


其实工作后和大学时还是有一点比较相似的。


那就是“没人真正关心你的个人发展”。


你就是你,除了你自己和你的父母外,没有人会真正在意你的未来发展,你是出人头地还是泯然众人。每个人都很忙的,所以你要自己好好在意自己,自己去时常反省,自己去寻找资源学习提升,自己好好整自己的简历。



十二、对未来的展望?


因为我第一段实习和目前这家公司都是做 B 端产品的,自己本人也喜欢 B 端产品,我未来产品发展方向肯定是往 B 端走的,希望能在毕业后 3-5 年成长为高级产品经理。


十三、计算机专业做产品的优势?


很多产品招聘要求都是计算机相关专业优先,这一点在产品面试里面可以突出重点。懂一点技术这样可以和技术人员更好的沟通交流,解决 bug。



十四、有什么祝福语吗?


提前祝大家龙年暴富,也祝二哥掘金上早日百万粉。


希望每个和我一样同是计算机专业但是不想做开发的兄弟姐妹都不要放弃!可以来找我一起学习交流产品面试经验哦。


作者:沉默王二
来源:juejin.cn/post/7330933094159908916
收起阅读 »

解决前端跨团队统一的隐性拦路虎

前言 春节刚归来,我们不搞那么烧脑,先来一篇浅显易懂的文章,期望给大家带来一些新的解题思路。 背景 过去多年无论是一款插件推广,还是组件库统一,无论是一次机制流程制定,还是前端工程化体系建设,相信很多同学与我一样,在跨团队方案推广统一过程中,前期无论做好多详实...
继续阅读 »

默认标题__2024-02-06+15_50_28.png


前言


春节刚归来,我们不搞那么烧脑,先来一篇浅显易懂的文章,期望给大家带来一些新的解题思路。


背景


过去多年无论是一款插件推广,还是组件库统一,无论是一次机制流程制定,还是前端工程化体系建设,相信很多同学与我一样,在跨团队方案推广统一过程中,前期无论做好多详实的准备,最终都会有一种未竟全功的感觉。


推广过程中,总会有人摆出历史包袱过重这一拦路虎“说服”我们,比如”我这项目不维护了,无需升级“,”我这项目框架太老旧了,无法升级“,或两者兼有之,到底改哪些项目多取决于双方自行判断,说穿了其实是双方“非不能也,乃不欲也”。


危害


一方面前端项目下线充满不确定性,业务不维护不代表页面无访问,旧有项目中总有一些页面残留,需要长期持续跟进。


另一方面过去多年前端技术生态快速向前发展,造成了不同部门、时期,从jquery、vue2、vue3、react、angular到webpack3、4、5、gulp、vite等前端基建五花八门的场景,仅23年我们团队就先后接入过webpack5、vite、pinia、rspack等前端架构局部优化,跨团队统一需要做大量兼容工作,全量统一困难。


前端项目的业务和技术特点,造成了前端项目数量基本越垒越多,每个项目总有几个有流量的页面时不时跳出来恶心人。造成了前端基建越来越庞杂,兼容成本偏高,总是不能全量升级。形成了前端项目独特的长尾化问题,项目长尾化,基建长尾化,团队意识长尾化。随着时间延续会带来升级维护困难和难以言表的线上偶发惊吓。


根源和解决思路


基于我司经验,问题产生根源一是前端团队资源有限,并不能覆盖全部项目;二是没有统一标准,项目缺乏统一标准管理,各团队自我决策改动范围;三是缺乏强制机制,并不能保证完成效果和时间。


资源有限是个基本无法解决的问题,我们只能从标准和强制机制两个角度去解决,基于此我们针对性的制定了转转自己的项目动态分级标准和强制倒逼机制。


项目动态分级


分级指的是用客观统一的数据标准反映项目重要性,规避主观评判。动态指的是随着时间延续,项目走过新建、迭代、维护、下线的生命周期,客观数据也随生命周期波谷、波峰、波谷往复更替。项目动态分级的最大好处是将有限资源聚焦在重点项目上。


以过去我司推进项目代码规范为例,我们设计时采用项目月活跃分支数、月代码提交行数、项目用户日访问量几个指标确定项目级别;


044ab65d-0883-49c5-ac41-07a588af6c2b.png


比如只有同时满足日访问量UV高于10000、日PV高于100000、月活跃分支数多于4个、月代码提交行数多于200的项目才确定为移动端重点项目,其它项目为非重点项目,每日或每周可以跑定时任务更新项目分级数据,具体数据可以通过拉取git api和公司前端埋点数据获得。


针对重点项目,可以制定2-4个月的改造时间节点和达标标准,非重点项目可以不做改造或制定其它策略。


我司前端项目数不到千,仅将项目分成重要和不重要两个级别已经够用,如场景有必要,也可将项目进一步拆分为更多级别。


指标边界值


大家可能对上面UV > 10000或月活跃分支数 > 4 等指标边界值是怎么确定的感兴趣?


说一下我们的思路,相信每个前端团队过去都手动收集过团队中的重点项目有哪些,这些手动数据可以作为我们的衡量基础,可以不断尝试调整我们的指标边界值,计算出的重点项目一般达到基本覆盖我们手动收集的95%以上重点项目即可,以此来确定边界值指标,一般结果肯定会大于我们的手动集,大家拿到结果可以人工再去分析下具体项目,基本能够发现多出来的项目大部分都是真实的重点项目,大部分都是因为我们谈到的历史包袱问题,不提罢了。


注意如果动态项目池,每日或每周都有较大变化,可能是你的指标不太合理,可以考虑扩大或缩小边界值来解决。另外注意突然进入重点动态项目池的项目,一般下个周期有可能就波动出去了,此类项目可以不做处理,也可推动解决,留好一定改动时间即可。


多指标好处


相比单指标确定边界值,多指标有哪些好处呢?


多指标好处一个是覆盖全部场景,比如我司移动端项目框架为Vue,有大量用户访问,中后台项目技术栈为React,没有大量用户访问。如果仅使用用户访问量指标,中后台项目全部会被排除在重点项目外,如果仅使用项目活跃度,移动端最看重的用户访问量不被纳入,项目区分度不够,但是两者相结合,恰好能覆盖移动端和PC端的全量场景。


另一个是多指标得出的结果稳定性更好,不会因单指标剧烈变化造成结果波动太大的情况,比如去年618和双11期间,尽管我司用户访问量大增,但重点项目集并没有什么变化。


强制倒逼机制


另外怎么确保deadline无延期呢?


我司采用的解决办法是与上线环节绑定,通过强拦截和审批拦截的方式,确保各团队能在最终时间节点之前,完成全部项目的改造。除此之外,强制机制能够倒逼各团队提升生产率,将很多重复性工作自动化,比如上文说到的代码规范,总会有同学梳理出一套本地自动化方案,帮我们完成配套建设。当我们标准达成、配套健全后,就可以考虑下扩大范围或者提高标准的事情了。


另外大家需要注意,跨组推进工作中很重要的一点是前置沟通,给同学们留下足够的时间,比如2-6个月,达成时间共识很重要,不要自觉良好一刀切,想想过去经历的很多跨组项目,半年能彻底搞完就很不错了。


252bfa83-7993-42bc-9cea-799da0876e5d.png


思路&基建复用


本文谈到的整套分级和强制思路,后续逐步复用在我司代码重复度、复杂度、线上异常治理、性能指标等多项跨团队公共事项落地中,有些指标直接复用同一套项目分级标准即可,有些指标需要一定的改动,比如性能指标,就从重点项目,变为重点页面即可,大部分基础能力和解决问题的思路仍可复用。


总结


保持公司各团队基建、标准、机制统一,长期看是非常有必要的事,但过去受制于历史包袱问题这一隐性拦路虎,前端很难做到跨团队统一方案的效用最大化,总会留下一些尾巴,本文通过转转过去的实践,给出了项目分级和强制机制的解体思路,非常适合前端资源并不那么充足的公司,至少能够保证公司重要的项目长期标准统一。


另外整个思路的落地,除标准制定外,还涉及到数据抽取、各指标检测、CICD集成、报警机制、系统开发等多方面的具体工作,每一部分都能作为一个单独的模块去做分享,比如代码规范涉及到的项目代码增量存量检测、代码复杂度、重复度检测,线上异常治理涉及到的实时报警策略、错误分级策略等,因篇幅关系,本文不再赘述,期待后面其他转转er的文章吧!!!


作者:转转技术团队
来源:juejin.cn/post/7337589994464854016
收起阅读 »

软件License授权原理

软件License授权原理 你知道License是如何防止别人破解的吗?本文将介绍License的生成原理,理解了License的授权原理你不但可以防止别人破解你的License,你甚至可以研究别人的License找到它们的漏洞。喜欢本文的朋友建议收藏+关注,...
继续阅读 »

软件License授权原理


你知道License是如何防止别人破解的吗?本文将介绍License的生成原理,理解了License的授权原理你不但可以防止别人破解你的License,你甚至可以研究别人的License找到它们的漏洞。喜欢本文的朋友建议收藏+关注,方便以后复习查阅。


什么是License?


在我们向客户销售商业软件的时候,常常需要对所发布的软件实行一系列管控措施,诸如验证使用者身份、软件是否到期,以及保存版权信息和开发商详情等。考虑到诸多应用场景可能处于离线环境,无法依赖网络进行实时认证,所以还需要考虑单机认证时的防破解问题。总之,License许可证利用HTTPS网站的证书和签名技术,一方面证明当前使用者是申请License的本人,另一方面要防止恶意破解,并伪造篡改License达到白嫖的目的。


image.png


为什么使用License授权?


License的作用是什么呢?收费软件的License其目的肯定是防止用户白嫖啦,所以License还应该具有以下一些功能:



  • 授权使用


明确用户需要满足的使用条件,如单用户、多用户、企业内部使用、全球使用等,并且通常会限定可安装和激活的设备数量。



  • 限制功能


根据不同等级的License,软件可以提供不同等级的功能,例如基础版、专业版、企业版等,License可以解锁相应版本的功能。


image(1).png



  • 期限控制


规定软件的使用期限,可能是永久授权,也可能是订阅式授权,到期后用户需要续费才能继续使用。



  • 版权保护


重申软件的知识产权归属,禁止未经授权的复制、分发、反编译、篡改或逆向工程等侵犯版权的行为。



  • 法律保障


License作为法律合同,确立了软件提供商和用户之间的法律关系,明确了双方的权利和责任,如果发生违反协议的情况,软件提供商有权采取法律手段追究责任。


image(2).png



  • 技术支持和升级服务


部分License中会规定用户是否有权享有免费的技术支持、软件更新和维护服务,以及这些服务的有效期限。



  • 合规性要求


对于特殊行业或特定地区,License可能还涉及到满足特定法规、标准或认证的要求。


归纳起来,我们可以总结出License的作用是:



  • 控制软件使用者的使用权限

  • 申明软件所有者的版权

  • 规定软件的使用规范


最后两点主要是法律相关的,第一点才是本文的重点,即如何生成License,以及如何通过License对软件用户进行限制。


License分类


依据用途的不同,License可分为两大类别:商用License非商用License


非商用License主要服务于诸如展览展示活动、各类研发活动等多种非直接盈利性的应用场景;


商用License,则通常适用于那些开展商业运营活动的企业场所。


image(3).png


基于使用的期限,License可以划分为固定期限License和永久License两类。


固定期限License在激活后的指定时间内有效,过了预设的使用期限,用户必须更新许可期限并通过重新激活才能继续使用;


而永久License则是在激活后赋予用户无时间限制的使用权,一旦激活,无需担忧许可失效的问题,可以无限期地持续使用软件。


如何实现License授权?


要想生成一个安全性高的License,必须让其满足以下几个特征:



  • 保密性

  • 防篡改

  • 时效性

  • 可找回


保密性是指License里携带的data信息具有一定的隐蔽性,这样可以防止想要破解License的人寻找到生成License的规律,进而伪造自己的License。


防篡改是指防止License里携带的重要信息被篡改,例如License有效时间如果被篡改,那么License就起不到限制用户使用期限的作用了。


时效性是指License会记录软件可以使用的有效期,并在验证License的时候判断其是否过期。


可找回是指用户申请的License一旦丢失或者要续期,基于第一次申请License时创建的源文件,再一次生成新的License,新的License会携带用户当初申请时的信息。


由于License必须满足以上特性,所以在介绍License实现原理之前,我们先来学习一下非对称加密和签名&验签。


非对称加密


有非对称加密必然就会有对称加密,对称加密就是我们一般意义上的加密算法,这种算法在加密和解密时都使用同一个密钥,所以对称加密算法的密钥又叫做共享密钥。对称加密算法一般使用AES(Advanced Encryption Standard)加密算法。


image(4).png


非对称加密有两个密钥,一个公钥一个私钥。公钥是公开的,供多个人使用;私钥是非公开的,仅一个人或者少数群体使用。当非对称加密算法用作加解密时,公钥用来对明文加密,私钥用来给密文解密,这个顺序不能颠倒。你可以这样理解,密文是私密的东西,只有少数人才能解密,所以少数人手里的私钥用来解密,多数人手里的公钥不能解密只能加密。


image(5).png


为什么要区分公钥和私钥呢?直接使用一个共享密钥不行吗?可以,但是前提是你能够安全的将共享密钥传递给对方。共享密钥如何在线上安全的同步给对方是一个问题,毕竟在网络上传输信息很容易暴露。如果使用非对称密钥就可以将公钥同步给消息发送者,而消息接收者则保留私钥用来解密消息,这样即使公钥被中间人盗取,他也只能用来做加密操作而不能解密密文。


签名&验签


虽然非对称加密可以解决“密钥分配问题”,但是它不能防止伪造消息的问题。既然公钥可以公之于众,大家都知道你的消息要怎么加密,假如A想给B发送消息,那么中间人X可不可以将A发送的消息拦截,并将自己的消息加密以后发送给B呢?当然可以!


这就好比你买了一张周杰伦的演唱会的门票,我看到了之后自己伪造了一个一模一样的,如此一来我也可以去看周杰伦的演唱会。这时官方组织者发现了这个漏洞以后,规定周杰伦的演唱会门票需要带上官方印章才能进场,此时我就算把门票画的再惟妙惟肖,少了官方印章,我的这张假门票依然是张废纸。


如何解决这个问题呢?答案就是给你的消息“盖章”,即签名,签名就是认证你的身份。这里还是使用非对称密钥算法,只不过使用的顺序和加密消息时恰好相反。签名时是私钥用来加密,公钥用来解密。


image(6).png


你可以这样理解,给消息签名就好比给文件盖章,你会随随便便把你自己的印章交给别人来使用吗?当然不行!所以公钥不适合用来签名,私钥用作签名更加合理。需要注意的是签名所使用的密钥对由消息发送者生成并提供给消息接收者,这和给消息加密时正好相反,这样说来消息加密和消息签名这两个使用场景就需要生成两套密钥对。


1111_waifu2x_photo_noise1_scale.png


出于性能方面的考虑,大多数情况下给消息加密还是使用的对称加密算法,为了解决“密钥分配问题”,只会在第一次发送共享密钥的时候才会使用非对称加密,一旦消息接收者得到了共享密钥,通信双方就能够通过共享密钥进行通信了。


此外,使用非对称密钥对消息签名也可以防止消息被人篡改,由于性能原因一般不会对消息原文进行签名,而是先通过哈希算法形成消息摘要,再对消息摘要签名。消息接收者验签时会将消息的明文进行哈希,再将消息签名解密,两者比对如果一致则证明消息没有被篡改过。


License结构


前面铺垫了一些生成License所必备的基础知识,我们学习了生成的License如果需要防止被人破解,那就需要具有保密性、防篡改和防伪造等特点。接下来要考虑的是License需要携带什么信息就能让其既安全又能限制用户的使用权限。


License文件理论上来说至少需要以下一些信息:



  • 软件所有者信息

  • 申请授权时间

  • 授权截止时间

  • 软件使用者信息


下图是License文件流的结构图,主要字段有:



  • 魔数值

  • 分隔符

  • 申请时间

  • 到期时间

  • 公钥的长度 & 公钥

  • 携带信息的长度 & 携带信息


安全算法总结-导出(4).png



  • 魔数值:和Java Class文件头的魔数CAFEBABE类似,License文件头的魔数也是起到了快速识别的作用,也有格式验证的作用。

  • 分隔符:用来区分各个字段,将字段之间用分隔符隔开便于结构化管理。

  • 申请时间:用户申请License的日期。

  • 到期时间:License的有效截止日期。

  • 公钥的长度 & 公钥:公钥长度用来记录公钥是多少字节,依据公钥长度就可以读取相应长度的公钥数据了。

  • 携带信息的长度 & 携带信息:携带信息长度用来记录携带信息是多少字节,依据携带信息长度就可以读取相应长度的携带信息了。携带信息里通常会包含软件所有者、软件使用者、License唯一ID以及设备MAC地址等信息。


想好了License文件的结构,我们就可以开始生成License啦。


生成License


申请License的总体流程如下图所示。客户在软件服务商处申请License,软件服务商生成License之后会返回给客户License文件,自己保留一份License源文件,源文件用作以后找回License。客户拿到License文件,在安装、启动软件之后激活License。


license_apply.png


生成License主要做了这样几个事情:



  • 对需要携带的信息加密成密文

  • 对密文签名

  • 保存申请日期、有效截止日期和公钥

  • 生成源文件


安全算法总结-导出.png


私钥1加密的作用是对License的安全加固。因为License实际上可以通过Base64解码得到里面的数据,包括公钥信息,这样客户就能够通过公钥将携带的信息解析出来,倘若携带有敏感信息就会造成安全问题。所以这里对携带的信息做了先加密后签名的处理。


另外需要强调的是,申请日期和有效截止日期也需要签名但不需要加密。因为如果不签名的话,客户可以将日期解析出来之后篡改成自己想要的任何日期。


加载License


smart-license.png


客户申请到License之后,就可以去软件上面激活啦。激活License首先判断License是否合法,检查文件头魔数和分隔符是否正确,检查License是否过期等。然后就是提取License的授权信息进行验签比对。如果有必要,还可以检查授权信息里携带的MAC地址是否与安装设备的MAC地址匹配。如果一切正常就可以通过验证。


安全算法总结-导出(1).png


找回License


license_forget.png


防破解


首先需要明确的一点就是,没有万无一失的防破解方案,所谓魔高一尺道高一丈,漏洞堵的再严实依然能找到破解的方法,唯一的区别就是破解的成本高不高而已


例如,具备一定逆向工程经验的程序员都知道,应用程序不仅能够被调试,也能被修改。理论上讲,只要深入探究程序的代码,定位并替换其中嵌入的原始公钥信息,改为自己的公钥。随后,使用个人持有的私钥去创建一个新的授权文件,这样一来,就实现了对软件授权机制的破解。


更简单的方法是直接反编译验证逻辑的代码,当验证的时候直接返回true,即可通过验证。


即使不能做到百分之百的安全性,我们还是应该知道一些防破解的方法,增加用户破解的难度。防破解主要有以下几个方面的问题需要重点限制。



  • 如何解决java代码反编译之后,修改验证License的逻辑?



答:混淆代码,增加反编译的难度。




  • 如何防止客户修改服务器时间以避免License过期?



答:分为离线和在线两种情况。


在线情况下加载License信息时,可以将License里保存的过期时间和线上标准时间做比较


离线情况下,需要满足条件:申请时间 <= 系统时间 <= 截止时间


具体实现方案是,第一次加载License成功之后,将申请时间存到A处;


定时更新A处的时间,更新前比较当前系统时间,如果系统时间 < 申请时间,说明系统时间被篡改过。否则,更新A处时间为当前系统时间;


保存的时间是经过加密的,但是有个问题是如果用户备份了一开始的时间,过了一段时间之后用这个备份文件恢复,再修改系统时间就可以永不过期,如何解决?


可以将A处的时间信息保存到数据库里,数据库权限设置为只有开发人员可以修改,此外数据库安装的机器不能与软件安装的机器相同,否则用户可以将二者统一安装到某一个虚拟机里,快到期的时候再统一恢复到初始时间。


A处除了保存时间以外,还需要License的唯一id、使用License的机器mac地址,这些字段是为了保证License不被重复使用。




  • 如何防止客户在多台服务器上使用同一个License?



答:将服务器的ip或者mac地址与License做绑定关系。



image.png



  • 如何防止用户得到了源文件并获取了私钥,就可以自己伪造License?



答:避免将生成License的代码安装在用户的机器环境下,最好在自己的机器环境下生成License。因为生成License之后得到的源文件一般会保存在代码路径下,如果用户反编译生成License的代码,就能够得到源文件信息。



最后整理了一张泳道图,可以从整体观察一下不限制、防止篡改系统时间和防止多设备共享License等问题的解决方案。


安全算法总结-导出(3).png


作者:IT果果日记
来源:juejin.cn/post/7338723726837465107
收起阅读 »

如果失业了,我们又将何去何从?

经历 先说说自己的经历吧,小编在21年之前在南京一家国企外包工作过;主要做的是国网的项目,那时候工资不高但是福利待遇不错,什么季度奖、项目奖、年终奖没断过,可能日子太过安逸了吧,自己又想挑战一下高薪,于是就跳槽去了一家做法院业务的公司。跳槽的时候是20年,当时...
继续阅读 »

经历


先说说自己的经历吧,小编在21年之前在南京一家国企外包工作过;主要做的是国网的项目,那时候工资不高但是福利待遇不错,什么季度奖、项目奖、年终奖没断过,可能日子太过安逸了吧,自己又想挑战一下高薪,于是就跳槽去了一家做法院业务的公司。跳槽的时候是20年,当时疫情才刚开始,对经济的影响也还好,所以感觉当时找工作也没那么难。又过了1年,由于小编家人在18年的时候就给我在无锡贷款买了房,所以想早点回去发展,也过够了那种挤在出租屋里的感觉,所以我又辞了来了无锡去了一家做云计算的公司,也还算稳定,待了大概有2年多,从去年开始就开始走下坡路了,23年中旬开始大规模裁员,小编不幸中招。

从那家做云计算的公司走了之后我抑郁了半个月,因为半个 月内都找不到工作,当时真的很着急,因为还有房贷要、信用卡、车贷等等这些要还;从第三周开始我就下定决心要好好好背复习,不只是八股文,还有数据结构、算法 、设计模式等等,功夫不负有心人在第三周终于收获2个offer,此时悬着的心终于落了下来,阴差阳错去了一家做医疗的公司做运维监控平台。

后来不知怎么的裁员风波不断,从不少朋友那边收到消息很多公司都在裁员,很快这波风也刮到了我们公司;有一天我邮件收到了三个月试用期转正的邮件,当时还高兴了一下,但是第二天就通知我转正临时取消,没有任何理由 的取消,随后就有人事来通知我去签合同;我纳闷还要签啥合同啊,不过我大概也猜到点了,因为前些天就有小道消息说要延长试用期,我当时还以为是假的。到了人事那边一看是新的劳动合同,一看试用期变成了6个月,人事和我说应公司领导要求试用期需要延长,剩下3个月的公司还是按打八折发,但是转正后一并给我;我当时惊呆了,心想还能有这种操作,不过没办法看着大家都签了也只能签。这个事情开了头之后,后面又小道消息不断,听人说要降薪20%,很多同事听了都不愿意,于是都被一起约了谈了一次话,有些脾气比较爆的直接怼了领导,最后也就不欢而散。年前董事长又召集了我们研发部聊这个降薪的事情,开头先一堆铺垫,说什么今年怎么怎么难,外面都在裁员什么的,最后又说不降20%了,但是还是会扣5%,这个5%看公司运营情况来发放,大家听完虽然还是不情愿,但也没有再多说什么。


现状


这段时间公司一直没有活,领导也没安排,每天来了就往那一坐就没有方向,再也找不到以前工作的那种感觉了;有些人可能觉得没活干还给你发工资不是挺好嘛,但其实不然你仔细想想,没活干代表公司接不到单子,没有单子就代表没有钱,没钱怎么发工资,所以这种状态持续不了多久。不过这种状态迄今为止已经持续1个多月了,年前我也找过几家单位,面试我觉得面得挺好的,但都没有后续了,有的你问人家,人家却说再等等给你答复还有好多人没面呢,我心想这下完了,今年物联网行情太差了,以前随随便便手里拿好几个offer。越是没活干我就越是焦虑,最近这个班上的真的感觉像坐牢一样,不知道有没有和我一样经历的小伙伴,有兴趣的可以私信和我聊一下。


裁员


23年各大互联网公司裁员情况如下:



  • 知乎:裁员约300人

  • 去哪儿:裁员约400人

  • 搜狐:裁员约800人

  • 美团:裁员约900人

  • 途家:裁员约1400人

  • 京东:裁员约1500人

  • 网易:裁员约2000人

  • 58同城:裁员约3000人

  • 阿里:裁员约4000人

  • 百度:裁员约5000人

  • 滴滴:裁员约5000人


寻找方向


小编是一位Java程序员,现在只会Java写写增删改查根本找不到工作(除非学历很优秀),可以说绝大部分的程序员都能满足传统企业的需求;下面是我整理的可以试试去发展的方向,个人理解不喜勿喷,有兴趣的朋友可以一起去探讨。


研发方向



  • 大数据:也比较卷

  • 云计算:容器、容器编排(K8s)、云原生

  • AI大模型:今年的热门,但是不知道怎么去做


其他方向


image.png


如果不做程序员了我们还能做什么


当前的大环境下确实很艰难,说实话如果不做程序员了,我很难立马想到一个能挣到与之相当工资的工作。虽说360行,行行出状元,可哪一行不都是需要经过千锤百炼才能成功的,隔行如隔山,转行又岂是一朝一夕的事情。

现在的市场Java开发已经趋于饱和,和Boss打招呼基本都是已读不回的状态,甚至面试机会都没有,有的就算面得再好也没用,因为还有一堆人没面跟你竞争,有的期望薪资低,有的学历比你好,有的到岗时间比你早,对此我真的很无奈,快卷不动了。


跑滴滴


由于我经常跑扬州,走高速成本太高了,于是我就注册了个顺风车,想着能回一点成本,基本上去一趟拉一单有100多,来回基本上和成本抵消了。后来我就想着通过顺风车偶尔做做兼职能赚点钱,于是下了班就跑了几回,发现在市区跑订单金额很低,后来跑了几回也就放弃了;后来想注册专车司机,于是就找朋友了解了一下 ,发现注册了滴滴只会让你跑一段时间,然后就要办那个营运证,而且也不适合兼职做,目前还有工作,也许真的哪天失业了我会考虑全职做这个吧。从我朋友那边了解到,滴滴也很卷,每天起早贪黑的,给你派了单子只能被动接受,不像顺风车可以主动选择,不过真到没工作那一步也只能选择尝试一下。


开店


小编比较幸运,在老家小镇还有一个小店面,不过大家也可以租一个,只要做起来了都是一样的,关键是要能把生意搞起来。我其实早就萌生了这个想法,但是我现在才临近30岁,还想在外面再闯一下。


食品小超市


为什么想开这个呢,主要我发现了一个路子,哈哈!我老家有个很有名的食品超市,也是从小店一点一点做起来的,而且我还知道他是去无锡金桥食品批发市场批发的,国产的、进口的食品全都有。今年过年的时候去他们家买东西人都爆满,老板在收银台堆满了车厘子,2J、3J、4J的车厘子卖的好的不行,我在那边没一会就卖了一幢(车厘子堆起来的,堆了一幢),后来听别人说这个老板过个年净利润有四五十万。在我老家那边过个年能赚个四五十万万真的可以吓死人,于是乎开食品超市的想法在我心中萌芽。不过还好我们家那个店铺和他们家靠的不是很近,再开一家也不是不行,再不济也可以考虑和他加盟。

大家可以观察一下老家有没有那种食品超市的店,店里卖的都是比较中高档的吃的,周围人群比较密集的地方可以考虑开一个,只要找到货源能持续供货,这个店应该很容易就能开起来。


电脑店


我们家那个店面我也想过开个电脑店,卖卖电脑、装装系统、装装摄像头什么的,我感觉也不错,要说修电脑硬件我还是没那个本事的,不过可以带到城里面去修。


摆美食小摊


我想着等我年纪再大一点,可以搞个小美食摊,可以做做煎饼、鸡蛋饼、臭豆腐、烤香肠这种,不过不能在城里搞,只能去乡下镇上,城里面城管管得严,不是很好搞。


做短视频


这个想法我也考虑了很久,至今还没开始实践,因为我老是怕我做不好,作为程序员,视频剪辑这种我应该是一学就会。其实我主要就是觉得没有赶上风口,现在做短视频的搞直播的一大堆,没有什么吸引流量的创意真的很难博人眼球。后面我打算尝试尝试记录生活,生活琐事都拍一下,比如出去露营、钓鱼、旅行,在家做饭、健身什么的都可以拍一下,不过我听朋友说要专注拍一类才能拍好,也不知道是不是真的。


总结


给大家总结一下就是今年能不跳槽就尽量不要跳槽,绝对不能裸辞,在今年这个风口浪尖上各大企业都在人员优化、降本增效。欢迎大家多多留言,提一些建议,最后也祝大家龙年大运,在新的一年里找到自己满意的工作。


作者:MrDong先生
来源:juejin.cn/post/7338307026245845044
收起阅读 »

最新 GitHub 骗局!千万别中招!

今天一早,焚香沐浴更衣,打开全球最大同性交友网站,准备好好摸鱼;突然方向通知多了一条: 正疑惑是触发是 GitHub 的什么隐藏关卡呢,点进去一看: 一个 21 年的创建 issue?但是有个新的评论: 这个评论的大意是: 喂!x毛! GitHub 瞎...
继续阅读 »

今天一早,焚香沐浴更衣,打开全球最大同性交友网站,准备好好摸鱼;突然方向通知多了一条:


image.png


正疑惑是触发是 GitHub 的什么隐藏关卡呢,点进去一看:


image.png


一个 21 年的创建 issue?但是有个新的评论:


image.png


这个评论的大意是:



喂!x毛!
GitHub 瞎了眼相中你了,有个很适合你的职位,年薪高达 18w 刀乐!
赶紧来申请啊,各种福利各种巴适!
但是有记得在 24 小时内点击这个链接来申请哦!过时不候!
后面芭啦芭啦@了一大堆人,其中我的用户名赫然在列!



他真的!我哭死!原来天上真的会掉馅阱 😢...


但是仔细一看,评论的这个人,是默认头像。不对劲!非常不对劲!遂点进其主页一看:


image.png


啥也没有...


这时候事情就很明显了,然后我就去 GitHub 社区找了一下相关的反馈,果不其然,两天前开始有人在反馈相关问题:


image.png



原讨论传送门:github.com/orgs/commun…



于是笔者在隐私模式下打开@我的那个评论附上的链接:


image.png


这个页面会请求你使用 GitHub 授权登录,并且要求你授权各种高级权限;而一旦你授权了,大概率会发生的第一件事,就是你的帐号会在各种 issue 中发布上面那条“GitHub 求职骗局”的评论,以导致更多的人受骗...



截至笔者写下这篇水文时,该钓鱼网站链接已经无法打开。



而在早上笔者在 github.com/orgs/commun… 中留下评论后,陆陆续续又有上百个全球各地的开发者进行了反馈。甚至有领先一步的好哥们已经直接出手向域名注册商、域名托管服务商进行了举报,并收到了反馈:


image.png


而这,仅仅是在笔者写下这篇水文前的 23 分钟(一切发生得太快...


不仅如此,在笔者截完本文第三张图后,提及我的那条评论已经删除了 🤪 (一切发生得实在太快...


不不仅如此,在笔者敲完上一句话后打算再次确认一下发出评论那个用户(第四张截图),发现他已经被封禁了...


image.png


好家伙,这发生得也太快了吧!赶上直播了???


估计这一波,有不少帐号也受到波及,最好确认一下自己的帐号是否有被影响(吓得笔者又刷新了一下页面确认自己有没有被封禁)。


这也让笔者想起最近 GitHub、NPM 等各种平台都在极力地推动用户启用双因素身份验证(2FA),以提高用户帐号的安全;这样看来,确实是一个明智之举。


最后还是提醒一下各位:


不清楚来源的链接不要点!不清楚来源的链接不要点!不清楚来源的链接不要点!


就这样。


作者:Nauxscript
来源:juejin.cn/post/7337666469903122472
收起阅读 »

很多人 30 岁了,对人情世故的认知水平还停留在上学

工作和事业 当领导夸你“工作完成的不错”时。 一般的回答:谢谢领导夸奖 高情商回答: 在今后的工作中,我会继续加油,认真负责的跟着您干,如果没做好的地方,希望您指正。 工作认真负责是我的本分,主要是您指挥的好,不然我也不会成长得这么快 都是因为您给了我充分的...
继续阅读 »

工作和事业


当领导夸你“工作完成的不错”时。


一般的回答:谢谢领导夸奖


高情商回答:



  1. 在今后的工作中,我会继续加油,认真负责的跟着您干,如果没做好的地方,希望您指正。

  2. 工作认真负责是我的本分,主要是您指挥的好,不然我也不会成长得这么快

  3. 都是因为您给了我充分的信任和支持,所以我才能这么顺利地推进。

  4. 最开始我信心不足,您对我的信任给了我做事的信心和动力。能做成这件事,全靠您的帮助,非常感谢您。以后我会加倍努力。


当领导给你安排 完成不了的工作时


一般的回答:领导我干不了。


高情商回答:



  1. 好的,领导,不过我缺乏经验,有些事情还需要您的指导的帮助

  2. 好的领导,您先给我一个小时,我先整体评估一下难度,初步预估一下事情的周期。

  3. 领导,我现在手头有三个项目,你看如果我做现在这个项目的话,怕是会影响其他项目的进度和质量,同事 XXX 在某些方面比较专业,您看是否可以让他负责。


炫耀


对利益相关的人


要展示你的实力和智力


对你利益不相关的人


就展示你的礼貌就好


工资一万,对家里说 7000,对外人说 4000。程序员不要炫富,你那点工资差远了。


规则和事实


当事实对你有利,就强调事实


当规则对你有利,就强调规则


当事实和规则都对你不利


就敲桌子把事情搅混


求人帮忙



  • 求人办事,关系再好,也要让对方得到利益。 铁哥们也不例外,至少请一顿饭,当面感谢。

  • 找人办事,别一上来就说等办完事,再给什么好处,办事之前就要给到。

  • 不要轻易得罪别人,虽然他不能帮你成事,但是可能坏你的事。尤其是领导身边重要的心腹。


想要强大,必须出丑。出丑越多,脸皮越厚,成长越快


生活


管住嘴



  • 少跟妈妈说难过的事,她帮不上忙,也会睡不着觉

  • 别人一对你好,你就推心置腹的毛病一定要改

  • 交浅言深,是人际交往的大忌讳

  • 亲朋好友的孩子再不对,也不要去教育,因为教育别人家的孩子就是在打别人的脸


帮忙


别人不开口请你帮忙,尽量不要主动帮忙!


别人求你帮忙,你先探探对方的口风,看他的态度和想法,看看对方是在寻求你的意见,也许对方只是想寻求你认可他的想法。


见人说人话


遇到女人一律说对方瘦了


遇到穷人,一律说钱不重要,快乐就好


遇到美女夸有内涵,身材好、气质好


遇到带孩子,夸小孩聪明伶俐,夸小孩带的好,


遇到帅哥,夸有才华,有风度。


遇到病人夸气色好,很快就会痊愈


遇到企业家,夸有情怀


遇到小职员,夸有格局


遇到富人,夸他有眼光,有品位


饭局



  • 饭桌上一直玩手机的聚会,就这一次没有下次,没有意义的社交无需留念

  • 去别人家吃饭,饭后不要帮忙刷碗

  • 除非是铁哥们,否则不要临时通知别人去聚餐,别人会认为自己是凑数的!

  • 聚餐时,一定不要夹盘子里的最后一口菜

  • 坐同事的车,只坐副驾驶,不坐在后排。

  • 车子收拾的很干净的人,大多数不好客


作者:五阳
来源:juejin.cn/post/7338723726838218771
收起阅读 »

马斯克接手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
收起阅读 »