程序人生

最近这段时间,一些互联网大厂把裁员称为“毕业”的话题被热议了很久。 上午,DD在网上瞎逛看到了一篇文章,似乎找了这一做法的祖先。原来这么有“创意”的操作,很好多年前的漂亮过就已经有了,所以其实这也是个舶来品? 在这篇发表于2016年4月的文章中,据作者称:他在软件公司HubSpot工作了近两年,当有人被解雇时,被称为“毕业”。在“毕业”的那一刻,他们都会从老板那里收到一封欢快的电子邮件告诉他们,XX已经毕业了,我们都很兴奋地看到她如何在她的下一个重大冒险中使用她的超能力。 有一天,这件事发生在了作者的一个朋友身上。她35岁,已经在公司工作了四年,28岁的经理在没有任何解释的情况下告诉她,她有两周的时间休假。在她工作的最后一天,那位经理为她组织了一场欢送会。 这个让DD想到了之前有个网友的这条留言… 这个非常现实,也很残酷,但HubSpot的每个人都表现得好像这是完全正常的。员...

互联网大厂是很多程序员梦寐以求的地方,因为一直以来互联网都是草根翻身造富最有希望的领域。然而,最近关于成功与暴富的消息似乎赶不上猝死的悲剧发生的多了? 是互联网红利开始消失了吗?蛋糕的上限开始出现?参与者越来越多,大家都杀红了眼? 以前我还一直劝大家如果真的喜欢技术,就去互联网大厂吧,这边才会跟给你表现机会,让你获得成就感。因为我就是这样一路过来,从国企的不得志,到互联网的开挂升级。靠的就是对技术的热爱和持续的努力付出。个人与公司一起成长,就能自然而然的获得各种收益。 但近几年的一些事情,让我的想法也开始有点转变了,似乎如今的大厂已经不是对技术人那么友好了,为什么这么说呢? 公平在哪里以前跟大家吐槽过银行里的关系户多、自己的荣誉被别人拿走、等等不公平的事情。 你以为只有国企会这样吗?如今的互联网大厂一样有!因为领导要提拔某人,然后让其他同事让出一些成绩、荣誉的情况。这种事情在国企挺常...

“道、法、术、器”,出自老子的《道德经》,是我们老祖宗的智慧结晶。经过了两千多年的历史,细细想来,依然是那么具有深意! 今天我就结合开发者的视角,给大家聊聊开发者眼中的这四个层面! 如果你现在正碰到职业发展的瓶颈,那么可以看看下面的内容,也许会有所感悟和帮助。我们将分别从“道、法、术、器”,聊聊我们在这四个层面上的不同表现,重新审视下目前的你所付出的努力都集中于哪一层,并思考接下来更应该从哪点去进一步提高更有价值? “器”什么是“器”?假设,现在要开发一个电商网站,我们可以用什么去实现?可以用Java、可以用PHP、可以用Go… 我们可以听到很多答案。而这里我们所说的各种编程语言,就是“器”,是一种工具。 “PHP是世界上最好的语言”,这是所有程序员都知道的一个梗,因为这句话就是关于最底层的“器”的争论,由于争论的点很基础,所以就被广为流传。 那么这类问题是否有最优答案呢?纵观所有成...

关于低代码平台,之前我也推送过两篇相关的文章,我的观点很简单:东西是好的,有它所擅长和适用的领域,但软件产品不存在银弹,低代码平台一样如此! 现在在搜索引擎上搜“低代码”这样的关键词,你会看到很多夸张的标题,比如: “人人都是产品经理”之后,“人人都是程序员”的时代要来了? 阿里、腾讯都在押注的新赛道,能让程序员告别脱发和996吗? 还有诸多低代码平台的公司拿到各种融资或地区性政府补贴的新闻 甚至我还在福报长的抖音账号中,看到了程序员下午坐在外面喝咖啡,说有了低代码,现在大把时间休息的短视频。。。 低代码平台真的这么神奇?我们在企业数字化转型过程中的开发任务都可以用低代码平台来解决吗?我们开发者996的宿命就这样被搞定了? 如果你正对低代码平台抱有上面幻想的话,一定要好好看看下面的内容! 先表明观点:如果你试图使用低代码平台去解决所有开发问题的时候,很有可能这样的决定将在2-3年...

前不久的这条新闻或许大家已经有所耳闻: 位于法国斯特拉斯堡的 OVH 数据中心被大火烧毁。据悉,火灾导致多个数据中心无法服务,大量客户网站瘫痪,部分客户数据完全丢失且无法恢复,这是数据中心历史上史无前例的灾难性事件。 我们今天不讨论火灾的原因、OVH损失多少,而是想重点说说在这次火灾中受影响的用户与背后的系统设计缺陷。 在此次事件中损失最惨的是一家名叫Rust的游戏制造商,该游戏制造商失去了其公司名下游戏所有的欧洲服务器,储存在服务器上的数据全部丢失。 也许很多读者的第一反应是:玩家花费大量精力财力的账号没了,一定是伤心欲绝! 其实,从公司角度来说,他们的损失更为惨重,因为数据丢失也就意味着客户丢失,同时也意味着客户虚拟资产的丢失。这样的灾难对于企业来说,往往面临的就是一个结果:倒闭! 当知道会发生这个结果的时候,相信大家都会开始想起来,怎么不做备份啊之类的疑问?甚至也有读者可能...

