自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luciozhang的博客

你好,我是一个兴趣使然的打码员

  • 博客(385)
  • 问答 (5)
  • 收藏
  • 关注

原创 2022代码规范最佳实践(附web和小程序最优配置示例)

代码规范很重要,代码规范最重要的作用,就是减少代码出错的可能性。讲代码规范的文章很多,但是很可惜没有一篇文章能讲好讲全,其他文章没完成的工作,就让这篇文章来完成吧。本篇文章所讲的内容,对web开发和小程序开发(小程序开发者工具)都适用。

2022-03-02 12:10:41 920

原创 【前端探索】告别烂代码第二期 用策略模式封装分享组件

使用TypeScrpit的优势,除了类型检查,更重要的是“更好的面向接口编程”!!使用什么样的设计模式不重要!!!设计模式只是让设计符合设计原则的手段,即使没学设计模式,符合设计原则的也是好代码。设计模式还是要学!!!学了设计模式能更快设计出符合设计原则的好代码。

2022-03-02 12:06:48 365

原创 【前端探索】告别烂代码 用责任链模式封装网络请求

通过本文章,您将学到:- axios拦截器的使用- 用Typescript实现“责任链模式”- 怎么理解设计模式

2022-03-02 11:57:46 2227

原创 【三年前端开发的思考】如何有效地阅读需求?

本文是基于lucio最近对软件方法的学习,整理了lucio学习后的一些思考,分享一些,我以前“不了解”,读到后“大受震撼”的观点。

2022-01-11 08:30:00 556

原创 【前端探索】云存储用得好,静态资源没烦恼

本文主要介绍了,用COS和CDN存储静态资源,以及腾讯云API的使用。

2022-01-06 20:58:41 640

原创 【前端探索】图片加载优化的最划算实践

图片加载的优化,是前端性能优化中,最划算的一项工作,往往工作量和难度都不大,但却能给页面性能带来极大极大的提升。同一个页面,优化前和优化后,能明显体验出来天翻地覆的变化,性能数据上的提升也十分好看。

2022-01-04 20:17:53 792

原创 【前端探索】vConsole花式用法

接入vConsole确实极大方便了我们调试和发现问题,但是这样就足够了吗?不是的,我们还有更多的玩法。vConsole本身支持我们自定义插件,来实现定制化的使用需求,我们来看下基于vConsole,我们还能开发出什么样的玩法。

2021-12-31 13:20:03 2040 1

原创 【重拾算法】01-STL

做程序开发,广度和深度是同样重要的,也许现在的工作中不会直接用上,但是算法、设计模式等等这些底层的知识时候熟练掌握,是我们能不能走得更远的前提,我觉得是时候,再重拾起已经快遗忘的算法,为自己的下一个三年,储备更多的基础知识。

2021-12-30 12:38:32 933

原创 【前端探索】移动端H5生成截图海报的探索

移动端H5生成图片海报分享,是比较常见的交互方式。生成的海报中,往往会有用户的个性化信息,比如头像、昵称等等。 为了实现这种交互,我们探索一下可行的实现方案。

2021-12-28 20:47:47 1106

原创 【前端探索】移动端H5获取地理位置的探索

由于现在做的是强依赖于LBS的业务,在业务迭代的两年间,我们遇到了无数关于Web页面上获取用户位置定位的问题,多年的踩坑经验,总结成了下面的文章,下面来好好回答这些问题。

2021-12-28 12:02:20 7974

原创 【前端学习笔记】TypeScript 快速上手

视频:https://www.bilibili.com/video/BV1784y1c7V9内容概要强类型与弱类型静态类型与动态类型JavaScript自有类型系统的问题Flow静态类型检查方案TypeScript语言规范与基本应用1、强类型与弱类型(类型安全)强类型语言中不允许任意类型的隐式类型转换,语法层面的限制,在编译阶段就会报错,而不是通过逻辑判断。javascript与python2、静态类型与动态类型(类型检查)静态类型:变量声明是,类型就是确定的,声明过后,类型不允许

2021-08-28 11:09:26 214

原创 【前端探索】微信小程序跳转的探索——开放标签为什么存在?

微信开放标签看起来是为了某些特殊目的设计出来的跳转小程序途径。结合微信开发者论坛中一些提问,有些开发者妄图通过在开放标签上模拟click事件,实现对微信内拉起小程序的封装,或者直接一进入网页就拉起小程序,但是都以失败告终,可想而知,微信不想让用户在“微信内”不通过点击,就直接拉起小程序。

