首页
学习
活动
专区
圈层
工具
发布

当我看到一堆if else时,我的内心是奔溃的

,我是真的遇到过了!...下面将会谈谈我在工作中如何减少if else嵌套的。 正文 在谈我的方法之前,不妨先用个例子来说明if else嵌套过多的弊端。...当接手到这么一个业务时,是不是觉得很简单,稍动下脑就可以动手了: 先定义分享的类型、分享Bean和分享回调类: private static final int TYPE_LINK = 0; private...再再如果后面项目交接给他人跟进,他人又要把自己大脑变成处理器来想每个分支的作用,我敢肯定有百分之八十的人都会吐槽代码。 我们程序员的脑力不应该花费在无止境的分支语句里的,应该专注于业务本身。...上面的代码我是用java写的,对于java程序员来说,空值判断简直使人很沮丧,让人身心疲惫。

58940

迈克尔·霍利:当我看到人们急着加入新行列、抛弃高度发展的老技术时,我就感到很伤心

在巴黎,他开发了计算机音乐应用程序的用户界面原型,同时又在IRCAM的音乐会系列中参加了一首为双钢琴和电子音乐所作的奏鸣曲的首场世界公演。...打字或打电话时,你得花更多的时间计划讲什么,以及确保清楚地表达了想要说的意思,这样的话,你就不需要重新打字或是重复要说的话。...我们希望能拿出一套系统让约翰·威廉姆斯(John Williams,美国音乐家,曾为包括《星球大战》在内的多部影片配乐)用来尝试交响乐谱,可以用一堆合成器组成的交响乐团,而不是租借伦敦爱乐乐团,来进行试验...我可以在这个字处理器程序里打字,然后当我想找一下某本书或某个作者是怎么使用某个单词时,只要用鼠标点一下,然后,呼拉,就会弹出一个小窗口,里面有五六条例子,展示数据库里那些伟大的作家是如何使用这个词的。...这不是计算机要做的事情,当我看到人们急着加入新行列、抛弃高度发展的老技术时,我就感到很伤心。这是一个大问题。 采访者:你不是看到音乐中发生的事情了吗?举一个例子,古典乐器。

