Jiania Blog

August 25, 2008

谈谈如何运作技术团队

Filed under: 团队管理 — Jiania Hung @ 10:58 am

谈谈如何运作技术团队

用好牛人团队,”大龄团队,”明星团队

洪建家

在职业生涯中,往往因幸运女神的光顾,你可能会被高薪挖到一个企业里任职技术高管工作,或是因为刚为企业解决某个重大事件而被提升为技术研发总监.此时的你因被赋予企业重要的管理角色,你将面临一个新团队的各方面的建设问题.新团队成员的构造可能相当复杂,情况可能是以下几种:

1. 团队成员某些人年纪比你大10岁以上,不论编码或是管理经验也相当丰富。

2. 团队成员某个人是被企业从某个大公司高价挖过来的技术大牛或是中层管理者。

3. 团队的成员某些人在以前的职业生涯中,已有多年的一线项目研发经验或是项目管理经验。

4. 团队的成员某些人大部份可能毕业名牌大学的项士,博士,或是留学博士归来。

5. 团队的成员某些人可能与集团企业中的某位高层领导是亲戚关系、旧同事;或是来自于企业因政府公关需要的权力关系等。

面对一个50人以下的这样格局新技术团队,不管你之前是管理经验丰富但技术能力一般,还是技术能力相当强但管理没有多少经验,或是两者持平.这样的团队成员构造难免给予你将接手工作造成一定的困难,不可否认要做好这份工作挑战难度是可想而知。那么如果哪天你突然面临这样的角色,你将如何规划处理好这份工作呢?OK,今天我们就来谈谈如何运作好“大龄”团队,“牛人”团队,“明星”团队.

首先,我们先来定义一下以上几个名词概念

1. 何谓普通团队,从年纪与工作经验分析上,目前这些人主要集中82年以后出生的人,刚大学或是研究生毕业,刚工作或者是才工作一两年左右的时间,从人事录入来源角度来讲,在集团企业中属于正常流程,没有特殊的身份关系背景。这些人可再细分为两大类

A类:年纪轻,野心大,上进心强,学习主动,创新意识不错。背景出身一般。虽目前在生存线上,但大多有将来想成就大业的想法。

B : 年纪轻,追求“艺术”人生,家境较好,进取心一般。太累的技术人生往往不是这些人所追求的,但都相对较擅长于人际关系处理.

2何谓大龄团队”,从年纪的纵向分析上,目前这些人主要集中在74年至81年以前出生的人,用中国俗话就是“我吃过的盐比你走过的路多”. 这些人可能以前做过许多不同性质的工作,或是在一直在业界做相关工作性质的工作,这类人大部份人已结婚生子,有房有车,这些人可再分为A,B两类

A:虽然走过的路多,但一直能力平凡,还没有房或是有房但还在贷款,好点有部自驾车,这些人大部份目前追求只是收入稳定,在团队中只要受到一定尊重与重视就可以.

B :从业8年以上了,曾做过程序员,高级程序员,项目经理,部门经理,技术总监等类似工作,有房有车,已结婚生子.工作能力突出,经验丰富。这些人往往曾经相当有野心,只是因为机遇,环境等问题,工作到现在依然跟他们当初的梦想相差很远。但这些人都经历岁月的沧桑,内心已被现实慢慢磨平到“平凡”的心态。这些人自尊心相当强,受团队成员尊重与认可的意识特别强烈。也就是所谓的“元老”心理.

3何谓牛人团队”,牛人(与年纪没有多大关系),也就是技术大牛,在业界有一定的名声,技术过硬,做过、参与过多项中大型项目经验。企业技术难题的攻克者。自信心相当强,在意识上有点 在这里,老子能力第一的心态。这些人是公司核心竞争力所在。相当在意自己在团队中“大牛”的形象。较好的待遇、展现平台与特别肯定他在团队中的大牛形象,是用好此类人的关键点.

4何谓明星团队”, 明星人物->空降兵,往往在企业因出于上市融资目的或是企业核心竞争力,或是政治暂时挡箭牌等因素考虑,而花高价与可观的转会费与股权、期权从成熟公司挖过来的人才.这些人已在业界有一定的知名度,除了物质方面,在心理方面这些人觉得应获得不少于他原有的荣誉感与成就感。这些人一般负责些企业中重要管理角色(下面会谈到反授权管理)。

5何谓关系团队”,可能混于以上几者角色中,但有个特点就是跟企业的资本方或是权力方有着亲戚、朋友、旧同事关系。从背景来源上可分来两类

A:来源于集团企业高层管理的关系

B:来源于政府权力部门关系,有些可能有实职,有些实质只是挂个名头.

在现实的团队成员构造中,成员往往兼多重角色,在具体企业实施管理战术上应具体分析。着重从企业团队的形成、建立目的、战略文化不同,来处理好不同角色类的成员在项目中的不同的应对方法与运作策略,具体体现在项目中各阶段各不同角色的分配运作方式.

管理这样结构的团队,需要什么类型的领导人?

领导人类型策略选择

按现代管理管理学分法,可分为两类

1. 老虎型领导: 传统官方权威意识特别严重,以发号施令树权威.此类型领导人不适合与明星团队、牛人团队合作,故不符合企业最大利益原则。当然同时说明一点这类型领导对普通团队与关系团队处理上是没有问题的。

2 孔雀型领导: 以领导人个人魅力为企业核心关系中杻,在企业成长任何阶段其追随者都能坚守各自岗位.此类人相当适合与牛人团队与关系团队合作.牛人团队往往成为企业的核心竞争力.在企业成长到一定强大的时候或是企业需要调整整体策略时,能用企业的资本与平台去吸引明星团队加入为其所用.

按照企业组织管理统筹优化核心原则之一

l 企业组织管理最好的安排是最适合化,而不是完美化.

l 这种组织架构被出色地领导时,而成员不知道已被领导,事情就已做好了.

l 组织大家一起把事情做好,让大家各自实现自己价值

l 忘记自己是位管理者,而时时记着自己是责任主要承担者

故在遇到上面组结构造时,选择孔雀型领导是最适合,因为他能够解决各团队成员的待遇与自我实现价值结合问题,符合企业最大利益化.故当你面临这样的团队时,首先你能分析自己各方面能力,这内容包括以下方面:

1. 概念技能:

对这种团队成员组织架构中的管理者(如研发总监)来讲,概念技术放在第一位。具体表现在于你应有全局的技术观,把握技术的发展方向,在项目中为什么要选择这种方案与知道各方案的优劣、风险在哪里;能把握项目关键点能力;能把你的想法、方案抽象化,概念化表达出去的能力;能洞察项目与其它环境之间复杂的关系;能掌握企业的目标,找出问题所在并能将问题细化的能力.

注:把企业看作一个整体,把部门看成一个子系统,再把部门分成多个子系统,再分析他们之间的关系.

2. 人际技能:在此组织架构中作为管理者来讲,主要体现在与团队各角色成员的沟通,激励,帮助,协调,领导,解决各种冲突的能力

3. 技术技能:在今天我们谈到的组织架构中作为管理者来讲,主要体现在于业绩与效能。在专业基础上的扎实,各项网络协议的了解,熟悉各种运维上方面知识,如服务器集群等。在业务的语言上扎实精通。举例,如果目前企业的平台构建在LAMP平台上,那么在主要的PHPMySQL你得相当精通才行。能用整体知识分析、解决企业中存在的各种性能问题的能力.(需求分析能力,系统架构与设计能力,模块分解设计,项目流程控制能力,项目风险控制,团队织织能力,沟通能力,职业道德)

通过以上的三种职业技能简单介绍,你得分析一下你自己在这三方面的权衡,人无完人,三方面很少有人全做到家,但你应认清自己的优劣在哪里。接下来我们会谈谈当你正式获得这种组织结构的leader职位后,你应怎样开始做?OK,下面进入游戏

