自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 收藏
  • 关注

转载 移动端开发必须知道的小技巧(转)

前言最近在公司写一个混合 app 项目,页面基本全部都是用 H5 完成,嵌入到原生 webview 下。发现一个问题,在 iPhone 6 下 苹果手机的状态栏会挡住页面,导致页面下移,样式错乱,最后网上查找了些解决办法,加了一条 meta 标签解决了问题。今天特来总结下常用的移动端开发需要注意的meta标签及一些小技巧。viewport<meta name="...

2019-08-31 21:53:00 280

转载 Code Review最佳实践(转)

我一直认为Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,Code Review都是基本要求,代码合并之前必须要有人审查通过才行。然而对于我观察到的大部分软件开发团队来说,认真做Code Review的很少,有的流于形式,有的可能根本就没有Code Review的环节,代码质...

2019-07-20 10:59:00 241

转载 基础知识--系列目录

1.基础知识--封装、继承、多态、抽象2.基础知识---const、readonly、static3.基础知识---IEnumerable、ICollection、IList、IQueryable4.基础知识---枚举5.基础知识---数组和链表6.基础知识---抽象类和接口7.基础知识---委托和 lambda转载于:https://www.cnblogs....

2019-06-15 16:25:00 235

转载 基础知识---委托和 lambda

