自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

崔小花的专栏

一只刚学会行走的程序猿

  • 博客(57)
  • 资源 (19)
  • 问答 (1)
  • 收藏
  • 关注

原创 Swift使用规范

一. 格式规范1.1 使用4个空格进行缩进推荐if value == 1 { print("")}1.2 二元运算符(+, ==, 或->)的前后都需要添加空格推荐let value = 1 + 2 if value == 1 { /* ... */} func test(w...

2019-07-24 10:11:02 609

原创 zlib-Deflate压缩算法

写在前边最近在做一些关于网络优化的一些事情,涉及到对纯数据(Data、字符串、Json等)进行压缩,用到了Deflate压缩算法,这里就简单说一下如何用OC实现 Deflate先看代码 (后面会给出详细解析)Deflate.h//// Deflate.h// CompressionTest#import <Foundation/Foundation.h>NS_...

2019-05-31 18:26:48 13590 5

原创 Swift(09)- 元组

概述元组是Swift编程语言中唯一的一种复合类型。它可以将指定有限个数的任何类型依次整理为一个对象。一个元组类型的形式为:(type1, type2, type3, … , typen)。元组中的每一种类型都可以是任意的结构体、枚举或类类型,甚至也可以是一个元组以及空元组。元组中的每个元素我们也称之为一个分量(component)。我们下面先举两个简单的例子:enum MyEnum { ...

2019-05-08 17:57:46 644

原创 Swift - iOS大转盘抽奖实现原理

今天给大家讲一个iOS抽奖的转盘实现,其实,现在这种需求,一般都是由H5来实现,也可能原生的体验会更好一些,反正项目要求,我们非(ji)常(bu)开(qing)心(yuan)地用iOS原生来实现。UI实现原理效果展示我们来看一下效果图:图层分布:1–> rotateView2–> AwardView通过图层示例我们可以清楚地看到,每一个奖项对应一个AwardVi...

2019-04-10 16:47:10 2479

原创 CABasicAnimation的使用

CABasicAnimation1. 什么是CABasicAnimationCABasicAnimation是核心动画类簇中的一个类,其父类是CAPropertyAnimation,其子类是CASpringAnimation,它的祖父是CAAnimation。它主要用于制作比较单一的动画,例如,平移、缩放、旋转、颜色渐变、边框的值的变化等,也就是将layer的某个属性值从一个值到另一个值的...

2019-04-10 16:41:02 1384

原创 Swift - UILabel部分字体变颜色

最近接了一个需求,就是需要把“今日奖金50万” 的数字加粗,变为“今日奖金**50**万”因为不想搞成两个label进行拼接,所以写了一个小demo**主要思路:** - 富文本改变某个文字的字体颜色 - 使用正则表达式筛选出数字

2019-04-03 18:14:11 3418

转载 支付宝架构解析:iOS 客户端启动性能优化初探

一、前言《支付宝客户端架构解析》系列将从支付宝客户端的架构设计方案入手,细分拆解客户端在“容器化框架设计”、“网络优化”、“性能启动优化”、“自动化日志收集”、“RPC 组件设计”、“移动应用监控、诊断、定位”等具体实现,带领大家进一步了解支付宝在客户端架构上的迭代与优化历程。启动应用是用户使用任何一款应用最必不可少的操作,从点击 App 图标到首页展示,整个启动过程的性能,严重影响着用户的体...

2018-11-16 16:11:20 1507

原创 排序算法(03)— 希尔排序

一、概述希尔排序(Shell Sort) 是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是 直接插入排序 算法的一种更高效的改进版本。希尔排序是 非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。在这之前的排序算法的时间复杂度基本都是O(n2),希尔排序是算法是突破这个时间复杂度的第一批算法之一。二、基本思想我们之前讲过 直接...

2018-11-15 17:33:09 1879

原创 排序算法(01)— 三种简单排序(冒泡、插入、选择)

一、概述排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于排序算法的实现。但是了解这些精妙的思想对我们还是大有裨益的。1.1 排序的基本概念和分类假设含有n个记录的序列为{r1,r2,…,rn},其相应的关键字分别为{k1,k2,…,kn},需确定1,2,。。。。,n的一种排列p1,p2,…,pn,使其相应的关键字满足kp1...

2018-11-15 12:20:56 2437 1

原创 排序算法(02)— 快速排序算法

快速排序算法一、概述快速排序(Quick Sort)是由东尼·霍尔(Tony Hoare)所发展的一种排序算法。他在形式化方法理论以及ALGOL60编程语言的发明中都有卓越的贡献。二、算法思想2.1 基本思想快速排序的基本思想是:通过一趟排序,将待排记录分隔成独立的两部分,其中一部分的记录的关键字总是比另一部分记录的关键字小,则可以分别对这两部分记录继续进行排序,直到整个序列有序。

2018-11-09 17:49:35 1888

原创 Swift 4.2 新特性(译)

Swift 4.2 新特性(译) 一、概述二、准备三、语言演进3.1 随机数生成3.2 动态成员查找3.3 枚举实例集合3.4 新的序列方法3.5 检测序列元素3.6 条件遵守更新3.7 Hashable 增强3.8 集合中移除元素3.9 更改布尔值3.10 新的编译器指令3.11 新的指针函数3.13 模块中的内联函数四、其他更新4.1 Swift Package Manager 更新4.2 移...

2018-11-09 14:20:00 2465

原创 Swift(08)- 函数

Swift函数Swift 函数用来完成特定任务的独立的代码块。Swift使用一个统一的语法来表示简单的C语言风格的函数到复杂的Objective-C语言风格的方法。函数声明: 告诉编译器函数的名字,返回类型及参数。 函数定义: 提供了函数的实体。函数的介绍函数相当于OC中的方法 函数的格式如下func 函数名(参数列表) -> 返回值类型 { 代码块 ...

2018-03-15 16:07:55 198

原创 Swift(07)- 字典

字典字典的介绍字典允许按照某个键来访问元素 字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合 键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的 Swift中的字典 Swift字典类型是Dictionary,也是一个泛型集合 字典的初始化Swift中的可变和不可变字典 使用let修饰的数组是不可变字典 使用var修饰的数组是...

2018-03-14 15:31:01 139

原创 Swift(06)- 数组

数组数组的介绍数组(Array)是一串有序的由相同类型元素构成的集合 数组中的集合元素是有序的,可以重复出现 Swift中的数组 swift数组类型是Array,是一个泛型集合 数组的初始化数组分成:可变数组和不可变数组 使用let修饰的数组是不可变数组 使用var修饰的数组是可变数组 // 定义一个可变数组,必须初始化才能使用var array1 : [Str...

2018-03-14 15:28:15 200

原创 Swift(05)- 字符串

字符串的介绍字符串在任何的开发中使用都是非常频繁的 OC和Swift中字符串的区别 在OC中字符串类型时NSString,在Swift中字符串类型是String OC中字符串@"",Swift中字符串"" 使用String的原因 String是一个结构体,性能更高 NSString是一个OC对象,性能略差 String支持直接遍历 Swift提供了...

2018-03-13 19:29:10 167

原创 Swift(04)- 循环

循环的介绍在开发中经常会需要循环 常见的循环有:for/while/do while. 这里我们只介绍for/while,因为for/while最常见for循环的写法最常规写法// 传统写法for var i = 0; i < 10; i++ { print(i)}区间for循环for i in 0..<10 { print(i)}...

2018-03-13 17:06:25 425

原创 Swift(03)- 逻辑分支

一. 分支的介绍分支即if/switch/三目运算符等判断语句 通过分支语句可以控制程序的执行流程二. if分支语句和OC中if语句有一定的区别 判断句可以不加() 在Swift的判断句中必须有明确的真假 不再有非0即真 必须有明确的Bool值 Bool有两个取值:false/true // 演练一:let a = 10// 错误写法://if...

2018-03-13 16:05:30 179

原创 Swift(02)- Swift中数据类型

Swift类型的介绍Swift中的数据类型也有:整型/浮点型/对象类型/结构体类型等等 先了解整型和浮点型 整型 有符号 Int8 : 有符号8位整型 Int16 : 有符号16位整型 Int32 : 有符号32位整型 Int64 : 有符号64位整型 Int : 和平台相关(默认,相当于OC的NSInteger) 无符号 UInt8 : 无符号...

2018-03-13 15:10:55 166

原创 Swift(01)— 常量&变量

什么是常量和变量在Swift中规定:在定义一个标识符时必须明确说明该标识符是一个常量还是变量 使用let来定义常量,定义之后不可以修改 使用var来定义变量,定义之后可以修改常量和变量的基本使用import UIKitlet a : Int = 10// 错误写法,当一个字段定义为常量时是不可以修改的// a = 20var b : Int = 20// 因为b定义为...

2018-03-13 15:06:04 154

原创 duplicate symbol SDK中重复引用公共变量的错误

今天在项目里拖进了一个第三方SDK的源码,项目编译时fail,错误信息是duplicate symbols for architecture arm64。最后终于找到问题,需要修改Build Settings里的No Common Blocks为NO。No Common Blocks的Quick Help信息如下:GCC_NO_COMMON_BLOCKS In C, allocate

2016-09-06 18:06:45 946

原创 dyld: Symbol not found: ___NSArray0__

错误描述:dyld: Symbolnot found: ___NSArray0__ Referenced from: /private/var/mobile/Containers/Bundle/Application/5C6F5D69-5D14-4C07-BEA4-F410C18C66CC/DGBao.app/DGBao Expected in: /System/Library

2016-08-16 13:28:49 2561

原创 iOS开发UI进阶篇 — 原生二维码、条形码扫描

提到二维码条形码开发,我们就不得不提两大开源组件 ZBar 与 ZXing,如果搞过二维码开发的一定对着俩货不陌生,下面我们来总结一下优缺点:ZBarZBar在扫描的灵敏度上,和内存的使用上相对于ZXing上都是较优的,但是对于 “圆角二维码” 的扫描确很困难。http://rdcworld-iphone.blogspot.in/2013/03/how-to-use-barcode...

2016-04-09 13:51:21 2333

原创 iOS开发技巧--Git的使用

Git介绍1. 集中式2. 分布式SSH密钥生成存在 https或 ssh 协议https://git.oschina.net/ericbluce/[email protected]:ericbluce/hcxy112.git官方网站https://git.oschina.net/开源中国社区成立于2008年8月,其目的...

2016-04-07 00:12:41 2788

转载 Objective-C之run loop详解

Objective-C之run loop详解做了一年多的IOS开发,对IOS和Objective-C深层次的了解还十分有限,大多还停留在会用API的级别,这是件挺可悲的事情。想学好一门语言还是需要深层次的了解它,这样才能在使用的时候得心应手,出现各种怪异的问题时不至于不知所措。废话少说,进入今天的正题。不知道大家有没有想过这个问题,一个应用开始运行以后放在那里,如果不对它进行任

2016-03-15 14:01:23 658

原创 iOS沙盒目录清单

一、 Documents  用于存储用户生成的文件、其他数据及其他程序不能重新创建的文件,默认文件通过iCloud自动备份。如果不需要iCloud备份,则设置标记  NSURLIsExcludedFromBackupKey,注明不备份  1.1 读取Documents目录代码  NSArray *paths = NSSearchPathForDirectorie

2016-03-06 19:48:10 449

原创 iOS网络基础(1) — TCP、UDP、URL和HTTP

一、URL【概念】NSURL    URL:Uniform Resource Locator统一资源定位符        是资源在网路上的地址,位置,每个资源都有一个唯一的URL【例子】    百度    http://www.baidu.com/    爱限免    http://iappfree.candou.com:8080/free/applications/limited?c...

2016-03-06 19:38:45 1161

原创 iOS开发UI进阶篇 — 基于手势识别的侧滑展开菜单栏

今天给大家详细介绍一下IOS手势的用法,最后给大家分享一点干货,《基于手势识别的侧滑展开菜单栏》,这个功能在开发中会经常用到,是非常重要的。一、UIGestureRecognizer介绍手势在ios经常用到,可以说是非常重要的存在,在之前,大部分都是通过touch方法来进行手势的判定,但是在ios系统3.2之后,添加了UIGestureRecongnizer抽象类,抽象出了几个子类UITapGes...

2016-02-28 20:33:30 3682

原创 IOS开发UI进阶篇 — 广告轮播器

最近几天比较忙,所以更新慢了一点,UI基础空间就不跟大家讲了。如果作为初学者想要很好地运用一门语言的话,我个人有几点建议不要去看太多的书,太多的书只会让你无所适从不要把一本书从头翻到尾的那样一个控件一个控件的去学,那样很慢,也很吃力,应该从一个比较综合或者实用的实力入手不要眼高手低(这点真的很重要)今天给大家创建一个比较常用的广告轮播器,先来看一下效果关于UIscr

2016-02-27 20:48:37 661

原创 IOS开发基础Object-C( 15)-- block的使用方法

今天来给大家简单讲解一下block的用法,在讲解block之前,我们先来理解一下闭包的概念1.闭包的概念我们先来看一下脚本语言的闭包function funA(callback){ alert(callback());}function funB(){ var str = "Hello World"; // 函数funB的局部变量,函数funA的非局部变量

2016-01-16 10:03:08 758

原创 OC算法 输出手机号码归属地

输出手机号码归属地 *1.读取文件中的数据文件如下:5582|1860101|010|北京市|北京联通GSM卡5583|1860100|010|北京市|北京联通GSM卡5584|1368141|010|北京市|北京移动神州行卡5585|1860111|010|北京市|北京联通GSM卡5586|1358198|010|北京市|北京移动动感地带卡5587|13611

2016-01-06 18:17:14 2197

转载 OC各种类型之间转化的方法

NSNumber转NSString:假设现有一NSNumber的变量A,要转换成NSString类型的B方法如下:NSNumberFormatter* numberFormatter = [[NSNumberFormatteralloc] init];B = [numberFormatter stringFromNumber:A];[numberForm

2016-01-06 11:05:35 826

原创 IOS开发基础Object-C( 14)-- 字符串的使用方法

今天来给大家介绍一下 Foundation 框架关于字符串的使用方法,方法比较多,功能介绍我都写在代码里了。好了不多说了,上代码我们来建立一个新的类StringTest我们来声明一下StringTest.h#import <Foundation/Foundation.h>@interface StringTest : NSObject+ (void...

2016-01-04 21:14:05 1371

原创 IOS开发基础Object-C(13)—— protocol协议

今天,来给大家讲解一下OC中@protocol的用法,什么是protocol呢?从字面的意思上来说是协议的意思,那么到底什么是协议呢?那我们来普及一下协议的概念。协议的概念(1)协议相当于没有与类相关联的接口,他申明一组方法,列出他的参数和返回值,共享给其他类使用,然后不进行实现,让用它的类来实现这些方法(2)在任何一个类中,只有声明了协议,都可以实现协议里的方法。(3)协议不是一

2016-01-03 16:06:53 906 4

原创 IOS开发基础Object-C(12)—单例模式

单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。1.单例模式的要点:  显然单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。2.单例模式的优点:  1.实例控制:Singleton 会阻止其他对象实例化其自己的 Singleton 对象的副本

2015-12-30 22:11:31 2127 3

原创 数据结构(1)—— 排序算法汇总

最近很多同学问我关于排序算法的问题,像冒泡排序,选择排序。学过数据结构的还好说,对于没有接触过数据结构的同学来说内心基本是属于崩溃的。下面我就来总结一下数据结构中的八大排序算法。概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说的八大排序就是内部排序 排序相关的概念排序(按关键字大小顺序排

2015-12-17 23:10:25 1531

原创 IOS开发基础Object-C(11)—Category语法

谢天谢地,糟心的内存管理终于讲完了,我们的OC内存管理也就先告一段落了,以后还是需要多联系多理解,记住,理解最重要。今天呢,我们再来讲一个很重要的语法——Category,根据字面的意思呢就是种类分类。这是一个OC特有的语法,在Java中是没有的,而且在项目中经常被用到。我查了很多的资料,发现Category并没有一个很明确的定义,如果要给他一个定义的话,我觉得称它为扩展类比较合适,为

2015-11-28 17:14:18 2374 1

原创 IOS开发基础Object-C(10)—OC内存管理(4)-autorelease使用

最想必大家近也是被内存管理整的焦头烂额,大家也就再痛苦这么一下,今天的autorelease已经是内存管理的最后一章了,今天的内容完成我们的内存管理也就先告一段落了。希望大家一定要理解内存管理,因为内存管理在OC中的地位可以说相当于C语言中的指针。虽然现在引进了ARC机制,但是大家也要理解内存管理的过程和原理,否则到时动不动来个内存泄露,而且还找不到错误所在,那感觉.....真(ri)是(le)爽

2015-11-27 11:21:22 2990

原创 HTML5与微信开发(2)-视频播放事件及API属性

HTML5 的视频播放事件想必大家已经期待很久了吧,在HTML4.1、4.0之前我们如果在网页上播放视频无外乎两种方法: 第一种:安装FLASH插件或者微软发布的插件 第二种:在本地安装播放器,在线播放组件之类的 因为并不是所有的浏览器都安装了FLASH插件,就算安装也不一定所有的都能安装成功。像苹果系统就是默认禁用FLASH的,安卓虽然一开始的时候支持FLASH,但是在安卓4.0以后也开始不

2015-11-26 11:59:05 8615

原创 HTML5与微信开发(1)-HTML标签语法变化和使用概念

什么是HTML5HTML5 是下一代 HTML 标准。 HTML , HTML 4.01的上一个版本诞生于 1999 年。自从那以后,Web 世界已经经历了巨变。 HTML5 仍处于完善之中。然而,大部分现代浏览器已经具备了某些 HTML5 支持。HTML5是如何发展的HTML5 是 W3C 与 WHATWG 合作的结果,WHATWG 指 Web Hypertext Application Te

2015-11-25 15:00:59 3914 2

原创 IOS开发基础Object-C(09)—OC内存管理(3)-@property的参数详解

在 IOS开发基础Object-C(06)—@property 和@synthesize语法中我们已经大体了解了@property的参数,今天我们就来详细解释一下@property关于内存管理的用法。首先,我们来新建两个类,Book和Student类Student.h#import #import "Book.h"@interface Student :NSObject

2015-11-23 19:35:48 1911

swift-那些超棒的服务器端Swift项目

那些超棒的服务器端Swift 项目

2021-04-28

Web性能权威指南(高清版).pdf

《Web性能权威指南》是谷歌公司高性能团队核心成员的权威之作,堪称实战经验与规范解读完美结合的产物。《Web性能权威指南》目标是涵盖Web开发者技术体系中应该掌握的所有网络及性能优化知识。全书以性能优化为主线,从TCP、UDP和TLS协议讲起,解释了如何针对这几种协议和基础设施来优化应用。然后深入探讨了无线和移动网络的工作机制。最后,揭示了HTTP协议的底层细节,同时详细介绍了HTTP 2.0、 XHR、SSE、WebSocket、WebRTC和DataChannel等现代浏览器新增的具有革命性的新能力。 《Web性能权威指南》适合所有Web应用及站点开发人员阅读,包括但不限于前端、后端、运维、大数据分析、UI/UX、存储、视频、实时消息,以及性能工程师。

2019-03-07

MILD快慢客(iOS项目源码)

很不错的iOS项目源码,属于杂志类项目。很适合学习开发,在性能优化上处理很到位,希望大家共同学习,共同进步。

2019-01-10

SQL语句教程(完本高清PDF)

SQL 语法 无论您是一位 SQL 的新手,或是一位只是需要对 SQL 复习一下的资料仓储业界老将,您 就来对地方了。这个 SQL 教材网站列出常用的 SQL 指令,包含以下几个部分: ♦ SQL 指令: SQL 如何被用来储存、读取、以及处理数据库之中的资料。 ♦ 表格处理: SQL 如何被用来处理数据库中的表格。 ♦ 进阶 SQL: 介绍 SQL 进阶概念,以及如何用 SQL 来执行一些较复杂的运算。 ♦ SQL 语法: 这一页列出所有在这个教材中被提到的 SQL 语法。 对于每一个指令,我们将会先列出及解释这个指令的语法,然后用一个例子来让读者了解这 个指令是如何被运用的。当您读完了这个网站的所有教材后,您将对 SQL 的语法会有一个 大致上的了解。另外,您将能够正确地运用 SQL 来由数据库中获取信息。笔者本身的经验 是,虽然要对 SQL 有很透彻的了解并不是一朝一夕可以完成的,可是要对 SQL 有个基本 的了解并不难。希望在看完这个网站后,您也会有同样的想法。

2019-01-10

水果忍者HTML5+JS源码

说起《水果忍者》,恐怕没几个人不认识的吧。它是 iOS、Android 等手机平台上一款极受欢迎的休闲游戏,不得不说,它简单有趣的“切水果”方式真心讨好了不少人,无论是男女老少,多少都有几个人喜欢无聊时砍几把~ 虽然水果忍者官方并没有推出网页版,但网上已有很多仿制品了 (大多由Flash制作)。而今天要介绍的则是一个由 HTML5+Javascript 技术编写的“水果忍者”,和之前介绍过的HTML5版本的割绳子、宝石迷阵一样,你完全不需要下载或安装任何东西,直接在浏览器就能玩游戏!不过呢,重点是这个山寨网页版的水果忍者提供了完整的源代码,如果你对HTML5游戏开发有兴趣,不妨下载回去学习学习了。     由百度JS小组开发的HTML5水果忍者游戏,基于HTML5实现,效果非常的逼真,虽然对于原版来说有些欠缺,但是已经很不错了,代码完全开源,大家还可以到github贡献自己的代码,让他更加的强大。

2018-12-27

《HTML5从入门到精通》中文学习教程.pdf

HTML 5 将带来什么?以下是 HTML 5 草案中最激动人心的部分: 全新的,更合理的 Tag,多媒体对象将不再全部绑定在 object 或 embed Tag 中,而是视频有视频 的 Tag,音频有音频的 Tag。本地数据库。这个功能将内嵌一个本地的 SQL 数据库,以加速交互式搜 索,缓存以及索引功能。同时,那些离线 Web 程序也将因此获益匪浅。不需要插件的富动画。Canvas 对象将给浏览器带来直接在上面绘制矢量图的能力,这意味着我们可以脱离 Flash 和 Silverlight,直 接在浏览器中显示图形或动画。一些最新的浏览器,除了 IE,已经开始支持 Canvas。浏览器中的真正 程序。将

2018-12-27

代码之美(中文完整版).pdf

主要讲述了计算机系统的开发领域。在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。 本书介绍了人类在一个奋斗领域中的创造性和灵活性:计算机系统的开发领域。在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。 本书33章,有33位作者,每位作者贡献一章。每位作者都将自己心目中对于“美丽的代码”的认识浓缩在一章当中,张力十足。33位大师,每个人对代码之美都 有自己独特的认识,现在一览无余的放在一起,对于热爱程序的每个人都不啻一场盛宴。 虽然本书的涉猎范围很广,但也只能代表一小部分在这个软件开发这个最令人兴奋领域所发生的事情。 本书收录的是软件设计领域中的一组大师级作品。每一章都是由一位或几位著名程序员针对某个问题给出的完美的解决方案,并且细述了这些解决方案的巧妙之处。 本书既不是一本关于设计模式的书,也不是一本关于软件工程的书,它告诉你的不仅仅是一些正确的方式或者错误的方式。它让你站在那些优秀软件设计师的肩膀上,从他们的角度来看待问题。 本书给出了38位大师级程序员在项目设计中的思路、在开发工作中的权衡,以及一些打破成规的决策。 第1章 正则表达式匹配器 。 1.1 编程实践 1.2 实现 1.3 讨论 1.4 其他的方法 1.5 构建 1.6 小结 第2章 Subversion中的增量编辑器:像本体一样的接口 2.1 版本控制与目录树的转换 2.2 表达目录树的差异 2.3 增量编辑器接口 2.4 但这是不是艺术? 2.5 像体育比赛一样的抽象 2.6 结论 第3章 我编写过的最漂亮代码 3.1 我编写过的最漂亮代码 3.2事倍功半 3.3 观点 3.4 本章的中心思想是什么? 3.5 结论 3.6致谢 第4章 查找 4.1. 耗时 4.2. 问题:博客数据 4.3. 问题:时间,人物,以及对象? 4.4. 大规模尺度的搜索 4.5. 结论 第5章 正确、优美、迅速(按重要性排序):从设计XML验证器中学到的经验 5.1 XML验证器的作用 5.2 问题所在 5.3 版本1:简单的实现 5.4 版本2:模拟BNF语法——复杂度O(N) 5.5 版本3:第一个复杂度O(log N)的优化 5.6 版本4:第二次优化:避免重复验证 5.7 版本5:第三次优化:复杂度 O(1) 5.8 版本 6:第四次优化:缓存(Caching) 5.9 从故事中学到的 第6章 集成测试框架:脆弱之美 6.1. 三个类搞定一个验收测试框架 6.2. 框架设计的挑战 6.3. 开放式框架 6.4. 一个HTML解析器可以简单到什么程度? 6.5. 结论 第7章 美丽测试 7.1 讨厌的二分查找 7.2 JUnit简介 7.3将二分查找进行到底 7.4 结论 第8章 图像处理中的即时代码生成 第9章 自顶向下的运算符优先级 9.1. JavaScript 9.2. 符号表 9.3. 语素 9.4. 优先级 9.5. 表达式 9.6. 中置运算符 9.7. 前置操作符 9.8. 赋值运算符 9.9. 常数 9.10. Scope 9.11. 语句 9.12. 函数 9.13. 数组和对象字面量 9.14. 要做和要思考的事 第 10章 追求加速的种群计数 10.1. 基本方法 10.2. 分治法 10.3. 其他方法 10.4. 两个字种群计数的和与差 10.5. 两个字的种群计数比较 10.6. 数组中的1位种群计数 10.7. 应用 第11章 安全通信:自由的技术 11.1 项目启动之前 11.2剖析安全通信的复杂性 11.3 可用性是关键要素 11.4 基础 11.5 测试集 11.6 功能原型 11.7 清理,插入,继续…… 11.8 在喜马拉雅山的开发工作 11.9 看不到的改动 11.10 速度确实重要 11.11 人权中的通信隐私 11.12 程序员与文明 第12章 在BioPerl里培育漂亮代码 12.1. BioPerl和Bio::Graphics模块 12.2. Bio::Graphics的设计流程 12.3. 扩展Bio::Graphics 12.4. 结束语和教训 第13章 基因排序器的设计 13.1 基因排序器的用户界面 13.2 通过Web跟用户保持对话 13.3. 多态的威力 13.4 滤除无关的基因 13.5 大规模美丽代码理论 13.6 结论 第14章 优雅代码随硬件发展的演化 14.1. 计算机体系结构对矩阵算法的影响 14.2 一种基于分解的方法 14.3 一个简单版本 14.4 LINPACK库中的DGEFA子程序 14.5 LAPACK DGETRF 14.6递归LU 14.7 ScaLAPACK PDGETRF 14.8 针对多核系统的多线程设计 14.9 误差分析与操作计数浅析 14.10 未来的研究方向 14.11 进一步阅读 第15章 漂亮的设计会给你带来长远的好处 15.1. 对于漂亮代码的个人看法 15.2. 对于CERN库的介绍 15.3. 外在美(Outer Beauty) 15.4. 内在美(Inner Beauty ) 15.5. 结论 第16章,Linux内核驱动模型:协作的好处 16.1 简单的开始 16.2 进一步简化 16.3 扩展到上千台设备 16.4 小对象的松散结合 第17章 额外的间接层 17.1. 从直接代码操作到通过函数指针操作 17.2. 从函数参数到参数指针 17.3. 从文件系统到文件系统层 17.4. 从代码到DSL(Domain-Specific Language) 17.5. 复用与分离 17.6.分层是永恒之道? 第18章 Python的字典类:如何打造全能战士 18.1. 字典类的内部实现 18.2. 特殊调校 18.3. 冲突处理 18.4. 调整大小 18.5. 迭代和动态变化 18.6. 结论 18.7. 致谢 第19章 NumPy中的多维迭代器 19.1 N维数组操作中的关键挑战 19.2 N维数组的内存模型 19.3NumPy迭代器的起源 19.4 迭代器的设计 19.5 迭代器的接口 19.6 迭代器的使用 19.7 结束语 第20章 NASA火星漫步者任务中的高可靠企业系统 20.1 任务与CIP 20.2 任务需求 20.3 系统架构 20.4 案例分析:流服务 20.5 可靠性 20.6 稳定性 20.7 结束语 第21章 ERP5:最大可适性的设计 21.1 ERP的总体目标 21.2 ERP5 21.3 Zope基础平台 21.4 ERP5 Project中的概念 21.5 编码实现ERP5 Project 21.6 结束语 第22章 一匙污水 第23章 MapReduce分布式编程 23.1 激动人心的示例 23.2 MapReduce编程模型 23.3 其他MapReduce示例 23.4 分布式MapReduce的一种实现 23.5 模型扩展 23.6 结论 23.7 进阶阅读 23.8 致谢 23.9 附录:单词计数解决方案 第24章 美丽的并发 24.2 软件事务内存 24.3 圣诞老人问题 24.4 对Haskell的一些思考 24.6 致谢 第25章 句法抽象:syntax-case 展开器 25.1. syntax-case简介 25.2. 展开算法 25.3. 例子 25.4. 结论 第26章 节省劳动的架构:一个面向对象的网络化软件框架 26.1 示例程序:日志服务 26.2 日志服务器框架的面向对象设计 26.3 实现串行化日志服务器 26.4 实现并行日志服务器 26.5 结论 第27章 以REST方式集成业务伙伴 27.1 项目背景 27.2 把服务开放给外部客户 27.3 使用工厂模式转发服务 27.4 用电子商务协议来交换数据 27.5 结束语 第28章 漂亮的调试 28.1 对调试器进行调试 28.2 系统化的过程 28.3 关于查找的问题 28.4 自动找出故障起因 28.5 增量调试 28.6 最小化输入 28.7 查找缺陷 28.8 原型问题 28.9 结束语 28.10 致谢 28.11 进一步阅读 第29章 把代码当作文章 第30章 当你与世界的联系只有一个按钮 30.1 基本的设计模型 30.2 输入界面 30.3 用户界面的效率 30.4 下载 30.5 未来的发展方向 第31章 Emacspeak:全功能音频桌面 31.1 产生语音输出 31.2 支持语音的Emacs 31.3 对于在线信息的简单访问 31.4 小结 31.5 致谢 第32章 变动的代码 32.1 像书本一样 32.2 功能相似的代码在外观上也保持相似 32.3 缩进带来的危险 32.4 浏览代码 32.5 我们使用的工具 32.6 DiffMerge的曲折历史 32.7 结束语 32.8 致谢 32.9 进一步阅读 第33章 为“The Book”编写程序 33.1 没有捷径 33.2 给Lisp初学者的提示 33.3 三点共线 33.4 不可靠的斜率 33.5 三角不等性 33.6 河道弯曲模型 33.7 “Duh!”——我的意思是“Aha!” 33.8 结束语 33.9 进一步阅读 后记

2018-11-14

仿京东地址选择器(swift 版本)

仿京东地址选择器(swift 版本) 1.三级菜单联动 2.支持滑动滚动,点击滚动 3.Swift版本,封装结构完整 4.调用简单方便

2018-06-13

Android编程权威指南

Big Nerd Ranch 是美国一家专业的移动开发技术培训机构。本书主要以其 Android 训练营教学课程为基 础,融合了几位作者多年的心得体会,是一本完全面向实战的 Android 编程权威指南。全书共 34 章,详细 介绍了 8 个 Android 应用。通过这些精心设计的应用,读者可掌握很多重要的理论知识和开发技巧,获得最 前沿的开发经验。 如果你熟悉 Java 语言,或者了解面向对象编程,那就立刻开始 Android 编程之旅吧!

2018-03-13

设计模式之禅2.pdf

如果说“四人帮”的《设计模式》是设计模式领域的“圣经”,那么之后出版的各种关于设计模式的书都可称之为“圣经”的“注释版”或“圣经的故事”。本书是得道者对“圣经”的“禅悟”,它既不像“圣经”那样因为惜字如金、字字珠玑而深奥、晦涩和难懂,又比“圣经”的“注释版”更深刻和全面、更通俗和生动、更接近开发者遇到的实践场景,更具指导性。本书兼收并蓄、博采众长,也许是设计模式领域里的下一个里程碑之作。 全书共分为四部分,第一部分从原理的角度阐述了面向对象程序设计的6大原则;第二部生动地讲解和剖析了23种常见的设计模式,并进行了扩展,通俗易懂,趣味性极强而又紧扣模式的核心;第三部分对各种相关联的设计模式进行了深入分析和比较,旨在阐明各种设计模式比较理想的应用场景和它们之间的区别;第四部分探讨了设计模式的混编,讲解了如何在实际开发中将各种设计模式混合起来使用,以发挥设计模式的最大效用。最后,本书还附有一份设计模式彩图,可以裁剪,便于参考。 禅宗曰:“教外别传,不立文字”,禅的境界本不该用文字来描述,言语也道不明白,但为了传道,悟道者仍要藉言语来说明。 何为禅?一种境界,一种体验,一种精神领域的最高修为。何为设计模式?对面向对象思想的深刻理解,对软件设计方法和编码经验的完美总结。 本书是创造者的心路历程,是实践者的智慧结晶,是得道者的禅悟。它通过幽默风趣的故事和通俗易懂的讲述方式,引导你悟透设计模式的真谛。 如果你在思考下面这些问题,也许本书就是你想要的! 1. 业务分析如此细致,架构设计如此健壮、可靠和稳定,但为何仍然无法适应业务发展的需要,而且生命周期只有短短几年? 2. 为何你的团队协作了多年却始终无法沉淀出可复用的组件或构件?依赖和解耦的标准是什么?如何才能做到既不相互“刺伤”,又能相互“温暖”? 3. 架构设计时,如何才能实现高可扩展性和易维护性?如何避免维护成本大于开发成本的悲哀现状? 4. 交易型的系统如何大规模地借用设计模式的思想,以实现高性能、高可靠性的建设目标? 5. 架构设计时,如果遇到这样的情况:“有一个请求者和多个处理者,同时要求二者之间解耦,以便处理者可以动态地扩展”,这该如何处理? 6. 如果遇到过这样场景:“多个对象依赖一个对象,该对象状态改变时所有的依赖者都要相应地获得通知,并且要求对象间松散耦合”,这该如何处理? 7. 万物皆对象,不可能把每一个对象都分解到原子级别,如何适度地细化对象的颗粒度?怎样界定对象的粒度大小? 8. 同为创建类模式,工厂方法模式和建造者模式都可以创建对象,它们之间有何区别?适用的场景又有何不同? 9. 状态模式和策略模式的通用类图如此相似,在实际的应用场景中如何区分它们? 10. 如何使命令模式和责任链模式完美搭配并建立一个高可扩展性的系统架构,以解决客户端和处理者都参数化的场景? 11. 观察者模式和责任链模式真的没有可比性吗?它们的主要区别何在?实际应用中如何使用? 12. 组合模式只能用来表示部分和整体的关系吗?其扩展出的规格模式是如何实现的?透明的组合模式和安全的组合模式有何区别?

2018-03-13

百思不得姐iOS客户端框架源码

百思不得姐 iOS客户端框架源码,MVC框架,适合初学者学习

2018-02-07

ios拖动手势展开菜单栏

iOS手势 APP主流结构 侧滑展开菜单栏

2016-02-28

ios 项目广告轮播器

关于UIscrollVIew的详细组件我就不一一介绍了,直接上代码,代码中用到了那些属性我会详细注解,至于剩下就需要大家的自学能力了

2016-02-27

IOS应用开发的常规架构

ios应用开发的常规架构,包括导航栏,UITableView,集合空间的使用,手势策划等等应用

2016-02-27

51单片机wifi应用例程

51单片机wifi应用例程 经典案例,直接解压即可

2013-07-11

51单片机教程:单片机寻址方式与指令系统

单片机寻址方式与指令系统以及单片机数据传送类指令,很详细,很强大

2013-04-16

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

TA关注的人

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