这种组织架构相当复杂,如果你年纪轻轻,虽然自认为能力不错。但在这时候,要做的第一件事情就是先生存。只有在企业中生存有保障了,才能谈下一步的事情。先做人后做事适合中大型企业处理规则.具体表现在以下方面:

了解分析阶段

A. 弄清楚企业任命你做这个职位而不任命他人的理由与事实,弄清楚公司的用你真实目的。如上述所说的架构中,企业任命你有两种可能性:

1. 企业按自己战略安排,觉得你综合实力适合而且需要你做这个位置。

如果你了解的信息是这样,那么对你以后的工作与待遇相当有帮助,因为你有强大的后台老板支持你.

2. 企业高层用你是因为办公室政治斗争的需要,需要临时缓解一下企业冲突问题,或是分担一下烂摊子风险责任.当然如果是这种情况那么对你就不利了,如何区分老板的真实目的,你得从你所了解与其谈话过程中去分析,然后做出对自己最为有利的选择!

B. 弄清楚与分析公司管理高层的权力结构与派系分布范围.先大致知道哪一方权力头头是支持自己的,哪一方权力头头对自己是持中立态度的,哪一方权力头头对自己明显有敌意的。

C. 弄清楚自己所管部门目前在别的部门中的印象分如何?如果印象分很差,那么接下来自己如何提升部门形象;弄清楚与分析自己所管的部门与相关同级部门之间业务利益关系,弄清楚相关部门的负责人与主管副总等相关情况,想办法尽量大致知道各部门负责人之间关系程度与敌对情况等。以作对自己最有利的人际关系选择与回避.

D. 如果之前你不太了解团队成员的情况,上任后请先别急着改动任何东西,请先熟悉好自己团队成员的情况,包括成员经历,性格,特长等。弄清楚部门内的各势力情况,特别是老员工、元老级员工势力情况,员工的目前情绪问题,对待遇与环境的满意度等问题。

E. 弄清楚自己所管部门存在的各方面问题,然后自己先分清楚哪些问题是你权力范围之内的事情,哪些事情是需要请示上级或是跨部门才能解决的事情。在技术管理上,对目前团队的开发版本管理软件情况,编码标准,bug修正与解决,技术文档方面,应急系统方案方面等出现的问题做一下整理,并自己想好大致的解决方案。但切记,这只是你自己的方案,千万别马上公布.

成员策略分析阶段

在对上面的各方面情况有些了解与初步信息收录整理基础上,我们大致知道部门中哪些人是什么角色,这类角色应怎样管理.下面我们详细谈谈文章开头有关角色类型管理:

1.

a.对于普通团队A类,因为他们自身特点与能力情况,应给予机会让他有机会学习,让他们觉得与相信这个平台可以让他们迅速成长,让他们觉得这个团队可以带给他们以后新的人生平台。在这个大原则之下,用好此类人应没有问题.这类人只要能让他们感到成长特别快,通常在项目紧时也不会对加班有不满情绪。因为他们只想快速成长.

b.对于普通团队B类,按他们自身特点,可以安排一些普通,重复性工作,只要能让他们感觉到工作不受威胁,他们会很支持你的。在工作中,可以对他们表现好的方面给予公开表扬或奖励。因为他们相对较擅长于人际交往,故这类人在团队娱乐活动中,通常能给团队带来不错的气氛.对于这类交际较突出的成员,可以往项目需求分析角色培养

2.

对于大龄团队A,按他们自身的特点,如果你是位年轻的主管,对他们应给予充分的尊重,重大问题事前应资询他们的意见,让他们感觉他们在团队中很受重视。在工作中对其正确的作法多给予表扬与嘉奖、肯定.对于这类曾经很有野心的成员,可以在项目分成方面入手以让他们有些动力,这样有利于利用其在团队的影响力从而带动团队整体战斗力提升.如果企业目前运行的平台前景相当大,那么成功后的名誉给他们带来的吸引力也不小。在这点上要尽量与他们产生共识,会使他们更加支持你的工作.

对于大龄团队B类,按他们自身特点与能力,工作中尽量安排与其能力相当的工作,这样他们能感觉可以胜任这份工作,从而达到满足他们需要一份稳定工作的心理。家庭的生活担子压力使他们不敢有太多想法,满足他们稳定的工作心态是取得他们支持的快速捷径之一。多与他们交流可以从他们身上得到同类角色A类成员的一些敏感信息。必要时可以在背后帮你协调A类与你的关系

3.对于牛人团队,在重大的技术决定或是策略时,你平时得相当尊重,对于他们的意见你得听,得分析,必要时得坚持支持。找些难的团队其它成员解决不了而他能够解决的问题丢给他,从而让他满足受团队重视与肯定的心理。在整体策略的原则下,多支持他们一些技术上的创新思路与活动。多给他们一些自由的空间.

4.对于明星团队,也就是所谓的空降兵,不管企业是什么原因,选择明星团队总有其用意。选择了,就尽量信任,充分授权,大力支持其想法.

5.对于关系团队,应根据关系来源具体分析,人尽其才.


作者资料

姓名: 洪建家

现任职:环球时报社

业界资质:PHPChina 总版主,北京PEA负责人,PHPOpenBiz开源框架项目管理人

关于”朕”字来源,词义分解

Filed under: 人生 — Jiania Hung @ 10:55 am

“朕”字,自秦以后成为帝王专称,我想大部份人都知道:)

可大家知道为什么朕专门指帝王吗?帝王为何喜欢称自己为朕呢?

我的解答如下:

朕,由月与关两字组成,与月亮相关的就是太阳,太阳就是天子的意思,上天之子,朕之意也!

June 13, 2008

中文姓氏对应英文写法一览表

Filed under: IT — Jiania Hung @ 6:57 pm

A:
艾――Ai
安――Ann/An
敖――Ao

B:
巴――Pa
白――Pai
包/鲍――Paul/Pao
班――Pan
贝――Pei
毕――Pih
卞――Bein
卜/薄――Po/Pu
步――Poo
百里――Pai-li

C:
蔡/柴――Tsia/Choi/Tsai
曹/晁/巢――Chao/Chiao/Tsao
岑――Cheng
崔――Tsui
查――Cha
常――Chiong
车――Che
陈――Chen/Chan/Tan
成/程――Cheng
池――Chi
褚/楚――Chu
淳于――Chwen-yu

D:
戴/代――Day/Tai
邓――Teng/Tang/Tung
狄――Ti
刁――Tiao
丁――Ting/T
董/东――Tung/Tong
窦――Tou
杜――To/Du/Too
段――Tuan
端木――Duan-mu
东郭――Tung-kuo
东方――Tung-fang

E:

F:
范/樊――Fan/Van
房/方――Fang
费――Fei
冯/凤/封――Fung/Fong
符/傅――Fu/Foo

G:
盖――Kai
甘――Kan
高/郜――Gao/Kao
葛――Keh
耿――Keng
弓/宫/龚/恭――Kung
勾――Kou
古/谷/顾――Ku/Koo
桂――Kwei
管/关――Kuan/Kwan
郭/国――Kwok/Kuo
公孙――Kung-sun
公羊――Kung-yang
公冶――Kung-yeh
谷梁――Ku-liang

H:
海――Hay
韩――Hon/Han
杭――Hang
郝――Hoa/Howe
何/贺――Ho
桓――Won
侯――Hou
洪――Hung
胡/扈――Hu/Hoo
花/华――Hua
宦――Huan
黄――Wong/Hwang
霍――Huo
皇甫――Hwang-fu
呼延――Hu-yen

I:

