首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

别人能读懂代码

别人能读懂代码 随着软件行业不断发展,历史遗留程序越来越多,代码维护成本越来越大,甚至大于开发成本。而新功能开发又常常依赖于旧代码,阅读旧代码所花费时间几乎要大于新功能代码。...我们所写代码除了让机器执行外,还需要别人来阅读。...所以我们要: 别人能读懂代码 可扩展代码 可测试代码(代码应该具备可测试性,对没有可测试性代码测试,是浪费生命表现) 其中2,3点更多强调是面向对象设计原则。...,如果你正在试图一段注释,从某种角度来看,你正在试图一段别人无法理解代码。...RegisterUser(User user) { } public void SendEmail(User user) { } 布尔参数在告诉方法不止做一件事,违反了Do one thing 11.具有表达力代码

91750

最近关于「文字思考

前段时间刚发表了一篇文章:复盘:细数这些年文字成与败,然后我又陷入了「什么」困局,我思考出发点是: 我应该写些什么能读者有获得感,然后我个人又能够在这个过程中通过输出方式得到更好输入,形成一种双赢局面...笔者希望时间最好用到刀刃上,我梳理了一份思维导图来索引接下来我要输出内容范围,如下所示: 目前这个思维导图只是初版,作为一个终身学习软件工程师,持续学习和成长是伴随着整个职业生涯,所以这个版图不是一成不变...当然大家时间也是非常宝贵,我发现很多文章非常长可能对读者是一种负担或者压力,但深度文章确实需要将技术剖析得非常清楚,可以让读者反复去阅读。...我在跟一个GM饭局上曾收获一个观点: 写文章和分享更多是说明文,解释说明你想表达内容。...分析问题是一个具象化过程,以解决问题角度去说明问题 我非常认同这个观点,所以未来我分享文章会尽量保持客观和准确,也会想办法减轻大家阅读负担,篇幅不会过长,而是经过思考和提炼过后

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

    (转)你代码,是别人噩梦吗

    自从工作后写了大半年代码了,公司由于历史原因项目中充斥着各种不合理设计,写着写着就很容易烦躁,影响心情,代码本来是快乐而富有创造事情,面对这样噩梦需要找到解决方案,那么方案就是这篇文章. ----...从业这么多年,接触过银行应用,Apple应用,eBay应用和现在阿里应用,虽然分属于不同公司,使用了不同架构,但有一个共同点就是都很复杂。...但是随着支持业务越来越多,代码里面开始出现大量if-else逻辑,这个时候代码开始有坏味道,没闻到同学就这么继续往上堆,闻到同学会重构一下,但因为系统没有统一可扩展架构,重构技法也各不相同,...是不是感受到间接层强大了。分层最大好处就是分离关注点,让每一层只解决该层关注问题,从而将复杂问题简化,起到分而治之作用。...在加上上面介绍把业务规则显现化,极大提升了代码可读性和可扩展性。用尚学的话说,用DDD代码,他找到了创作感觉,而不仅仅是码农式Coding。

    1.1K20

    我是这样文字轮播

    功能点: 文字无缝轮播(不要在意为什么在移动端还会有这样需求) 3如何实现 我们可以下面三种方法来进行实现: 1 marquee 当一说到文字无缝滚动时,大家最先想到是marquee。...2 jquery 第二个想到是采用类似jquery实现图片轮播机制,可以基本完成,但是发现无论是jquery还是zepto文字在滚动时候会抖动,可用性比较差。...3 css3 + 少量js 再就是现在用到css3 + 少量js,采用很少代码就可以实现文字不同长度,文字条数不定文字无缝滚动轮播。...4实现过程 下面先看html结构: 与图片无缝滚动一样,也需要将第一条数据拷贝一份放在最后面 其次是css相关数据: 由于IOS一些渲染机制,最好滚动元素内部都需要启动硬件加速,否则会有卡顿和文字显示不全问题...最后是js: 这里还是jquery,相信大家都能看懂,就是让滚动元素宽度等于他内部元素总宽度减去第一个(或者最后一个)元素宽度,这样能保证无缝效果。

    1.8K20

    语音转文字软件?语音转文字方法

    在课堂上、讲座上,每一点都是不容错过精彩,让人想把其牢牢记在脑海,手写记录难以跟上别人口头讲解速度,埋头苦记的话往往会错过一个又一个得重点,将语音实时记录下来这才是正确方式。...这里就可以用到语言中文字工具,这种方式大大提升了记录效率。 这里先介绍文字转语音方法。打开一个空白记事本,输入如下图代码哦,注意后面的中文部分就是你要转语音文本哦。...为了省去大家手动打字麻烦,这里分享一个可以实现语音文件转换成文字实用工具。 通过电脑中浏览器进行搜索辅助工具:PDF转换工具。...其中辅助工具中就包括了“语音转文字”,利用这个来完成语音转文字; 下一步就可以选择将所转换语音文件添加到转换工具转换框中。...关于文字转换语音,语音转文字方法就分享到这里,望能帮助到需要的人!

    18.5K40

    觉得别人代码难以维护,应该吐槽吗?

    代码多年,接手过大量别的程序员系统。每接手一个系统我都要吐槽一番,代码烂,可读性差,不美观;用语言有问题,不应该用PHP,应该用java或c#。...反正任何别人系统并且由我接手我都要批判一番,认为自己总能写比他们好。 不过随着行业经验增加,我发现自己代码也老是被别人吐槽。...结合平时和同行沟通和观察,我发现不管是什么样程序员,不管是经验丰富老手还是刚出道菜鸟,有一个共同特征就是会抱怨别人代码有问题。...其次,对程序员而言,代码是自己还是别人是有区别的,这是铁律,每个程序员都有体会。对于别人代码,即使再好,在没有深刻理解情况下, 程序员也会觉得读起来费劲, 难以维护。...所以,程序员们, 不要吐槽别人代码烂,想要轻轻松松一样看懂别人代码,不可能, 除非计算机科学以及衍生商业逻辑被重新定义,否则除非不当程序员, 不然没有办法可以避免。

    51720

    别人能读懂代码+网页性能管理详解

    随着软件行业不断发展,历史遗留程序越来越多,代码维护成本越来越大,甚至大于开发成本。而新功能开发又常常依赖于旧代码,阅读旧代码所花费时间几乎要大于新功能代码。...我们所写代码除了让机器执行外,还需要别人来阅读。...所以我们要写: 让别人能读懂代码 可扩展代码 可测试代码(代码应该具备可测试性,对没有可测试性代码测试,是浪费生命表现) 其中2,3点更多强调是面向对象设计原则。...,如果你正在试图一段注释,从某种角度来看,你正在试图一段别人无法理解代码。...修改DOM 修改样式表 用户事件(比如鼠标悬停、页面滚动、输入框键入文字、改变窗口大小等等) 重新渲染,就需要重新生成布局和重新绘制。

    1.1K90

    文字转语音原理 文字转语音软件选择方法

    image.png 一、文字转语音原理介绍 所有的文字转换语音软件工作原理都不尽相同。想要实现这样目的,首先就是要将汉字转化为拼音,毕竟拼音是我们读一个字基本音素。...想要实现转化,就需要通过计算机将文本与数据库中语音对照。最后对检索语音结果进行播报。这样就实现了文字转换为语音功能。至于这个功能实现,就需要依靠一下其他软件。...这些软件往往可以为文字转语音提供很多便利。 二、文字转语音软件选择攻略 那么大家应该如何去选择合适文字转语音软件呢?作为一款智能文字转化语音软件,首先要具备一个特点就是要声音真实。...如果一个软件编辑出来声音是一个听起来就很假声音,就可以去果断放弃这个软件了。除了这个特点,还要选择那些声音种类多软件,毕竟可以有很多声音选择,将会极大地优化大家体验。...以上就是为大家介绍全部内容,相信大家已经了解了文字转语音原理以及文字转语音软件选择方法。选择了真正好用文字转语音软件,就会使大家聊天过程更加有趣。

    7.5K40

    如何避免自己代码成为别人眼中一坨屎!

    普通工程师堆砌代码,优秀工程师优雅代码,卓越工程师简化代码。如何写出优雅整洁易懂代码是一门学问,也是软件工程实践里重要一环。...: TODO 待处理问题; FIXME 已知有问题代码; HACK 不得不采用粗糙解决方案; 在注释中用精心挑选输入输出例子进行说明; 注释应该声明代码高层次意图,而非明显细节; 不要在代码中加入代码著作信息...: 不恰当信息; 废弃注释; 冗余注释; 糟糕注释; 注释掉代码; 唯一真正好注释是你想办法不去注释: 不要有循规式注释,比如setter/getter注释; 不要添加日志式注释,比如修改时间等信息...,尽可能少设计临界区; 六、单元测试 不要怕单元测试方法名字太长或者繁琐,测试函数名称就像注释; 不要追求太高测试覆盖率,测试代码前面90%通常比后面10%花时间少; 使用最简单并且能够完整运用代码测试输入...; 类中方法越少越好,函数知道变量越少越好,类拥有的实体变量越少越好; 通过减少变量数量和让他们尽量“轻量级”来让代码更有可读性: 减少变量; 缩小变量作用域; 只一次变量更好,如常量; 最好读代码就是没有代码

    64370

    如何避免自己代码成为别人眼中一坨屎!

    普通工程师堆砌代码,优秀工程师优雅代码,卓越工程师简化代码。 来源:云栖社区 | 作者:竹涧 普通工程师堆砌代码,优秀工程师优雅代码,卓越工程师简化代码。...如何写出优雅整洁易懂代码是一门学问,也是软件工程实践里重要一环。...: TODO 待处理问题; FIXME 已知有问题代码; HACK 不得不采用粗糙解决方案; 在注释中用精心挑选输入输出例子进行说明; 注释应该声明代码高层次意图,而非明显细节; 不要在代码中加入代码著作信息...: 不恰当信息; 废弃注释; 冗余注释; 糟糕注释; 注释掉代码; 唯一真正好注释是你想办法不去注释: 不要有循规式注释,比如setter/getter注释; 不要添加日志式注释,比如修改时间等信息...; 类中方法越少越好,函数知道变量越少越好,类拥有的实体变量越少越好; 通过减少变量数量和让他们尽量“轻量级”来让代码更有可读性: 减少变量; 缩小变量作用域; 只一次变量更好,如常量; 最好读代码就是没有代码

    72310

    如何避免自己代码成为别人眼中一坨屎

    : TODO 待处理问题; FIXME 已知有问题代码; HACK 不得不采用粗糙解决方案; 在注释中用精心挑选输入输出例子进行说明; 注释应该声明代码高层次意图,而非明显细节; 不要在代码中加入代码著作信息...: 不恰当信息; 废弃注释; 冗余注释; 糟糕注释; 注释掉代码; 唯一真正好注释是你想办法不去注释: 不要有循规式注释,比如setter/getter注释; 不要添加日志式注释,比如修改时间等信息...,尽可能少设计临界区; 六、单元测试 不要怕单元测试方法名字太长或者繁琐,测试函数名称就像注释; 不要追求太高测试覆盖率,测试代码前面90%通常比后面10%花时间少; 使用最简单并且能够完整运用代码测试输入...; 类中方法越少越好,函数知道变量越少越好,类拥有的实体变量越少越好; 通过减少变量数量和让他们尽量“轻量级”来让代码更有可读性: 减少变量; 缩小变量作用域; 只一次变量更好,如常量; 最好读代码就是没有代码...; 尽可能减少类和方法数量; 以上规则按重要程度排列; 无论是设计系统或者单独模块,别忘了使用大概可工作最简单方案; 整洁代码只提供一种而非多种做一件事途径,他只有尽量少依赖。

    7392118

    如何避免自己代码成为别人眼中一坨屎!

    普通工程师堆砌代码,优秀工程师优雅代码,卓越工程师简化代码。如何写出优雅整洁易懂代码是一门学问,也是软件工程实践里重要一环。...: TODO 待处理问题; FIXME 已知有问题代码; HACK 不得不采用粗糙解决方案; 在注释中用精心挑选输入输出例子进行说明; 注释应该声明代码高层次意图,而非明显细节; 不要在代码中加入代码著作信息...: 不恰当信息; 废弃注释; 冗余注释; 糟糕注释; 注释掉代码; 唯一真正好注释是你想办法不去注释: 不要有循规式注释,比如setter/getter注释; 不要添加日志式注释,比如修改时间等信息...,尽可能少设计临界区; 六、单元测试 不要怕单元测试方法名字太长或者繁琐,测试函数名称就像注释; 不要追求太高测试覆盖率,测试代码前面90%通常比后面10%花时间少; 使用最简单并且能够完整运用代码测试输入...; 类中方法越少越好,函数知道变量越少越好,类拥有的实体变量越少越好; 通过减少变量数量和让他们尽量“轻量级”来让代码更有可读性: 减少变量; 缩小变量作用域; 只一次变量更好,如常量; 最好读代码就是没有代码

    53220

    讨厌别人注释,但自己也不爱?那么试试这个IDEA注释插件吧!

    平时大家编程时,有没有养成良好注释习惯呢?一个好注释习惯对于代码回溯、重构,或者对于他人解读,都有着莫大帮助,但是大家编码时候有没有觉得注释会稍稍让编码慢下来一点呢?...嘿嘿,今天TJ君要给大家说就是这样一个IDEA插件,Easy Javadoc Easy Javadoc,是一款自动翻译代码内容已形成类、方法或者属性注释插件,同时他也可以进行中英文内容互相翻译,碰到一些奇奇怪怪词汇或者想起名时候...我们看下实际使用效果: 小伙伴会问了,那到底他是怎么自动注释呢?...其实他就是后台自动通过翻译软件,将需要注释类、方法或者属性进行翻译然后注释,所以说小伙伴只需要将方法名字和实际效果一致,就能确保自动注释效果。...同时,我们还可以到文件-设置-其他设置-EASYJAVADOC进行注释内容对照的人工录入 这样一些翻译软件无法直接翻译出最恰当含义内容也可以自动注释,就像tiancai~~~ 在设置功能中还可以对翻译内容来源

    55810

    dubbo扩展jar包如何无侵入别人使用

    有这么一个场景, 我写了一个dubbo spi扩展jar包 dubbo-ext.jar; 这个Jar包是不可执行包(没有main函数), 它作用是对现有运行dubbo服务做一些增强; 那么这样一个扩展包...,要符合即插即用原则;要无侵入增强; 正常情况下我们可能直接在pom文件依赖一下这个包;因为无侵入原则,那么这条路就不能走了; 那可怎么办呢?.... java -jar 启动方式 我们现在大部分项目都会选择SpringBoot框架; 最常用打包方式是打成 jar 包;然后使用javar -jar XXX.jar 启动方式; 但是这样的话,.../lib/ 最容易出错地方就是后面的文件夹路径了; 这个可不是你随便; 你这个路径必须跟features-service-0.0.1-SNAPSHOT.jar解压之后存放依赖jar路径保持一致...原理都是一样,可以先解压看看jar路径; 亲测ok!

    99530

    想把你Python程序发给别人用?打包成exe啊!

    当你学了一段时间Python,终于写出一个小游戏时候,是不是很想发给你小伙伴分享一下你成果?...但是,如果直接将xx.py文件发给别人别人通常是不能直接运行,他还需要安装python解释器,甚至还要安装我们用到第三方包,是不是有点小麻烦?...pyinstaller打包机制 我们python脚本是不能脱离python解释器单独运行,所以在打包时候,至少会将python解释器和脚本一起打包,同样,为了打包exe能正常运行,会把我们所有安装第三方包一并打包到...蓝色表示是安装requests依赖包,看到了吧! Pyinstaller打包exe 这里呢,我就拿刚给同事办公自动化脚本示例一下。源码示例效果,如下图所示。 ?...这样,我们就完成了一个打包工作,如果别人需要,即使没有python环境,他依然可以运行。

    8.9K41

    标签打印软件如何制作带底纹文字

    最近有客户在使用标签设计软件,绘制文本时候,咨询软件是否支持文本削点功能,这里削点指的是细化,也就是底纹文字。...中琅标签设计软件是可以实现,接下来我们就一起来看下在中琅标签设计软件中如何制作底纹文字: 1.打开标签设计软件,新建标签之后,点击软件上方工具栏下”绘图-矢量文本”,在画布上绘制一个矢量文本对象。...双击矢量文本,在图形属性-数据源中,点击”修改”按钮,在数据源中可以手动输入你想要信息,这里以默认数据为例。...2.双击绘制好矢量文本,在图形属性-基本中,修改填充样式及相关参数,如下图: 还有一种方法是,自己绘制好一个小图片,作为背景填充文字,如下图: 在标签设计软件中以上两种方法都可以实现底纹文字效果...如果调整1参数,无法达到要求,可以使用方法2。方法2就不再详细演示了,如果对底纹文字感兴趣的话,可以下载标签设计软件,自己动手尝试。

    2.2K20

    条码软件多行文字如何换行

    条码软件在设计制作标签时,添加普通文字是必不可少功能,添加文本数据有三种方式,分别是单行文字,多行文字和弧形文字。单行文字顾名思义不可以换行,添加数据库字段比较灵活。...多行文字可以换行,下面我们就详细介绍多行文字换行显示问题。 首先打开条码软件,点击软件左侧多行文字工具,拖拽出一个文本框,在弹出界面中输入文本数据。...01.png 文字输入后,在软件右侧设置文字字体和字号。 02.png 鼠标选中文本框,然后拖动文本框两边绿色小圆球调整文本框宽度到合适位置,使文本数据自动换行显示。...03.png 还有一种情况就是在编辑界面中手动换行,比如在需要换行地方敲击一个“Enter”键即可。如下图所示。 04.png 文字输入后,在软件右侧设置字体和字号。样式如下。...05.png 综上所述就是多行文字换行方法,此种方法没有设计数据库,后续我们还会向大家介绍批量打印时如何操作。

    2.5K10

    电脑版本OCR文字识别软件怎样操作?

    如今OCR用途是越来越丰富了,那么大家究竟会不会使用它呢?这点可能大家不是那么确信,那就跟随小编一起来看看你操作是否与小编一样吗?...首图不带广告.png 辅助工具:迅捷OCR文字识别软件 第一步:打开我们OCR文字识别软件工具,在该工具页面中我们可以看到有许多功能可以供我们选择,那么大家大多数都是使用哪种功能呢?...1.png 第二步:今天我们可以选择“图片局部识别”功能,图片局部识别的功能也是将图片内容转换成文字功能,可我们图片局部识别是更加精准一些。...选好区后,我们OCR文字识别软件就会自动进行识别了。 4.png 第五步:选好区后,识别内容显示在整个页面的右侧。然后我们可以对输出目录进行修改,选择一个我们易于找到地方。...6.png 以上操作大家看懂了吗?是不是和大家之前操作一样呢!如果大家在操作过程中有什么疑问的话可以在留言区给小编留言哈。

    14.4K30
    领券