2021-08-28 10:43:24 859 2

原创 Web前端开发入门

浏览器工作原理浏览器的工作原理:新式网络浏览器幕后揭秘理解浏览器工作原理,包括浏览器的构成和渲染引擎的工作方式等。这里简单提取了笔记,方便复习的时候快速过一遍。JavaScript入门随便选个傻瓜教程过一遍智能社:JavaScript-从入门到精通JavaScript教程-廖雪峰进阶学一些可以装逼的名词JS 函数式编程指南js版本兼容浏览器和移动端设备(如iOS9.x不支...

2019-02-18 15:47:22 2661 1

原创 浏览器工作原理学习笔记

浏览器工作原理学习笔记浏览器的工作原理:新式网络浏览器幕后揭秘How Browsers Work: Behind the scenes of modern web browsershttps://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/https://www.html5rocks.com/en/tutorials/...

2019-02-15 19:49:48 663

原创 IOS内存管理总结

IOS内存管理总结理解 iOS 的内存管理 唐巧http://blog.devtang.com/2016/07/30/ios-memory-management/摘要引用计数循环引用弱引用Instruments工具监测动态内存泄漏 https://www.jianshu.com/p/c0aa12d91f05Analyze工具检测静态内存泄漏 https://www.jia...

2018-07-31 11:02:34 369

原创 vuejs学习笔记

1. 安装2. 入门3. 数据与方法4. 生命周期5. 模板语法插值#文本:“Mustache”语法 (双大括号)#原始 HTML:v-html 指令#特性:v-bind#使用 JavaScript 表达式指令#例子#参数#修饰符缩写#v-bind 缩写#v-on 缩写6. 计算属性例子vs 方法vs 侦听属性侦听属性...

2018-07-26 10:53:55 427

原创 iOS快速入门

国庆后lucio开始由Android开发转做iOS开发了,在这之前lucio可是什么苹果产品都没用过的小白,这里po一下小白的iOS开发学习历程,包括看的书、视频、文章,看看lucio如何从小白快速(并不快┓(´∀`)┏其实)入门iOS开发的。

2017-10-23 19:53:48 7739

原创 《Objective-C基础教程》第14章 代码块和并发性

代码块对象(通常称为代码块)是对C语言中函数的扩展。除了函数中的代码,代码块还包含变量绑定。代码块有时也称为闭包(closure)。代码块包含两种类型的绑定:自动型和托管型。自动绑定(automatic binding)使用的是栈中的内存,而托管绑定(managed binding)是通过堆创建的。

2017-10-23 11:32:51 1097

原创 《Objective-C基础教程》第13章 协议

与非正式协议一样,正式协议包含了方法和属性的有名称列表。 不同的是,正式协议要求显式地采用(在@interface声明中列出协议的名称) 采用协议之后,类就要遵守该协议,实现该协议的所有方法

2017-10-23 11:31:13 867

原创 《Objective-C基础教程》第12章 类别

利用Objective-C的动态运行时分配机制,可以为现有的类添加新方法,这些新方法在Objective-C里被称为类别(category)

2017-10-23 11:30:09 897

原创 《Objective-C基础教程》第11章 属性

属性值用于生成访问方法,减少代码量。@property声明一个新对象的属性,即自动声明属性的setter和getter方法。

2017-10-23 11:29:12 634

原创 《Objective-C基础教程》第10章 对象初始化

第10章 对象初始化创建对象的两种方法: 1、[类名 new]; 2、[[类名 alloc]init];//推荐使用

2017-10-23 11:27:19 632

原创 《Objective-C基础教程》第9章 内存管理

一个对象被从堆中分配出来之后,我们需要明确的知道是谁拥有了这个对象,因为只有拥有这个对象的所有者能够销毁它。但我们在实际使用过程中, 这个对象可能被传递给另一个对象(例如通过传递指针参数),一旦这个过程复杂,我们很难确定谁最后拥有了这个对象。使用引用计数就可以抛开这个问题,我们不需要再去关心谁拥有了这个对象,因为我们把管理权交割给了对象自己。

2017-10-23 11:23:01 798

原创 《Objective-C基础教程》第8章 Foundation Kit介绍

Foundation AppKit(OS X)和UIKit(IOS)两个UI框架的基础,包含很多有用的、面向对象的简单类和数据类型,可在IOS和OS X应用程序中兼容。

2017-10-23 11:21:22 1601

原创 Google MVP示例

Google MVP示例Google MVP架构示例:https://github.com/googlesamples/android-architectureAndroid为开发者对如何设计一个app的代码结构提供了很高的灵活性,但这也同时可能带来代码结构混乱、可读性差等问题。Google MVP示例为app的代码结构设计提供了一个参考已解决灵活性带来的问题,就像文档中说的,具体设计还需要视app

2017-07-27 20:28:13 815

转载 JAVA设计模式之单例模式

Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。  单例模式有以下特点:  1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。

2017-04-12 21:31:36 384

转载 Java虚拟机和Dalvik虚拟机的区别

Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野。它对内存的高效使用,和在低速CPU上表现出的高性能,确实令人刮目相看。 依赖于底层Posix兼容的操作系统,它可以简单的完成进程隔离和线程管理。每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例, 其代码在虚拟机的解释下得以执行。

2017-04-10 21:39:47 711

转载 Android程序内存泄漏的原因和解决办法

内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。即所谓内存泄漏。

2017-04-10 21:26:14 485

转载 Java对象的强引用,软引用,弱引用和虚引用

众所周知,Java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。

2017-04-10 21:08:52 271

转载 启动一个线程是用run()还是start()? 为什么?

启动线程肯定要用start()方法。当用start()开始一个线程后,线程就进入就绪状态,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。当cpu分配给它时间时,才开始执行run()方法(如果有的话)。start()是方法,它调用run()方法.而run()方法是你必须重写的. run()方法中包含的是线程的主体。

2017-04-10 20:38:54 5984

转载 Java多线程-线程的同步与锁

线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。

2017-04-10 20:29:43 247

转载 什么是线程安全

如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。

2017-04-09 22:19:10 369

转载 HashMap和Hashtable的区别

HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。 Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。最大的不同是,Hashtable的方法是Synchronize的,而HashM

2017-04-09 21:58:51 308

转载 数据结构基础:哈希表(HashMap)原理分析

构造一种结合两种优点的“链表散列”的数据结构,可以理解为链表的数组,HashMap就是基于其实现的。

2017-04-09 21:48:39 784

转载 java编程思想-字符串

String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。StringBuffer:字符串变量(Synchronized,即线程安全)。如果要频繁对字符串内容进行修改,出于效率考虑最好使用StringBuffer,如果想转成String类型,可以调用StringBuffer的toString()方法。StringBuilder:字符串变量(非线程安全)。在内部,StringBuilder对象被当作是一个包含字符序列的变长数组。

2017-04-09 21:27:38 622

转载 TextView图文混排基础

1. 在TextView的XML布局文件中添加Compound Drawable属性;2. 在对TextView设置字符串时,可以设置Html类型的字符串。Html.fromHtml()方法可以对Html的字符串进行处理,从而使得Html类型的内容满足TextView的要求。在给TextView设置Html类型的内容时,还可以传入一个ImageGetter,从而对Html类型内容中的图片进行处理;3. 对TextView设置内容的时候,可以传入CharSequence类型,而一些CharSequence

2017-04-09 20:46:49 897

转载 带你从源码的角度理解Volley

经过前三篇文章的学习,Volley的用法我们已经掌握的差不多了,但是对于Volley的工作原理,恐怕有很多朋友还不是很清楚。因此,本篇文章中我们就来一起阅读一下Volley的源码,将它的工作流程整体地梳理一遍。同时,这也是Volley系列的最后一篇文章了。

2017-04-09 19:55:59 321

转载 定制自己的Request

可是Volley提供给我们的Request类型就只有这么多,而我们都知道,在网络上传输的数据通常有两种格式,JSON和XML,那么如果想要请求一条XML格式的数据该怎么办呢?其实很简单,Volley提供了非常强的扩展机制,使得我们可以很轻松地定制出任意类型的Request,这也就是本篇文章的主题了。

2017-04-09 19:45:23 295

转载 使用Volley加载网络图片

Volley是将AsyncHttpClient和Universal-Image-Loader的优点集成于一身的一个框架。我们都知道,Universal-Image-Loader具备非常强大的加载网络图片的功能,而使用Volley,我们也可以实现基本类似的效果,并且在性能上也豪不逊色于Universal-Image-Loader

2017-04-09 18:18:40 255

转载 初识Volley的基本用法

Android开发团队也是意识到了有必要将HTTP的通信操作再进行简单化,于是在2013年Google I/O大会上推出了一个新的网络通信框架——Volley。Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。

2017-04-07 22:47:13 680

空空如也

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

TA关注的人

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