J:
纪/翼/季/吉/嵇/汲/籍/姬――Chi
居――Chu
贾――Chia
翦/简――Jen/Jane/Chieh
蒋/姜/江/――Chiang/Kwong
焦――Chiao
金/靳――Jin/King
景/荆――King/Ching
讦――Gan

K:
阚――Kan
康――Kang
柯――Kor/Ko
孔――Kong/Kung
寇――Ker
蒯――Kuai
匡――Kuang

L:
赖――Lai
蓝――Lan
郎――Long
劳――Lao
乐――Loh
雷――Rae/Ray/Lei
冷――Leng
黎/郦/利/李――Lee/Li/Lai/Li
连――Lien
廖――Liu/Liao
梁――Leung/Liang
林/蔺――Lim/Lin
凌――Lin
柳/刘――Liu/Lau
龙――Long
楼/娄――Lou
卢/路/陆鲁――Lu/Loo
伦――Lun
罗/骆――Loh/Lo/Law/Lam/Rowe
吕――Lui/Lu
令狐――Lin-hoo

M:
马/麻――Ma
麦――Mai/Mak
满――Man/Mai
毛――Mao
梅――Mei
孟/蒙――Mong/Meng
米/宓――Mi
苗/缪――Miau/Miao
闵――Min
穆/慕――Moo/Mo
莫――Mok/Mo
万俟――Moh-chi
慕容――Mo-yung

N:
倪――Nee
甯――Ning
聂――Nieh
牛――New/Niu
农――Long
南宫――Nan-kung

O:
欧/区――Au/Ou
欧阳――Ou-yang

P:
潘――Pang/Pan
庞――Pang
裴――Pei/Bae
彭――Phang/Pong
皮――Pee
平――Ping
浦/蒲/卜――Poo/Pu
濮阳――Poo-yang

Q:
祁/戚/齐――Chi/Chyi/Chi/Chih
钱――Chien
乔――Chiao/Joe
秦――Ching
裘/仇/邱――Chiu
屈/曲/瞿――Chiu/Chu

R:
冉――Yien
饶――Yau
任――Jen/Yum
容/荣――Yung
阮――Yuen
芮――Nei

S:
司――Sze
桑――Sang
沙――Sa
邵――Shao
单/山――San
尚/商――Sang/Shang
沈/申――Shen
盛――Shen
史/施/师/石――Shih/Shi
苏/宿/舒――Sue/Se/Soo/Hsu
孙――Sun/Suen
宋――Song/Soung
司空――Sze-kung
司马――Sze-ma
司徒――Sze-to
单于――San-yu
上官――Sang-kuan
申屠――Shen-tu

T:
谈――Tan
汤/唐――Town/Towne/Tang
邰――Tai
谭――Tan/Tam
陶――Tao
藤――Teng
田――Tien
童――Tung
屠――Tu
澹台――Tan-tai
拓拔――Toh-bah

U:

V:

W:
万――Wan
王/汪――Wong
魏/卫/韦――Wei
温/文/闻――Wen/Chin/Vane/Man
翁――Ong
吴/伍/巫/武/邬/乌――Wu/NG/Woo

X:
奚/席――Hsi/Chi
夏――Har/Hsia/(Summer)
肖/萧――Shaw/Siu/Hsiao
项/向――Hsiang
解/谢――Tse/Shieh
辛――Hsing
刑――Hsing
熊――Hsiung/Hsiun
许/徐/荀――Shun/Hui/Hsu
宣――Hsuan
薛――Hsueh
西门――See-men
夏侯――Hsia-hou
轩辕――Hsuan-yuen

Y:
燕/晏/阎/严/颜――Yim/Yen
杨/羊/养――Young/Yang
姚――Yao/Yau
叶――Yip/Yeh/Yih
伊/易/羿――Yih/E
殷/阴/尹――Yi/Yin/Ying
应――Ying
尤/游――Yu/You
俞/庾/于/余/虞/郁/余/禹――Yue/Yu
袁/元――Yuan/Yuen
岳――Yue
云――Wing
尉迟――Yu-chi
宇文――Yu-wen

Z:
藏――Chang
曾/郑――Tsang/Cheng/Tseng
訾――Zi
宗――Chung
左/卓――Cho/Tso
翟――Chia
詹――Chan
甄――Chen
湛――Tsan
张/章――Cheung/Chang
赵/肇/招――Chao/Chiu/Chiao/Chioa
周/邹――Chau/Chou/Chow
钟――Chung
祖/竺/朱/诸/祝――Chu/Chuh
庄――Chong
钟离――Chung-li
诸葛――Chu-keh

April 16, 2008

MySQL优化/咨询/方案

Filed under: IT, 团队管理, 运维 — Jiania Hung @ 8:11 pm

MySQL优化/咨询/方案

我们可以为企业提供 MySQL 和 LAMP(Linux+Apache+MySQL+PHP) 开发方面的顾问(Consulting)和培训(Training)服务。
我们精通 MySQL 的管理、设计、优化 — 尤其是 LAMP 开发架构中的方案设计、 MySQL 设计和优化等。

MySQL 性能优化

– 全方位的 MySQL 性能优化服务,包括硬件、操作系统优化配置,MySQL 优化配置、缓存、应用架构改进等。

LAMP 性能优化

– 有没有碰到网站越来越慢了却手足无措的情况?哦,很不巧,正好碰到了,那么,这正是我们所能帮您解决的。包括系统优化、Apache优化、PHP优化,以及缓存、加速、负载均衡等。

MySQL 高可靠方案

– 根据你的应用需求,定制灵活合理的高可用方案,包括 MySQL 复制(Replication),MySQL 集群(Cluster),负载均衡等。

MySQL 系统管理

– 包括系统安装、配置、安全、升级、备份、恢复,以及后期人员培训等,可提供远程服务。

高性能 LAMP 架构设计

– 如果你的网站刚好要开始了,那么,你应该需要一套合理的、高效的、高扩展的架构,这就是我们能帮您做到的。

关于我们

我们致力于帮助企业解决 LAMP 架构方面的问题,我们有多年的 LAMP 开发经验,在业务有较有声誉!

April 4, 2008

什么是运维?

Filed under: IT, 运维 — Jiania Hung @ 5:45 am

IT运维是IT管理的核心和重点部分,也是内容最多、最繁杂的部分,该阶段主要用于IT部门内部日常运营管理,涉及的对象分成两大部分,即IT业务系统和运维人员,该阶段的管理内容又可细分为七个子系统:

■ 设备管理:对网络设备、服务器备、操作系统运行状况进行监控

应用/服务管理:对各种应用支持软件如数据库、中间件、群件以及各种通用或特定服务的监控管理,如邮件系统、DNS、Web等的监控与管理

■ 数据/存储/容灾管理:对系统和业务数据进行统一存储、备份和恢复

■ 业务管理:包含对企业自身核心业务系统运行情况的监控与管理,对于业务的管理,主要关注该业务系统的CSF(关键成功因素Critical Success Factors)和KPI(关键绩效指标Key Performance Indicators)

■ 目录/内容管理:该部分主要对于企业需要统一发布或因人定制的内容管理和对公共信息的管理

■ 资源资产管理:管理企业中各IT系统的资源资产情况,这些资源资产可以是物理存在的,也可以是逻辑存在的,并能够与企业的财务部门进行数据交互

■ 信息安全管理:该部分包含了许多方面的内容,目前信息安全管理主要依据的国际标准是ISO17799,该标准涵盖了信息安全管理的十大控制方面,36个控 制目标和127中控制方式,如企业安全组织方式、资产分类与控制、人员安全、物理与环境安全、通信与运营安全、访问控制、业务连续性管理等

