Cocoa 并发编程 iOS 中的多线程,是 Cocoa 框架下的多线程,通过 Cocoa 的封装,可以让我们更为方便的进行多线程编程。 在介绍 Cocoa 并发编程之前,我们先理清会提到的几个术语: 线程:就是我们通常提到的线程,在进程中可以用线程去执行一些主进程之外的代码。OS X 中线程的实现基于 POSIX 的 pthread API。 进程:也是我们通常意义上提到的进程,一个正在执行中的
Cocoa 中网络编程层次结构分为三层,自上而下分别是: Cocoa 层:NSURL,Bonjour,Game Kit,WebKit Core Foundation 层:基于 C 的 CFNetwork 和 CFNetServices OS 层:基于 C 的 BSD socket 这里主要介绍处于 Cocoa 层的基于 NSURL 的一系列方法。在 iOS7 之前,主要使用的网络编程 API 是
概述 JavaScript 层层回调的异步编程让人望而生畏。而 Promise 的诞生就是为了解决这个问题,它提供了一种 Future 模式,大大简化了异步编程的复杂性。而 Promise/A+(中文版)是一个通用的、标准化的规范,它提供了一个可互操作的 then 方法的实现定义。Promise/A+ 规范的实现有很多,它们的共同点就是都有一个标准的 then 方法,而其它的 API 则各不相同。
前面介绍了 beego 的一些基础信息,如果你想通过 beego 使用更多高级的功能,那么这里就是你需要的资料。 进程内监控 beego 默认会开启两个端口,一个是 8080 应用端口,对外服务,一个是 8088 端口,用于监控进程内的信息,执行定时任务等。 过滤器 过滤器极大的方便了用户对业务逻辑的扩充,用户可以通过过滤器实现用户认证,访问日志记录、兼容性跳转等。 热升级 热升级是业务开发中经常
Aspect Oriented Programming (AOP,面向切面编程) 在 Objective-C 社区内没有那么有名,但是 AOP 在运行时可以有巨大威力。 但是因为没有事实上的标准,Apple 也没有开箱即用的提供,也显得不重要,开发者都不怎么考虑它。 引用 Aspect Oriented Programming 维基页面: An aspect can alter the behav
编程的抽象 我们将问题空间中的元素以及它们在方案空间的表示物称作“对象”(Object)。当然,还有一些在问题空间没有对应体的其他对象。通过添加新的对象类型,程序可进行灵活的调整,以便与特定的问题配合。与现实世界的“对象”或者“物体”相比,编程“对 象”与它们也存在共通的地方:它们都有自己的状态(state)和行为(behavior)。比如,狗的状态有名字、颜色等,狗的行为有叫唤、摇尾等。 软件世
本章主题 ♦ Python的Web应用:简单的Web客户端 ♦ urlparse和urllib模块 ♦ 高级的Web客户端 ♦ 网络爬虫/蜘蛛/机器人 ♦ CGI:帮助Web服务器处理客户端数据 ♦ 创建CGI应用程序 ♦ 在CGI中使用Unicode ♦ 高级CGI ♦ 创建Web服务器 ♦ 相关模块 20.1 介绍 本章是有关Web编程的介绍,可以帮助你对Python在因特网上的各种基础应用有
在至今我们编写的所有程序中,我们曾围绕函数设计我们的程序,也就是那些能够处理数据的代码块。这被称作面向过程(Procedure-oriented)的编程方式。还有另外一种组织起你的程序的方式,它将数据与功能进行组合,并将其包装在被称作“对象”的东西内。在大多数情况下,你可以使用过程式编程,但是当你需要编写一个大型程序或面对某一更适合此方法的问题时,你可以考虑使用面向对象式的编程技术。 类与对象是面
C++语言提供了计算机程序设计的结构化和规则化方法。我们现在要介绍C++编程,并用几个例子演示C++的许多重要特性.每个例子一次分析一条语句。第2章介绍C++中结构化编程的详细处理,然后到第5章一直使用结构化编程方法。 第6章开始介绍C++面向对象编程,由于面向对象编程在本书的核心重要性,因此前五章各有一节“有关对象的思考”。这些小节介绍面向对象编程的概念和实例,让读者设计和实现面向对象的C++程
20世纪60年代,许多大型软件的开发遇到了严重困难。常常推迟软件计划,因而使成本大大超过预算,而且最终产品也不可靠。人们开始认识到,软件开发是项复杂的活动,比原来所预想的要复杂得多。20世纪60年代的研究结果是结构化编程(structured programming)的出现,用规定的方法编写程序比非结构化编程能产生更清晰、更容易测试/调试以及更容易修改的程序。本书的第2章将介绍结构化编程原理。第3
通过对四则运算的学习,已经初步接触了Python中内容,如果看官是零基础的学习者,可能有点迷惑了。难道在IDE里面敲几个命令,然后看到结果,就算编程了?这也不是那些能够自动运行的程序呀? 的确。到目前位置,还不能算编程,只能算会用一些指令(或者叫做命令)来做点简单的工作。并且看官所在的那个IDE界面,也是输入指令用的。 列位稍安勿躁,下面我们就学习如何编写一个真正的程序。工具还是那个IDLE,但是
孰能浊以澄?静之徐清; 孰能安以久?动之徐生。 老子,《道德经》 计算机的核心部分称为处理器,它执行构成我们程序的各个步骤。 到目前为止,我们看到的程序都是让处理器忙碌,直到他们完成工作。 处理数字的循环之类的东西,几乎完全取决于处理器的速度。 但是许多程序与处理器之外的东西交互。 例如,他们可能通过计算机网络进行通信或从硬盘请求数据 - 这比从内存获取数据要慢很多。 当发生这种事情时,让处理器处
面向对象编程是一种命令式编程,主要有基于类和基于原型两种方式。 基于类的面向对象语言是建立于类和实例这两个不同实体的概念之上: 类定义了一些可使特定的对象集合特征化的属性,并且是抽象的,而不是其所描述的对象集合中的任何特定的个体; 实例是一个类实例化的结果,是其成员之一,并且具有和父类完全一致的属性,不多不少。 基于类和基于原型的面向对象语言之间的不同大致可以概括为: 对比项 基于类 基于原型 类
背景 在并发编程方面,JDK提供了Future, 但是使用起来不是很方便,guava提供了ListenableFuture以简化并发的编写. ListenableFuture继承自Future. 接口 interface ListenableFuture<V> extends Future<V> void addListener(Runnable listener, Executor exe
使用 Swoole 协程 特性,请认真阅读本章节编程须知。 编程范式 协程内部禁止使用全局变量 协程使用use关键字引入外部变量到当前作用域禁止使用引用 协程之间通讯必须使用Channel !> 即协程之间通讯不要使用全局变量或者引用外部变量到当前作用域,而要使用Channel 项目中如果有扩展hook了zend_execute_ex或者zend_execute_internal,需要特别注意一下