《架构实战--软件架构设计的过程》前言作者:PeterEeles&PeterCripps几年前,我们(PeterEeles和PeterCripps)开始注意到GradyBooch首创的《软件架构手册》(《HandbookofSoftwareArchitecture》,www.handbookofsoftwarearchitecture.com)。Grady起初的目的是:整理许多有趣的软件密集型系统的架构,以揭示它们的基本模式以及允许在域和架构风格之间进行比
系统 2019-08-12 09:30:21 2054
今天是我第二天搞Watir,写了一段简单的代码:ie.goto("http://130.34.98.11:18080/bssframe");ie.text_field(:id,"STAFF_ID").set("SUPERUSR");ie.text_field(:id,"PASSWORD").set("XXXXXX");ie.button(:id,"bLoginSubmit").click;contentFrame=ie.frame(:id,"content
系统 2019-08-12 09:29:47 2054
理解嵌入式开发中的一些硬件相关的概念做嵌入式系统开发,经常要接触硬件。做嵌入式开发对数字电路和模拟电路要有一定的了解。这样才能深入的研究下去。下面我们简单的介绍嵌入式开发中的一些硬件相关的概念。电平(Level)在数字电路中,分为高电平和低电平,分别用1和0表示。一个数字电路的管脚,总是存在一个电平的,要么高要么低,或者说要么1要到0(其实,还有另一种状态,后面会提到)。总线(Bus)在嵌入式系统中一定会有一块处理器芯片,此外,还有其它的芯片作为外部设备(
系统 2019-08-12 09:29:43 2054
上来先来一个图:在使用webdriver操作Firefox浏览器的时候,一路顺畅。可是在最后关闭浏览器后,出现了如上面图示的警告!这个警告很早就出现了,因为也不影响测试结果,也就一直没理。后来新搭建了一个windows虚拟机,也遇到了同样的问题。但是这次出现警告后,会阻塞住webdriver继续执行。一直到手动关闭了这个警告框才能继续执行。不得不处理一下。我处理的办法是:直接把PluginContainerforFirefox.exe删除或是重命名。让他直
系统 2019-08-12 09:27:35 2054
枚举存储卡因为一个设备可以有多块不同名字的存储卡,应用程序不能假定一块卡的名称或者路径。Smartphone提供了FindFirstFlashCard和FindNextFlashCard函数来允许在程序中枚举存储卡。为了确定你的设备有存储卡,调用FindFirstFlashCard和FindNextFlashCard函数。FindFirstFlashCard返回一个搜索句柄给FindNextFlashCard使用。如果有的话,它还返回一个指针指向第一块存储
系统 2019-08-12 09:27:34 2054
因为用git老是要敲许多命令。所以写了个小脚本。代码如下:1#!/bin/sh2echoGoingtosimpleWebtest...3cd~/softwaredevelopment/workspace/simpleWebtest4echocheckgitstatus...5gitstatus67echo"commit?(yes/no)"8readchoice910if[${choice}=yes]11thenechoPleaseEnterthecommi
系统 2019-08-12 09:27:23 2054
GitHub可以托管各种git库,并提供一个web界面,但与其它像SourceForge或GoogleCode这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pullrequest”机制向项目负责人申请代码合并GitHub有170万名软件开发人员的忠实用户,他们平均每天更新8万个并新建7千个软件库。对G
系统 2019-08-12 09:27:11 2054
-(void)setTitleWithString:(NSString*)title,...{NSMutableArray*argsArray=[[NSMutableArrayalloc]init];if(title){//将第一个参数添加到array[argsArrayaddObject:title];va_listparams;//定义一个指向个数可变的参数列表指针;va_start(params,title);//va_start得到第一个可变参数地
系统 2019-08-12 01:53:50 2054
(1)枚举默认为unsignedint类型,我们可以手动为枚举指定类型,如:enumAttr:char{ATTR_LV=120,};(2)我们可以使用泰勒展开式快速计算两点间距离:intfastDistance2D(int_nX1,int_nY1,int_nX2,int_nY2){//thisfunctioncomputesthedistancefrom_nX1,_nY1to_nX2,_nY2with3.5%error//firstcomputetheab
系统 2019-08-12 01:53:24 2054
游戏下个大版本的其中一个内容是对一个系统进行操作简化:几个界面的操作整合在一个界面,操作步骤简化等。我是负责该系统的逻辑流程代码编写。原以为只是UI那边的大改,但回看逻辑模块的旧代码时,发现和UI交互部分过度耦合,独立性过低,很多地方UI那边改了逻辑这边也跟着改。UI的界面整合,导致逻辑也要大改,叫苦不迭。由此,一个深刻的教训:不要过度依赖自己控制之外的东西。例如:在引用外部的模块或接口时,如果用到的地方超过两处,则在自己模块编写一个接口,给自己模块调用,
系统 2019-08-12 01:33:13 2054