但if else一般不建议嵌套超过三层,如果一段代码存在过多的if else嵌套,代码的可读性就会急速下降,后期维护难度也大大提高。所以,我们程序员都应该尽量避免过多的if else嵌套。...下面将会谈谈我在工作中如何减少if else嵌套的。 正文 在谈我的方法之前,不妨先用个例子来说明if else嵌套过多的弊端。...当接手到这么一个业务时,是不是觉得很简单,稍动下脑就可以动手了: 先定义分享的类型、分享Bean和分享回调类: private static final int TYPE_LINK = 0; private...再再如果后面项目交接给他人跟进,他人又要把自己大脑变成处理器来想每个分支的作用,我敢肯定有百分之八十的人都会吐槽代码。 我们程序员的脑力不应该花费在无止境的分支语句里的,应该专注于业务本身。...上面的代码我是用java写的,对于java程序员来说,空值判断简直使人很沮丧,让人身心疲惫。
大家都是实诚的程序员,讲究以德胡人,活好的自然互相倾慕(我跟讲师约了五月份他来湾区有机会喝个咖啡聊聊);活不好,培训完就是路人。...也幸好没人懂这个理,这样一门课程,冷清到全世界的 erlang/elixir 程序员(虽然基数很小)加起来,包括我也就只有九个人参加。...用这样的机会跨越平台期 程序员估计都知道一万小时理论 —— 足够长时间(一万是个约数)在某个领域的刻意训练(deliberate training)能够让你成为专家。...我们据此坚信,24小时学会 C++ 是错误的,肤浅的;相反,只要功夫深,就能学精 C++。 也似乎不太对。 因为我遇到太多干了十几年的平庸程序员了。...他们似乎困在一个无论怎么努力也很难跨越的平台期 —— 这是一万小时理论里的禁飞区。
微调操作为下游任务移动词向量的空间位置时,并不随意,而是很大程度上保留了不同簇在finetune之前的相对位置。...微调效果到底好不好,微调之后的词向量表示是否有效,可以直接用针对下游任务的分类器的准确度来衡量。只有微调效果足够好时,分类效果才够准。 DIRECTPROBE 基于聚类的探针。...随着层数的增加,不同簇之间的距离也随之增大,即微调时高层在表示空间上的变化比下层的更大。 下图横轴为微调过程中梯度更新的次数,纵轴为微调前后表示空间的相似度。...另外,除了实验结论外,本文实验方法和可视化分析也非常值得学习~ 你好,我是对白,硕士毕业于清华,现大厂算法工程师,拿过八家大厂的SSP级以上offer。 高中荣获全国数学和化学竞赛二等奖。...我每周至少更新三篇原创,分享自己的算法技术、创业心得和人生感悟。
这是why的第 97 篇原创文章 你好呀,我是why哥。 本文主要是分享两个小案例,然后通过这两个案例来表达我的一个观点: 看技术文章的时候多想一步,有时候会有更加深刻的理解。...我这边就还用他给的代码做演示。...,则spring会认为属性不同,不会copy; 3.泛型只在编译期起作用,不能依靠泛型来做运行期的限制; 4.最后,spring和apache的copy属性的方法源和目的参数的位置正好相反,所以导包和调用的时候都要注意一下...但是我看到之后总觉得差点意思。 主要是针对他总结的第二点。 在这之前我不知道 Spring的 BeanUtils 的 CopyProperties 方法拷贝内部类的时候有问题。...如果加了一个字段,我调用了它的 set 方法,却找不到 get 方法被调用的地方。 我会很慌。 另一个案例 另外一个案例也是曾经在公众号里面被转来转去的一片文章: ?
“ 小程序任务栏功能升级,支持用户打开最近使用过的小程序和「我的小程序」。同时,原有的星标功能,将升级为「我的小程序」,微信用户可以通过多种方式进行添加和排序。”...用户可以通过下拉的动作,拉出任务栏,打开最近使用过的小程序和「我的小程序」,也可以直接进入列表。 ?...(通过任务栏打开小程序) 02 — 星标功能升级为「我的小程序」 在微信最新版客户端中,原星标小程序的功能,将升级为「我的小程序」。同时,「我的小程序」的个数上限将提高到 50 个。...微信用户可以通过以下方式,将小程序添加到「我的小程序」。 (1)在首页下拉的小程序任务栏中,长按图标,点击添加: ?...(4)在小程序简介页的右上角“···”菜单中,点击添加: ? 微信用户也可以对「我的小程序」进行排序。 (1)在小程序任务栏中,长按「我的小程序」图标,移到最前: ?
出处:程序员最幽默(ID:humor1024)整理 0、独自编程的我 VS 面试时编程的我 1、技术面试 VS 实际工作 2、面试中的我 VS 工作一个星期后 3、简历中的我 VS 现实中的我 4、网爆朋友圈的...“最牛简历” 看完令人心酸 5、独自一人时写代码 VS 其他人在旁边时写代码 6、独自一人编程 VS 老板在旁边看我编程 7、世界上有两种人 --end--
这不是一篇鸡汤文,因为我并没有在使用 Linux 一万小时后成为 Linux 达人,甚至在很多方面,我连新手都算不上。...而像我这样的强迫症,总觉得下一次编译换一个参数也许可以使程序运行得更快,以至于很多常用工具我都编译了不下三遍。另外编译内核和格式化硬盘重装 Gentoo 的事真是数也数不清了。...不过我并没有感觉到 Linux 不主流,有很多在线论坛有大量热心的 Linux 用户能帮你解决各种技术问题。而同一时期那些 Windows 相关的社区全在共享盗版软件。...我很后悔没有早点明白,在 Linux 下绘图这件事就是自讨苦吃,同一时期在 Windows 下的各种绘图体验会愉快很多。...但是,很多线上服务其实比某些开源的程序做得好,有时候自己运维往往省不下几个钱。
item:集合中元素迭代时的别名, index:集合中元素迭代时的索引 open:常用语where语句中,表示以什么开始,比如以'('开始 separator:表示在每次进行迭代时的分隔符, close...当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的sql。...org.apache.ibatis.type.BlobTypeHandler}, #{classId}, #{placeId}) 调用接口方法...我们以在3.1中的查询语句为例子,当java代码按如下方法调用时: @Test public void select_test_2_1() { StudentEntity entity...当在update语句中使用if标签时,如果前面的if没有执行,则或导致逗号多余错误。使用set标签可以将动态的配置SET 关键字,和剔除追加到条件末尾的任何不相关的逗号。
有过社工科经验的人应该都知道,拿到一个人的手机号码后,其他信息都可以很容易获取到,除了花钱之外,利用支付宝的「模拟转账」方式,可以非常方便的拿到对方的全名。...需要注意的是,必须设置「请求头」,保证数据能正常的爬取下来。...如果输入的姓氏不正确,则会弹出警告对话框,否则就能拿到妹子的姓氏了。...但是由于支付宝对接口的限制,一个账号每天只能有 10+ 次试错的机会;因此,如果妹子的姓氏不是那么常见,可以需要试错多次才能拿到妹子的名字。 如果你觉得文章还不错,请大家点赞分享下。...你的肯定是我最大的鼓励和支持。 我已经将全部源码上传到后台上,关注公众号后回复「你的名字」即可获得下载链接。
1 目 标 场 景 不知道你有没有经历过这样一个场景,好不容易拿到一个妹子的手机号,但是又不好意思去搭讪,问一下对方的名字。...有过社工科经验的人应该都知道,拿到一个人的手机号码后,其他信息都可以很容易获取到,除了花钱之外,利用支付宝的「模拟转账」方式,可以非常方便的拿到对方的全名。...需要注意的是,必须设置「请求头」,保证数据能正常的爬取下来。...如果是非好友关系,转账界面对方显示的名字不完全,可以点击「验证按钮」,输入对方的姓氏就能进行确认。 所以,可以遍历上面获取到的姓氏,一个个地去验证。...如果输入的姓氏不正确,则会弹出警告对话框,否则就能拿到妹子的姓氏了。
有过社工科经验的人应该都知道,拿到一个人的手机号码后,其他信息都可以很容易获取到,除了花钱之外,利用支付宝的「模拟转账」方式,可以非常方便的拿到对方的全名。...需要注意的是,必须设置「请求头」,保证数据能正常的爬取下来。...如果是非好友关系,转账界面对方显示的名字不完全,可以点击「验证按钮」,输入对方的姓氏就能进行确认。 所以,可以遍历上面获取到的姓氏,一个个地去验证。...如果输入的姓氏不正确,则会弹出警告对话框,否则就能拿到妹子的姓氏了。...但是由于支付宝对接口的限制,一个账号每天只能有 10+ 次试错的机会;因此,如果妹子的姓氏不是那么常见,可以需要试错多次才能拿到妹子的名字。
有过社工科经验的人应该都知道,拿到一个人的手机号码后,其他信息都可以很容易获取到,除了花钱之外,利用支付宝的「模拟转账」方式,可以非常方便的拿到对方的全名。...需要注意的是,必须设置「请求头」,保证数据能正常的爬取下来。...如果输入的姓氏不正确,则会弹出警告对话框,否则就能拿到妹子的姓氏了。...但是由于支付宝对接口的限制,一个账号每天只能有 10+ 次试错的机会;因此,如果妹子的姓氏不是那么常见,可以需要试错多次才能拿到妹子的名字。 如果你觉得文章还不错,请大家点赞分享下。...你的肯定是我最大的鼓励和支持。
嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套我总结的使用设计模式的四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 步骤 逻辑 1 参数校验 2 获取地址信息 3 地址信息校验 4 获取购物车数据 5...属性上 -> 稳定不变的 Do: 当前对象业务逻辑入口 -> 变化的 Run: 调用当前对象的Do,nextHandler不为空则调用nextHandler.Do -> 稳定不变的 套用到下单接口伪代码实现如下...我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2....---- 我的代码没有else系列 更多文章 代码模板 | 我的代码没有else 点击https://github.com/TIGERB/easy-tips/tree/master/go/src/patterns
作为一个5年+的数据打工人,相信只要与数据打过交道,都直接或间接的接触过“指标”相关的问题或需求,那么,我们今天就来聊聊指标里的那些“坑” 指标搭建过程 开局先上图: ?...,作为厨师,我们就要开始配菜了 #其实“菜”点了,作为一个有经验的“厨师”,我们就知道需要什么样的配料了 通过目的的确认,我们可以把具体业务拆分为产品功能和业务过程,我们把功能映射到相应的指标上,生成最初的原子指标.../漏斗 这些指标都有明显的修饰词,或是由多个原子指标组合而来,这些就是派生指标 派生指标就类似做菜时的烹饪手段,煎炸炒烧,如何把原子指标“做成“我们需要的指标,从而更好的度量产品,反应产品好坏,达到我们建立指标的目的...很多分析师只知道日活,但是并不知道日活的口径,这会导致DAU波动时拆解逻辑不对,得出错误结论 NU:New User,即新增,也需要注意口径的坑,是下载就算,还是激活APP就算,还是新增注册才算?...衡量方法,依靠的都是已经发生的数据 简言之,指标是对过去的数据进行信息处理
,这是 Web 的优点也是 Web 的痛点,JS 运行的再快也扛不住一次网络异常,所以网络优化的内容非常多。...大公司都有自己的 Hybrid H5 方案,小公司基本都去做小程序开发了;国外看似好一些,但做的最好的 twitter PWA,但我深度体验一年后,发现和 Native 应用比差距还是很大,这已经算全世界做的最好的...浏览器分类主要是一些我不知道怎么分类的浏览器特性,比如说 BFCache,Web 存储方案介绍等等,内容相对较杂。...Blog 链接 这部分内容是整理出的 Blog 内容,我对其标注了发布时间和文件标题,并对一些内容做了简评,方便后续搜索和查看。...2021-10-5: Best practices for using third-party embeds[52] 第三方嵌入的内容(地图/视频/图片等)优化方案:延迟加载/图片占位图/交互时再加载
我搞不明白的一个重要原因就是,命令的功能太杂,有时候一个需求可以用好几种命令解决,而且有的命令还 tm 有别名。...对于工具的学习,我认为应该多做减法,只捡最有用的学,那些奇技淫巧不学也罢,应该把时间投入更有价值的事情中。...当我们在work dir中执行git add相关命令后,就会把work dir中的修改添加到「暂存区」stage area(或者叫index area)中去,后文我们称暂存区为stage 区。...,我认为不应该修改a.txt,我想把它还原成stage中的空文件,怎么办?...这个场景,我说一个极端一点的例子:比如我从 GitHub 上clone了一个项目,然后乱改了一通代码,结果发现我写的代码根本跑不通,于是后悔了,干脆不改了,我想恢复成最初的模样,怎么办?
大家好,我是不才陈某~ 今天我们重点聊聊使用 Spring Event 最为关键的几个问题。这是我司线上生产环境实际踩坑后,总结的极为宝贵的经验!...前几天,线上系统出现两条异常日志Get Bean时找不到对应的bean,调用堆栈让我非常迷惑,为什么Get Bean找不到对应的Bean呢? 如下图所示 堆栈中的信息 解释了原因。...什么业务特点适合发布——订阅模式 每一个优秀的程序员都应该有自己的工具箱,他能在不同的业务场景选择最合适的工具。 SpringEvent 适合哪些业务场景呢?...又或者每当新增一个业务逻辑时,我需要新增一个Kafka消费组,并且在代码中解析订单消息,然后根据状态将事件发送给相应的订阅者。总之我需要把事件按照状态分发给对应的监听者。...在发布事件时,需要考虑事件订阅逻辑出现异常的情况,我提出三种解决办法 订阅者自行重试 订阅逻辑可自行重试保证成功。例如使用 Spring retry注解可以保证出现异常时,重新执行该方法。
这也是我学编程时 最后悔的事 ,如果我能早点醒悟,应该能学到更多知识,身体和头发也会更好些。 下面把这件事以及我毕业后的 自救方法 分享给大家,希望帮助大家少走弯路,高效学编程。...最后悔的事 我学编程时最后悔的事就是:做事不分主次,花了太多时间在技术无关的纠结上。 举个例子,我在大三学习微服务的时候,独立开发了一个安卓 APP 叫 面试君主 。...要知道,我是一个完全没有审美的程序员,本来在变量命名上我就已经很纠结了,为什么还要花了这么多时间在自己不专业的事情上! 大家肯定会问了,你怎么知道浪费了多少时间呢?...当然,这只是一个例子,我在学编程时,做过的无意义的纠结实在太多了。...这样一来,当我没有按照预期完成小任务时,我会反思原因,并且动态调整剩余工作的时间,以保证整体目标预期达成。 学编程 以前看书、看视频学习某项技术时,我可能就是想学什么、点进视频就开始学了。
第一个能用的程序是用php编写的一个新闻系统,虽然在两年之后终于退役了,但是照样可以看到她的影子。无论从技术上还是从构建上,也都是一个初学者的水平。...渐渐的在这里发现了很多的好的文章,关于深刻探讨程序设计,专业的程序设计,首先从系统架构入手的程序设计,不仅仅是面向对象的。...同样,现在的Visualstudio好像将很多事简单化了,比如可视化的菜单拖曳,对于软件设计者这并不是我们希望的东西,也许从架构上不适合我们,或者从用途上不能满足我们。...最近一直在学习C#,但是觉得水平很难提高,也很少能看到大家开源的高水平的代码,这对于这个不错的语言是一个坏的习惯。...全栈程序员栈长,转载请注明出处:https://javaforall.cn/111145.html原文链接:https://javaforall.cn
那么,Hadoop发挥着什么样的作用? 在传统思维中,程序的运行只占用运行程序主机的计算资源,例如CPU和内存;文件只占用所在主机的磁盘存储。...当处于Active的NameNode无法工作时,StandBy的NameNode会变成Active状态并接管工作。...实时计算 与离线计算对应的就是实时计算,可以理解为无边界流式计算。数据就像河水一样,源源不断的进入程序中。而程序也会一直运行,直到出现异常或者被人工停止。...这里简单模拟一下流处理: [模拟流处理] 如图,采集程序作为生产者,实时生成数据写入Kafka;Flink程序作为消费者,实时读取Kafka中的数据源来进行计算处理,最终将计算结果写入Kafka或者HDFS...但是三年前,当那个少年第一次紧张低声地说出:“我可以,我能做好运维工作”的时候,可能未料到今天他可以自信的说出:"我可以,我能做好开发工作"。 人要忠于自己年轻时的梦想。
领取专属 10元无门槛券
手把手带您无忧上云