67620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    近期工作与学习技术总结

    无论是代码还是工具, 无论功能还是性能, 都非常不错. 虽然很多游戏没有物理引擎也做得挺好, 但是我觉得很有必要集成的. 总结一下, 大概有这么几个方面可以应用: 碰撞检测....当地面逻辑上从2D向3D转变时, 事件区域的定义就是一个立体几何体了 刚体模拟. 最典型的, 乒乓球 约束应用. 比如做波斯猴子那种荡竹竿的动作 力场模拟. 比如风, 重力, 浮力等 布料....这个算是比较高级的应用, 但是很少见游戏用. 除去性能的原因, 就是效果总是不能让美术满意, 他们宁愿用动画做... 破坏. 高级的物理应用了....做事要考虑成本, 分解成/人/日能做多少事, 把时间用在该用的地方.  代码不值钱, 如果一个程序花一天能节省美术每人十分钟的重复劳动, 那也是值得的....Pipeline的设计, 要从人力成本上考虑, 尽量高效率 大神们不一定是天才, 他们只是把时间更多地花费在他们所专注的事情上, 从另一个方面讲, 他们可能是弱者, 不解风情, 不会享受, 生活打理得很差之类

    58140

    波士顿动力机器人热舞背后藏着哪些秘密?工程副总裁揭秘

    然后我们会展开讨论,在模拟中尝试不同的情况,对动作做出调整,以找到可以在 Atlas 上执行的动作集。 在整个项目中,随着我们构建的工具越来越多,创建新舞蹈动作所需的时间变得越来越短。...因为我们相信,如果想让机器人广泛应用于商业领域,最终走入家庭,这样的性能是它们必不可少的。...机器人真正擅长的事情是以完全相同的方式一遍又一遍地重复做一件事,因此,当我们令其执行我们想要的动作时,机器人就可以重复执行,同时我们会从不同的角度拍摄视频。 ‍ ‍...当我们跑着拍摄这段齐舞多次之后,我们可以相当靠谱地重复它。在最终的两分钟段落里,不存在任何剪辑。 当然硬件还是存在问题的,它们需要维护,机器人有时候会跌倒。...这些行为不会被产品化,也不是 100% 可靠,但它们是可重复的。我们诚实地展示了机器人能做的事情,我认为当你声称自己实现一件事时,诚实是必要的,这对我们来说很重要。 ‍

    72010

    微服务网关Kong系列文章之一:简介

    当使用单体应用程序架构时,客户端(Web 或移动端)通过向后端应用程序发起一次 REST 调用来获取数据。负载均衡器将请求路由给 N 个相同的应用程序实例中的一个。...服务端的各个服务直接暴露给客户端调用势必会引起各种问题。同时,服务端的各个服务可扩展和伸缩性很差。...当我们决定对应用进行微服务改造时,应用客户端如何与微服务交互的问题也随之而来,毕竟服务数量的增加会直接导致部署授权、负载均衡、通信管理、分析和改变的难度增加。...重复多 在多个微服务中,共通的功能重复,比如认证或者日志相关共通模块 巨石化 单个服务仍然后变成尾大不掉的巨石应用的趋势 影响大 影响较大,很难做到扩展功能而能不影响其他服务...效率低 由于系统限制,导致生产性低下 kong的基本架构 Kong 是 Mashape 开源的高性能高可用

    1.1K30

    Lambda架构的质疑

    最终,我们必须需要具备丰富的 Hadoop 知识以及对实时层深入了解,并增加了新的要求,即在调试问题或尝试调优性能时,我们需要对API如何转换为底层系统必须有足够的了解。...答案是我们可以做到这一点,并且我认为如果我们今天正在构建这种类型的系统,那么这实际上是一种合理的替代架构。 当我与其它人讨论这个问题时,他们有时会告诉我,对于高吞吐量的历史数据处理,流处理是不合适的。...我认为这是一种错觉,主要是因为他们所使用的系统的局限性,伸缩性很差或无法保存历史数据等原因造成的。这样一来,他们就认为流处理系统本质上就是从流快照中计算出结果,并不保留所有的原始数​​据。...我首选的方法实际上非常简单: 使用 Kafka 或其它类似系统保存我们要重复处理的完整日志,并且允许它有多个订阅者。比如你要重复处理30天的数据,你就让在 Kafka 中保留30天。...当我们要进行重处理时,我们需要另外启动一个流处理作业实例,从头开始处理保留数据,并将输出数据输出到一个新的输出表。 当第二个作业完成后,切换应用程序从这个新表中读取。

    2.2K20

    Kafka-7.设计

    这如果不适用直接I/O,这个功能不能轻松关闭,因此即使进程维护了一份数据在进程内的缓存,此数据也可能在操作系统页面缓存中重复,有效地将所有内容重复两次。...这表明了一个非常简单的设计:当我们用尽空间时,与其尽可能在内存中维护,然后将其全部flush到文件系统中,不如反过来,所有数据立即写入文件系统上的持久化日志中,而不必flush到磁盘。...虽然他们的搜索性能很差,但是这些驱动器在大量读写时具有可接受的性能,价格是其三分之一,容量是三倍。...如果下游基础架构服务因为应用程序的少量使用就很容易成为了瓶颈,那么这样的小改变就产生了问题。通过速度,我们确保应用程序在基础架构之前tip-over under load。...当在一个集中式集群上面尝试运行一个支持数十或上百个应用程序的集中式服务时,这一点尤其重要,因为使用模式的变化几乎每天都在发生。

    58920

    电脑端的手势姿态估计,隔空写字、绘图,有摄像头就行

    项目地址:https://github.com/loicmagne/air-drawing 此外,作者使用的深度学习模型还可以预测「向上」或「向下」的手势动作。...在绘图写字时,保持手指向上,手指向下时会影响指尖的检测。...一开始,项目作者想做一个实时的「向上 / 向下」预测,即在用户绘画的同时做出预测。然而,由于任务太难,导致结果很差,因此采用双向 LSTM。...作者答疑 可以隔空绘画的这个项目引来了众多网友的讨论,有人不禁感慨,「这太酷了!让我想起迪士尼的广告,他们会用发光的魔杖画出米老鼠的头。」 在网友表达惊喜的同时,也有人提出了自己的疑惑。...但遗憾的是,实时性能不是很好,所以必须使用双向 LSTM。 还有网友建议「使用 transformer 可以获得更好的性能」。 对于这个建议,作者表示自己曾尝试过自注意力层,但是结果并不理想。

    62020

    Python黑客Victor Stinner访谈

    没有可靠基准的情况下尝试不同的优化方法很可能导致时间的浪费和不成熟的优化。无用的优化可能使代码更糟,更不易懂,甚至更慢。有用的优化必须至少让程序加速5%。...重复测试可以填充磁盘缓存和CPU缓存。我倾向于保证最小时间,其他一些开发人员则倾向于使用几何平均值。 对于微基准测试,timeit模块简单易用且能很快得到结果,但使用默认的参数结果并不稳定。...实际上,写Python代码有很多不同的方式,且性能各异,所以只能信赖针对特定用例的基准测试。 在哪些领域中Python的性能很差?哪些领域中应该小心使用?...通常,在开发新的应用程序时我不太担心性能问题。不成熟的优化是所有问题之源。当找到了缓慢的函数时,应该修改算法。如果算法和容器都是经过仔细挑选的,那么可以考虑用C语言重写短函数以获得更好的性能。...没有很好地理解Python就可能写出效率低的代码。例如,我见过在不需要复制时错误地使用了copy.deepcopy()。 另一个性能杀手是低效的数据结构。

    84930

    要飞起来了,Lucene 高阶查询技巧

    如果这个范围覆盖的关键词很多,可以预见性能是很差的。不过,字典序对于中文来说是没有意义的,所以通常我们不会去使用它。...这需要我们在构建索引时对分词器进行适当的修改。...号表示单个字符,它不能使用任意的复杂正则表达式。注意如果 * 号位于词汇开头,查询将会尝试扫描所有关键词来寻找出匹配的候选词,这对性能将是一个很大的伤害。...当我们目标查询是「北京大学」时它可以匹配「北方大学」,还可以匹配「北京中学」,它的性能不怎么样,因为和指定词汇相似的词汇会有很多选择,如此就会匹配非常多的词汇,需要 merge 非常多的文档列表,然后还需要根据编辑距离和词汇的频率进行评分排序...0,所以它需要扫描整颗关键词树,这个性能很差。

    1.6K10

    我是如何欺骗大脑,沉迷技术的?

    但当我在暑假期间学会了Java,情况发生了变化。这是我第一次觉得自己可以真正创造出一些东西。...学习了基础知识后,我开始模仿制作一些小东西--先是一个简单的计算器应用程序,然后是乒乓球和俄罗斯方块等游戏,再到全栈应用程序。 我只是为了建造而建造。...我没有考虑成绩、面试或工作,只想着从头开始创造的兴奋。随着时间的推移,我意识到,当我真正喜欢上我所创造的东西时,我就会忘记时间,也正是从那时起,编码开始变得不仅仅是一项技能。它变成了一种激情。...每当我们尝试新鲜有趣的事物时,多巴胺就会释放出来。 在编码工作中,新鲜感可以让你日复一日地投入其中,保持兴奋。如果没有多样性,编码工作就会开始变得重复,甚至枯燥乏味。...尽量避免在一天的早些时候进行这些高多巴胺活动。如果你的一天是从这些活动开始的,那么编码等重要任务就会显得不那么有吸引力。 相反,把这些高多巴胺的活动作为奖励。

    9810

    微服务架构: 什么是微服务, 是什么时候和怎么使用微服务

    当我们将其与单体架构应用程序设计进行比较时,微服务架构更有意义。 在单体架构设计中,我们创建了一个大且完整的的应用程序,所有模块紧密耦合在一个可执行文件中,通常部署在web或应用服务器上。...昂贵的可伸缩性和性能——可以扩展一个单体架构应用程序,但是成本非常高。 缺乏技术多样性——当我们为一个单一的应用程序选择一个技术栈时,我们考虑一个平衡的技术栈,它可以满足我们所有的需求。...通常,当单个应用程序成功或需要对规模和性能有重大帮助时,我们可以选择微服务。...从头创建microservices应用程序并转换现有的单体应用程序,大多数时间微服务应用程序都是从零开始开发的,因为单体架构应用程序的模块性很差。...我相信,如果我们尝试在生产中找出一个闲置的模块式单片机应用,我们将会非常困难。 微服务应用程序的核心概念是分散化,它提供了模块之间的硬线和分散的数据存储。

    1.5K30

    关于 defineAsyncComponent 延迟加载组件 在 vue3 中的使用总结

    这意味着它们仅在需要时从服务器加载。 这是改善初始页面加载的好方法,因为我们的应用程序将以较小的块加载,而不必在页面加载时加载每个组件。...每当我们的应用程序加载时,我们不需要我们的应用程序加载此组件,因为只有在用户执行特定操作时才需要它。...但是一旦我们点击我们的按钮并告诉我们的应用程序显示我们的弹出窗口,这时它就会从服务器加载,我们可以在网络标签中看到它。 这有助于我们实现最佳性能。我们只想在我们的页面初始加载时加载需要的组件。...这将等待我们的 setup 函数在尝试渲染我们的组件之前解析。...当我们进入到懒惰加载组件时,我们可以有更快的页面加载时间,改善用户体验,并最终提高你的应用程序的保留率和转换率。

    7.8K60

    一款「 负体验 」的AI产品

    目前Tensorflow.JS已经逐渐完善,并且提供了人脸识别、肢体识别等API,但精度不是很高,而且每个用户的电脑前置摄像头拍摄效果很差,所以我想象不出这些API对我来说有什么用; 在某天和别人聊到鉴黄技术的时候...” 整个项目开发时间大概花了两周左右,期间最花时间的是如何提高整个扩展的性能。...在这里我尝试了Web Worker的方案,它能够在浏览器内多线程运行其他程序。...在深度学习方面我采用迁移学习的方式对MobileNet上层结构进行重写,当我把项目快做完的时候才发现鉴黄没有想象中那么简单,原来这是一个困扰计算机科学家十几年的难题Orz!...项目前期我曾考虑过先把网页的全部图片识别完再呈现给用户,但由于性能问题会严重影响到整个的网页浏览体验,所以我最终还是放弃了该想法,策略改为优先显示图片,识别到黄图时将之模糊。

    59030

    优化时间序列应用程序的数据查询

    像任何应用程序一样,我们希望确保我们的数据库查询是智能且高性能的,因此让我们来讨论如何避免一些常见的陷阱。...实质上,索引是一个数据结构,它存储来自特定列的值,这意味着当我们通过索引字段进行搜索时,我们有一个方便的快捷方式来访问这些值。...这里的时间序列问题是没有关于哪些片段应该被索引的约定,所以我们需要随时注意我们的模式。 查询范围 当一个查询结果让我失望时,我通常跳入命令行。当我第一次发现时间序列数据库时,我就是这么做的。...当我们想要跨越越来越多的属性组合查询时,基数往往会增加,这会导致数据库花费的时间:在一系列中找到合适的值,对这些值执行任何必要的功能(比如值的求和),重复每个相关的,独特的系列,然后根据查询要求进行组合...请记住深呼吸,去一个快乐的地方处理所有的信息。 [z9t8oikk9x.png] 您的时间系列应用程序在效率和性能水平上应该表现出色 - 您可以实现这一目标。

    1K80

    吴恩达:AI的下一个发展方向,从大数据转向小数据

    我记得当我和我的学生发表第一篇 NeurIPS workshop 论文时,提倡使用 CUDA 进行深度学习——另一位 AI 领域的资深人士告诉我:CUDA 编程很复杂,作为一种编程范式,工作量太大了,但我没有办法说服他...我想他们现在都相信了。 吴恩达:我也这样认为。在过去的一年里,当我与人们谈论以数据为中心的 AI 运动时,我总是想到 10 或 15 年前与人们谈论深度学习和可扩展性时的情景。...因此,在实际应用程序中,现在更有效率的做法是保持神经网络体系架构不变,转而寻找改进数据的方法。 当我讲到这件事时,很多研究者表示赞成,他们按照这个规律已经做了 20 年了。...想象一下,训练一个机器学习系统,发现它的性能对于大多数数据集都还可以,但它的性能只对数据的一个子集有偏见。如果你尝试更改整个神经网络架构以仅提高该子集的性能,那将非常困难。...但如果你尝试为所有内容收集更多数据,那可能是一项非常昂贵的工作。 例如,我曾经发现当背景中有汽车噪音时,语音识别系统的性能会很差。

    65230

    《战狼Ⅱ》豆瓣十二万影评浅析

    《战狼Ⅱ》是吴京执导的动作军事电影,由吴京、弗兰克·格里罗、吴刚、张翰、卢靖姗、丁海峰等主演。该片于2017年7月27日在中国内地上映。...最多我也就是输入大概十几次验证码,所以就没有处理验证码的事情。但是接下来的事情就有点坑到我了。...整体来看,大家对这不影片的评论还是不错呀!剧情,动作,爱国等话题是大家谈论的焦点。但是如果把不同评价的人的评论分别展示会是什么样子呢?...在力荐的评论中可能爱国话题的基数比很差的评论中的多,在力荐的评论中人们更愿意讨论的是爱国话题之外的事情。在很差的评论中人们讨论的大多是爱国话题。...当我们和别人意见不同时,往往是所处的角度不同。 ?

    70570

    我是如何欺骗大脑,沉迷技术的?

    但当我在暑假期间学会了Java,情况发生了变化。这是我第一次觉得自己可以真正创造出一些东西。...学习了基础知识后,我开始模仿制作一些小东西--先是一个简单的计算器应用程序,然后是乒乓球和俄罗斯方块等游戏,再到全栈应用程序。我只是为了建造而建造。...我没有考虑成绩、面试或工作,只想着从头开始创造的兴奋。随着时间的推移,我意识到,当我真正喜欢上我所创造的东西时,我就会忘记时间,也正是从那时起,编码开始变得不仅仅是一项技能。它变成了一种激情。...6 新鲜感好吧,让我们来谈谈学习中最强大但却被低估的一个方面:新鲜感。我们的大脑有寻求新体验的功能。每当我们尝试新鲜有趣的事物时,多巴胺就会释放出来。...如果没有多样性,编码工作就会开始变得重复,甚至枯燥乏味。我还记得第一次从 Java 转向学习 Python 时的情景--就像重新学习骑自行车一样。从语法到解决问题的方法,一切都感觉不同。

    29620

    java批量修改数据库数据_sql批量更新多条数据

    大家好,又见面了,我是你们的朋友全栈君。...一条记录update一次,这样性能很差,也很容易造成阻塞。 那么能不能一条sql语句实现批量更新呢?mysql并没有提供直接的方法来实现批量更新,但是可以用点小技巧来实现。...代码也很容易理解,你学会了吗 性能分析 当我使用上万条记录利用mysql批量更新,发现使用最原始的批量update发现性能很差,将网上看到的总结一下一共有以下三种办法: 1.批量update,一条记录update...一次,性能很差 代码如下: update test_tbl set dr=’2′ where id=1; 2.replace into 或者insert into …on duplicate key update...replace into 和insert into on duplicate key update的不同在于: replace into 操作本质是对重复的记录先delete 后insert,如果更新的字段不全会将缺失的字段置为缺省值

    6.2K20
    领券