委托定义类型,类型指定特定方法签名。可将满足此签名的方法(静态或实例)分配给该类型的变量,然后(使用适当参数)直接调用该方法,或将其作为参数本身传递给另一方法再进行调用。以下示例演示了委托的用法。using System;using System.Linq;public class Program{ public delegate string Re...

2019-05-23 10:54:00 134

转载 基础知识---抽象类和接口

抽象类(abstract):抽象类不能创建实例,它只能作为父类被继承。抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象。从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了子类的随意性。(1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法(2) 抽象类不能被实例化(3) 抽象类可以但不是必须有抽象属性和抽象方法,但是...

2019-05-18 10:26:00 2245

转载 基础知识---数组和链表

数组的优点:随机访问性强查找速度快数组要求是一块连续的内存空间来存储,这就要求在物理上这一片空间是连续的,每个元素都有指定的索引index指向内存地址,因此查询对时候,可根据index快速找到对应地址存储的信息,此为查询快.数组的缺点:插入和删除效率低数组进行增删的时候,就必须将目标位置后的所有元素都整体移动,因此就比较耗时,此为增删慢...

2019-05-13 19:19:00 151

转载 基础知识---枚举

一、枚举的定义枚举是一组命名整型常量。枚举类型是使用enum关键字声明的。C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。二、枚举的声明声明枚举的一般语法:enum <enum_name>{ enumeration list };其中,enum_name指定枚举的类型名称。enu...

2019-05-09 18:51:00 378

转载 基础知识---IEnumerable、ICollection、IList、IQueryable

一、定义IEnumerablepublic interface IEnumerable<out T> : IEnumerableICollectionpublic interface ICollection<T> : IEnumerable<T>, IEnumerableIListpublic interfa...

2019-05-08 11:01:00 216

转载 [翻译]微软 Build 2019 正式宣布 .NET 5

原文:Introducing .NET 5今天,我们宣布 .NET Core 3.0 之后的下一个版本将是 .NET 5 。这将是 .NET 系列的下一个重要版本。将来只会有一个 .NET ,您将能够使用它来开发 Windows,Linux,macOS,iOS,Android,tvOS,watchOS 和 WebAssembly 等等。我们将在 .NET 5 中引入新的 ....

2019-05-07 16:43:00 119

转载 基础知识---const、readonly、static

const:静态常量,也称编译时常量(compile-time constants),属于类型级,通过类名直接访问,被所有对象共享!  a、叫编译时常量的原因是它编译时会将其替换为所对应的值;  b、静态常量在速度上会稍稍快一些,但是灵活性却比动态常量差一些;  c、静态常量,隐式是静态的,即被static隐式修饰过,不能再用static重复修饰,  d、在声明时初始化;...

2019-05-05 16:30:00 124

转载 基础知识--封装、继承、多态、抽象

一、封装封装:是面向对象方法的重要原则,就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,就是把不想告诉或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开,别人只能用我提供的功能实现需求,而不知道是如何实现的。增加安全性public class Person { private String name; private ...

2019-04-29 08:55:00 101

转载 读书笔记--《你在为谁工作》

一现如今这个现实至极的社会中,人们已然把工作当成是在社会生存中的一项硬指标,工作为了赚钱,赚钱为了糊口。我们没有获得快乐,除了金钱。许多人知道职业生涯的尽头,也没能很好的回答到底在为谁工作。作者从不同的角度,诠释了我们到底在为谁工作,到底在为了什么而工作。在工作中,不管任何事,都应将心态回归于零,把自己放空,抱着学习的心态,将么一次任务都视为一个新的开始,一段新的体验,一扇通往成...

2019-04-20 17:16:00 83

转载 深入理解设计模式---系列目录

一、创建型模式深入理解设计模式(一):单例模式(Singleton pattern): 确保一个类只有一个实例, 并提供全局访问点.深入理解设计模式(二):简单工厂模式(factory method pattern):实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。深入理解设计模式(四):工厂方...

2019-04-15 19:05:00 188

转载 深入理解设计模式(终):总结--设计模式是药,没病就不要吃药

系列链接地址: 深入理解设计模式---系列目录一、产品汪的神助攻,代码狗的安慰剂定义:设计模式,指的是一个场景(context)下的一种解决方法(Solution),只要大家都认可某种模式,那么就只需要很短的一个名字,就可以代替很多很多的语言和文字交流,如果你觉得设计模式降低生产效率,那只能说你在这一行还要继续修炼。宗旨:保证系统的低耦合高内聚,指导它们的原则无非就是封装变化...

2019-04-15 19:01:00 115

转载 深入理解设计模式(24):外观模式

一、什么是外观模式定义:为子系统中的一组接口提供一个一致的界面,用来访问子系统中的一群接口。外观模式组成:  Facade:负责子系统的的封装调用  Subsystem Classes:具体的子系统,实现由外观模式Facade对象来调用的具体任务二、外观模式的使用场景  1、设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式;  2、开发阶段...

2019-04-10 13:36:00 79

转载 深入理解设计模式(23):代理模式

一、引言  我们都知道,数据库连接是很珍贵的资源,频繁的开关数据库连接是非常浪费服务器的CPU资源以及内存的,所以我们一般都是使用数据库连接池来解决这一问题,即创造一堆等待被使用的连接,等到用的时候就从池里取一个,不用了再放回去,数据库连接在整个应用启动期间,几乎是不关闭的,除非是超过了最大闲置时间。  但是在程序员编写程序的时候,会经常使用connection.close()这...

2019-04-08 19:33:00 109

转载 深入理解设计模式(22):享元模式

一、引言大家都知道单例模式,通过一个全局变量来避免重复创建对象而产生的消耗,若系统存在大量的相似对象时,又该如何处理?参照单例模式,可通过对象池缓存可共享的对象,避免创建多对象,尽可能减少内存的使用,提升性能,防止内存溢出。在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使...

2019-04-03 08:54:00 157

转载 深入理解设计模式(21):组合模式

一、什么是组合模式定义:将对象以树形结构组织起来,以达成“部分-整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。动机(Motivation)客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性等弊端。如何将“客户代码与复杂的对象容器结构”解耦?让对象容器自己来实现自...

2019-04-02 18:32:00 127

转载 深入理解设计模式(20):桥接模式

一、什么是桥接模式桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。二、桥接模式的结构在桥接模式结构图中包含如下几个角色:●Abstraction(抽象类):用于定义抽象类的接口,它一般是抽象类而不是接口,其中定义了一...

2019-03-08 09:07:00 145

转载 深入理解设计模式(19):装饰模式

一、前言装饰模式实际上是一直提倡的组合代替继承的实践方式,个人认为要理解装饰者模式首先需要理解为什么需要组合代替继承,继承又是为什么让人深恶痛绝.为什么建议使用组合代替继承?面向对象的特性有继承与封装,但两者却又有一点矛盾,继承意味子类依赖了父类中的实现,一旦父类中改变实现则会对子类造成影响,这是打破了封装性的一种表现. 而组合就是巧用封装性来实现继承功能的代码复用.二、...

2019-03-07 09:23:00 108

转载 深入理解设计模式(18):适配器模式

一、什么是适配器模式定义:适配器模式属于结构型模式,把一个类的接口变成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。适配器模式又可以分为4种类型,类适配器模式、对象适配器模式、单接口适配器模式(缺省适配器模式)和双向适配器模式。后2种模式的实现比较复杂并且在实际开发过程中很少使用。二、适配器模式的结构Adaptee:初始角色...

2019-03-06 08:29:00 109

转载 认知水平越低,人越固执

一、你可能会有这样的经历,跟人交谈时,有时你从各个角度给他分析一个问题,提出中肯的建议,但是他怎么都听不进去,表现得异常固执。比如,一个女孩深陷感情骗局,外人一看就知道男孩在骗她,但女孩子却固执地认为男孩是真正地爱她,任凭外人怎么说,她都不会改变主意,甚至认为别人在不怀好意地破坏他们。再比如,你苦口婆心地跟他人说年轻的时候多学点东西,多增长见识,对自己的事业、人生都有帮助,他...

2019-03-05 18:55:00 87

转载 世界顶级思维(必须收藏)

1.素养蓝斯登原则:在你往上爬的时候,一定要保持梯子的整洁,否则你下来时可能会滑倒。提出者:美国管理学家蓝斯登。点评:进退有度,才不至进退维谷;宠辱皆忘,方可以宠辱不惊。卢维斯定理:谦虚不是把自己想得很糟,而是完全不想自己。提出者:美国心理学家h.卢维斯。点评:如果把自己想得太好,就很容易将别人想得很糟。托利得定理:测验一个人的智力是否属于上乘,只...

2019-02-23 13:51:00 279

转载 戏说程序猿---系列目录

戏说程序猿之过年--二叔,我真不会修电脑戏说程序猿之荒唐的需求戏说程序猿之cannot find the object转载于:https://www.cnblogs.com/xuwendong/p/10078557.html...

2019-02-21 11:36:00 110

转载 戏说程序猿之cannot find the object

“别开玩笑了,程序员哪里需要对象!”程序员难找对象原因无非如下:1.工作时间长,恋爱时间少2.性格偏于内向,不主动3.不注意个人形象程序员爱情观:爱情就是死循环,一旦执行就陷进去了;爱上一个人,就是内存泄漏--你永远释放不了;真正爱上一个人的时候,那就是常量限定,永远不会改变;女朋友就是私有变量,只有我这个类才能调用;情人就是指针用的...

2019-02-14 08:33:00 762

转载 戏说程序猿之荒唐的需求

杀一个程序员不需要用枪,改三次需求就可以了!不得不说程序员的天敌就是无尽的需求,最恐怖的事情莫过于当你开发完的时候,客户给你提出新的需求,这个时候真是想XXXX(此处省略100W个字)而更厉害的是一些荒诞的需求,一些项目需求读起来简直是科幻小说,抽象,一点都不现实。有想象力当然很好,但想象力已经超出天际。当产品经理过来提需求时,程序员的内心是这样子的:1....

2019-02-13 17:11:00 215

转载 戏说程序猿之过年--二叔,我真不会修电脑

我们是程序员!是码农!但是对于亲戚朋友来说,我们就是修电脑修手机,甚至贴膜的....不到春节都不知道亲戚们对程序员的职业有多么深的误解。你永远无法让他们明白你每天在做什么,他们也总是能提出一些让你吐血的要求。1.二叔:大侄子,叔的路由器坏了,你帮我修修呗?程序员:叔,我不会修路由器~二叔:叔的电脑速度太慢了,那你帮我修修电脑吧?程序员:叔,我不会修电脑……...

2019-01-25 13:38:00 117

转载 深入理解设计模式(17):迭代器模式

一、什么是迭代器模式迭代器模式是针对集合对象而生的,对于集合对象而言,肯定会涉及到对集合的添加和删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作放在集合对象中,但这样的话,集合对象既承担太多的责任了,面向对象设计原则中有一条就是单一职责原则,所有我们要尽可能地分离这些职责,用不同的类取承担不同的责任,迭代器模式就是用迭代器类来承担遍历集合的职责。定义:迭代器模式...

2019-01-15 18:55:00 238

转载 深入理解设计模式(16):备忘录模式

备忘录模式(Memento Pattern)又叫做快照模式(Snapshot Pattern)或Token模式,是GoF的23种设计模式之一,属于行为模式。一、什么是备忘录模式定义:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态。备忘录模式实现的方式...

2019-01-02 19:24:00 161

转载 我的2018

2018年已经到了尾声,指缝间流逝的光阴蕴藏着努力和改变。时光荏苒,匆匆一年已经快要过去。感觉时光像流星一样匆匆冉冉,一去不返。这一年有期待有疑惑,有感动有不舍,有退缩有勇敢,有放弃有坚持,有哭泣有微笑,有转身有守护。这些都带给了我成长。1.天使降临3月9日凌晨0点41分,我媳妇把在睡梦中的我叫起来说羊水破水了。我当时就惊醒了,确认了情况,确实流了很多水。打120,...

2018-12-29 15:11:00 76

转载 深入理解设计模式(15):访问者模式

一、什么是访问者模式定义:表示一个作用于其对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。可以对定义这么理解:有这么一个操作,它是作用于一些元素之上的,而这些元素属于某一个对象结构。同时这个操作是在不改变各元素类的前提下,在这个前提下定义新操作是访问者模式精髓中的精髓。主要解决:稳定的数据结构和易变的操作耦合问题。就是把数据结构和作用于...

2018-12-24 19:40:00 369

转载 深入理解设计模式(14):中介者模式

一、什么是中介者模式用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者作为一种行为设计模式,它公开一个统一的接口,系统的不同对象或组件可以通过该接口进行通信。增加一个中介者对象后,所有的相关对象通过中介者对象来通信,而不是互相引用,所以当一个对象发生改变时,只需要通知中介者对象即可。二、中介者模...

2018-12-06 18:51:00 144

转载 深入理解设计模式(13):解释器模式

一、什么是解释器模式定义:给定一个语言,定义一个文法的一种表示, 并定义一个解释器, 这个解释器使用该表示来解释语言中的句子。解释器模式所涉及的角色如下所示:  (1)抽象表达式(Expression)角色:声明一个所有的具体表达式角色都需要实现的抽象接口。这个接口主要是一个interpret()方法,称做解释操作。  (2)终结符表达式(Terminal Ex...

2018-12-01 14:37:00 117

转载 深入理解设计模式(12):职责链模式

一、什么是职责链模式客户端发出一个请求,链上的对象都有机会来处理这一请求,而客户端不需要知道谁是具体的处理对象。这样就实现了请求者和接受者之间的解耦,并且在客户端可以实现动态的组合职责链。使编程更有灵活性。定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。其过程实际上是一个递归调用。...

2018-11-12 13:19:00 120

转载 深入理解设计模式(11):状态模式

一、什么是状态模式定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。主要解决:当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。意图:允许一个对象在其内部状态改变时改变它的行为二、状态模式的结构在该类图中,我们看到三个角色:(1)Context: 环境类,定义客...

2018-11-06 10:56:00 122

转载 深入理解设计模式(十):命令模式

命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。一、什么是命令模式命令模式是一个高内聚的模式,其定义为:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请 求排队或者记录请求日志,可以提供命令的撤销...

2018-11-01 14:30:00 88

转载 深入理解设计模式(九):模板方法模式

模板方法属于行为型设计模式,行为型设计模式主要关注对象之间职责分配和算法的问题。类行为型模式使用继承来分配类之间的职责,模板方法就是个类行为型模式。对象行为型模式使用组合来分配职责。在我们构建软件的过程中大部分时候我们都是在思考实体之间的职责,怎样的职责分配最合理,不至于过重,又不至于过轻,而且又不越权。一、什么是模板方法模式模板方法模式在一个方法中定义一个算法的骨架,而将一些步...

2018-10-24 16:38:00 106

转载 深入理解设计模式(八):观察者模式

一、什么是观察者模式在许多设计中,经常涉及多个对象都对一个特殊对象中的数据变化感兴趣,而且这多个对象都希望跟踪那个特殊对象中的数据变化,也就是说当对象间存在一对多关系时,在这样的情况下就可以使用观察者模式。当一个对象被修改时,则会自动通知它的依赖对象。观察者模式是关于多个对象想知道一个对象中数据变化情况的一种成熟的模式。观察者模式中有一个称作“主题”的对象和若干个称作“观察者”的...

2018-10-23 08:35:00 342

转载 深入理解设计模式(七):建造者模式

一、什么是建造者模式建造者模式也称生成器模式 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(依赖倒转)产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。抽象建造者...

2018-10-19 11:14:00 241

转载 深入理解设计模式(六):原型模式

一、前言单例模式可以避免重复创建消耗资源的对象,但是却不得不共用对象。若是对象本身也不让随意访问修改时,怎么办?通常做法是备份到副本,其它对象操作副本,最后获取权限合并,类似git上的PR操作。二、什么是原型模式原型模式用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。需要注意的关键字是,新的对象,类没变。.NET在System命名空间中提供了Cloneabl...

2018-10-15 16:24:00 53

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除