又到了春节后的跳槽旺季,之前在知乎上有这样一个话题为什么说银行科技岗是程序员好的就业选择?。 之前做的回答最近又是每天好几万的阅读,看来对于银行科技这样的围城还是有很多人好奇的。趁这个机会,转到这边跟大家聊聊我四年银行科技生涯的感悟吧! 我从研究生毕业,第一份工作就去了工行,一干就是四年,体会比较深。所以给大家谈谈,我对银行科技岗的直观感受,给目前在纠结要不要去银行或者有考虑去银行的读者们一些参考: 1、领导不会管你的专业、爱好、特长,反正哪里缺人,你就上吧。本人本科软件工程,硕士数据挖掘。一开始入行被分配到测试,好几个985的研究生几天就自己走了。2、关系户多,如果没什么关系的话,比较容易到上升瓶颈。同时,很多关系户几乎不太做事,但是工作量在那边,所以没关系的事情会多一些。3、技术体系陈旧,还有公司自己封闭的轮子,技术成长机会很小,未来往技术方向走的路线会很难。但是同业间还是有很多...

当看到你提供的接口,有这样的服务消费方,你会做何感想? try { // 前置业务逻辑 // 调用DD的接口处理 feignClient.execute();} catch(Exception e) { return "DD的接口异常,请关注公众号「程序猿DD」,联系作者处理异常";} 作为一位开发老鸟,理性解析下这样做法的问题: 在调用第三方接口的时候,可能出现问题的原因有很多,并不一定是第三方接口的问题,比如:网络出现了问题,请求根本没有到达服务提供方。所以这样的异常返回是不合理的。 由于异常快中,完全没有输出异常栈的内容,导致异常信息被吞,未来就很难定位错误原因,容易陷入两边推诿的情况。 用户并不关心开发负责人是谁,异常应该更面向用户。使用用户看得懂异常描述信息,更为合理。 同时提醒一下,作为服务提供方,更要最...

我们一直强调,要写注释,要写文档!写出一份好文档是一个开发者应该具备的一项重要能力! 今天在群里(点击加入),看到一个经典的来自某国企的接口文档,引发了一段时间的讨论。 在这个文档中,HTTP接口的内容格式大致是这样的: 聪明的你,有发现什么不妥么? 这样的文档群友们打了0分,你觉得可以得几分呢? 说说我的看法 作为API请求,没有给出请求类型(GET、POST…)的说明 没有给出请求格式(表单?JSON?)的说明 请求参数没有参数类型、参数格式以及合法校验的规则说明 请求响应格式的说明 请求异常响应的格式说明 就说这么说吧,换你思考了,想想看是否还有其他的问题呢?点击这里来评论区说出你的想法吧! 或者想看看其他群友的想法,点击这里直达!

前段日子在社群(点击加入)里看到有人讨论关于Service层接口的问题,DD也经常碰到周围的新人有问过一些类似的问题:一定要写个Service层的接口吗?Service层的接口到底用做什么用的呢?好像都没什么用啊? 我的看法Service层在业务逻辑不复杂的时候,似乎是没有什么用,但是随着应用迭代,业务逻辑变得复杂了之后,这一层是非常有用的。 主要表现在这几个方面: 1、更适合用来处理复杂的业务逻辑,可能会涉及多张表的操作,甚至还混杂着消息投递、接口调用等一系列的复杂综合性事务,这也是我们常说的事务管理所处的层次。 2、对表现层的复用支持,往往我们一个业务逻辑处理,不会单单只应用在一个API接口或页面上,如果直接把这部分内容写到Controller中,那当出现重复操作的时候就会产生复制黏贴,以后再要维护这段逻辑就麻烦了 3、对单元测试的支持,通过单独的一层service实现业务逻辑,...

昨天公司里碰到一件令人哑然失笑的事情。帮朋友公司做的一个项目,做SIT测试的时候发现一些bug,仔细查了下原因,原来是因为当初觉得这个项目比较简单,交给了几个新入职的新丁,也算是给他们练练手,结果其中一位写了一段代码出现了问题结果导致bug的出现。 虽然问题不大很快就修复了,但是正所谓初生牛犊不怕虎,这位出问题的新丁不太服气,一直嚷嚷着他这段代码是从CSDN上找到的,别人都说好用他才用的。问了问他是否理解原文中那么写的原因,结果才支支吾吾了半天讲不清楚,最后也承认他只是看到那段代码的结果是他要的,并不是理解中间一些方法的运用到底是什么逻辑。 真是又好气又好笑,想想现在的年轻人真是有个性,自己当年遇到这种情况只敢虚心求教,哪敢都没明白就去用一段代码,别人指出问题还忿忿不平。 也许是自己老了吧。晚上和一个刚从国外归国的同学说起这个事情,他倒是深有体会,说到他们在国外留学时,遇到技术问题想...

昨天在devto上面看到一篇挺有意思的文章,一位国外开发老哥发表了一篇关于如何成为最糟糕开发者的10条建议,相比其他正向建议如何成为一名优秀程序员类的文章更为深刻。下面我们一起来看看这10条建议都是啥! Top 10:在做任何事情之前,你需要100%的了解JavaScript 这是一个非常好的建议,可以应用到任何地方。除非你是该领域的第一专家,否则你不应该做任何事情,即使不是在你的国家,至少在你周围的圈子里。不然你怎么确定你不会搞砸任何事情?否则你怎么确保自己不会被嘲笑? 如果你开始得太早,你可能会犯一个错误,并且记住:作为一个开发人员,你的工作就是永远不犯错误。 Top 9:永远不要质疑思想领袖;,他们总是正确的,而且比你聪明 思想领袖应该被尊为上帝。他们说什么就是什么。即使他们几周前才开始编写代码,而你已经编写代码几年了!如果他们在社交媒体上有大量的追随者,他们比你更博学,你...

不管大家参加任何的编程面试,都逃不过关于系统设计和软件设计的问题。如果你想做的更好,你可以试试准备这个话题。以前我分享过我的一个关于编程面试问题的清单,也分享了一些关于系统设计的问题,但好多人比较感兴趣,会提问更多的问题。因为系统设计比较难,需要多加练习才能更好地掌握。 当我在偶然在Educative上看到如何应对系统设计面试的课程时,我就从亲朋好友那里收集了许多关于系统设计面试问题,然后做成了清单分享给你们。 这将是一个很好的资源。这不仅给你提供许多关于系统设计面试问题,还可以给你们提供解决问题的知识与工具。 换句话说,这个课程可以教你怎么一步步构建像Facebook,Twitter,Uber的真实世界系统。 实际上,网络上没有太多关于系统设计的面试题资源。我只是在Edcative上看到rajat mehta 写的如何准备系统设计面试。而关于顶尖的公司像 Amazon,Google...

昨天分享了如何通过参与JetBrains的解密任务来获取正版全家桶的兑换码。今天 JetBrains 一早继续在Twitter推出第二波任务: 下面,我们就继续来一起参与一下,为我们的正版JetBrains全家桶续个命! 线索一:Twitter第一条线索还是比较容易的,通过观察不难发现,Twitter上推出字符串中的单词是倒置的! 所以,我们写个小程序来处理一下: @Testpublic void jetbrains() { String str = ".spleh A+lrtC/dmC .thgis fo tuo si ti semitemos ,etihw si txet nehw sa drah kooL .tseretni wohs dluohs uoy ecalp a si ,dessecorp si xat hctuD erehw esac ehT .s...

自今年1月份以Jetbrain公司严厉打击旗下开发工具产品(如:IntelliJ IDEA、WebStorm、PyCharm等)的盗版破解以来。求新破解方式、分享新破解方法的帖子或信息经常可以在各技术社区或微信社群中看到。 在《大批 IDEA 激活码到期之后的乱象…》一文中,我们已经介绍过如何通过正常途径继续使用这些开发工具的三种方法: 学生免费:JetBrains的全线产品对在校学生全部免费开放。所以,你只要有专属于学校的邮箱,就可以注册账号并免费使用它们。 开源免费:如果您跟我一样,热爱开源之外,给各大开源社区、热门开源项目贡献代码。就可以以组织或项目的名义申请免费的许可证。关于这种方式,读者可以通过这个链接查看详情:https://www.jetbrains.com/community/opensource/ 社区版本:我们也可以选择功能稍弱的社区版本来使用。就如以前MyEcl...

软件工程师花费大量时间通过练习leet code问题和完善简历来获得更好的面试通过可能。一旦他们最终被谷歌、亚马逊或其他公司录用,他们可能会发现:过去用来得到这份工作的技能与他们日常工作中需要的技能并不匹配。 我们的团队受到 TechLead 创建的高效程序员七项技能的启发。我们想提供我们自己对这个话题的看法。以下是我们总结的高效程序员的七项技能。 1. 学习如何阅读别人的代码 除了你,每个人写的代码都是垃圾?实际上,能够在别人的代码之上继续工作是一项有多重好处的伟大技能。 不管以前工程师的代码是多么混乱或者考虑不周,您仍然需要能够扩展它。毕竟,这是你的工作。同时,这个“以前的工程师”也可能是一年前的你。 这项技能在两个方面对你有益。第一,能够阅读他人的代码是一个了解什么是糟糕设计的好机会。当你浏览别人的代码时,你会知道什么是有效的,什么是无效的。更重要的是,您可以了解什么类型的代码...