■ 日常工作管理:该部分主要用于规范和明确运维人员的岗位职责和工作安排、提供绩效考核量化依据、提供解决经验与知识的积累与共享手段IT运行维护管理的每 一个子系统中都包含着十分丰富的内容,实现完善的IT运维管理是企业提高经营水平和服务水平的关键。运行/维护阶段与服务/支持阶段的分界线为前者是面向 IT部门内部的管理,而后者是面向业务部门、企业中的其它人员或直接面向客户。

运维安全加固

Filed under: IT, 运维 — Jiania Hung @ 5:39 am

前言
安全加固在安全甚至运维领域,已经是一个大家都不再感到陌生的名字了。相当多的安全甚至集成公司,都会再项目工程中提供此类服务。我从事工作以来,也大大小小的实施了相当多次的安全加固工作,最近完成了一个大型运维环境的加固工作,积累了一些经验,现在记录下来与大家分享。
因为所属工作的原因,我不会透露具体的操作的技术细节,这点还希望大家能见谅,但是我会更多的阐述记录在项目操作中框架性思维和理念,同大家分享我的收获和经验。
背景
本次项目之所能称之为大型项目,主要是基于如下几个特点。
* 涉及的主机众多,总体主机数量在万台以上。
* 涉及业务情况复杂、数量众多,其中重点大业务有数百个,而旗下子业务更为种类繁多。
* 业务多为在线业务,对于中断的容忍度很低。
* 涉及部门多,光运维层面的部门会涉及10余个左右,横向沟通成本较大。
内容
困难
* 选用何种层面的加固技术,是系统层?应用配置层?IDS配合iptables联动?抑或是kernel patch?
* 涉及的主机多为在线业务,如何保证平滑切换。
* 横跨多个部门,如何协调各个部门的人力资源具有相当难度。
* 安全加固本身是叫好不叫座的东西,在完成项目后如何体现安全加固的效果?
* 在自身进行了大量技术考量后,如何向技术部门验证你的说法,得到一线运维部门的支持?
思路
1. 争取运维线的上下层支持和理解。
2. 充分准备,数据支撑,取得认可。
3. 自动化部署,减轻工作量和误操作。
4. 充分考虑回退和规避运维风险。
5. 以点带面,分步骤部署。
准备阶段
安全加固项目的准备阶段主要的工作内容为,
* 确定项目组成和成员的职责
* 内容宣讲,介绍加固项目的工作内容。
* 了解安全需求,打消存在的顾虑,争取配合和支持。
* 对加固内容进行测试,后续工程中需要配合工具和文档进行准备。
人员准备
人员准备可讲的东西不多,从这次操作中较多的体会是,项目组中最好能配备一个具有编写脚本能力的人,减小大规模主机部属时碰到的巨大工作量。其次,人员不在于多,PM的沟通能力要很强,具有较强的破冰和应变能力。项目组能够阶段性引入实施部门的Teamleader ,在实施时会极大地提高执行力。
宣讲和破冰
在安全项目中,最常见的问题就是实施方和相关的配合人员,因关注点不同而导致的分歧。项目中安全人员关注的是如何按时完成项目,保证自身的安全项目内容得以实现。而参与实施配合得人员关注点主要集中在。
* 加固是否会影响业务系统的正常运行。
* 加固是否会带来业务上的中断。
* 加固是否会给系统带来性能上的影响。
* 加固实施是否会带来大量的工作量和挤占大量的时间。
* 加固后运维工作是否会在操作上十分不便。
* 加固后的主机是否会会在安全上和现有水平相比,有很大提升。
此时整个项目的主要矛盾是相关人员对加固没有了解,不清楚项目可能会带来哪些“利”、“弊。
因此需要通过会议等方式,向各个部门的Leader ,骨干进行加固方面的知识介绍和内容宣讲。
首先,为了验证自身说法的科学性,前期测试需要通过数据证明各种影响的具体数值,并给出目前的数值进行比较。根据数据同运维线沟通,商讨性能等指标容忍基线。
其次,项目在设计时要充分考虑业务中断、性能的影响。本次操作中我,在初始设计上规避重起等可能造成中断的行为,并出具了性能评估报告,比较图谱等进行性能影响验证。为了使报告具有说服力,应尽量争取将被实施部门提供样机(或选取明星部门的主机),以便采集数据得到较大范围的认可。
再次,我在本次加固项目中,实施采取自动化脚步、程序的模式进行。事先设置好加固项的配置文件后,执行安装脚本自动化部署,尽量避免部署所带来的时间和人力成本(Windows下安装应用程序亦是此类思想)。
同时此类自动化部署,十分有利于在短时间内批量部署大规模主机。 而且脚本应具有很强的回退功能,能通过执行脚步达到完全回退的目的。(当然回退功能的自保护能力应该很强 :))
同时,提供一份加固影响表,将每项加固内容可能带来的影响进行描述,并且在实施中时时更新此表,并同步收集故障案例,作为培训资料。
最后,加固效果的验证本身存在一定的困难,前期可以采用制作演示录像,PPT讲解等方式,后期进行培训时,可以构建一些演练环境进行展示。
总结一下,此阶段主要是对加固框架内容进行修正,同时向各个部门传导加固意识,打消顾虑,寻求领导层支持和理解,也为后面的大规模实施打下基础。
实施和尝试
经过前一阶段的准备和沟通,基本达成了如下效果。
* 各个部门在部门领导和骨干级知晓了解了安全加固的内容。
* 对安全加固内容的安全提升有了认可。
* 对于安全加固方面可能造成的影响有了一定认识。
* 熟悉安全加固项目中的项目组成员和每个成员的职责。
* 清楚地知悉安全加固不会带来很大工作量。并且是必须要操作的一个安全工程项目。
在此基础上,整个项目的主要矛盾点已经由对项目不了解,工作量可能的负担,转变为了安全加固是否给运维带来风险。
1. 针对主要矛盾上的变化,整个项目调整进入实施和尝试阶段。在此阶段 ,主要工作从各个部门抽取主机,进行初步的加固试运行。试运行的主要目的是:
2. 验证稳定性,因为此阶段运维人员重点关注稳定性,所以从项目组侧应保证,实施的加固大多数情况下,确实可以保证技术层面的稳定;如果一旦出现问题,响应时间解决问题的态度要到位;选取主机要具有代表性和一定的数量,这样在数据上才会有说服力和验证效果。
3. 进行项目磨合,此时是熟悉配合人员的最好阶段,同时也为项目组提供了后期部署的演练机会。因为此阶段时间压力小,因此应尽可能多的让项目组组员熟悉各个环节(让每个成员都可以互为备份),并对操作流程进行演练修正。
4. 试验主机的选取,我采用的方式为典型主机选取方法,一般会选取如下类型的主机:
* 典型角色,选取的主机在业务架构上是典型角色,如一个游戏中,前台的应用服务器,Cache服务器,DB等,各抽取一台。
* 负载特征明显,系统负载上有较多代表性的主机,如高IO访问量的主机,高并发session主机,高CPU占用,高内存占用的主机。
* 充分尊重运维人员的意见,抽取试验的目的,最终还是为了通过在有代表性主机的试运行,能提前发现隐患,避免可能的问题。因此抽取何种主机方面,熟悉实际环境的运维人员的意见十分值得参考。
* 架构上冗余,考虑到试运行可能带来的风险,选取主机应尽量选取架构上提供冗余支持的主机,不要在可能出现单点故障的主机上实施。
如果在试验阶段出现大型事故,那么此项目推行的难度将会几何级上升,因此此阶段一定要慎重,同时PM要具有在基层消化小型问题的能力,避免一般性问题因人为因素被放大升级。
总结,此阶段主要是通过沟通,争取一小批具有代表性的主机参加试运行,观察实际运行效果,安全人员对试验情况进行跟踪,对发现的问题进行修正。同时锻炼队伍,准备下一阶段的大规模部署
全面展开
通过前一阶段的工作,基本可以到达如下效果
* 业务部门领导到技术层对于整个加固的稳定性有了初步认可。
* 参与配合的实际运维人员对于操作方法、流程和人员有了熟悉和操作经验。
* 加固项目在加固内容上可能存在的问题和不兼容基本被消化。
* 加固项目组内技术人员得到锻炼,能应付一般突发情况,并对各个部门的业务结构、人员组成结构相当的认识和了解。
此阶段主要矛盾也有对于加固内容的稳定性的担心,逐渐转化为对工程操作方法不了解,以及担心在后续工作中可能碰到未知问题,所造成的不安。
因此该阶段的重点为。
* 同运维部门Leader和骨干共同回顾前期的项目进度和成果。
* 同运维部门骨干和部门领导确认回退方案,认可回退方案的可靠性和可行性。(这点是重中之重。
举例:
当加固后,运维中出现故障,是否为安全加固导致,往往会带来很多争论和工作量,尤其是如果因为此类故障,导致对加固稳定性的质疑,将直接影响整个工程的进度。如果能够双方认可回退方案,一旦出现问题,运维部门执行回退后,即可迅速定位是否是“加固造成的影响”,便于双方进行排障。
* 同运维部门就项目中的人员分工、操作内容、时间等进行落实,并进行备忘。
* 对新装主机加固纳入装机流程,保证后续上架主机全部闭合为“加固主机”。
* 对相关运维技术人员进行培训,重点在于回退技术的反复演练。并让运维部门领导了解到此技术,在部门内进行强化。
* 向运维技术人员表明态度,并做出行动,加固相关支持的将以持续性的姿态进行,不会在加固完结后终止。
* 组织“实战演练”,通过搭建模拟环境,让一线人员有机会操作实际工具,增加其操作和动手能力。
重点关注
因为此阶段将会完成整个实施过程的95%以上的加固工作,因此在部署时的技巧十分重要,部署实的几个大原则为:
* 阶梯式部署,部署之初应该采取逐步递增的方式,如分5个阶段,在3个月内部署3000台主机,可以采取如下步骤 1% —9% —10%—30%—50%。
* 选取角色考虑,在部署时应充分利用业务的冗余特性,尽量避免按照业务角色分类、分组,在一次部署时,选取单一角色的主机进行部署。如果部署时出现故障,那么整个业务都将受到影响,对用户提供的服务不得不中断。
因此不应该以业务系统为单位进行部署,而应该纵向切片进行部署,这样如果出现故障,即便部分节点不可用,但是由于同一角色服务器被分批次部署,提供了冗余,服务提供商依然可以为用户提供持续服务,如左图所示。
* 每完成一个阶段,如50% ,80%应该时时输出加固阶段性报告,对具体实施人员和相关部门Leader进行通告和知会。
* 此阶段应该注意收集加固效果体现的案例,作为阶段性报告输出和结项报告素材。
项目收尾完结
项目进入到此阶段,大部分主机完成加固,主要矛盾基本消失,主要工作集中在:
* 主要是对剩余主机做好加固收尾工作,不残留未加固主机,如果有特殊情况,需要进行文档备案。
* 整理项目资料,文档 、代码等进行封闭,不再进行改动,保存归档并进行备份。
* 酬谢相关配合Leader和技术人员。
* 发出结项报告,对于整个项目进行回顾,总结案例、加固成效和问题。
* 作为持续性安全工程,提出下一阶段的构想蓝图。
总结
曾经同朋友开玩笑说,通过此次项目的操作,我也许是加固主机最多的人之一了,当然在实际操作中涉及了更多的是PM的角色,主要是筹划、设计、推动等工作偏多,总结了一些项目操作的经验,从内容上看,此项目也许只能视为中小型项目,但从主机数目看,此项目绝对可以视为大型安全项目,因此我觉得其中积累的一些经验,应该还是有一定的成色,不妨写出来与大家分享。
项目中涉及的具体内容、技术细节、代码工具以及数字等数据,因为涉及敏感信息,不方便提供,还请大家原谅。如果大家有什么希望同我讨论的,欢迎同我Email联系,谢谢。

March 9, 2008

加尼尔CEO职位定理

Filed under: IT, 人生, 团队管理 — Jiania Hung @ 11:05 pm

在发展战略上看,要么把现在的CEO换掉,要么在职CEO换掉他的想法!

关于加尼尔环境定义

Filed under: IT, 人生, 团队管理 — Jiania Hung @ 12:52 am

加尼尔是一个创业之地,创新之地。
同时也是实现梦想之地–鼓励创新,宽容失败。

在这里,我们不会看你的年龄

在这里,我们不会看你的学历

在这里,我们不会看你的背景

在这里,我们最看重的是你为加尼尔这支团队创造的价值

当你为这个团队创造的价值被认可了

它就会给你一方天地

让你有机会出人头地

这就是加尼尔!

March 3, 2008

如何成为一名伟大的,优秀的法律人

Filed under: 法律 — Jiania Hung @ 7:38 pm

如何成为一名伟大的,优秀的法律人?

如何成为一名伟大的,优秀的法律人?
   郭国汀
   2003年2月和12月我分别应北京大学法学院和武汉大学法学院邀请,作了题为 “如何成为一名伟大的律师?”(北京大学) “如何成为一名优秀的律师?”以及 “国际贸易中的律师实务”和 “国际海上保险法律实务”(武汉大学)数场演讲.当时仅是口头演讲,所有的演讲稿就是一张纸上写明的“志,知,勤,信,友,勇,恒”七个字.北大听众约100余人,武大则300余学子.演讲现场反应热烈,演讲期间北大学子中途走了一人,武大走了三人(随后由于南郭眼露绿光,吓得剩余听众一个都不敢再溜之大吉!).因为此四名高材生不愿听狂妄如南郭者的瞎吹.近日读到郭小姐小结的我的讲演稿,非常感谢郭小姐费心费神.兹根据回忆整理出下述稿件,供诸位朋友批评嘲讽.当然赞扬赞美吾同样爱听!
   “志,知,勤,信,友,勇,恒”
   此七项要素缺一不可,只要照此做去,成功则是必然的.
   一. 志乃立志,志向,志气, 宏志之谓.惟有志向远大者,日后方有可能成就非凡的伟业.志宏高者未必都能成功,因还需主客观各方面的条件,但有可能成功;无志者或弱志者断无成功之理.很难设想一个胸无大志者,日后会有什么动地惊天的业绩.
   立志是成才的第一步,立志应受每个人自己的主客观条件制约,根据自己的兴趣爱好特长确立自己的奋斗目标.不想当元帅的士兵成不了好士兵.年青时的梦想往往是成年后的现实.大学生涯是一个人人生最美好的岁月,当然得争分夺秒地珍惜.
   志向远大是每个成功者的特征之一.当然社会不可能人人皆成功,有老板必然有雇员. “人生有苦水也有美酒,就看你怎样去追求.如果你勇敢地抬起了头,苦水也会变成美酒.”成功的人知道自己适合做什么,知道怎么做是最好,知道自己. “认识你自己” “我思故我在”.有人立志从政,有人喜欢娱乐;有人对思考乐此不疲,有人能言善辩,世上道路有无数,没有必要千军万马均走独木桥.
   志气或宏志当然是成功者必备之素质.志向远大才有可能成就大事.从小事做起,只有先将小事做好,才有可能干好大事;千万别成为大事干不了,小事不愿做的 “口头上的巨人,行动上的矮子.”而应做口头和行动上的巨人.至少也应做口头上的矮子行动上的巨人.
   人的志气志向随着时间的推移会发生变化.有些人志向越来越小,最终随波流,成为普通群众;这种人从人生的目标上看,是幸福的.他不必整天奋斗不已.只需以平常心过平静的生活和日子.有些人基本未变,只有那些真正伟大的人,他的志向则会越来越宏伟,可谓与时俱进.因为没有人生来的志向就是要成为世纪伟人.他的志向最终变得宏伟,是因为他克服了一个又一个困难最终实现了一个又一个奋斗目标,攀上人类思想珠峰.
   1993年我在<坎坷九年律师路>中写道:”我曾为自己设立过一个又一个的奋斗目标。入学伊始便把将来成为法学教授作为奋斗方向,打从当上律师那天起又立志要成为一名能在国际法庭代表中国利益的国际律师。为此招来不少冷嘲热讽,嘲我狂妄自大,讽我不知天高地厚。然而我却始终认为一个人的奋斗目标越远大,日后可能取得的成就也会越大。立志是成才的第一步,很难设想一个胸无大志、目光短浅的人日后会有什么惊天动地的业绩。回顾自己从一个走村串户的小木匠,到一名在穷乡僻壤接受那遥遥无期的再教育的知青,进而成为一名涉外律师所走过的路。我认为树立远大的理想并与祖国的事业相结合,以认真负责的态度勤奋努力地学习和工作,不屈不挠地奋斗进取,是每个成功者的必由之路。”
   我最早的理想(约8岁时)是当一名科学家,当年读的一本科幻小人书激发了我天真的想法;15岁时变成当一名专业长跑运动员,当年根本没有上大学之说,对黑九类子弟而言没有任何选择的余地;17岁时又想当一名产业工人,工人阶级领导一切呵,不过谁相信呢?18岁想当一名果树栽培专家,大有扎根农村干一辈子革命之势,其实那是由不得你,别无选择呀;22岁想当法学教授,好不容易逮着读大学的机会,能不珍惜吗?25岁立志在有生之年出版100部专译著,为的是与美国凯尔逊教授一比高低,当然有点不自量力,今生看来是无望了;26岁月时想当一名哲学家结果却因哲学沉思进了精神病院!27岁想当一名国际律师,但迄今英语仍仅学得个洋径浜,半通不通的;35岁我的理想又变成了”四百律师”.至于何谓”四百律师”?好像属于国家秘密,还是不说也罢,免得像郑恩宠律师一样弄个“非法窃取国家秘密罪”,可担当不起。至于45岁的今天,我的理想更属机秘了!.瞧,我的理想越来越宏伟,以致狂妄到竟敢在北京大学讲演劳什子”如何成为一名伟大的律师?!”还好我最担心的事(被学生们轰下讲台)在二个半小时的脱稿演讲中始终未发生,北大学子们还是以他们博大的胸怀,兼容并蓄的风格,容忍了我这么个不知天高地厚的,比当年那个辩子教授辜鸿鸣还要自命不凡的老家伙.
   吾以为人的理想随着时间的推移会发生巨大的变化,不过至少可分为三类:一是理想越变越现实目标越变越小,此类人有福了,至少不苦不累可以安享安娱舒适的天伦之乐;二是基本未变,此类人简直就是天才,一生下来就知道自己肩负的历史史命,以致能够“任尔天翻地覆,我自巍然不动”;三是越变越天真,目标越来越大,这种人进精神病院,当然是自找的,谁叫你不循规蹈矩.安分守己!不过,没有思想、理想的民族,注定是没有前途的;同理,没有思想、理想的人,与幸福的猪似乎也没有什么不同。
   二. 知及学识,知识,常识,专业知识之意.欲成就大业,就必须打好渊博的学识基础,基础越广博,精深,日后建树也就能越出类拨翠.知识不应限于法学,而应是全面的百科全书式的包罗万象的,归纳言有三大类:思维科学,自然科学,社会科学;具体言之:哲学,伦理学,社会学,人类学,生物学,美学,逻辑学,政治学,法学,心理学,文学,诗歌,散文,历史,天文,地理,数理化.各门各类知识都要有个基本了解,在此基础上应在有限的几种专业上精通.成为专家.
   “知识就是力量”.知识在一定层次上可以融会贯通.比如:数学与哲学相通,书法绘画也能反映作者的哲学思想.至于音乐家与哲学的关系更是密切.宗教与哲学也是密不可分.事实上大量自然科学家也是哲学家.当代许多自然科学家同时信奉基督等宗教.
   知识一般都是通过大量听说读写而来.实践经验得来的知识有限但较扎实,而通过阅读得来的间接经验知识似乎更为重要.处处留心皆学问.世上无难事,只怕有心人.书山有路勤为径,学海无涯爱作舟”.当可作为读书人的座佑铭
   知识与智慧,似乎知识更为重要.中国人的智慧在世界民族之林中应属名列前茅.但普通中国人明显缺乏各种科学知识甚至常识,即便所谓知识分子中无知者也不在少数(尤其在政治学社会学领域).实务中产生的中外争议,绝大多数中国人不知输在智上,而是败在知里.或许正因为中华文明过于古老,智慧太多,以至于中国人均很懂得玩小聪明,而缺大智慧.人人都富有智慧的社会,人人皆活得很艰苦.因为你聪明,他比你更聪明.你玩心计,他比你更会玩.因此中国人究竟是聪明还是笨,真是天知道.
   三. 勤乃勤奋,勤勉,敬业,负责之意.勤能补拙,勤能创造奇迹,懒惰则注定失败.勤奋并不意味着每24小时不睡觉地读书沉思默想,也非不能劳逸结合,有张有弛地勤奋学习读书工作;古训云: “书山有路勤为径,学海无涯苦作舟”.改’苦’为’爱’即可.因为爱好是最好的老师.一个人能从事自己所喜欢热爱的职业,学习自己热爱的专业,读爱读的书,那是人生最大的快事,没有理由学不好,没有什么做不到.
   唯有勤勤恳恳者,方有可能敬业,而敬业精神在任何行业中都是首要的美德.唯有敬业方有可能精业,只有敬业才有可能成为行业里的行家里手;也只有敬业,方有希望最终成为大师大家.
   负责实乃敬业者天然的品德.敢于负责是每个成功人士的财富.敢想敢干敢负责,虽然失败挫折难,然最终定有水到渠成的一天.遇到困难失败只会推卸责任甚至逃避自已应当承担的责任者,上天都会严惩之,三尺之内有神明.因为不敢负责者绝不可能赢得人们的信任.更不可能委以重任.
   四. 信及诚信,自信,信仰,信用,信誉之意.诚信是人类最大的美德.狡诈能骗人于一时一事,能骗大众于一时,骗少数人于永远,但决不可能骗大众于永远.因此诚实从战略上看,是最好也是最有效的策略.有诚则有信,诚信者人不助之天亦助之.
   自信是非常重要的主观心理素质,在任何情况下都应当自信,相信你自己!走自己的路任他人说去吧!没有信心者,缺乏自信者断无成功之理.其实人的主观心理态度对人的学习工作的影响巨大.一个人是否高兴或是悲观失望,很大程度上取决于他的自我精神状态.往往是外界情况一样但由于人采取的主观心态不一,导致绝然不同的后果.
   信仰是一种神奇的力量.自人类诞生以来,信仰便一直是主导人类精神的一股强大的力量.在精神思想市俗社会各方面均有不容忽视的影响.正因为信仰具有此种不可思议的强大力量,因此宗教信仰才会吸引全世界那么多人趋之若鹜.信仰自由亦是人类基本人权.当年英国清教徒正是受迫害才不远万里远涉重洋投奔自由.信仰共产主义或是信仰基督或是佛教或是什么这功那轮会么的,应当是人们的自由,政府不应强制干涉,更不应动用国家强制力暴力弹压.即便是歪教,也应当有科学真理去战胜之,迷信用暴力消灭人类的信仰者,不是无知就是别有用心.历史的事实反复告诉我们.思想问题唯有用思想方法才有可能解决.宗教问题当然也只能用宗教的方式才有可能协调.
   信用信誉当然至关重要,做任何事首先是做人,一般而言,事业成功者都是很懂为人之道的言主必信,行必果.可能一时一事吃亏,失利,但总体上长期看则必定会有丰厚的回报.有不少人急功近利,急于求成以至不顾信用,不讲信誉使出诈骗手段.最终必定得不偿失.名誉乃人们安身立命之本.因此一定要注重自己的名誉信用.当今之世中国人之间普遍缺乏诚信,信誉;这是长期以来当局奉行的奴化教育,愚民政策,单一思想一统天下外加暴力压制的必然恶果.
   五. 友指友谊,友善,友爱,友情,益友良友,说白些则是指社会交际层面的社交关系.有良好的人间关系,是从事任何事业成功的一项必备前提条件.朋友多多益善,公共关系,社会关系,互相帮助或从功利角度言则是相互利用关系.所谓一个好汉三个帮正是此理.善于用人充分利用各种关系来达到自已的目的.但任何时侯都应有个底线:公道,正义,人性.越过此底线那怕有黄金万两也不应去谋取.金钱本身外之物,人赤条条地来到世间,最终无论高官显贵,皇亲国戚,还是平头百姓,草民残民,皆摆脱不了赤条条地去的自然规律.那么又何必呢?

朋友多了路好走,功利型的朋友,君子之交淡如水的至友,对你的事业有帮助的朋友,拉你下水的酒肉朋友,白道黑道朋友,都有规则,都应遵守游戏规则,正所谓盗亦有道. “天道至大,易道天成”.此话有深意.
   读书人最容易在此问题上失利,因为不愿意花时间在无趣的社交活动中,不想花时间在交际上.认为浪费了宝贵的时间.有此种想法者大有人在,但社会是由人组成的,人的成功实际上至少85%取决于人际关系.因此不可不重视.关系学社交学是一门高级学问,而且是一门实践的学问.必须重视.
   六. 勇指勇气,勇敢,勇为,勇往直前,勇于承担责任,勇于面对任何艰难困苦,勇于承受各种压力.这些同样是成就大事业的基础.大智大勇.有勇有谋.勇气是男性的特权,是雄性的特征.刚毅果敢,敢做敢当是男子汉大夫英雄气概的体现.当然勇并非指蛮勇,也非指有勇无谋的李奎式鲁勇.面对各种困难,各种艰险敢想敢干;对于来自各方面的高压,来自当权者,来自黑社会的威胁敢于抗争勇于斗争.这需要道德勇气,不畏强权唯真理唯大,一切唯真理是从.因为真理最终定能战胜一切谬误.勇敢应当建立在志知勤信友之基础上,无私才能无畏,大智才能大勇.我之所以敢为郑恩宠律师辩护,是因为有股勇气充胸间.
   七. 恒指恒心,恒久,永恒,百折不挠.水泣石穿,绳锯木断皆源于恒字.三天打鱼两天晒网,五分钟热情那怕高达1000度,三板斧,朝秦暮楚必将一事无成.皆缺恒心.恒心是非常重要的素质.只要人有恒,万事皆可成.恒心的力量惊人.人类历史上成大业者往往并非那些最聪颖的天之骄子,而是那些资质平凡但具有非凡恒心的人.他们认准一个目标后便专心致志,全心全意为之奋斗不已.
   一个人如果具备了上述七方面的素质,他便具备了成功的基本要件,此外,道德感正义心社会责任感是必不可少的;当然要真正成功还得看天时地利人和三方面的主客观条件.只要他或她坚持不懈不掘不挠地努力奋斗,日后必定成功,一切仅是时间或机会问题而已.而机会是为那些有所准备的人提供的.
 

人生感悟之我的告白

Filed under: 人生 — Jiania Hung @ 7:25 pm

最近有些同事似乎对我颇有成见,指责我卖弄,吹嘘,年纪太轻,太狂等;其实我真诚欢迎批评,批判,特别是有具体内容有独到见解的批评.理解支持我的同事,这些令我感动,使我深受鼓舞,因为我不再孤独,因为有同道;批评指责我的同事,仍然是朋友,因为你们使我更加了解我自己,时时提醒自己学无止境,不要不知天高地厚,天外有天,个人是微不足道的;我的思想源于我独立思考的产物,或许不是正确,也许没有高深莫测的理论支撑,可能与身边的思想格格不入.这几年我对自己的思想却坚信不移并付诸实践,多少已证明我当年的思想绝大多数是正确的.如今业已取得一些小小的成就,足以鼓励我继续向前.

March 2, 2008

PHP设计模式之观察者模式实现DEMO

Filed under: IT, PHP, SPL — Jiania Hung @ 7:59 am

<?php
/**
 * Jiania之观察者模式实现DEMO
 *
 * @package SPL
 * @subpackage SPL_SpLObserver
 * @author Jiania J Hung<jiania@gmail.com>
 * @since PHP5.1.x
 * @copyright http://www.jiania.com
 *
 */
class boy implements SplObserver
{
 private $name;
 
 public function __construct($name)
 
 {
  $this->name=$name;
 }
 
 public function update(SplSubject $subject)
 {
  echo  $this->name.” Says:I love you.\n”;
 }
}

class girl implements SplObserver
{
 private $name;
 
 public function __construct($name)
 {
  $this->name=$name;
 }
 public function update(SplSubject $subject)
 {
  echo  $this->name.”Says:I love you.\n”;
 }
}

class sweetie implements SplSubject
{
 private $name;
 private $people;
 private $state;
 
 public function __construct($name)
 {
  $this->people=new SplObjectStorage();
  $this->name=$name;
 }
 
 public function attach(SplObserver $observer)
 {
  $this->people->attach($observer);
 }
 
 public function detach(SplObserver $observer)
 {
  $this->people->detach($observer);
 }
 
 public function notify()
 {
  foreach ($this->people as $person)
  {
   $person->update($this);
  }
 }
 
 function count()
 {
  return $this->people->count();
 }
 function contains($obj)
 {
  return $this->people->contains($obj);
 }

 public function getState()
 {
  return $this->state;
 }
 public function setState($state)
 {
  return $this->state=$state;
 }
 public function getName()
 {
  return $this->name.”\n”;
 }
}
$sweetie=new sweetie(’Jiania family’);
$boy=new boy(’jiania’);
$girl=new girl(’dreamer’);
$sweetie->attach($boy);
$sweetie->attach($girl);
echo $sweetie->getState();
$sweetie->notify();

February 3, 2008

for与foeach,while等深入比较与研究

Filed under: IT, PHP — Jiania Hung @ 7:46 pm

本文摘自<PHP编程思想>一书,版权属于洪建家所有,请尊重版权.

PHP编程思想之for,foreach,while,do-while深入讲解
初学编

1.1 for循环语句

for语句的格式为:

概念:for是计次数循环,其执行次数由循环变量的终值减去初值再除以步长得出.

for (初始化语句; 条件语句; 控制语句)
{
语句1 ;
语句2 ;
….

语句n ;
}
for 语句的执行顺序如下:
首先执行“初始化语句”,无条件被执行一次,然后测试“条件语句”
若条件成立,则执行语句1到语句n;然后执行“控制”语句.程序完成第一过程体.
接下来程序会再测试条件语句是否成立,如果成立则重复执行以上过程,直至条件不成立时才结束for循环.

DEMO:

demo 1写法

<?php

for($i=0;$i<10;$i++)
{
echo $i.”\r\n”;
}
?>

demo 2 写法

<?php
for($i=0;$i<10;$i++):
echo $i.”\r\n”;
endfor;
?>

demo 3 写法

<?php
$i=0;
for(;;)//注意初始化语句与条件语句与控件语句都为空
{
if($i>10){
break;
}
echo $i.”\r\n”;
$i++;
}
?>
1.2 foreach 循环

foreach (数组 as 数组值)
{
语句1 ;
语句2 ;
….

语句n ;

}
foreach (数组 as 数组键名 => 数组值)

{
语句1 ;
语句2 ;
….

语句n ;

}

注:
1.第二种写法主要是扩展第一种写法;
2.执行时,数组内部的指针会自动指向第一个单元,这意味着在做数组循环时不需要调用 reset()方法.程序结束后,指针返回数组尾端.
3.foreach 所操作的是指定数组的一个拷贝,而不是该数组本身,如果想改变数组,可以在执行之前用引用方法改变.
4.foreach 不支持用“@”来抑制错误信息的能力。
5.foreach 可以遍历对象

1.3 while 循环

while循环和for循环类似,其格式为:

while (条件语句)
{
语句1 ;
语句2 ;
….

语句n ;
}

解说:

执行while时,先测试“条件语句”,如果条件成立,则执行语句1到语句n,直至条件不成立时结束循环。

故如果当条件为false时,那么循环体一次都不会被执行.当循环体执行由True转变到False语句时,才会结束循环

DEMO:

demo 1写法
<?php
while ($i<10)
{
 $i++;
 echo $i”\r\n”;
}
?>

demo 2写法

<?php
while ($i<10):
{
 $i++;
 echo $i.”\r\n”;
}
endwhile;
?>

1.4 do-while循环
do
{
语句1 ;
语句2 ;
….

语句n ;
while(条件语句)
}

do-while与while 循环最大区别在于表达式的值是在每次循环结束时检查而不是开始时,所以 do-while 的循环体保证会执行一次.

demo

<?php
$i=9;
do {
    if ($i < 10) {
        echo $i.”\r\n”;
        break;
    }
} while(0);

未完,待继
?>

框架研究->基础知识

Filed under: IT — Jiania Hung @ 7:44 pm

三层结构

1.表示层      (Presentation)
2.业务逻辑层  (Business Logic)
3.基础架构层  (Infrastructure)

五层架构

1.表示层      (Presentation)
2.控制/中介层 (Controller/Mediator)
3.领域层      (Domain)
4.数据持久层  (Data Persistence),解决对象与关系之间的不匹配问题
5.数据源层    (Data Source)

相关名词解释

COM(Component Object Model)组件对象模型或是元件物件模型,很多功能已被.NET取代

OLE(Oject Linking and Embedding)物件连结与嵌入

Widows操作系统提供三种应用程序间的通讯机制:1.剪贴簿:clipboard 2.DDE 3.OLE

ActiveX :在广义上是指微软公司的整个COM架构,但是现在通常用来称呼基于标准COM接口来实现对象连接与嵌入的ActiveX控件。

DAO(Data Access Object) 数据访问对象

DTO(Data Transfer Object)服务器端数据对象的抽象

ADO(AcitiveX Data Object) ActiveX数据对象

WOSA(Windows Open Services Architecture)微软公司开放服务结构

ODBC(Open Database Connectivity) 开放数据库互连,微软公司开放服务结构(WOSA)中有关数据库的一个组成部分

JDBC(Java Data Base Connectivity)java数据库连接

持久化:BMP,CMP 好处:可移植性,可扩展性,可维护性
CMP (Container-Managed Persistent)
BMP(Bean-Managed Persistent)

February 1, 2008

洪氏家族存在的意义与价值

Filed under: 人生 — Jiania Hung @ 10:51 pm

洪氏家族存在的意义与价值

活着意义:不断优化本族物种的生存能力,无止境开发本族物种各因素潜能!终生致力于保持其所属生命物种的最优势地位.
活着的地位:带领万物生长!鉴定本族物种一生功过是非标准:其一生是否比上一代更优化,其是否对万物或人类、本族有历史性的推动作用!
我洪氏家族必需用必生精力去研究探索
1.语言学 得至少掌握代表所在时代主流三种语言以上!这点是对本物族基本能力的最低要求!
2.管理学 因我本族人一生下来注定其是领军人物,所以得致力研究悟出针对所在时代的环境因素,创造有自已特色的方法论,并成功运用!
3.医学   精通自已构造,注重体能的开发能力。归之一点,要了解自已生命的过程变化,并有能力控制自已。
4.高技能学 掌握所在时代主流超前技术,争做影响主流技术的前进人物,归之一点,有利于本物种生存
5.经济学  洪氏家族最重要一点,一定得跟其它技术结合起来,我洪氏家族要争做所在时代天下首富
6.宇宙空间学:对生命起源,生物基因构造,洪氏家族所赚的经济基础要针对所在时代情况,得尽量把大部份财力用在这上面。
这是洪氏家族世代做为太阳系高级生物第一阶段要完成作务。之后的总纲要那时代物种再编写。
其它:
只能是爱好,随个人喜爱

洪氏家族行商法则

Filed under: 人生 — Jiania Hung @ 10:50 pm

洪氏家族行商法则

            ——–哪里能赚钱哪里就有闽商的影子

1.人人生而不可能平等

2.世间财富绝不可均分

3.世间万物必需有等级

4.保持最佳精力做事情

5.要发展必需走出大海

6.做事需胆爱拼才会赢

7.财富是合理分配出来

8.善观时变、顺势有为

9.和睦关系、彼此需要

10.合群团结、豪爽义气

11.恋祖爱乡、回馈桑梓

January 29, 2008

之PDO数据层深入讲解

Filed under: IT, PHP — Jiania Hung @ 2:27 am

在PHP5,6系列中,主要有四个类,因为开发领导者与SPL是同一个人,所以关联相关厉害,它们分别是
class PDOException extends RuntimeException
class PDO

class PDOStatement implements Traversable

final class PDORow

Classes [4] {
Class [ <internal:PDO> class PDOException extends RuntimeException ] {

- Constants [0] {
}

- Static properties [0] {
}

- Static methods [0] {
}

- Properties [5] {
Property [ <default> protected $message ]
Property [ <default> protected $code ]
Property [ <default> protected $file ]
Property [ <default> protected $line ]
Property [ <default> public $errorInfo ]
}

- Methods [9] {
Method [ <internal, inherits Exception> final private method __clone ] {
}

Method [ <internal, inherits Exception, ctor> public method __construct ] {

- Parameters [2] {
Parameter #0 [ <optional> $message ]
Parameter #1 [ <optional> $code ]
}
}

Method [ <internal, inherits Exception> final public method getMessage ] {
}

Method [ <internal, inherits Exception> final public method getCode ] {
}

Method [ <internal, inherits Exception> final public method getFile ] {
}

Method [ <internal, inherits Exception> final public method getLine ] {
}

Method [ <internal, inherits Exception> final public method getTrace ] {
}

Method [ <internal, inherits Exception> final public method getTraceAsString ] {
}

Method [ <internal, inherits Exception> public method __toString ] {
}
}
}

Class [ <internal:PDO> class PDO ] {

- Constants [77] {
Constant [ integer PARAM_BOOL ] { 5 }
Constant [ integer PARAM_NULL ] { 0 }
Constant [ integer PARAM_INT ] { 1 }
Constant [ integer PARAM_STR ] { 2 }
Constant [ integer PARAM_LOB ] { 3 }
Constant [ integer PARAM_STMT ] { 4 }
Constant [ integer PARAM_INPUT_OUTPUT ] { -2147483648 }
Constant [ integer PARAM_EVT_ALLOC ] { 0 }
Constant [ integer PARAM_EVT_FREE ] { 1 }
Constant [ integer PARAM_EVT_EXEC_PRE ] { 2 }
Constant [