| Julia 的个人资料美丽日子照片日志列表 | 帮助 |
美丽日子瘦瘦的~~ |
||||||||||||||||||||||||||
生日快乐没想到刚进来不到一个月,就碰到要到生日了。
今年的生日不知道会咋个过。不过公司倒是满积极,给偶们每人发了一百块的克里斯汀现金券。
HOHO
知道我穷吧。给我送点蛋糕吃吃。
跟客户方面的合同听说也有眉目了。
似乎一切都在往好的方面发展~~ CVS的常用命令概述:CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。
CVS服务器(文件版本库) 以下是本文主要内容:开发人员可以主要挑选2, 6看就可以了,CVS的管理员则更需要懂的更多一些
一个系统20%的功能往往能够满足80%的需求,CVS也不例外,以下是CVS最常用的功能,可能用到的还不到它全部命令选项的10%,更多的功能请在实际应用过程中体会,学习过程中应该是用多少,学多少,用到了再学也不迟。
环境设置:指定CVS库的路径CVSROOT 后面还提到远程CVS服务器的设置: 一个项目的首次导入 项目导出:将代码从CVS库里导出 注意:第一次导出以后,就不是通过cvs checkout来同步文件了,而是要进入刚才cvs checkout project_name导出的project_name目录下进行具体文件的版本同步(添加,修改,删除)操作。 将文件同步到最新的版本: 确认修改写入到CVS库里: 注意:CVS的很多动作都是通过cvs commit进行最后确认并修改的,最好每次只修改一个文件。在确认的前,还需要用户填写修改注释,以帮助其他开发人员了解修改的原因。如果不用写-m "comments"而直接确认`cvs commit file_name` 的话,cvs会自动调用系统缺省的文字编辑器(一般是vi)要求你写入注释。 删除文件: 注意:很多cvs命令都有缩写形式:commit=>ci; update=>up; checkout=>co; remove=>rm;
正确的通过CVS恢复旧版本的方法: 移动文件:文件重命名 删除,移动目录: CVS Branch:项目多分支同步开发 确认版本里程碑:多个文件各自版本号不一样,项目到一定阶段,可以给所有文件统一指定一个阶段里程碑版本号,方便以后按照这个阶段里程碑版本号导出项目,同时也是项目的多个分支开发的基础。 开始一个新的里程碑: 注意:CVS里的revsion和软件包的发布版本可以没有直接的关系。但所有文件使用和发布版本一致的版本号比较有助于维护。 在开发项目的2.x版本的时候发现1.x有问题,但2.x又不敢用,则从先前标记的里程碑:release_1_0导出一个分支release_1_0_patch 一些人先在另外一个目录下导出release_1_0_patch这个分支:解决1.0中的紧急问题, 在release_1_0_patch上修正错误后,标记一个1.0的错误修正版本号 如果2.0认为这些错误修改在2.0里也需要,也可以在2.0的开发目录下合并release_1_0_patch_1中的修改到当前代码中: CVS的远程认证:通过SSH远程访问CVS 使用cvs本身的远程认证很麻烦,需要定义服务器和用户组,用户名,设置密码等,而且不安全,因此和系统本地帐号认证并通过SSH传输是比较好的办法,通过在客户机的/etc/profile里设置一下内容: 注意:port是指相应服务器SSH的端口,不是cvs pserver的端口 CVSWEB就是CVS的WEB界面,可以大大提高程序员定位修改的效率: CVSWEB的下载:CVSWEB从最初的版本已经演化出很多功能界面更丰富的版本,这个是个人感觉觉得安装设置比较方便的:
CVSWEB可不能随便开放给所有用户,因此需要使用WEB用户认证: 将$Id$ 加在程序文件开头的注释里是一个很好的习惯,cvs能够自动解释更新其中的内容成:file_name version time user_name 的格式,比如:cvs_card.txt,v 1.1 2002/04/05 04:24:12 chedong Exp,可以这些信息了解文件的最后修改人和修改时间 ==================================== ==================================== CVS vs VSS CVS没有文件锁定模式,VSS在check out同时,同时记录了文件被导出者锁定。 CVS是update commit, VSS是check out check in 在CVS中,标记自动更新功能缺省是打开的,这样也带来一个潜在的问题,就是不用-kb方式添加binary文件的话在cvs自动更新时可能会导致文件失效。 Virsual SourceSafe中这个功能称之为Keyword Explaination,缺省是关闭的,需要通过OPITION打开,并指定需要进行源文件关键词扫描的类型:*.txt,*.java,*.html... 对于Virsual SourceSafe和CVS都通用的TAG有: 尽量使用通用的关键词保证代码在CVS和VSS都能方便的跟踪。
相关资源: CVS HOME: CVS FAQ: CVS 免费书: CVS 命令的速查卡片:
PowerDesigner教程五 概念数据模型目标: 本文主要介绍数据项、新增数据项、数据项的唯一性代码选项和重用选项等。 一、数据项 数据项(Data Item)是信息存储的最小单位,它可以附加在实体上作为实体的属性。 注意:模型中允许存在没有附加至任何实体上的数据项。 二、新建数据项 1)使用“Model”---> Data Items 菜单,在打开的窗口中显示已有的数据项的列表,点击 “Add a Row”按钮,创建一个新数据项,如图所示 ![]() 2)当然您可以继续设置具体数据项的Code、DataType、Length等等信息。这里就不再详细说明了。 三、数据项的唯一性代码选项和重用选项 使用Tools--->Model Options->Model Settings。在Data Item组框中定义数据项的唯一性代码选项(Unique Code)与重用选项(Allow Reuse)。 注意: 如果选择Unique Code复选框 ,每个数据项在同一个命名空间有唯一的代码,而选择Allow reuse ,一个数据项可以充当多个实体的属性。 ![]() 四、在实体中添加数据项 1)双击一个实体符号,打开该实体的属性窗口。 2)单击Attributes选项卡,打开如下图所示窗口 ![]() 注意: Add a DataItem 与 Reuse a DataItem的区别在于 Add a DataItem 情况下,选择一个已经存在的数据项,系统会自动复制所选择的数据项。如果您设置了UniqueCode选项,那系统在复制过程中,新数据项的Code会自动生成一个唯一的号码,否则与所选择的数据项完全一致。 Reuse a DataItem情况下,只引用不新增,就是引用那些已经存在的数据项,作为新实体的数据项。 PowerDesigner教程四 概念数据模型目标: 3)选择"Attributes"选项卡,再点击“Add Attributes”工具,弹出如图所示窗口,选择某个属性作为标识符就行了。 PowerDesigner教程三 概念数据模型目标: 本文主要介绍属性的标准检查约束、如何定义属性的附加检查。 一、定义属性的标准检查约束 标准检查约束是一组确保属性有效的表达式。在实体属性的特性窗口,打开如图所示的检查选项卡。 ![]() 在这个选项卡可以定义属性的标准检查约束,窗口中每项的参数的含义,如下
二、定义属性的附加检查 当Standard checks 或Rules 不能满足检查的要求时,可以在Additional Checks选项卡的Server子页上,通过SQL语句中使用%MINMAX%、%LISTVAL%、%RULES%、%UPPER%、%LOWER% 几个变量来定义Standard和Rule,如图所示 ![]() %MINMAX%、%LISTVAL%、%UPPER%、%LOWER% 在Standard Check中定义的Minimum 和Maximum、List values 、uppervalues、lowervalues %RULES% 在Rules特性窗口Expression选项卡中定义的有效性规则表达式 PowerDesigner教程二 概念数据模型目标: 本文主要介绍PowerDesigner概念数据模型以及实体、属性创建。 一、新建概念数据模型 1)选择File-->New,弹出如图所示对话框,选择CDM模型(即概念数据模型)建立模型。 ![]() 2)完成概念数据模型的创建。以下图示,对当前的工作空间进行简单介绍。(以后再更详细说明) ![]() 3)选择新增的CDM模型,右击,在弹出的菜单中选择“Properties”属性项,弹出如图所示对话框。在“General”标签里可以输入所建模型的名称、代码、描述、创建者、版本以及默认的图表等等信息。在“Notes”标签里可以输入相关描述及说明信息。当然再有更多的标签,可以点击 "More>>"按钮,这里就不再进行详细解释。 ![]() 二、创建新实体 1)在CDM的图形窗口中,单击工具选项版上的Entity工具,再单击图形窗口的空白处,在单击的位置就出现一个实体符号。点击Pointer工具或右击鼠标,释放Entitiy工具。如图所示 ![]() 2)双击刚创建的实体符号,打开下列图标窗口,在此窗口“General”标签中可以输入实体的名称、代码、描述等信息。 ![]() 三、添加实体属性 1)在上述窗口的“Attribute”选项标签上可以添加属性,如下图所示。 ![]() 注意: 数据项中的“添加属性”和“重用已有数据项”这两项功能与模型中Data Item的Unique code 和Allow reuse选项有关。 P列表示该属性是否为主标识符;D列表示该属性是否在图形窗口中显示;M列表示该属性是否为强制的,即该列是否为空值。 如果一个实体属性为强制的,那么, 这个属性在每条记录中都必须被赋值,不能为空。 2)在上图所示窗口中,点击插入属性按钮,弹出属性对话框,如下图所示。 注意:这里涉及到域的概念,即一种标准的数据结构,它可应用至数据项或实体的属性上。在以下的教程中将另立章节详细说明。 PowerDesigner教程一 概念数据模型一、概念数据模型概述
数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求: 1)能够比较真实地模拟现实世界 2)容易为人所理解 3)便于计算机实现 概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。
实体集(Entity Set)是具体相同类型及相同性质实体的集合。例如学校所有学生的集合可定义为“学生”实体集,“学生”实体集中的每个实体均具有学号、姓名、性别、出生年月、所在系别、入学年份等性质。 mysql中一些常用的操作1.添加管理员: 5.显示当前操作 6 备份和恢复 如果要备份某个数据库中某个表为 /usr/local/mysql/bin/mysqldump -uroot -p linux table > /root/linux.sql 7 查找某个表 show tables like '%table%'; 8 显示创建某个表的语句 show create table table_name; 9 导入本地文件到pet数据库中 LOAD DATA INFILE '/work/document/database/pet.txt' INTO TABLE pet; 10 清空表中数据保留字段truncate pet; 11 其他 select name,birth,curdate(), (year (curdate())-year(birth))-(right(curdate(),5)<right(birth,5)) as age from pet; 设计自己的Annotation入门与实践第一部分:了解一下java1.5起默认的三个annotation类型: 一个是@Override:只能用在方法之上的,用来告诉别人这一个方法是改写父类的。 一个是@Deprecated:建议别人不要使用旧的API的时候用的,编译的时候会用产生警告信息,可以设定在程序里的所有的元素上. 一个是@SuppressWarnings:这一个类型可以来暂时把一些警告信息消息关闭. 如果不清楚上面三个类型的具体用法,各位可以baidu或google一下的,很简单的。 第二部分:讲一下annotation的概念先,再来讲一下怎样设计自己的annotation. 首先在jdk自带的java.lang.annotation包里,打开如下几个源文件: 1、源文件Target.java
其中的@interface是一个关键字,在设计annotations的时候必须把一个类型定义为@interface,而不能用class或interface关键字(会不会觉得sun有点吝啬,偏偏搞得与interface这么像). 2、源文件Retention.java
看到这里,大家可能都模糊了,都不知道在说什么,别急,往下看一下. 在上面的文件都用到了RetentionPolicy,ElementType这两个字段,你可能就会猜到这是两个java文件.的确,这两个文件的源代码如下: 3、源文件RetentionPolicy.java 这是一个enum类型,共有三个值,分别是SOURCE,CLASS 和 RUNTIME. SOURCE代表的是这个Annotation类型的信息只会保留在程序源码里,源码如果经过了编译之后,Annotation的数据就会消失,并不会保留在编译好的.class文件里面。 ClASS的意思是这个Annotation类型的信息保留在程序源码里,同时也会保留在编译好的.class文件里面,在执行的时候,并不会把这一些信息加载到虚拟机(JVM)中去.注意一下,当你没有设定一个Annotation类型的Retention值时,系统默认值是CLASS. 第三个,是RUNTIME,表示在源码、编译好的.class文件中保留信息,在执行的时候会把这一些信息加载到JVM中去的. 举一个例子,如@Override里面的Retention设为SOURCE,编译成功了就不要这一些检查的信息;相反,@Deprecated里面的 Retention设为RUNTIME,表示除了在编译时会警告我们使用了哪个被Deprecated的方法,在执行的时候也可以查出该方法是否被 Deprecated. 4、源文件ElementType.java
@Target里面的ElementType是用来指定Annotation类型可以用在哪一些元素上的.说明一下:TYPE(类型), FIELD(属性), METHOD(方法), PARAMETER(参数), CONSTRUCTOR(构造函数),LOCAL_VARIABLE(局部变量), ANNOTATION_TYPE,PACKAGE(包),其中的TYPE(类型)是指可以用在Class,Interface,Enum和 Annotation类型上. 另外,从1的源代码可以看出,@Target自己也用了自己来声明自己,只能用在ANNOTATION_TYPE之上. 如果一个Annotation类型没有指明@Target使用在哪些元素上,那么它可以使用在任何元素之上,这里的元素指的是上面的八种类型. 举几个正确的例子: @Target(ElementType.METHOD) @Target(value=ElementType.METHOD) @Target(ElementType.METHOD,ElementType.CONSTRUCTOR) 具体参考一下javadoc文档 上面一下1和2的源文件,它们都使用了@Documented,@Documented的目的就是让这一个Annotation类型的信息能够显示在javaAPI说明文档上;没有添加的话,使用javadoc生成API文档的时候就会找不到这一个类型生成的信息. 另外一点,如果需要把Annotation的数据继承给子类,那么就会用到@Inherited这一个Annotation类型. 第三部分:下面讲的设计一个最简单的Annotation例子,这一例子共用四个文件; 1、Description.java
说明:所有的Annotation会自动继承java.lang.annotation这一个接口,所以不能再去继承别的类或是接口. 最重要的一点,Annotation类型里面的参数该怎么设定: 第一,只能用public或默认(default)这两个访问权修饰.例如,String value();这里把方法设为defaul默认类型. 第二,参数成员只能用基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和 String,Enum,Class,annotations等数据类型,以及这一些类型的数组.例如,String value();这里的参数成员就为String. 第三,如果只有一个参数成员,最好把参数名称设为"value",后加小括号.例:上面的例子就只有一个参数成员. 2、Name.java
3、JavaEyer.java
4、最后,写一个可以运行提取JavaEyer信息的类TestAnnotation
5、运行结果: 描述:javaeye,做最棒的软件开发交流社区 ----------------- 创始人:robbin 创建的社区:javaEye 创始人:江南白衣 创建的社区:springside 后续
如何控制一个annotation里的某些属性可以填可以不填,难道都是必填?
不是必填的,我举一个例子,可以更清楚一些,在把上面的Name.java改为 java 代码
2007-10-11 首批国家AAAAA级旅游景区名单前两天跟同事说起五A级景区的事情.我只记得上次去中山陵时有看到AAAAA,当时还挺吃惊. 大家讨论了一番,不过也没什么结果. 结果就是"明天去GOOGLE一下"!! 5A旅游景区创建试点单位公示名单(66家)
北京4:故宫博物院、天坛公园、颐和园、八达岭长城。
天津2:天津古文化街旅游区(津门故里)、天津盘山风景名胜区。
河北3:秦皇岛市山海关景区、保定市安新白洋淀景区、承德避暑山庄及周围寺庙景区。
山西2:大同市云冈石窟、忻州市五台山风景名胜区。
辽宁2:沈阳市植物园、大连老虎滩海洋公园.海洋极地馆。
吉林2:长春市伪满皇宫博物院、长白山景区。
黑龙江1:哈尔滨市太阳岛公园。
上海2:上海东方明珠广播电视塔、上海野生动物园。
江苏4:南京市钟山风景名胜区-中山陵园风景区、中央电视台无锡影视基地三国水浒景区、苏州市拙政园、苏州市周庄古镇景区。
浙江3:杭州市西湖风景名胜区、温州市雁荡山风景名胜区、舟山市普陀山风景名胜区。
安徽2:黄山市黄山风景区、池州市九华山风景区。
福建2:厦门市鼓浪屿风景名胜区、南平市武夷山风景名胜区。
江西2:九江市庐山风景旅游区、吉安市井冈山风景旅游区。
山东3:烟台市蓬莱阁旅游区、济宁市曲阜明故城(三孔)旅游区、泰安市泰山景区。
河南3:登封市嵩山少林景区、洛阳市龙门石窟景区、焦作市云台山风景名胜区。
湖南2:衡阳市南岳衡山旅游区、张家界武陵源旅游区。
湖北2:武汉市黄鹤楼公园、宜昌市三峡大坝旅游区。
广东2:广州市长隆旅游度假区、深圳华侨城旅游度假区。
广西2:桂林市漓江景区、桂林市乐满地度假世界。
海南2:三亚市南山文化旅游区、三亚市南山大小洞天旅游区。
重庆2:重庆大足石刻景区、重庆巫山小三峡--小小三峡。
四川3:成都市青城山--都江堰旅游景区、乐山市峨眉山景区、阿坝藏族羌族自治州九寨沟旅游景区。
贵州2:安顺市黄果树大瀑布景区、安顺市龙宫景区。
云南2:昆明市石林风景区、丽江市玉龙雪山景区。
陕西3:西安市秦始皇兵马俑博物馆、西安市华清池景区、延安市黄帝陵景区。
甘肃2:嘉峪关市嘉峪关文物景区、平凉市崆峒山风景名胜区。
宁夏2:石嘴山市沙湖旅游景区、中卫市沙坡头旅游景区。
新疆3:乌鲁木齐市天山天池风景名胜区、吐鲁番市葡萄沟风景区、阿勒泰地区喀纳斯景区 |
|
|||||||||||||||||||||||||
|
|