重构
文章平均质量分 76
.NET跨平台
比较认真。编程就是算法和数据结构,算法和数据结构是编程的灵魂。
展开
-
Resharper后置写法
可通过如上界面更改快捷键的内容或新建快捷键。,若要扩大选择范围则多次按。转载 2023-08-16 18:04:13 · 111 阅读 · 0 评论 -
最全的Resharper快捷键汇总
编辑Ctrl + Space 代码完成Ctrl + Shift + Space代码完成Ctrl + Alt + Space代码完成Ctrl + P 显示参数信息Alt + Insert 生成构造函数,属性,重载成员函数,实现接口Ctrl + Alt + J 生成if,try…catch,#region块Ctrl + / 注释及取消//注释Ctrl + Shift + / 注释及取消/**/注释Ctrl + W 增量选择块Ctrl + Shift + W 增量反选Alt + Enter转载 2023-08-15 20:23:30 · 1289 阅读 · 0 评论 -
什么情况下应该重构
重复代码(Duplicated code),事不过三,三则重构过长函数(Long method)过大的类(Large class)过长参数列表(Long parameter list)发散式变化(divergent change),意思是需要加一个新功能或者修改一个己有功能要改多个函数,那么就意味着要重构了。散弹式修改(shotgun surgery),意思是需要加一个新功能或者修改一个己有功能要改多个类,那么就意味着要重构了。依恋情节(feature envy),意思是函数对某个类的兴趣高于转载 2023-06-06 16:12:04 · 276 阅读 · 0 评论 -
学习之路二十九:泛型和委托在重构中的运用
其实就是想说在实践中进行思考,进行总结,最终一定会有不一样的收获!转载 2022-12-14 20:59:47 · 187 阅读 · 0 评论 -
重构要点学习
重构目的:为什么需要重构?重构是一种对软件内部接口的改善,目的是在不改变软件的可见行为的情况下,使其更易理解,修改成本更低。重构是避免过度设计的有效手段。重构的对象:到底重构什么(what)?大型重构主要针对:系统、模块、代码结构、类与类之间的关系等的重构。重构手段有:分层、模块化、解耦、抽象可复用组件等等。小型重构主要针对:类、函数、变量等代码级别的重构,比如规范命名、规范注释、消除超大类或函数、提取重复代码等等。重构手段:熟练掌握各种编码规范。重构的时机:什么转载 2022-05-29 19:21:28 · 224 阅读 · 0 评论 -
编码及代码审查遵循此规范
术语定义Pascal 大小写将标识符的首字母和后面连接的每个单词的首字母都大写。例如:CodingStandardCamel 大小写将标识符的首字母小写,而后面连接的每个单词的首字母都大写。例如:codingStandard命名规范文件及文件夹1.文件/文件夹名遵从Pascal命名法,无特殊情况,扩展名小写。2.C#类使用统一而又通用的文件扩展名: C# 类名 .cs,正常情况下,一个cs文件中不能含有两个及以上的类。代码注释public、protect转载 2021-12-13 00:21:25 · 535 阅读 · 0 评论 -
《重构 - 改善既有代码的设计》总结
1 重构,第一个示例重构前,先检查自己是否有一套可靠的测试集。这些测试必须有自我验证能力。TDD重构技术就是以微小的步伐修改程序。如果犯下错误,很容易便可发现它。傻瓜都能写出计算机可以理解的代码。唯有能写出人类容易理解的代码的,才是优秀的程序员。编程时,需要遵循营地法则:保证你离开时,代码库一定比来的时候更健康。好代码验证的标准是人们是否能轻而易举的修改它。2 重构的原则2.1 ...转载 2020-04-15 18:23:18 · 1073 阅读 · 0 评论 -
重构知识(+)
几个重构的技巧么?你觉得重构适合什么时候来做?重复代码的提炼冗长方法的分割嵌套条件分支的优化去掉一次性的临时变量消除过长参数列表提取类或继承体系中的常量让类提供应该提供的方法拆分冗长的类提取继承体系中重复的属性与方法到父类在新功能增加时候,在扩展不再简单的时候。重构是一个不断的过程。C#代码重构技巧总结最近看了一些关于重构方面的书籍,这里进行一下总结一般的重构技巧有...转载 2019-11-19 15:24:57 · 485 阅读 · 0 评论 -
重构Javascript代码示例(重构前后对比)
今天有做了几个asp.net结合Javascript的教程文章。现回顾头来看看那些Javascript脚本,有写得不太理想,过于复杂。现抽取出来,重构它们。之前一:复制代码代码如下:function SelectedAll(cb) {cb.checked = cb.checked ? false : true;var gv = document.getElementById(’<%...转载 2019-11-19 14:04:09 · 310 阅读 · 0 评论 -
谁都忍不了烂代码,如何用重构的方式让它整洁起来?
“整洁的代码简单直接。整洁的代码如同优美的散文。整洁的代码从不隐藏设计者的意图,充满了干净利落的抽象和直截了当的控制语句。”怎样让代码更加整洁?答案是重构!写在前面现在的软件系统开发难度主要在于其复杂度和规模,客户需求也不再像 Winston Royce 瀑布模型期望那样在系统编码前完成所有的设计满足用户软件需求。在这个信息爆炸技术日新月异的时代,需求总是在不断的变化,随之在 2001 年业界...转载 2019-11-19 14:02:32 · 483 阅读 · 0 评论 -
【JAVA】代码重构技巧
简介重构是持续改进代码的基础。抵制重构将带来技术麻烦:忘记代码片段的功能、创建无法测试的代码等等。而有了重构,使用单元测试、共享代码以及更可靠的无bug 的代码这些最佳实践就显得简单多了。鉴于重构的重要性,我决定在整个8 月份每天介绍一个重构。在开始之前,请允许我事先声明,尽管我试着对每个重构进行额外的描述和讨论,但我并不是在声明它们的所有权。我介绍的大多数重构都可以在Refactorin...转载 2019-11-18 23:09:46 · 972 阅读 · 0 评论 -
.NET - 代码重构技巧
通过面向对象三大特性:封装、继承、多态的学习,可以说我们已经掌握了面向对象的核心。接下来的学习就是如何让我们的代码更优雅、更高效、更易读、更易维护。当然了,这也是从一个普通程序员到一个高级程序员的必由之路。就看病一样,普通医生只能治标,高级医生不但看好病,还能除病根。1.什么时重构?重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的...转载 2019-11-16 18:59:04 · 543 阅读 · 0 评论 -
最实用的10个重构小技巧排行榜
LZ最近一直在研究虚拟机源码,可惜目前还只是稍微有一点点头绪,无法与各位分享,庞大的JAVA虚拟机源码果然不是一朝一夕能搞定的,LZ汗颜。 本次我们抛开JAVA虚拟机源码这些相对底层的东西,LZ来与各位探讨一下几个代码重构的小技巧,这些内容部分来自于书籍当中,部分来自于LZ维护项目当中的一些实践经验。如果猿友们曾经用过这种手法,也不妨参与到文章的留言当中,将你的小心得、小体会共享与他...转载 2019-11-15 11:14:52 · 258 阅读 · 0 评论 -
移动端页面重构布局8大方法
1.固定布局方法<head>里把<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">加好,然后根据设计稿设定相应的宽度即可,其他地方类似于pc端。优点思路沿用pc端,上手比较快缺点大屏手机显示网页比较宽,而固定...转载 2019-11-15 09:42:48 · 401 阅读 · 0 评论 -
前端页面重构技巧总结TIP
本文均为项目实战经验,要求兼容至IE8,所以以下内容均为兼容代码,欢迎各位小伙伴批评指教。其实重构页面是一门学问,看似简单,却暗藏很多学问。实际项目中页面的重构有以下几点最基本需求:需要使用合理的标签进行语义化;可扩展性,在页面的某个标签内增加新的内容(文字或标签),不会对原有内容造成影响。当页面接受后台数据时,标签内容替换后,页面布局与样式不会受到影响。兼容性(根据项目需...转载 2019-11-15 09:30:55 · 746 阅读 · 0 评论 -
重构 - 代码优化技巧
这次课讲的是「如何提高代码的可读性」,跟前端关系不大,是写代码的普遍技巧。注意我们讲得不是「如何提高代码的性能」。代码优化基本原则易读性优先如果不是性能瓶颈,就不要为了性能而改写代码复杂性守恒原则:无论你怎么写代码,复杂性都是不会消失的推论:如果逻辑很复杂,那么代码看起来就应该是复杂的。如果逻辑很简单,代码看起来就应该是简单的。命名程序员三大难题变量命名缓存失效循环边界...转载 2019-11-13 17:54:44 · 268 阅读 · 0 评论 -
《重构-改善既有代码的设计》的思维导图
《重构:改善既有代码的设计》思维导图转载 2019-09-24 11:18:32 · 857 阅读 · 0 评论 -
《重构 改善既有代码的设计》(第一章)【重构,第一个示例】
起点开篇以例子来说明重构的过程// plays.json{ "hamlet": {"name": "Hamlet", "type": "tragedy"}, "as-like": {"name": "As You Like It", "type": "comedy"}, "othello": {"name": "Othello", "type": "tragedy"}}//...转载 2019-09-25 10:57:37 · 927 阅读 · 0 评论 -
《重构 改善既有代码的设计》(第二章)【重构的原则】
重构的原则何谓重构名词定义:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可礼节性,降低其修改成本动词定义:使用一系列重构手法,在不改变软件可观察行为的前提下,调整期结构重构的关键在于运用大量微小且保持软件行为的步骤,一步步达成大规模的修改。每个单独的重构要么很小,要么由若干小步骤组合而成。因此,在重构过程中,不应该出现代码不可工作的状态。换句话说,如果代码在重...转载 2019-09-25 10:58:39 · 441 阅读 · 0 评论 -
《重构 改善既有代码的设计》(第三章)【代码的坏味道】
知道"如何"不代表知道"何时",决定何时重构及何时停止和知道重构机制如何运转一样重要!Kent Beck提出了用味道来形容重构的时机。作者并不试图制定一个何时必须重构的精确衡量标准。从经验来看,没有任何量度规矩比得上见识广博者的直觉。对于开发者,必须培养自己的判断力,学会判断一个类内有多少实例变量算是太大,一个函数内有多少行代码才算太长。坏味道条款神秘命名(Mysterious Name...转载 2019-09-25 10:59:18 · 394 阅读 · 0 评论 -
《重构 改善既有代码的设计》(第四章)【构筑测试体系】
一套测试就是一个强大的bug侦测器,能够大大缩减查找bug所需的时间。需要确保所有测试都完全自动化,让它们检查自己的测试结果。撰写测试代码的最好时机是在开始动手编码之前。预先写好的测试代码为工作安上一个明确的结束标志:一旦测试代码正常运行,工作就可以结束了。Kent Beck将这种先写测试的习惯提炼成一门技艺,叫测试驱动开发(Test-Driven Development,TDD)。TD...转载 2019-09-25 11:02:02 · 340 阅读 · 0 评论 -
《重构 改善既有代码的设计》(第五,六章)【介绍重构名录,第一组重构】
介绍重构名录重构的记录格式名称(name)速写(sketch)动机(motivation)做法(mechanics)范例(examples)第一组重构提炼函数(Extract Function)内联函数(Inline Function)提炼变量(Extract Variable)内联变量(Inline Variable)改变函数声明(Change Function D...转载 2019-09-25 11:05:29 · 320 阅读 · 0 评论 -
《重构 改善既有代码的设计》(第七章)【封装】
封装记录(Encapsulate Record)封装集合(Encapsulate Collection)以对象取代基本类型(Replace Primitive with Object)以查询取代临时变量(Replace Temp with Query)提炼类(Extract Class)内联类(Inline Class)隐藏委托关系(Hide Delegate)移除中间人(Remov...转载 2019-09-25 11:06:02 · 478 阅读 · 0 评论 -
《重构 改善既有代码的设计》(第八章)【搬移特性】
在不同的上下文之间搬移元素:通过搬移函数手法在类与其他模块之间搬移函数搬移字段对语句搬移,调整顺序:搬移语句到函数和搬移语句到调用者可用于将语句搬入函数或从函数中搬出移动语句可以在函数内部调整语句的顺序以函数调用取代内联代码可以消除重复代码,用函数代替循环调整:拆分循环可以确保每个循环只做一件事以管道取代循环可以直接消灭整个循环移除死代码可以将勿用的代码全部删除搬...转载 2019-09-25 11:06:31 · 585 阅读 · 0 评论 -
《重构 改善既有代码的设计》(第九章)【重新组织数据】
拆分变量(Split Variable)字段改名(Rename Field)以查询取代派生变量(Replace Derived Variable with Query)将引用对象改为值对象(Change Reference to Value)将值对象改为引用对象(Change Value to Reference)拆分变量变量有各种不同的用途,其中某些用途会很自然地导致临时变量被多次赋...转载 2019-09-25 11:07:05 · 451 阅读 · 0 评论 -
《重构 改善既有代码的设计》(第十章)【简化条件逻辑】
程序的复杂度大多来自条件逻辑。因此可以借助重构把条件逻辑变得更容易理解。使用分解条件表达式处理复杂的条件表达式用合并条件表达式理清逻辑组合用以卫语句取代嵌套条件表达式表达"在主要处理逻辑之前先做检查"的意图以多态取代条件表达式可以处理switch逻辑很多条件逻辑是用于处理特殊情况的,如处理null值。可以用引入特例处理逻辑大多相同的情况,消除重复代码分解条件表达式(Decom...转载 2019-09-25 11:07:29 · 683 阅读 · 0 评论 -
《重构 改善既有代码的设计》(第十一章)【重构API】
将查询函数和修改函数分离(Separate Query from Modifier)函数参数化(Parameterize Function)移除标记参数(Remove Flag Argument)保持对象完整(Preserve Whole Object)以查询取代参数(Replace Parameter with Query)以参数取代查询(Replace Query with Para...转载 2019-09-25 11:08:05 · 767 阅读 · 0 评论 -
重构之从入门到放弃
一个在运行的活的大系统是一个怪兽,需要大量年富力强的程序员的献祭——大魔法师:翁一刀之前公司我所在的部门是在线预订部。我们部门是新成立的部门,当时没什么人愿意去新的部门。因为需要学习的成本,要花大力气才能熟悉业务代码。几乎和所有公司一样,我们那边的产品经理也是很喜欢提需求。我们基本上一个产品经理对接两个App开发。我们一边开发一边重构代码,逐渐把所有业务都熟悉之后,我们捣鼓出来一套组件化开...转载 2019-09-24 11:17:03 · 319 阅读 · 0 评论