Hello,你好呀!我是灰小猿,一个超会写bug的程序猿!本想彪上一手好bug,奈何技术太差,只能苟且搞输出!
Leaders start with the customer and work backward. They work vigorously to earn and keep customer trust. Although leaders pay attention to competitors, they obsess over customers.
日前,Uber 官网上的一篇文章详细介绍了基于 NLP 和机器学习构建的 COTA 客服系统。利用该系统,Uber 可以快速高效地解决 90% 以上的客服问题,雷锋网 AI 研习社将原文(https:
几乎在每个团队,都至少有一份代码规范,或者代码的check list。然也就仅仅是一份清单。
代码重复几乎是最常见的异味了。他也是Refactoring 的主要目标之一。代码重复往往来自于copy-and-paste 的编程风格。与他相对应OAOO 是一个好系统的重要标志。
我们抛开文化的哲学意义,以亚马逊为例,看看文化如何发挥作用,怎么把【挂在墙上的标语,落地到解决方案】中。
在重构一书里,将有问题的代码称作代码臭味(Code Smells,有些翻译成”代码异味”、”代码坏味道”),表示这份代码可能有设计上的问题、或是因为写得太凌乱而难以维护。总得来说,这份代码需要通过重构来改善。这样的场景往往是许多开发者的每日工作,因此,判定一位开发者的等级,往往就是看他的重构技巧是否熟练。本次网路研讨会特别邀请到 Odd-e 敏捷教练张博超(Jackson)为大家演示如何用 IntelliJ IDEA 的重构功能来改善 Java 代码臭味。
之前在《重构·改善既有代码的设计.01》中初步了解了重构的基本前提,基础原则等入门知识。今天我们继续第二更......
---- 新智元报道 编辑:David 【新智元导读】3月14日,是国际π日,这个最常用的数学常数之一从4000年前走到今天,小数点后已经有62.8万亿位了。为了记录这个数,可以写诗,也可以写小说。 昨天是3月14日,这个日子看起来有些眼熟吗? 3.14,让你想到了什么? 没错,就是π了,如果你愿意,可以叫它「国际π日」 想象一下,现在你的面前有一杯茶,杯口是圆的,找一根绳子绕着杯子一周,然后量一下这段绳子的长度。把勺子放在杯子上,确保它横跨杯子的中心,并测量从一边到另一边的长度,也就是杯口的直
全局数据(Global Data): 全局数据的问题在于,从代码库的任何一个角落都可以修改它,而且没有任何机 制可以探测出到底哪段代码做出了修改,又难以定位bug。
在过去10年中,独角兽公司已经完全改变了VC的投资大势。风投资金越来越集中投向已经具备强势竞争力的一小部分公司。
差的设计在后期越来越难以新增功能,好的设计在软件开发的每个阶段新增功能的速度都是差不多的
坏味行列中首当其冲的就是Duplicated Code。如果你在一个以上的地点看到相同的程序结构,那么当可肯定:设法将它们合而为一,程序会变得更好。
开发者必须通过实践培养自己的经验和直觉,培养出自己的判断力:学会判断一个类内有多少个实例变量算是太大、学会判断一个函数内有多少行代码才算太长。
《重构》为我们带来了一种改进代码的高效过程,从而彻底改变了面向对象设计的方式:
开会时不再需要盯着Zoom上的2D画面,可以和来自世界各地的同事坐在一张虚拟会议桌旁。
坏味道:缺乏封装。封装,将碎片式代码封装成可复用模块。但不同级别程序员对封装理解程度差异大,往往写代码的人认为自己提供了封装,但实际上,我们还是看到许多的代码散落在那里。
不久前,我做了一个关于前端简洁架构(clean architecture on frontend)的演讲。在这篇文章中,我将概述那次演讲,并对其进行了一些扩展。
这些日子里,由于项目的缘故,我又双叕开始学着造轮子了。故事的开始是代码的不规范堆砌,导致软件大楼摇摇欲坠;故事的终点是,重新唤醒程序员对匠艺的追求。而故事的中间部分,则是我们所要关注的内容:代码坏味道(code smell)、包依赖合理性,应对的方案则是代码重构,目标则是 Clean Code,即易于阅读的代码。而它们(代码坏味道、重构方式等)都已经被归纳为模式。
---- 新智元报道 编辑:袁榭 snailnj 【新智元导读】公司内部业务混乱、公司外部观感酷似曾经的雅虎,这些与扎克伯格的元宇宙发力结合在一起,让Meta的新老员工都怨声载道。 不少Meta的员工,现在都在抱怨老板的元宇宙项目顾头不顾腚、在公司内部徒增业务困扰但并无法带来收获。 Meta的发言人表示,该公司正在 「经历公司的一个决定性时期,我们将全力以赴」,「很多人都很兴奋,但他们同时也有很多问题」。 不过内部员工和外部投资者的措辞,都远没有这么斯文含蓄。 Meta正面临「雅虎时刻」?
本文是学习《重构:改善既有代码的设计》后的一些心得,希望能用趣味的方式结合一些实例带领大家一起学习,提升自身代码质量。
阅读原文 Neural Networks these days are the “go to” thing when talking about new fads in machine learning. As such, there’s a plethora of courses and tutorials out there on the basic vanilla neural nets, from simple tutorials to complex articles describing t
BookNote: Refactoring - Improving the Design of Existing Code From "Refactoring - Improving the Design of Existing Code" by Martin Flower. BookNote: Refactoring - Improving the Design of Existing Code Duplicated Code Long Method Large Class Long Paramet
平时有很多碎片化时间,比如下班的地铁上,或者等待的时间,我们总喜欢拿出手机玩,这个时间也可以用来学习呢,当然佳爷自己也想学习英语,所以上下班的时间看看。
类似其他大部分坏味道,基本类型偏执诞生于类初建的时候。一开始,可能只是不多的字段,随着表示的特性越来越多,基本数据类型字段也越来越多。
前几天,有黑客《入侵了英国间谍软件公司Gamma》。本文翻译自黑客自己公布的入侵指南。详细的介绍了从信息收集,到发现目标站点,以及进行源码审计,绕过waf注入,尝试提权服务器的整个过程。 0×00 开篇 我写这篇文章不是为了吹嘘自己有多牛逼,使用了多高深的技术去搞定Gamma。我只是想揭开黑客技术神秘的面纱,告诉人们黑客技术很普通,你也可以利用黑客技术去反抗这个世界上那些见不得人的事。如果你没有任何编程或者hacking的经验,那些下面的文章可能会看起来像天书一样。没有关系,文章最后的参考资料会帮助你慢慢开
一. Duplicated Code(重复代码) 如果你在一个以上的地点看到相同的程序结构,设法将他们合而为一,程序会变得更好。 同一个类的两个函数含有相同的表达式,采用Extract Method(提炼函数)提炼出重复的代码。 两个互为兄弟的子类含有相同的表达式,首先对两个类都使用Extract Method(提炼函数),然后再对提炼出来的代码使用Pull Up Method(函数上移),将它推入超类。 如果代码之间只是类似,并非完全相同,运用Extract Method(提炼函数)将相似部分和差异部
敏捷开发是一种软件开发方法,基于迭代和增量开发,通过自组织,跨团队,沟通协作完成开发工作。
作者:石川| 公众号专栏作者 | 量信投资 创始合伙人,清华大学学士、硕士,麻省理工学院博士;精通各种概率模型和统计方法,擅长不确定性随机系统的建模及优化。知乎专栏:https://zhuanlan.zhihu.com/mitcshi。
什么样的代码是好代码呢?好的代码应该命名规范、可读性强、扩展性强、健壮性......而不好的代码又有哪些典型特征呢?这25种代码坏味道大家要注意啦
对一个类的修改涉及到多个不相关的功能或行为时(类里有不相关的功能,违背了单一职责原则)
如果你在一个以上的地点看到相同的程序结构,那么可以肯定:设法将它们和而为一,程序会变得更好。最常见的“重复代码”就是一个类内的两个函数含有相同的表达式。另一种常见情况就是两个互为兄弟的子类内含有相同的表达式。 1)同一个类的2个函数含有相同的表达式,这时可以采用Extract Method(提炼函数)提炼出重复的代码,然后让这2个地点都调用被提炼出来的那段代码。 2)两个互为兄弟的子类内含相同表达式,只需对2个类都是用Extract Method(提炼函数),然后对被提炼出来的函数是用Pull Up Method (方法上移) ,将它推入超类。如果代码之间只是类似, 并非完全相同,那么就得运用Extract Method(提炼函数 将相似部分和差异部分隔开,构成单独一个的函数。然后你可能发现可以运用Form Template Method (塑造模板函数)获得一个 Template Method设计模式。如果有些函数以不同的算法做相同的事,你可以选择其中较清晰地一个,并是用 Substitute Algorithm (替换算法)将其他函数的算法替换掉。 如果2个毫不相关的类出现 重复代码,你应该考虑对其中一个运用 Extract Class (提炼类),将重复代码提炼到一个独立类中,然后在另一个类内使用这个新类。但是,重复代码所在的函数可能只应该属于某个类,另一个类只能调用它,抑或这个函数可能属于第三个类,而另2个类应该引用这第三个类。你必须决定这个函数放在哪儿最合适,并确保它被安置后就不会再在其他任何地方出现。
通过上面的数据集信息可以知道:整个数据集缺失的数据比较少 其中release_date(首次上映日期)缺失1个数据,runtime(电影时长)缺失2个数据,可以通过网上查询补齐这个数据。
1、FACTORY一追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory
本世纪初,研究者们提出了「知识图谱」这一术语,谷歌从 2012 年起大力推广「知识图谱」技术,让它在学术界和工业界迅速流行了起来。随之,网上也出现了对知识图谱大量的定义和讨论。
人工智能(AI)指的是在设计成能够像人类一样思考和行动的机器中模拟人类智能的技术。这些智能系统可以执行诸如识别语音、做出决策和翻译语言等任务。AI 技术已存在数十年,并不断发展进步,导致 AI 应用在医疗保健、金融、教育和交通等各行业广泛应用。在医疗保健领域,AI 用于医学影像分析、药物发现,甚至虚拟健康助手。在金融领域,AI 用于欺诈检测、投资组合管理和财务预测。对于教育,AI 驱动的学习系统和个性化导师正在改变学生学习的方式。在交通领域,AI 在提高安全性、减少交通拥堵和优化交付路线方面发挥着关键作用。AI 有潜力彻底改变我们的生活、工作和相互交流方式,使其成为一个令人兴奋且快速增长的领域。
一个时间轴的组成 使用一个块级元素包裹内容,并未块级元素设置边框 定义圆形或者菱形等元素标签,子元素设置偏移或者定位元素将图标定位到边框上 使其中的内容不溢出,自动换行,内容自动撑高 英文自动换行:word-wrap:break-word;word-break:break-all 时间轴样式部分 使用时需要注意可能继承的样式会给li:after等伪类元素设置样式而造成效果异常 css中定义了一个圆形的图标class="yuan",一个菱形的图标class="diamond" <style>
package org.springframework.web.servlet {
本文素材的来源自业务部门技术负责人一次代码走查引发的故事,技术负责人在某次走查成员的代码时,发现他们的业务控制层大量充斥着如下的代码
本文主要讲一下session fixation attacks以及spring security对它的防范。
网上有很多LaTeX软件,在线编辑器推荐Overleaf。但是我个人还是更喜欢离线写东西,所以尝试过各种编辑器,例如VSCode等等,这些编辑器都需要自己搭环境才能用,反正对于我们这种初学者而言门槛较高,而且浪费时间,所以下面介绍一个LaTeX组合可以让你直接上手体验LaTeX,而不需要挣扎在LaTeX的门口。
rocketmq-all-4.6.0-source-release/remoting/src/main/java/org/apache/rocketmq/remoting/netty/NettyRequestProcessor.java
Cheddar/cheddar/cheddar-messaging/src/main/java/com/clicktravel/cheddar/infrastructure/messaging/MessageSender.java
在win10和11中可以分配工作空间,但是只能使用默认的ctrl+win+箭头。这需要使用两只手才能操作,不太方便。 可以使用windowAutoHotkey把快捷键改为 alt + 1/2/3/4 来快速切换到特定的窗口。 user_config.ahk
要想使用spring session,还需要创建名为springSessionRepositoryFilter的SessionRepositoryFilter类。该类实现了Sevlet Filter接口,当请求穿越sevlet filter链时应该首先经过springSessionRepositoryFilter,这样在后面获取session的时候,得到的将是spring session。为了springSessonRepositoryFilter作为filter链中的第一个,spring session提
flink-core-1.7.1-sources.jar!/org/apache/flink/api/common/restartstrategy/RestartStrategies.java
Session 是我们在做java web项目 或者是其他的web项目时 一定会接触的,在学习中,常常被我们用来存储用户的一些关键信息,如:登录状态等
所以我们重点关注的AbstractMessageSource的getMessage方法。以其中一个为例分析
领取专属 10元无门槛券
手把手带您无忧上云