青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 94, comments - 250, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

引言:

GameByro作為一款次世代引擎,使用了復(fù)雜的材質(zhì)系統(tǒng),用來滿足各種各樣的需求。材質(zhì)代表了物體受到光照后所呈現(xiàn)出的質(zhì)感,而這種質(zhì)感在計(jì)算機(jī)圖形學(xué)中需要著色代碼來完成,所以當(dāng)前流行的圖形引擎設(shè)計(jì)是使用被渲染對(duì)象的材質(zhì)與shader相關(guān)聯(lián),GameByro也不例外。GameByro的材質(zhì)系統(tǒng)可以通過shade tree生成shader程序,增強(qiáng)了應(yīng)用程序?qū)訉?duì)可編程渲染管線的控制能力。

渲染架構(gòu)概覽:

在GameByro中,對(duì)象表面的色彩、紋理、光滑度、透明度、反射率、折射率、發(fā)光度等可視屬性與傳統(tǒng)的材質(zhì)系統(tǒng)分離,獨(dú)立的成為了對(duì)象的渲染屬性(NiProperty),而材質(zhì)(NiMaterial)僅用來對(duì)著色程序的封裝,這樣就實(shí)現(xiàn)了渲染數(shù)據(jù)和渲染方法的分離,降低了耦合性。如上所說的這些可視屬性在Gamebyro中會(huì)封裝成一個(gè)屬性對(duì)象,在應(yīng)用程序中如果對(duì)對(duì)象掛載這個(gè)屬性對(duì)象,在GPU程序中就可以訪問這個(gè)屬性對(duì)象的值。渲染屬性對(duì)象可以在創(chuàng)建時(shí)指定其類型,如紋理、浮點(diǎn)、矩陣、向量或數(shù)組,此外一些全局性的對(duì)象也可以通過在Shader中用語意聲明為全局object對(duì)象,如燈光和攝影機(jī)等,這樣就可以以同樣的方式來訪問這些對(duì)象上的屬性。

GameByro每一幀的渲染(NiRenderFrame)劃分為多個(gè)步驟(NiRenderStep),每個(gè)步驟又包含很多個(gè)批(NiRenderClick),NiRenderFrame封裝了上層對(duì)渲染系統(tǒng)調(diào)用的接口,而NiRenderClick則代表了圖形硬件的一次繪制操作(對(duì)渲染隊(duì)列中所有的對(duì)象的頂點(diǎn)緩存調(diào)用DrawPrimitive),當(dāng)應(yīng)用程序調(diào)用NiRenderFrame的Display接口時(shí), NiRenderFrame會(huì)依次調(diào)用每一個(gè)NiRenderStep的Render()接口,NiRenderStep就會(huì)執(zhí)行所有的NiRenderClick操作。

對(duì)于每個(gè)NiRenderClick來說,首先要設(shè)置視口和渲染目標(biāo),也就是渲染數(shù)據(jù)流的入口和出口。視口建立以后就可以通過關(guān)聯(lián)的攝影機(jī)對(duì)場(chǎng)景圖中的對(duì)象進(jìn)行裁剪(默認(rèn)的有視口裁剪和遮擋裁剪,此外還可以通過回調(diào)函數(shù)加入自己的裁剪方式),將未被裁剪的對(duì)象放入渲染隊(duì)列。然后Gambyro會(huì)根據(jù)材質(zhì)來對(duì)渲染隊(duì)列中的對(duì)象進(jìn)行排序,讓材質(zhì)相同的對(duì)象處于相鄰位置,這樣可以減少切換shader的開銷。

clip_image002

如圖所示為幀渲染系統(tǒng)的結(jié)構(gòu)圖(簡化版)

材質(zhì)系統(tǒng):

GameByro中的材質(zhì)代表渲染對(duì)象所采用的方法。前面說過。紋理屬性包含了著色所需的原料,那么材質(zhì)就指定了對(duì)這些原料的加工方法。基于當(dāng)前可編程渲染管線設(shè)計(jì),材質(zhì)就成為連接對(duì)象與GPU程序的中間層,應(yīng)用程序可以通過材質(zhì)將shader應(yīng)用于幾何體。

NiMaterial類是所有材質(zhì)的基類,這個(gè)類通過一個(gè)Map來保存當(dāng)前應(yīng)用程序中所有NiMaterial的指針,當(dāng)然這個(gè)Map是靜態(tài)也就是說相當(dāng)于全局變量,通過static NiMaterial* NiMaterial:: GetMaterial(const NiFixedString& kName)接口對(duì)這個(gè)全局的Map進(jìn)行訪問。也就是說,當(dāng)前環(huán)境中所有的NiMaterial對(duì)象是通過NiMaterial類來管理的。此外NiMaterial類還通過靜態(tài)成員變量保存了一個(gè)工作路徑(即shader文件路徑),通過這個(gè)路徑加載shader文件。NiMaterial就像是一個(gè)中介,全權(quán)代理對(duì)對(duì)象的渲染工作。用戶可以通過重載NiMaterial來實(shí)現(xiàn)自己的渲染機(jī)制。每個(gè)NiMaterial都是全局性的,可以作用于多個(gè)甚至是所有的渲染對(duì)象,但一個(gè)渲染對(duì)象也可以擁有多個(gè)NiMaterial,但只能有一個(gè)處于激活狀態(tài)的NiMaterial。

NiMaterial的派生類NiFragmentMaterial提供了對(duì)可編程渲染管線完整的控制機(jī)制,內(nèi)部保存了NiShader的哈希表、一個(gè)NiGPUProgramCache數(shù)組。并且NiFragmentMaterial會(huì)生成一個(gè)用來編譯GPU程序的shade tree(后面會(huì)有解釋)。這樣的話,每個(gè)NiFragmentMaterial可以對(duì)應(yīng)多個(gè)shader程序,這樣就提供了一種機(jī)制,在運(yùn)行時(shí)根據(jù)不同的運(yùn)行環(huán)境和渲染對(duì)象不同的狀態(tài),來選擇合適的shader程序。在NiRenderClick依次渲染可見集中的每個(gè)對(duì)象時(shí),首先會(huì)判斷其是否需要被渲染的標(biāo)記(flag),如果需要被渲染,則使用NiMaterial::IsShaderCurrent接口判斷當(dāng)前shader(上一次渲染所使用的shader)是否有效,所謂有效就是仍然存在并且可以應(yīng)用于本次的渲染對(duì)象,如果無效,則會(huì)調(diào)用NiMaterial::GetCurrentShader獲得shader,用于本次渲染。NiMaterial::GetCurrentShader會(huì)根據(jù)渲染對(duì)象的屬性和當(dāng)前環(huán)境硬件條件來選擇合適的shader程序。當(dāng)然,可以通過重載IsShaderCurrent和GetCurrentShader接口來指定自己的有效性判斷規(guī)則和如何選擇shader程序的方案。 NiFragmentMaterial提供了一套搭建shade tree的框架,用戶可以通過重載來搭建自己的shade tree,當(dāng)然,如果不想通過shade tree的形式生成shader程序也可以,使用NiSingleShaderMaterial可以從文件生成shader程序。

Shade Tree

什么是shade tree呢?我們通常編寫的shader代碼是線性執(zhí)行的,即每個(gè)pass流程執(zhí)行的是文本上定義好的shader流程,每一段shader功能模塊是按一定順序依次執(zhí)行的。如果需要修改流程中的某一部分就需要更改相關(guān)的shader代碼并重新編譯。而shade tree將shader代碼以樹形結(jié)構(gòu)組織起來,每一個(gè)shader代碼塊(一般是一個(gè)函數(shù))都會(huì)被編譯成一個(gè)節(jié)點(diǎn),通過定義輸入變量和輸出變量來提供數(shù)據(jù)流的入口和出口,這些節(jié)點(diǎn)的插入和刪除可以通過應(yīng)用程序來控制,從而靈活的控制整個(gè)渲染過程。這樣shader程序中的一些核心模塊可以由美術(shù)通過工具生成,然后插入到shade tree中,只要輸入和輸出的接口不變,就無須修改其他代碼,從而降低了美術(shù)開發(fā)shader的門檻。

GameByro通過以下幾個(gè)類搭建shade tree:

l NiMaterialConfigurator:shade tree被封裝在這個(gè)對(duì)象中,Uniform constants被封裝在NiMaterialResource中,而NiMaterialNode封裝了相關(guān)的shader代碼,所有的資源和節(jié)點(diǎn)通過NiMaterialResourceBinding連接起來。當(dāng)所有的連接都確立以后,NiMaterialConfigurator會(huì)調(diào)用Evaluate接口生成GPU程序和一個(gè)輸入U(xiǎn)niform資源的集合。

l NiMaterialFragmentNodes:這個(gè)類包含了一個(gè)shader代碼片段的集合,這些代碼片段為不同的平臺(tái)和編程語言所編寫。這就為shader程序員提供了更大的靈活性,用以控制他們的代碼在不同平臺(tái)和圖形硬件上的表現(xiàn)。例如:在高端平臺(tái)可以采用高級(jí)的shader model提供更好的效果,而在低端平臺(tái)上可以關(guān)閉一些特效來加快速度。

l NiMaterialNodeLibraries:這個(gè)類是一個(gè)NiMaterialNode的集合,其實(shí)也就是一個(gè)shader庫。它允許shade tree節(jié)點(diǎn)完全基于數(shù)據(jù)驅(qū)動(dòng)。shader庫的生成可以通過兩種方式,解析XML文件或用XML文件生成C++代碼。GameByro提供了相關(guān)的解析器和代碼生成器。

l NiMaterialResources:shade tree中的Uniform constants,支持多種數(shù)據(jù)類型,包括Constant、Predefined、Attribute、Global、Object。

固定管線的渲染:

GameByro支持固定管線的渲染,其紋理混合過程如下。

clip_image004

固定管線的著色處理流程

上圖很清楚的顯示出了每個(gè)stage的操作,平行的表示兩張紋理的采樣是同時(shí)進(jìn)行的,特定情況下右邊的紋理可能被忽略。

大部分情況下,應(yīng)用程序不會(huì)使用上面所有的stage,開啟或者關(guān)閉那個(gè)stage可以由應(yīng)用程序來指定。

以下為多重采樣的原理圖:

clip_image006

固定管線的紋理多重采樣

缺省的著色處理流程:

GameByro提供了一個(gè)默認(rèn)的著色處理流程,封裝在NiMaterial的派生類NiStandardMaterial中,這個(gè)類執(zhí)行類似于固定管線的流程,在不同階段將紋理采樣、并將采樣到的數(shù)據(jù)混合到最終的結(jié)果中去。

GameByro默認(rèn)的材質(zhì)系統(tǒng)的特性如下:

  • Skinned and unskinned transformations. Skinned transformations can support up to 30 bones per draw call.
  • Vertex colors
  • Base maps
  • Normal maps
  • Parallax maps
  • Dark maps
  • Detail maps
  • Bump environment maps
  • Gloss maps
  • Glow maps
  • Decal maps (up to 3)
  • Cubic and spherical environment maps
  • Point/Spot/Directional/Ambient lights contributing to the diffuse, specular, and ambient color. Up to 8 total lights. Per-pixel or per-vertex.
  • Projected light maps. Clipped or unclipped. (Up to 3)
  • Projected shadow maps. Clipped or unclipped. (Up to 3)
  • Texture transforms per map.
  • Per-vertex fog

下圖顯示為不同的紋理、燈光、材質(zhì)屬性的組合過程,不過需要注意的是,視差貼圖和凹凸貼圖屬于特殊的情況,它們僅僅影響到紋理采樣的UV坐標(biāo),而并非直接對(duì)最后的顏色值產(chǎn)生貢獻(xiàn)。視差貼圖會(huì)改變所有貼圖采樣的UV坐標(biāo),而凹凸貼圖僅對(duì)環(huán)境貼圖的UV產(chǎn)生影響。

clip_image008

以上流程完全由shade tree構(gòu)建,NiStandardMaterial提供了大量的函數(shù)接口用于對(duì)每個(gè)流程的控制,用戶可以通過重載相關(guān)的接口,插入自己的shade tree節(jié)點(diǎn),修改每一步的操作或處理過程。例如:

virtual bool HandleBaseMap(Context& kContext, NiMaterialResource* pkUVSet,

NiMaterialResource*& pkDiffuseColorAccum,

NiMaterialResource*& pkOpacity, bool bOpacityOnly);

當(dāng)然,整個(gè)流程的順序和結(jié)構(gòu)修改起來比較困難,如果有需要可以定制自己的材質(zhì)系統(tǒng),搭建自己的shade tree。

NiStandardMaterial提供了若干回調(diào)函數(shù),這些函數(shù)可以動(dòng)態(tài)的修改流程,分割PASS,對(duì)shader運(yùn)行失敗進(jìn)行容錯(cuò)。

l SplitPerPixelLights/SplitPerVertexLights:這兩個(gè)函數(shù)分別作用于逐頂點(diǎn)光照和逐像素光 照,當(dāng)物體所受的光源數(shù)量太多,超過了頂點(diǎn)或像素著色器的能力時(shí),通過這些函數(shù)可以將失敗的pass分割成兩個(gè),如果分割出的pass仍然不能執(zhí)行,那么函數(shù)會(huì)被遞歸調(diào)用,直到每個(gè)pass只有一個(gè)光源為止。

l SplitTextureMaps:這個(gè)函數(shù)會(huì)把對(duì)紋理采樣的pass進(jìn)行分割,當(dāng)紋理查詢過多時(shí),頂點(diǎn)或像素著色器就會(huì)過于復(fù)雜,這時(shí)就可能導(dǎo)致shader運(yùn)行失敗。此函數(shù)只能迭代一次,生成一個(gè)額外的pass。

l DropParallaxMap:這個(gè)函數(shù)用來從幾何體上移除視差貼圖,且不產(chǎn)生額外的pass。

l DropParallaxMapThenSplitLights:這個(gè)函數(shù)首先調(diào)用DropParallaxMap移除視差貼圖,然后一直調(diào)用SplitPerPixelLights直到失敗為止。

NiMaterialInstance:

NiMaterial并不是直接與NiRenderObject相關(guān)聯(lián),而是經(jīng)過了NiMaterialIstance這個(gè)中間層,由它來代理將NiMaterial關(guān)聯(lián)到幾何體,它負(fù)責(zé)調(diào)用NiMaterial為NiRenderObject生成NiShader,通過改變NiMaterialIstance上的接口SetMaterialNeedsUpdate,可以決定每一幀NiRenderObject所使用的材質(zhì)是否需要被更換,通過接口SetDefaultMaterialNeedsUpdateFlag,可以決定當(dāng)前材質(zhì)所需的數(shù)據(jù)(即當(dāng)前渲染流程所需的數(shù)據(jù))是否要被更新。這樣每個(gè)NiMaterialIstance只能被一個(gè)NiRenderObject所擁有,而多個(gè)NiMaterialIstance可以共享一個(gè)NiMaterial,這樣就減少了重復(fù)創(chuàng)建NiMaterial的時(shí)間和空間上的開銷,同時(shí)降低了渲染對(duì)象個(gè)材質(zhì)之間的耦合度。

如下為材質(zhì)系統(tǒng)的類結(jié)構(gòu)簡化圖:

clip_image010

渲染屬性:

前面提到過,GameByro將渲染所需要加工的數(shù)據(jù)全部封裝在了NiProperty中,只要在shader中用指定的語法進(jìn)行聲明,就可以訪問這些屬性的值。

目前引擎中已經(jīng)定義了12種屬性,均派生自NiProperty,分別代表渲染數(shù)據(jù)的12種不同類型:

l NiAlphaProperty

l NiDitherProperty

l NiFogProperty

l NiMaterialProperty

l NiRendererSpecificProperty

l NiShadeProperty

l NiSpecularProperty

l NiStencilProperty

l NiTexturingProperty

l NiVertexColorProperty

l NiWireframeProperty

l NiZBufferProperty

用戶也可以自定義屬性類型,但所對(duì)應(yīng)的數(shù)據(jù)類型要被shader語言所支持。

光照與陰影:

光照與陰影密不可分,因?yàn)殛幱熬褪怯晒庹债a(chǎn)生的,前面在材質(zhì)系統(tǒng)中已經(jīng)提到過光照對(duì)著色的影響,這里重點(diǎn)闡述,GameByro是怎樣根據(jù)光源產(chǎn)生陰影的。由GameByro提供的陰影均基于ShadowMap技術(shù),

但也提供了ShaowVolume的示例代碼。

Shadowing System是完全建立在幀渲染系統(tǒng)上的, 通過一個(gè)RenderClick生成ShadowMap,然后在正常渲染流程開始之前將ShadowMap更新到可見集內(nèi)每一個(gè)渲染對(duì)象上。這樣當(dāng)渲染對(duì)象使用NiStandardMaterial時(shí)就會(huì)根據(jù)光源的陰影技術(shù)來對(duì)ShadowMap進(jìn)行采樣,并將結(jié)果與最終的輸出顏色按一定比例混合。

陰影系統(tǒng)由以下幾個(gè)類構(gòu)成:

GameByro提供了三種類型的Shadow Write Materials,分別為NiPointShadowWriteMaterial、

NiDirectionalShadowWriteMaterial、NiSpotShadowWriteMaterial,適用于三種不同的光源類型。

  • Shadow Technique:這個(gè)類封裝了陰影算法的細(xì)節(jié),包括生成ShadowMap和使用ShadowMap投射陰影。
  • Shadow Render Click: 這個(gè)類是一個(gè)生成ShadowMap的批,這個(gè)類的對(duì)象是由shadow click generator負(fù)責(zé)生成。
  • Shadow Click Validator: Shadow Render Click:通過此類對(duì)象判斷接受陰影的幾何體對(duì)于shadow generator來說是否可見。
  • Shadow Map: 每個(gè)ShadowMap對(duì)象包含一個(gè)作為陰影圖的紋理,shadowmap對(duì)象由shadowManager直接管理,每個(gè)shadowmap對(duì)象都被一個(gè)shadow generator引用。
  • Shadow Cube Map: 同shadowmap作用相同,只是陰影圖的紋理類型為CubeMap。主要用于點(diǎn)光源生成的全方向陰影。
  • Shadow Generator: 陰影生成器,每個(gè)ShadowGenerator都對(duì)應(yīng)一個(gè)NiDyamicEffect(NiLight的基類),也就是為這個(gè)NiDyamicEffect代表的光源生成陰影, 生成陰影所采用的技術(shù)由對(duì)象引用的ShadowTechnique來決定。
  • Shadow Click Generator: 生成ShadowMap的Shadow Render Click都由此類負(fù)責(zé)創(chuàng)建。這個(gè)類為每個(gè)ShadowGenerator指定ShadowMap,并負(fù)責(zé)每幀更新ShadowMap和ShadowMap所對(duì)應(yīng)的變換矩陣。
  • Shadow Manager:所有的ShadowMap、ShadowTechnique、ShadowGenerator、shadow render click對(duì)象都由ShadowManager統(tǒng)一管理,并負(fù)責(zé)使用一個(gè)shadow click generator 在每一幀生成一個(gè)shadow render click的列表。

陰影系統(tǒng)靜態(tài)結(jié)構(gòu)如下:

clip_image012整個(gè)陰影渲染的流程大致如下:

1. 在應(yīng)用程序初始化階段,通過調(diào)用NiShadowManager的Initialize()接口實(shí)現(xiàn)對(duì)整個(gè)陰影系統(tǒng)的初始化,此時(shí)應(yīng)用程序會(huì)注冊(cè)所有的ShadowTechnique,并初始化NiShadowClickGenerator。

2. 當(dāng)我們創(chuàng)建一個(gè)NiLight以后,我們可以通過NiShadowManager為這個(gè)NiLight新建一個(gè)NiShadowGenerator,NiShadowGenerator會(huì)通過NiLight的類型來選擇合適的NiShadowTechnique,此時(shí)NiShadowManager會(huì)為新的NiShadowGenerator創(chuàng)建一個(gè)NiShadowRenderClick。

3. 當(dāng)幀渲染系統(tǒng)啟動(dòng)后,NiShadowRenderClick的PerformRendering()接口會(huì)被調(diào)用,此時(shí)NiShadowRenderClick會(huì)通過引用的NiGenerator獲得陰影生成的著色程序和所需的數(shù)據(jù)(例如深度偏移),同時(shí)通過NiGenerator引用的Camera獲得場(chǎng)景圖中的可見集。下一步就是對(duì)可見集中的渲染對(duì)象添加ShadowWriteMaterial并設(shè)為激活狀態(tài),而ShadowWriteMaterial的類型是根據(jù)NiDyamicEffect的類型指定的。最后NiRenderClick就會(huì)啟動(dòng)渲染流水線,將可見集中的對(duì)象的深度全部渲染到ShadowMap中。

4. 在第一個(gè)RenderClick中生成了ShadowMap,下面就要使用這些ShadowMap投射陰影。在每一幀開始之前,用戶還可以自己指定不接受陰影的節(jié)點(diǎn),手動(dòng)將其插入NiShadowGenerator::m_kUnaffectedReceiverList中。在渲染BackBuffer的RenderClick中,首先會(huì)對(duì)場(chǎng)景圖中的節(jié)點(diǎn)進(jìn)行一次遍歷,將不受陰影的節(jié)點(diǎn)放入NiShadowGenerator:: m_kUnaffectedCasterList的列表。在對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行渲染時(shí),會(huì)遍歷NiShadowManager中所有的NiShadowGenerator,判斷這些NiShadowGenerator是否對(duì)這個(gè)節(jié)點(diǎn)有影響,判斷的規(guī)則是此節(jié)點(diǎn)是否存在于UnaffectedReceiverList和UnaffectedCasterList這兩個(gè)鏈表中,如果存在于任何一個(gè)鏈表,則節(jié)點(diǎn)不受此NiShadowGenerator影響,如果受此NiShadowGenerator影響,那么就將該NiShadowGenerator上的ShadowMap和數(shù)據(jù)更新到節(jié)點(diǎn)上的渲染屬性中,NiStandardMaterial會(huì)根據(jù)這些數(shù)據(jù)選擇對(duì)ShadowMap采樣的方式,并將結(jié)果混合到最終的輸出顏色中。

值得注意的是,點(diǎn)光源的shadowMap默認(rèn)的是采用CubeMap實(shí)現(xiàn),用戶可以通過接口選擇不使用CubeMap實(shí)現(xiàn),當(dāng)采用CubeMap實(shí)現(xiàn)時(shí),光源無法產(chǎn)生軟陰影。

渲染系統(tǒng)的擴(kuò)展:

為了驗(yàn)證GameByro渲染系統(tǒng)的擴(kuò)展性,筆者嘗試著加入了一個(gè)后期處理特效Screen Space Ambient Occlusion(SSAO),即屏幕空間的遮蔽,由于僅僅為了熟悉GameByro的渲染流程,所以筆者并未對(duì)SSAO算法做深究,僅僅用了自己簡化的算法。

在渲染過程中先單獨(dú)使用一個(gè)RanderClick將場(chǎng)景中的深度渲染到一張紋理上,然后在渲染到后臺(tái)緩沖區(qū)的RenderClick中對(duì)深度紋理進(jìn)行采樣,執(zhí)行SSAO算法,將結(jié)果混合到最終的結(jié)果中。采樣點(diǎn)的偏移坐標(biāo)是通過對(duì)一組隨機(jī)向量進(jìn)行歸一化再乘以0~1之間的隨機(jī)數(shù)而生成的,即長度為0~1之間的隨機(jī)向量。

PS代碼如下:

float VerticalRange:GLOBAL; //控制XY方向采樣范圍變量,可以在應(yīng)用程序?qū)訉?duì)其進(jìn)行調(diào)整

float HorizontalRange:GLOBAL; //控制在Z方向采樣范圍的變量

float calAO(float2 texCoord,float dw, float dh ) //通過當(dāng)前像素所標(biāo)和偏移量計(jì)算AO

{

float2 coord = float2(texCoord.x + dw, texCoord.y + dh);

float4 CenterPos = tex2D(DepthSampler,texCoord);

float4 CurPos = tex2D(DepthSampler,coord);

float depthDiff = clamp(CenterPos.z - CurPos.z,0,VerticalRange);

float ao = depthDiff/length(CurPos.xyz - CenterPos.xyz);

return ao;

}

// Pixel shader

float4 PS_SSAO(VS_OUTPUT In) : COLOR

{

float2 texCoord = In.BaseTex;

float depth = tex2D(DepthSampler,texCoord).z;

float ao = 0.0;

float scale = HorizontalRange/depth; //因?yàn)椴蓸臃秶鷷?huì)受深度影響,故除以此系數(shù)。

for(int i=0; i<32; ++i)

{

float2 offset = arrRandomPt[i].xy* scale;

ao += calAO(texCoord, offset.x, offset.y);

}

ao/=32;

float4 color = tex2D(BaseSampler,texCoord);

color.xyz *= (1.0 - ao);

return color;

}

最終實(shí)現(xiàn)效果如下:

clip_image014clip_image016

SSAO生成的明暗圖 無SSAO材質(zhì)

以下兩圖上圖為無SSAO效果,下圖為開啟SSAO后的效果。

clip_image018

clip_image020

總結(jié):

GameByro的幀渲染系統(tǒng)是比較靈活,想加入自己的渲染流程是比較容易的,此外由于RenderTarget和RenderView都可以由用戶指定,所以想實(shí)現(xiàn)自己的shader效果不是很難。然而,NiStanderMaterial的shade tree比較復(fù)雜,總共高達(dá)6000行代碼以上,過程非常復(fù)雜,這就是說,如果想實(shí)現(xiàn)自己的材質(zhì)處理流程也要付出相當(dāng)大的工作量,陰影系統(tǒng)雖然實(shí)現(xiàn)了較低的耦合度,但是實(shí)現(xiàn)過于復(fù)雜,不夠簡潔高效。

作者:葉起漣漪

posted @ 2009-04-22 10:22 Condor 閱讀(2181) | 評(píng)論 (2)編輯 收藏

★ 你好,我去殺幾個(gè)人,很快回來。
★ 我去后山和黑山老妖研究吃唐僧的事,有事回來再說。
★ 便秘中。。。。。勿攪。。。
★ 你終于來啦,我找你N年了,去火星干什么了?我現(xiàn)在去冥王星,回頭跟你說個(gè)事,別走開啊
★ 您所呼叫的用戶尚未安裝QQ......
★ 你呼叫的人現(xiàn)在不在,當(dāng)你聽到硬盤“咔”的一聲,請(qǐng)對(duì)著鼠標(biāo)留言,謝謝......
★ 主人不在。到哪兒去了?就......就是不告訴你!真要找的話,請(qǐng)按住電腦power鍵4秒鐘后留言......
★ 該用戶沒有回應(yīng),可能用戶忙,請(qǐng)稍候再試。或按Ctrl+Alt+Del返回.
★ 自殺中,稍后再說...
★ 有事找我請(qǐng)大叫!
★ 你現(xiàn)在連接到的是海狼的冰箱,放入食物后請(qǐng)斷線,謝謝合作。
★ 我正在下五子棋,上次分心把褲子輸光了。這次再輸會(huì)被拍裸照!我可不想讓人看見,等這盤下完了一定回你。
★ 嘀,這里是自動(dòng)應(yīng)答,MM請(qǐng)?jiān)侔l(fā)一次,我就與你聯(lián)系;JJ請(qǐng)?jiān)侔l(fā)兩次,我就與你聯(lián)系;GG、DD就不要再發(fā)了,因?yàn)榘l(fā)了也不和你聯(lián)系!
★ 騰訊服務(wù)器系統(tǒng)崩潰,請(qǐng)稍后再試!
★ 計(jì)算機(jī)正在處理你的信息,請(qǐng)稍侯,如果長時(shí)間沒有響應(yīng),請(qǐng)重新啟動(dòng)計(jì)算機(jī)!
★ 你好,現(xiàn)在我在玩一個(gè)叫CS(或其他)的游戲,有事請(qǐng)按下電腦上“RESET”鍵,在聽到“嘀”一聲之后留言,謝謝
★ 你有權(quán)保持沉默,你所說的一切都將被作為存盤記錄。你可以請(qǐng)代理服務(wù)器,如果請(qǐng)不起網(wǎng)絡(luò)會(huì)為你分配一個(gè)。
★ 您使用的QQ是未注冊(cè)版本。您可以繼續(xù)使用本軟件,但將屏蔽發(fā)送短信息的功能。支持國產(chǎn)軟件,請(qǐng)您注冊(cè)新版!
★ 廣告之后,馬上回來!
★ 正在澡澡哦~~不要偷看~~~嗯~啊~~嗯~啊~~~
★ 在加本人為好友前請(qǐng)?jiān)敿?xì)閱讀以下條款:1.未滿18歲者請(qǐng)?jiān)诟改钢笇?dǎo)下與本人聊天;2.非專業(yè)聊天人士,不承擔(dān)主動(dòng)招呼義務(wù);3.謝絕你問我答制。在本人不回復(fù)的情況下請(qǐng)自覺停止一切信息!
★ 你所呼叫的用戶正在系統(tǒng)整理,請(qǐng)稍后再呼。
★ 此人正在被國際刑警組織全球范圍內(nèi)通緝,如果您有此人的消息,請(qǐng)撥打當(dāng)?shù)貓?bào)警電話120,請(qǐng)對(duì)著電話說如下密語言:我真的不是瘋子,我不是瘋子,我真的不是瘋子!然后匯報(bào)你的所在地謝謝合作。我們的專業(yè)人員會(huì)去保護(hù)您的安全。
★ 您的QQ已經(jīng)中了我安插的病毒,請(qǐng)不斷向本人發(fā)信,否則本人一有閑暇立刻動(dòng)手!
★ 您好,QQ今天休假,我是NETANTS......
★ 由于大氣電離層影響,與該用戶的衛(wèi)星連接已中斷,請(qǐng)稍后再試。
★ 對(duì)不起,由于服務(wù)器的原因,您剛才發(fā)的信息丟失,請(qǐng)重發(fā)一面。
★ 機(jī)主正在裸奔,機(jī)主已奔出服務(wù)區(qū)。
★ 正在格式化你的硬盤,請(qǐng)稍候......
★ 唉呀~你可真調(diào)皮!你看,我話還沒說完你又來了~~
★ 嗨~我現(xiàn)在不在,如果有事請(qǐng)?jiān)诼牭健氨啤钡囊宦暫罅粞浴ぁぁぁぁぁけ疲?
★ 對(duì)不起,網(wǎng)路不通,請(qǐng)重新發(fā)送...
★ 你要機(jī)主不在,請(qǐng)等到“嘟~”聲后拿起鼠標(biāo)留言。。。
★ 對(duì)不起,您所呼叫的用戶不在計(jì)算機(jī)旁,請(qǐng)你現(xiàn)在立刻猛擊你的顯示器直到它冒火花為止,聽到響聲后我會(huì)給你回復(fù)
★ 你好。這是騰訊服務(wù)中心自動(dòng)回復(fù)。收到這條信息表明您的操作系統(tǒng)出了問題。請(qǐng)按Ctrl+Shift+Del
★ 您所呼叫的用戶先不再服務(wù)區(qū)內(nèi)......可能是網(wǎng)絡(luò)不通...想解決此類問題...請(qǐng)您將頭用力撞向顯示器......以保證網(wǎng)絡(luò)通暢......
★ 本人現(xiàn)在位置:WC; 姿勢(shì):下蹲; 臉部:抽搐; 狀態(tài):用力中。。。。
★ 注意:使用騰訊移動(dòng)QQ的用戶可能無法立即獲取你的留言。
★ 我去吃飯了,如果你是帥哥,請(qǐng)一會(huì)聯(lián)系我,如果你是美女.................................就算你是美女,我也要先吃飽肚子啊
★ 你要和我說話?你真的要和我說話?你確定自己想說嗎?你一定非說不可嗎?那你說吧,這是自動(dòng)回復(fù),反正我看不見
★ 你好,我是XXX的自動(dòng)回復(fù),現(xiàn)在他不在,跟我說什么我也就這幾句!
★抽筋中……請(qǐng)勿打擾……
★悟空啊,你想和為師說話么?想說話你就說呀,你不說為師怎么知道你想和為師說話呢?

posted @ 2009-04-06 21:43 Condor 閱讀(761) | 評(píng)論 (0)編輯 收藏

終于結(jié)束了近一個(gè)小時(shí)的枯燥會(huì)議,每周五公司級(jí)別的項(xiàng)目周會(huì)就像一個(gè)例行的檢查,多少有點(diǎn)不痛不癢的味道,大部分的時(shí)候就是一個(gè)例行貫事,每個(gè)項(xiàng)目組按照順序匯報(bào)一下各自項(xiàng)目組的情況和需要,如果不出現(xiàn)大的問題的話,也就是有本上奏,無本退朝的一個(gè)過程。或許有些人覺得這是一個(gè)比較浪費(fèi)時(shí)間而且意義不大的會(huì)議,每周浪費(fèi)大伙一個(gè)小時(shí)的時(shí)間去再次陳述這些本來在郵件中已經(jīng)說明的問題和項(xiàng)目進(jìn)度,不過存在就有價(jià)值,這個(gè)會(huì)議的最大的功能在于能盡量使各個(gè)項(xiàng)目組之間有部分的消息互通,至少能讓大家了解到一點(diǎn),其他人都在做什么,從而避免了每個(gè)項(xiàng)目組過于孤立的現(xiàn)象。
       今天的周會(huì)時(shí)間有點(diǎn)長,主要由于兩件事情的討論超出了會(huì)議的議程安排,第一件事情是大偉負(fù)責(zé)的項(xiàng)目目前進(jìn)度出了問題,目前人員處在一個(gè)持續(xù)加班的緊張狀態(tài),即便如此,對(duì)于項(xiàng)目的最終Release時(shí)間還是比較確定的狀態(tài),用大偉的話來形容就是:“我們能夠按時(shí)完成,但是可能會(huì)有點(diǎn)小問題。”一句比較含糊的托詞,如果說套用官方的言詞就是:“對(duì)于項(xiàng)目能夠按時(shí)完成,我們還是謹(jǐn)慎樂觀。”另外事情對(duì)于公司來說是一個(gè)好消息,公司將在下個(gè)月啟動(dòng)一個(gè)新的項(xiàng)目,這個(gè)項(xiàng)目是今年規(guī)模最大的一個(gè)項(xiàng)目,其業(yè)務(wù)方向主要針對(duì)美國的醫(yī)療領(lǐng)域,規(guī)模大概有150人/月。
這個(gè)項(xiàng)目將會(huì)被安排到我們項(xiàng)目組來處理,消息對(duì)于我來說就是一個(gè)挑戰(zhàn),對(duì)于自己來說,這個(gè)規(guī)模的項(xiàng)目也是超過了以往的一切項(xiàng)目,在會(huì)議上聽到這個(gè)項(xiàng)目將由我來接手處理,不由小小的興奮了一把,但是這股興奮的感覺很快就被沖淡,自己粗略的考慮了一下項(xiàng)目組內(nèi)目前的工作量和目前的人員情況,不由感覺到這個(gè)活不太好攬。不過有壓力才有動(dòng)力,這是我一貫的做事風(fēng)格,類是這種明知會(huì)將苦重重的活,我越能夠信心十足。我簡單的在自己的記事本上寫下了以下下周的關(guān)健工作內(nèi)容:確認(rèn)項(xiàng)目的具體開始時(shí)間和結(jié)束時(shí)間;調(diào)整目前項(xiàng)目組內(nèi)的工作內(nèi)容;向客戶先要部分的開發(fā)相關(guān)資料;了解一下公司內(nèi)部其它項(xiàng)目組的人員狀況。
       會(huì)議后半程的內(nèi)容我沒有聽多少,只是對(duì)于大偉的問題大家有部分的討論,我才回過神來參與,大偉雖然說自己還是有信心能夠保證項(xiàng)目的進(jìn)度,但是為了保險(xiǎn)起見,希望從其它的項(xiàng)目組借調(diào)兩個(gè)人來協(xié)助他們做一些類是測(cè)試的工作,這樣的話總的進(jìn)度就可以進(jìn)一步得到保證。以目前公司的架構(gòu)模式,每個(gè)項(xiàng)目組相對(duì)獨(dú)立的運(yùn)作模式,如果說希望從其它的項(xiàng)目組借調(diào)人員,這種短期人員的借調(diào)有時(shí)候是比較困難,因?yàn)槊總€(gè)項(xiàng)目組目前來說都處于比較繁忙的階段,目前閑暇的人員不多,即便其它項(xiàng)目組肯借人,大多放出去的人員也都是能力相對(duì)比較弱,正常情況下人不可能把項(xiàng)目組內(nèi)部優(yōu)秀的人員借調(diào)出去,這或許也是人的一種私心。
       在公司的協(xié)調(diào)安排之下,最后還是給大偉支援了兩個(gè)人員,這才把討論不休的會(huì)議打住。會(huì)議結(jié)束后我還在會(huì)議室坐了一會(huì),我的腦袋里還在考慮下周的工作順序,盯著自己的筆記本在對(duì)剛剛寫的問題進(jìn)行細(xì)化,把工作分解到下周的每一天。突然一股濃濃的煙味直接灌進(jìn)我的鼻子,我不用抬頭就能猜出是大偉,這個(gè)煙槍一天最少一包煙,如果遇到加班或則心情不好的話,估計(jì)兩到三包都有可能。
       “少抽點(diǎn)煙,怎么心情不好?”看著大偉吐著煙圈,我問道。
       “沒有,只是有點(diǎn)累。”大偉嘴里叼著煙,目無表情的應(yīng)道。
       “我看到你們項(xiàng)目組的那些去年剛剛畢業(yè)的學(xué)生,最近是天天加班到晚上11點(diǎn)左右。這是怎么回事?”
       “噢,那時(shí)我故意的。”
       “故意?”我一時(shí)沒有明白,疑惑的問道,“為什么要故意呢?”
       “我是按照我自己的工作能力給那些新人安排工作,如果說我是能夠在上班時(shí)間內(nèi)完成工作的話,那么那些新人肯定需要加班了。這樣他們才能進(jìn)步。”大偉的表情中開始露出得意的神色。
       “怪不得他們要加班,你工作了多少年,他們才工作多少年,再說了你拿的工資和他們那得工資能一樣嗎?”
       “我就告訴他們,如果你想工資那得和我一樣,那么這些工作你能夠準(zhǔn)時(shí)完成,那么你就有機(jī)會(huì)。”大偉熄掉手中煙頭,用雙掌在臉上使勁得措動(dòng)。
       “那你該不會(huì)是按照你的能力來做的項(xiàng)目估算吧?”對(duì)于大偉的這個(gè)邏輯我并不能茍同,但是我還是想了解項(xiàng)目的問題。
       “嗯…..”大偉支吾著回答到。
       “哈哈,你這是自作自受。”我對(duì)著大偉帶著嘲諷的笑聲說道。
       對(duì)于大偉的做法我卻是無法茍同,雖然他的失誤在于前期的估算過于樂觀而且并不準(zhǔn)確。但是對(duì)于給新人安排工作的方式上存在有比較大的問題,如果說前期的估算出現(xiàn)失誤,這些錯(cuò)誤在后期項(xiàng)目開始過程中還可以進(jìn)行添加人員的方法進(jìn)行補(bǔ)救的話,那么對(duì)于人員使用不當(dāng)?shù)膯栴},就像整個(gè)項(xiàng)目過程的絕癥,其會(huì)影響到整個(gè)項(xiàng)目過程。
       項(xiàng)目組中開發(fā)人員從能力上有幾個(gè)不同的級(jí)別,系統(tǒng)架構(gòu)師(Systems Architect),高級(jí)工程師(Senior Engineer),中級(jí)工程師(Middle Engineer)和初級(jí)工程師(Junior Engineer)等等。對(duì)于每個(gè)級(jí)別上的人員的能力和開發(fā)技能都有一定的差異。這些就像我們手的手指一樣,五指有長短,能力個(gè)不同。不同能力的人員應(yīng)該在項(xiàng)目組中相應(yīng)的工作內(nèi)容和工作量。
       在正常的項(xiàng)目中我們講究的是人盡其用,但是不能把一個(gè)項(xiàng)目在開始的時(shí)候就設(shè)想是通過發(fā)揮項(xiàng)目組人員的超水準(zhǔn)的基礎(chǔ)上來完成。很多人都說人在一定的壓力之下,能夠超能力的發(fā)揮出他們的水平,但是比代表說所有的人都能夠在這種環(huán)境下能夠有說突破,很多人在持續(xù)長時(shí)間的高壓下會(huì)顯得精神不振,萎靡的情況。所以作為項(xiàng)目管理來說,不能再項(xiàng)目一開始的時(shí)候就采用這個(gè)立足點(diǎn)來進(jìn)行開發(fā)工作。
       對(duì)于大偉所說的那種歪論,我只能回應(yīng)以自作自受的答案。我們給個(gè)人都是在逐步的學(xué)習(xí)和進(jìn)步,如果說有一定壓力災(zāi),對(duì)于學(xué)習(xí)確實(shí)是一個(gè)比較有效的促進(jìn)。但是作為項(xiàng)目經(jīng)理來說,需要明白的是一個(gè)問題,我們的職責(zé)在于項(xiàng)目,而不是在于鍛煉新人,新人進(jìn)入項(xiàng)目組織后,通過項(xiàng)目過程的工作和學(xué)習(xí)能夠提高他們的能力,這些是項(xiàng)目的副產(chǎn)物。而我們首先要保證項(xiàng)目的進(jìn)度,質(zhì)量。我在實(shí)際的項(xiàng)目開發(fā)過程中,對(duì)于給新人的工作計(jì)劃都是按照其能力的80%-90%進(jìn)行安排,很少會(huì)針對(duì)新人能力的100%進(jìn)行工作任務(wù)分派,因?yàn)樾氯擞捎谌狈?jīng)驗(yàn),所以在項(xiàng)目實(shí)際過程中如果遇到問題,他們解決這些問題的所采用的方法和思路都存在有時(shí)間的風(fēng)險(xiǎn),有時(shí)候他們可能由于一個(gè)問題會(huì)難住他們,消耗掉很長的時(shí)間。即便我不斷強(qiáng)調(diào)說如果有遇到問題,在一個(gè)小時(shí)內(nèi)解決不了的話,就要把問題拋出來給大伙來共同處理,但是往往這個(gè)問題被最后迫不得已提出來的時(shí)候,都是在一天或則更長的時(shí)間之后。新人在開發(fā)過程中遇到這些問題的概率非常高,所以在工作安排工程中必須要考慮到這種風(fēng)險(xiǎn)。所著一旦推倒第一張加班的牌,那么后續(xù)的將是多米洛效應(yīng),加班將一發(fā)不可收拾,進(jìn)入惡性循環(huán)階段。
       對(duì)于實(shí)際的項(xiàng)目中我會(huì)采用減算安排工作的方式,那是因?yàn)槲倚枰A魧?duì)項(xiàng)目整體的進(jìn)度有更大的回旋緩沖時(shí)間。無論對(duì)新人還是對(duì)高級(jí)工程師,中級(jí)工程師和初級(jí)工程師我都會(huì)采用一樣的策略,因?yàn)槿四X不是機(jī)器,所以我們無法保證我們時(shí)時(shí)刻刻都能正常的滿負(fù)荷運(yùn)轉(zhuǎn)。但是在平常的學(xué)習(xí)過程或者非實(shí)際項(xiàng)目的鍛煉過程中,我會(huì)采用超負(fù)荷的工作安排模式,這個(gè)時(shí)候給人員的工作量安排都是100%-120%的程度,因?yàn)檫@個(gè)時(shí)候我的主要目的在于人員培養(yǎng),所以需要一種超強(qiáng)度的環(huán)境,營造一種壓力的氣氛。其實(shí)開發(fā)過程何嘗不是一個(gè)不見硝煙的戰(zhàn)場(chǎng),如果你想要在戰(zhàn)場(chǎng)上不受傷,只有在平時(shí)多多受傷,這樣在真實(shí)的戰(zhàn)場(chǎng)上才能從容應(yīng)對(duì)。
       對(duì)于項(xiàng)目組中我們需要比較清楚的了解每個(gè)成員的能力和個(gè)性,如果對(duì)于他們的能力了解能夠像看著我們手指頭那么清楚,我們就能夠依據(jù)他們的長短,讓他們協(xié)調(diào)發(fā)揮出水平來。我們需要避免工作不分能力,均等劃分的安排方式,更不能把項(xiàng)目寄托在成員的超水平發(fā)揮的基礎(chǔ)上。在工作中我們需要明白項(xiàng)目的最終目的,項(xiàng)目成功還是鍛煉人員,從而采用減算還是加算得工作安排方式。
作者:Yice(小余)
出處:http://www.yice800.cn

posted @ 2009-03-25 21:20 Condor 閱讀(756) | 評(píng)論 (0)編輯 收藏

超仔剛剛推門進(jìn)來,屁股還沒有碰到他的椅子上已經(jīng)讓人感覺到他歡喜輕飄的神色,我抬頭望著他眼睛,神色中洋溢的滿是歡快。我看著他那興奮的樣子,微微笑著問道:“簽完了?結(jié)果還可以嗎?”
“還不錯(cuò)!”
“能滿意就可以,繼續(xù)努力。”
“嗯。”
我知道超仔剛剛和公司簽了新的合同,在新合同里他的工資有了一定的提高,這些都是因?yàn)閷?duì)于他去年的績效考核成績還不錯(cuò)應(yīng)該得到的結(jié)果。
年底對(duì)于我來說,可真是多事之秋,因?yàn)槲倚枰谀甑浊巴瓿蓪?duì)我團(tuán)隊(duì)這些人的一年的績效評(píng)定,這些不但關(guān)系到他們年終的獎(jiǎng)金,也影響到來年他們工資的漲浮。雖然自己一直講究的是賞罰分明的做事方法,但是往往對(duì)于我來說要清晰分析哪個(gè)人在過去的一年中犯了什么樣的錯(cuò),對(duì)于這些錯(cuò)誤去做一個(gè)評(píng)定,算其功過,工作不亞于一個(gè)項(xiàng)目的開發(fā)。一方面如果我評(píng)定的尺度太嚴(yán)格,那么最明顯的一個(gè)影響就是年底年終獎(jiǎng)金和來年的工資,在工作中涉及到這部分利益的東西處理起來本身就是敏感,所以自己一直都是平時(shí)嚴(yán)厲甚至苛刻,但是到這個(gè)時(shí)候,我反而會(huì)手下留情,只要態(tài)度對(duì)位,錯(cuò)誤可以酌情考慮。對(duì)于我來說,一個(gè)人的態(tài)度決定他的一切。
“我的工作目標(biāo)就是要替掉你。”這是超仔在面試的時(shí)候留給我印象最深的話,也因?yàn)檫@句話我發(fā)而對(duì)他有不少的好感。人最應(yīng)該有的是有自信,超仔是剛剛畢業(yè)一年的新人,在面試時(shí)候做在我前面表情僵硬,全身緊張的他,在我問“你希望進(jìn)入公司之后,能夠有什么養(yǎng)的發(fā)展方向時(shí)?”這樣的回答可能是一種自大,但是在我看來,這也是他的自信。也這是這種自信讓我決定錄用這個(gè)計(jì)算能力不算好,但是我覺得各種條件還算合格的小伙子。
當(dāng)然我也非全憑一句“就要替掉你。”就把小伙子招聘進(jìn)來,然后放到自己身邊使勁摟擰,我想自己還不至于有這種變態(tài)的愛好。我喜歡面試的時(shí)候讓應(yīng)聘人員都手動(dòng)填寫一份簡歷,雖然很多時(shí)候他們自己都帶了一份打印的現(xiàn)成簡歷,但我還是會(huì)讓他們把公司那份表格填寫完整,雖然很多時(shí)候他們自要把內(nèi)容抄寫過去就可以,但是這也是我對(duì)他們的第一個(gè)考驗(yàn)。很多程序員的字寫的都有大師級(jí)的水平,對(duì)于他們來說,楷書,行書都不足以表達(dá)他們的意境,狂草,唯有這個(gè)才能體現(xiàn)他們的追求。有不少程序員在填寫這個(gè)簡歷的時(shí)候,字跡就和天書一樣,當(dāng)然文字也像蛇一般的在紙上盤繞。
對(duì)于我來說,我只是通過這張簡歷看看他對(duì)自己的一個(gè)態(tài)度,我不要求他們的字能夠達(dá)到書法家的水品,但是至少要工整,整個(gè)紙張讓人看起來要干凈清晰。我很難看到你對(duì)目前的工作有多少的渴望,但是我可以通過你寫下來的文字看出來你是否重視這個(gè)事情,如果連工作機(jī)會(huì)都不重視,那以后的態(tài)度就值得擔(dān)憂。所以通過這個(gè)我也放棄掉不少的人,雖然有些人在和我免談的時(shí)候給我感覺也非常不錯(cuò),但是如果兩者結(jié)合在一起評(píng)定,如果后面沒有做好,那么我只能認(rèn)為他是學(xué)院派的,能說未必能做。
超仔長的不像程序員的樣子,一米七五的個(gè)子,相貌也有幾分帥氣,留著平頭短發(fā),每日衣著新潮個(gè)性。他平時(shí)個(gè)性活潑開朗,又一次他還請(qǐng)了一天的假,說是去參加超男的選拔賽,結(jié)果回來之后,感慨道:“強(qiáng)人太多了,人外有人。”不過自己到?jīng)]有為被淘汰的事情耿耿于懷,倒是很享受樂在其中的過程。
超仔進(jìn)入公司的時(shí)間也只有半年左右,在這邊年里面他不到兩個(gè)月就給他轉(zhuǎn)正了,比公司規(guī)定的三個(gè)月試用期提前了一個(gè)月多。肯學(xué)習(xí)和努力的態(tài)度讓我對(duì)自己當(dāng)初挑選他感到非常滿意。在第一個(gè)月培訓(xùn)的時(shí)候,讓他整理了以前遺留的舊的項(xiàng)目,那些項(xiàng)目本身缺少相關(guān)部分文檔,但是由于項(xiàng)目一直在延續(xù)開發(fā),所以久而久之,也就這么一直持續(xù)的做下來,那些已經(jīng)對(duì)這些內(nèi)容滾瓜爛熟的人也就沒有心情去做,后來者也之能夠在前輩的口傳身教的情況下才能了解其中的奧妙,我一直希望能夠把這部分資料補(bǔ)充完整。但是由于人手上不足,所以就一拖再拖。
公司對(duì)新人有比較詳細(xì)的培訓(xùn)計(jì)劃,在這些培訓(xùn)之外,我對(duì)超仔說:“你看看這個(gè)程序,因?yàn)槟阋院笮枰S護(hù)和開發(fā)這個(gè),如果你有時(shí)間的話,可以把熟悉開發(fā)環(huán)境的步驟寫成文檔,文檔的格式可以參考項(xiàng)目組內(nèi)其他的模板,內(nèi)容你線考慮一下,但是有一個(gè)要求,如果另外一個(gè)新人來接觸這個(gè)程序,我需要他再看了你的穩(wěn)當(dāng)之后,就可以把環(huán)境搭配起來。些做的方式可以圖文結(jié)合。”
結(jié)果在一周之后,超仔就給我說:“小余,我把那份文檔寫了一部分,你先看看有什么問題,如果不行的話我再修改。”
很多人都知道程序員非常討厭寫文檔,所以很多程序員寫出來的文檔比寫出來的代碼還要難讀,有時(shí)候讀這種文檔就是一種折磨,比讀法律條款還難受,估計(jì)很多時(shí)候需要和法律文件一樣,需要再配套上一本詳細(xì)的解釋才能把問題說明清楚。
但是超仔的文檔讓我非常滿意的地方在兩個(gè)地方,一方面再環(huán)境搭建的時(shí)候,用了截圖的方式描述,而且每一幅圖都是用作圖工具簡單的剪裁過,只保留關(guān)鍵部分,而避免樂像其他人那樣是整個(gè)屏幕的圖片,在么個(gè)圖中對(duì)于操作關(guān)鍵區(qū)域還用紅色正方形邊寬標(biāo)注說明,每個(gè)圖片還有編號(hào)。
另外一個(gè)是整個(gè)文檔是用Excel文檔做成的,因?yàn)楣颈容^喜歡用Excel做給中開發(fā)文檔,但我嘗試著用打印預(yù)覽的時(shí)候,讓我驚奇的事情發(fā)生了,總共10頁的文檔,每一頁都調(diào)整過,圖片沒有出現(xiàn)跨頁的問題,而且打印的頁頭和頁尾都修改過了,并沒有保留上個(gè)文檔的名稱,作者和日期也都是正確的。
“頁面打印是你調(diào)整過的?”看著文檔,我輕聲問道。
“我常常聽到你讓大家發(fā)郵件給客戶的時(shí)候,要預(yù)覽一下。所以我也就調(diào)了一下。”
聽到這話,我心中是暗自竊喜,一個(gè)新人能夠有這樣的工作意識(shí)和態(tài)度,實(shí)屬可造之才,技術(shù)可以學(xué)習(xí)培養(yǎng),但是如果你想改變一個(gè)人做事態(tài)度其難度要遠(yuǎn)遠(yuǎn)大于技術(shù)上的培養(yǎng)過程。
超仔在后續(xù)半年的工作中也有犯了不少的錯(cuò)誤,從剛剛開始技術(shù)上弱勢(shì),但是好學(xué)肯問,其進(jìn)步的幅度不小,也使得他在很快的時(shí)間內(nèi)能夠達(dá)到對(duì)他所定位的能力要求。在于我看來這一切取決于他的態(tài)度,態(tài)度端正。
“態(tài)度端正,學(xué)習(xí)良好。”我的腦海中突然冒出這幾個(gè)字,這不是小學(xué)時(shí)候,老師在每學(xué)期的期末成績單上最喜歡用的兩個(gè)評(píng)語。什么是態(tài)度?怎么才能算是端正呢?我在心中問了一下自己:“我的工作態(tài)度算不算端正呢?”或許像超仔這樣的新人屬于上升求學(xué)階段,所以憧憬無限,但是對(duì)于我來說呢?當(dāng)年何嘗不是如此,現(xiàn)在還是不是一就有這樣的心境呢?
“哎。”想著想著,不由自己嘆了口氣,難道我老了嗎?怎么我還沒有感覺到青春燦爛,這青春怎么就沒了呢?看看坐在開發(fā)室中的其他人:老馬,阿毛,木子,超仔,大師, 杰克這幾個(gè)人,我們應(yīng)該是活力無限的開發(fā)團(tuán)隊(duì)。
“Hi,小余,你在嗎?”還沒等我在繼續(xù)發(fā)愣,MSN上的就彈出消息來。是上海的PM李。
我急忙回過去問有什么事情。
“我剛剛給你發(fā)了一封郵件,我把需要像客戶移交的內(nèi)容重新做了一個(gè)整理,你再看看有什么問題沒有?”
我突然記起來,昨天晚上快接近9點(diǎn)的時(shí)候,我還在理發(fā)店修頭發(fā)的時(shí)候,就接到李從上海給我打過來的電話,她問我現(xiàn)在有沒有先前她發(fā)給我的計(jì)劃列表,因?yàn)槊魈炜蛻粜枰_認(rèn),所以她想今天晚上再把這份計(jì)劃列表完善一下,如果我筆記本上有備份的話,給她轉(zhuǎn)發(fā)一份,結(jié)果我剛好也只是把郵件接收到公司的機(jī)子上。最后我聽到她在電話里說了一句:“那好,我明天早點(diǎn)去公司去修改一下,然后再給客戶。”
李在一個(gè)月之前已經(jīng)和公司提出離職的申請(qǐng),因?yàn)樗彝サ脑颍枰絿獍l(fā)展。應(yīng)該說再過兩天她就會(huì)到美國去了,她本來是這個(gè)項(xiàng)目上海的項(xiàng)目經(jīng)理,但是對(duì)于我來說,她是一個(gè)非常優(yōu)秀的項(xiàng)目經(jīng)理,從她身長我看到了一個(gè)項(xiàng)目能夠成功的關(guān)鍵,態(tài)度。也就是她的這種工作態(tài)度,讓整個(gè)項(xiàng)目有序穩(wěn)定的進(jìn)行。
在聽完李的電話之后,我里一直佩服到,這才是工作態(tài)度。
作者:Yice(小余)
出處:http://www.yice800.cn

posted @ 2009-03-25 21:19 Condor 閱讀(819) | 評(píng)論 (0)編輯 收藏

你有沒有考慮過自己能夠管理多大的項(xiàng)目,能夠帶領(lǐng)多少人員的項(xiàng)目團(tuán)隊(duì)?5人?10人?100人?還是千軍萬馬?但是在現(xiàn)實(shí)的項(xiàng)目中,能夠帶領(lǐng)100人員的項(xiàng)目經(jīng)理未必能夠帶好10人的團(tuán)隊(duì),反之亦然。因?yàn)樽鳛檐浖?xiàng)目來說存在有非常大的差異?無論你是大才還是小才,我們首先要清楚的認(rèn)識(shí)到自己的才能是否能符合項(xiàng)目的實(shí)際應(yīng)用,5人的項(xiàng)目和100人的項(xiàng)目團(tuán)隊(duì)中項(xiàng)目經(jīng)理的工作重心必然不同,如果不區(qū)別對(duì)待,那么你的結(jié)局是大才小用,或者是小才大用。
項(xiàng)目的差異性
我沒有機(jī)會(huì)參加類似IBM的OS/360規(guī)模的項(xiàng)目,我所能夠參與的最大項(xiàng)目規(guī)模不過是100人/月上下的項(xiàng)目,當(dāng)然也做過產(chǎn)品線的長期開發(fā)項(xiàng)目。所以對(duì)于那種巨無霸形的項(xiàng)目也只能是望梅止渴,對(duì)于其中的奧妙也只能捧讀《人月神話》這類的經(jīng)典,希望能夠從中吸取精華來強(qiáng)壯自身。
項(xiàng)目的規(guī)模不一樣,項(xiàng)目所能夠配備給定的人員也不一樣,對(duì)于大型的項(xiàng)目,除了項(xiàng)目經(jīng)理之外,還會(huì)配置項(xiàng)目輔助管理人員和咨詢顧問管理人員等。如果說項(xiàng)目超過了10000人/月這個(gè)規(guī)模,項(xiàng)目往往會(huì)采用縱向切割來進(jìn)行管理,整個(gè)項(xiàng)目會(huì)像工廠中產(chǎn)品線生產(chǎn)方式:系統(tǒng)需求;系統(tǒng)設(shè)計(jì);配置管理;代碼開發(fā);系統(tǒng)測(cè)試;文檔編寫;產(chǎn)品構(gòu)建等過程,整個(gè)項(xiàng)目會(huì)根據(jù)不同的分工被切割成每個(gè)小項(xiàng)目團(tuán)隊(duì),雖然每個(gè)團(tuán)隊(duì)可能的工作都只是針對(duì)于局部,在各自的內(nèi)部這些工作是相對(duì)獨(dú)立的,但是每個(gè)項(xiàng)目又都對(duì)其他部分有比較嚴(yán)重的依托,比如系統(tǒng)設(shè)計(jì)是以項(xiàng)目需求為基礎(chǔ),代碼開發(fā)是以系統(tǒng)設(shè)計(jì)為前提,所有的工作序列彼此關(guān)聯(lián),每個(gè)工作都可以獨(dú)立安排二級(jí)甚至三級(jí)的項(xiàng)目經(jīng)理,這樣整個(gè)項(xiàng)目的組織管理模式也就形成了金字塔的模式,從項(xiàng)目經(jīng)理到最底下的開發(fā)人員形成一個(gè)自頂向下的體系結(jié)構(gòu)。這個(gè)時(shí)候?qū)τ陧?xiàng)目經(jīng)理的主要工作也就不能要求事必躬親,小到一個(gè)螺絲釘都要親自過問,對(duì)于這種項(xiàng)目經(jīng)理的要求更多在于總體協(xié)調(diào)和整體的掌控上面,他就像一個(gè)元帥一般的任務(wù),要的是果斷的決策,準(zhǔn)確的判斷,良好的協(xié)調(diào)和豐富的管理經(jīng)驗(yàn)。
實(shí)際上大部分的項(xiàng)目經(jīng)理很難有機(jī)會(huì)成為如此大規(guī)模項(xiàng)目的最高決策者,即便有機(jī)會(huì)參與的時(shí)候,更多都是處在二線或者三線的位置,所能夠管理的實(shí)際人員也大部分在10人或則20人左右。更多項(xiàng)目經(jīng)理參與的項(xiàng)目都是中小規(guī)模的項(xiàng)目,畢竟中小的項(xiàng)目的數(shù)量還是非常巨大,所以有很多的項(xiàng)目經(jīng)理在從事這種的開發(fā)工作。對(duì)于項(xiàng)目規(guī)模在100人/月的項(xiàng)目對(duì)于很多公司來說也算是具備有一定規(guī)模的項(xiàng)目,這些項(xiàng)目的人員投入一般都會(huì)在10人之上,不會(huì)有公司對(duì)這種項(xiàng)目采用投入一個(gè)人做一百個(gè)月的方式。對(duì)于10人規(guī)模的項(xiàng)目管理對(duì)于大部分的項(xiàng)目經(jīng)理來說可以是一個(gè)不小的挑戰(zhàn),因?yàn)殡m然說項(xiàng)目的規(guī)模不能與上述所說的超級(jí)項(xiàng)目抗衡,但是項(xiàng)目在整體過程中所做的事情和上述相當(dāng),系統(tǒng)需求,系統(tǒng)設(shè)計(jì),配置管理,代碼開發(fā),系統(tǒng)測(cè)試,文檔編寫,產(chǎn)品構(gòu)建等都不會(huì)缺少,但是在人員配備里面可沒有二級(jí)或則三級(jí)的項(xiàng)目經(jīng)理,甚至很多時(shí)候會(huì)有人力資源捉襟見肘的情況,在10人的規(guī)模里面可是要包含需求做成人員,項(xiàng)目開發(fā)人員,測(cè)試人員等。在很多的時(shí)候一個(gè)人需要充當(dāng)多個(gè)角色,可能在某一個(gè)階段你需要做需求,當(dāng)需求做完了之后,你又需要投入開發(fā),后期的時(shí)候可能需要做項(xiàng)目文檔和項(xiàng)目部署,甚至用戶培訓(xùn)。所以對(duì)于我的直觀感覺來說,這種項(xiàng)目對(duì)于項(xiàng)目經(jīng)理的能力要求可能更高,如果要做好這種項(xiàng)目的項(xiàng)目經(jīng)理,首先最好有比較扎實(shí)的技術(shù)開發(fā)能力和工程背景,這樣你的項(xiàng)目估算才能做得比較準(zhǔn)確,為后續(xù)的開發(fā)贏得更多的時(shí)間;其次好需要又比較良好的業(yè)務(wù)知識(shí),因?yàn)槟憧赡芨嘈枰鲆粋€(gè)用戶的接口,所有的需要都需要通過你和客戶去溝通,以及最終的定案,所以對(duì)于業(yè)務(wù)的熟悉程度也至關(guān)重要;再者需要又良好的計(jì)劃性,因?yàn)檫@種項(xiàng)目的變數(shù)比較多,項(xiàng)目不會(huì)像又很長的規(guī)劃周期,所以如果控制好這些可變因素,已經(jīng)如何協(xié)調(diào)內(nèi)部的有限資源,讓資源發(fā)揮最大的優(yōu)勢(shì)可能成為項(xiàng)目經(jīng)理每日計(jì)劃中關(guān)鍵的一部分。
還有不少的項(xiàng)目規(guī)模在10人/月左右的項(xiàng)目,這種項(xiàng)目對(duì)于很多公司來說屬于不痛不癢的項(xiàng)目類型,因?yàn)橥粋€(gè)時(shí)期內(nèi)公司可能會(huì)有多個(gè)這種類型的項(xiàng)目同時(shí)在進(jìn)行中,在這種情況下項(xiàng)目所能夠獲得的資源就更加有限,往往項(xiàng)目的安置人員也就在5人左右,當(dāng)然和上面兩種情況類是,項(xiàng)目過程的事情還是不可省缺,但是由于項(xiàng)目總體的規(guī)模偏小,所以項(xiàng)目的復(fù)雜度也比較容易控制,但是這種項(xiàng)目對(duì)于項(xiàng)目經(jīng)理的要求更多在于技術(shù)上的要求,因?yàn)槿绻@個(gè)時(shí)候在安排一個(gè)缺乏技術(shù)經(jīng)驗(yàn)的人員做項(xiàng)目經(jīng)理,那么整個(gè)項(xiàng)目組的安排出現(xiàn)一個(gè)外行領(lǐng)導(dǎo)四個(gè)內(nèi)行的局面,而且四個(gè)內(nèi)行中可能有一半以上是新人或者初級(jí)的開發(fā)人員,如果再包括測(cè)試等一系列的工作,人員分布上就缺乏合理性。所以這個(gè)時(shí)候的項(xiàng)目經(jīng)理往往都是技術(shù)過硬的人員擔(dān)任,這樣可以化解人員不足的問題,但是也有一個(gè)問題,對(duì)于技術(shù)優(yōu)秀的人員都會(huì)有一個(gè)通病,首先看不上別人的工作結(jié)果和質(zhì)量,另外一方面往往會(huì)以自己的標(biāo)準(zhǔn)去衡量別人和給人安排工作,這樣對(duì)于新人或者初級(jí)的開發(fā)人員來說,他們的工作就會(huì)出現(xiàn)不合理的問題。同時(shí)在做估算的時(shí)候也比較容易出現(xiàn)輕易的問題,以自己的能力估算項(xiàng)目進(jìn)度,結(jié)果造成項(xiàng)目估算不準(zhǔn)確,后期嚴(yán)重加班的問題。所以這種類型的項(xiàng)目經(jīng)理需要又良好的技術(shù)背景,還需要學(xué)習(xí)項(xiàng)目的實(shí)際管理和合理的人員安排,以及如何做好與項(xiàng)目內(nèi)部成員的友好溝通和關(guān)系。
最后一種項(xiàng)目類型就是那種一個(gè)人吃飽,全家不額的類型,項(xiàng)目規(guī)模非常小,不到1人/月,所以在這種項(xiàng)目的投入人數(shù)往往只有一個(gè)人或則兩個(gè)人。當(dāng)然這個(gè)時(shí)候也不會(huì)要求說項(xiàng)目開發(fā)的那一系列的工作都做到位,很多時(shí)候都是口頭相傳,這種項(xiàng)目的結(jié)果大部分之要求軟件代碼和程序能夠滿足要求。所以這個(gè)過程中很多人可能認(rèn)為只要管好自己就可以了,但是我認(rèn)為,時(shí)間雖然短,但是事情還是需要做足,比如說需求的明確文檔化,還有與外界的溝通等一些列過程實(shí)際上都可以和正常的模式一樣,對(duì)自己的工作也需要有一個(gè)良好的計(jì)劃,這個(gè)時(shí)候?qū)τ谧约旱囊缶褪且粋€(gè)鍛煉的機(jī)會(huì),為今后做更大的項(xiàng)目準(zhǔn)備好時(shí)機(jī)。所以這種項(xiàng)目經(jīng)理的要求實(shí)際不抵,如何管理好自己可能會(huì)是一個(gè)比較大的難題。
項(xiàng)目類型的差異性
項(xiàng)目從規(guī)模差異上來說是對(duì)一個(gè)項(xiàng)目經(jīng)理的開發(fā)能力,管理能力等有不同的要求。但是如果說從項(xiàng)目類型的差異的角度來看,就會(huì)對(duì)項(xiàng)目經(jīng)理的一些其他能力又要求,如果說你做的是國內(nèi)的項(xiàng)目,那么你需要有與客戶溝通的良好能力,能夠有足夠的能力應(yīng)對(duì)客戶的各種要求,如何應(yīng)對(duì)客戶千奇百怪的要求,如何合理的說“NO.”都是你需要具備的能力。如果說是對(duì)日,對(duì)歐美的外包服務(wù)開發(fā),需要有良好的語言溝通能力,比如說日語,英語。還需要了解不同國家的文化差異等等,這個(gè)時(shí)候你可能需要充當(dāng)起橋梁的作用,如何與國外的客戶進(jìn)行溝通和交流,包括有工作安排,技術(shù)上等一系列問題的溝通工作。
給自己的定位
項(xiàng)目管理本身就是一個(gè)比較復(fù)雜的過程,不像行軍打戰(zhàn)那樣,有了一盯一眼的制度就可以管理好項(xiàng)目,因?yàn)轫?xiàng)目的變數(shù)太多,情況迥異,也就沒有放之四海而皆準(zhǔn)的管理方法。所以對(duì)于不同類型的項(xiàng)目來說,我們需要了解項(xiàng)目的特點(diǎn),在我們有良好的基礎(chǔ)準(zhǔn)備的前提下,根據(jù)自己的能力特點(diǎn),再結(jié)合項(xiàng)目的實(shí)際情款來不斷調(diào)整工作中的方法和內(nèi)容。
雖然我們很難有一個(gè)標(biāo)準(zhǔn)化的管理手冊(cè)來指導(dǎo)每一個(gè)希望做項(xiàng)目經(jīng)理的人,但是我們可以從別人身上去借鑒各種成功或則失敗的經(jīng)驗(yàn),特別是別人失敗的經(jīng)驗(yàn),因?yàn)閯e人的成功可能我們很難克隆,但是我們可以避免別人錯(cuò)誤再我們身上重演。
不想當(dāng)將軍的士兵不是好士兵,但是不想當(dāng)項(xiàng)目經(jīng)理的程序員未必是壞的程序員。畢竟對(duì)于技術(shù)領(lǐng)域來說,程序員的最終發(fā)展方向項(xiàng)目經(jīng)理未必是一個(gè)最優(yōu)秀的方向,程序員可以走的道路有很多,可以往架構(gòu)師,分析師,資深技術(shù)人員,咨詢師等等。路可能有很多條,而且每一條對(duì)于人員的能力要求也都不一樣,都有良好的發(fā)展機(jī)會(huì)。所以對(duì)于自己能力的判斷和分析,認(rèn)清自己,給自己合理的定位是直觀重要。讓自己的才華得到發(fā)展和認(rèn)可是今后職業(yè)道路上一個(gè)關(guān)鍵,自己要才盡其用。
作者:Yice(小余)
出處:http://www.yice800.cn

posted @ 2009-03-25 21:18 Condor 閱讀(606) | 評(píng)論 (0)編輯 收藏

自己一個(gè)人獨(dú)自回想工作了這么多年,到底給自己留下了什么?如果要給自己找一個(gè)答案,或許有兩個(gè)會(huì)在今后很長一段時(shí)間一直影響自己的東西,一個(gè)是在工作了這么多年讓自己明白了我們要擔(dān)負(fù)什么樣的責(zé)任,另外一件是工作這么多年給自己的頸椎留下了不小的病癥。一好一壞或許是這么多年的最大收獲。
我們?cè)撊绾慰创?zé)任
時(shí)至今日蒙牛老總牛根生說過的那句話還讓我記憶猶新,“有德有才,破格重用;有德無才,培養(yǎng)使用;有才無德,限制錄用;無德無才,堅(jiān)決不用。”在我認(rèn)為德的基本就是這個(gè)人的責(zé)任心和他的態(tài)度。無論是軟件行業(yè)還是其他的行業(yè),在很多的時(shí)候考核一個(gè)人是否符合相應(yīng)的工作崗位,職位技能往往不是最主要的考核標(biāo)準(zhǔn),而在所有的考核標(biāo)準(zhǔn)中,人的品性和責(zé)任態(tài)度才是考核的關(guān)鍵。
什么人活得最輕松,不負(fù)責(zé)人的人。丈夫有責(zé)任給妻子一個(gè)良好的生活環(huán)境;父親有責(zé)任給孩子一個(gè)良好的生長環(huán)境;孩子有責(zé)任贍養(yǎng)自己的父母;員工有責(zé)任做好自己的本職工作;所有的這些都是一些基本的責(zé)任。如果一個(gè)人富有責(zé)任心,生活中的這些責(zé)任會(huì)讓自己感覺到沉重的壓力,一旦人在這些壓力的之下,要想過的輕松舒服就很困難。所以如果你希望自己過得輕松寫意,你放下一切的責(zé)任態(tài)度,做個(gè)不負(fù)任何責(zé)任的人,那么或許你會(huì)過得比較輕松,但是你也將成為社會(huì)中一個(gè)不合格的人。
軟件開發(fā)本身屬于腦力密集型的勞動(dòng),所有的一切都依托于人,軟件行業(yè)本身和其它的制造行業(yè)有一個(gè)本質(zhì)性的差異,軟件主要依靠人的智慧來進(jìn)行工作,雖然我們現(xiàn)在看到很多的軟件工程管理書籍,無論是大師的作品,還是坊間口聲相傳的經(jīng)驗(yàn)之談,我們都很難解決一個(gè)問題,我們很難像制造行業(yè)一樣,讓我們每個(gè)程序員寫出來的代碼都能夠像機(jī)器加工出來的那樣,每一個(gè)行代碼都能夠像一個(gè)模子印出來的,很難做到整個(gè)團(tuán)隊(duì)寫出的代碼像出至一人之手。所以軟件行業(yè)的工程管理比其它的工程來說要存在有更大的困難,那么在這些問題困撓之下,整個(gè)行業(yè)對(duì)人的依賴尤為嚴(yán)重,對(duì)人的依賴程度也就造成對(duì)人本身品德和責(zé)任心的要求程度相對(duì)要高。
在自己工作這么多年來,感覺最輕松的時(shí)候還是剛剛畢業(yè)的時(shí)候,那個(gè)時(shí)候是初出校門,作為一個(gè)新人進(jìn)入項(xiàng)目組中,對(duì)于自己最大的挑戰(zhàn)主要是能不能按時(shí)準(zhǔn)確的完成自己相應(yīng)的模塊開發(fā)工作。后來開始負(fù)責(zé)項(xiàng)目之后,雖然也在做編碼開發(fā)工作,但是所擔(dān)心的和讓自己歡欣的事情和開始已經(jīng)完全不同。如果你希望自己能夠能夠作為一個(gè)合格的項(xiàng)目經(jīng)理經(jīng)理,那么你首先需要明確自己的肩上的擔(dān)子的分量。在我們的工作中,我們每個(gè)人必須承擔(dān)工作的各種責(zé)任,如果我們?nèi)笔н@種看待責(zé)任的態(tài)度,那么工作最后的結(jié)果往往將會(huì)以失敗告終。
對(duì)于自己在這幾年的最大一個(gè)一個(gè)收獲就是讓自己更明確到責(zé)任重于泰山的道理。當(dāng)然也是這種態(tài)度讓自己能夠堅(jiān)持著把一個(gè)一個(gè)項(xiàng)目做下去,做好這些項(xiàng)目。如果要對(duì)自己做一個(gè)評(píng)價(jià),或許在技術(shù)上我不敢說自己有十足的優(yōu)勢(shì),但是這些年養(yǎng)成的這種做事情的方法和態(tài)度還能值得一提。
在項(xiàng)目中你該承擔(dān)什么責(zé)任
如果你要問項(xiàng)目組中誰的壓力最大,一般說來應(yīng)該是項(xiàng)目經(jīng)理,當(dāng)然項(xiàng)目經(jīng)理所拿的工資相對(duì)來說也會(huì)比較高,責(zé)任和壓力本就應(yīng)該和報(bào)酬成正向比例關(guān)系。項(xiàng)目經(jīng)理對(duì)下必須對(duì)項(xiàng)目團(tuán)隊(duì)成員負(fù)責(zé),向上必須對(duì)公司負(fù)責(zé),同時(shí)還需要縱向向客戶負(fù)責(zé),所以項(xiàng)目經(jīng)理經(jīng)理就像一個(gè)傳動(dòng)軸承,這個(gè)項(xiàng)目的運(yùn)作應(yīng)該在他驅(qū)使之下有效穩(wěn)定的運(yùn)轉(zhuǎn)。
項(xiàng)目經(jīng)理需要考慮項(xiàng)目的成本因素,所有的公司都是以盈利為主要目的,有時(shí)候公司會(huì)出于其他的因素和目的,對(duì)于項(xiàng)目的盈利并沒有很嚴(yán)格的要求,但是項(xiàng)目經(jīng)理要有成本的概念和意識(shí),要有團(tuán)隊(duì)的總體成本和利潤要有基本的計(jì)算方式。同時(shí)還需要控制項(xiàng)目的質(zhì)量和進(jìn)度,還有些項(xiàng)目還要求有保密意識(shí)和其他的相關(guān)要求,這些都是項(xiàng)目經(jīng)理需要向公司負(fù)責(zé)的地方。
如何組建好一個(gè)團(tuán)隊(duì),如何培養(yǎng)團(tuán)隊(duì)的成員,讓每個(gè)團(tuán)員很夠在一個(gè)比較良好的環(huán)境中工作和學(xué)習(xí),能夠?qū)崿F(xiàn)每個(gè)人的目標(biāo)和各自的價(jià)值觀,把團(tuán)隊(duì)建設(shè)成什么樣類型,和項(xiàng)目經(jīng)理所采取的方法有直接的關(guān)系,有些項(xiàng)目團(tuán)隊(duì)組建后團(tuán)隊(duì)人員如走馬燈似的換,有些團(tuán)隊(duì)組建后隊(duì)員除了編碼之后就沒有任何的學(xué)習(xí)機(jī)會(huì),如何利用有限的資源和合理的安排,讓團(tuán)隊(duì)的成員都能夠發(fā)揮各自的特長,讓每個(gè)人都能夠體現(xiàn)自己的價(jià)值,有時(shí)候需要替項(xiàng)目組的成員去和公司去爭取他們所應(yīng)該有的福利和報(bào)酬,這就是對(duì)項(xiàng)目團(tuán)隊(duì)和團(tuán)隊(duì)成員所要承擔(dān)的負(fù)責(zé)。
我們每一個(gè)項(xiàng)目最終都將面對(duì)我們的客戶,有時(shí)候我們的客戶的要求會(huì)讓我們很難接受,甚至有時(shí)候會(huì)讓我們團(tuán)隊(duì)感覺到很惱火,但是作為一個(gè)項(xiàng)目經(jīng)理需要化解這些對(duì)項(xiàng)目團(tuán)隊(duì)一個(gè)不利的因素,一方面需要避免影響團(tuán)隊(duì)的士氣,另外一方面需要和客戶進(jìn)行溝通,明確那些要求可行,那些要求不可行,對(duì)于不可行的要求需要給一個(gè)比較合理的解釋,避免由于后期無法完成對(duì)客戶造成欺騙的行為。同時(shí)需要控制項(xiàng)目的整體進(jìn)度和質(zhì)量,保證項(xiàng)目最終能夠解決客戶的為,這些就是對(duì)客戶負(fù)責(zé)的一個(gè)態(tài)度。
如何樹立團(tuán)隊(duì)的責(zé)任意識(shí)
對(duì)于項(xiàng)目組中項(xiàng)目盡力所承擔(dān)的責(zé)任應(yīng)該說是最大的,無論項(xiàng)目的成敗都和項(xiàng)目經(jīng)理由直接的關(guān)系,所以任何一個(gè)項(xiàng)目做項(xiàng)目總結(jié)的時(shí)候,如果項(xiàng)目成功的話,需要給項(xiàng)目經(jīng)理記上一功,如果項(xiàng)目失敗的話,不論任何原因,棒子首先需要打在項(xiàng)目經(jīng)理的身上。項(xiàng)目經(jīng)理需要對(duì)項(xiàng)目的得失成敗負(fù)上完全的責(zé)任。
在一個(gè)項(xiàng)目團(tuán)隊(duì)中,需要有各個(gè)不同的角色相互配合才能最終完成項(xiàng)目,需求調(diào)研人員,系統(tǒng)分析人員,高級(jí)程序員,初級(jí)程序員,測(cè)試人員,配置管理人員等,雖然項(xiàng)目經(jīng)理在項(xiàng)目中的責(zé)任最大,但是項(xiàng)目中每一個(gè)成員都會(huì)有相應(yīng)承擔(dān)的責(zé)任,或許說著這都是一些工作的職責(zé),開發(fā)人員需要按照開發(fā)中的各種要求進(jìn)行開發(fā)工作,測(cè)試人員需要按照測(cè)試的要求準(zhǔn)備測(cè)試文檔和數(shù)據(jù)等,所有的角色都會(huì)有各自的工作內(nèi)容,在實(shí)際工作中我們是每一個(gè)角色協(xié)作來完成項(xiàng)目,有時(shí)候由于項(xiàng)目的規(guī)模偏小,有些人可能會(huì)同時(shí)充當(dāng)多個(gè)角色,比如說高級(jí)程序員有時(shí)候需要同時(shí)兼顧系統(tǒng)分析人員,項(xiàng)目經(jīng)理有時(shí)候還需要兼顧測(cè)試等等。但是不論規(guī)模的大小,項(xiàng)目經(jīng)理需要非常清晰的意思到每個(gè)角色的工作職責(zé),在項(xiàng)目分工中對(duì)各種工作要比較清晰,合理化安排。同時(shí)也需要讓每個(gè)工作的人員清楚的知道自己的工作要求和檢驗(yàn)的方式,避免含糊性的安排,做到責(zé)任清晰。
明確責(zé)任的首要是明確工作內(nèi)容,對(duì)于團(tuán)隊(duì)成員中需要做到責(zé)任均衡,盡量避免能者多勞的問題,工作中進(jìn)行工作安排時(shí)往往容易把工作重點(diǎn)都落到部分能力較強(qiáng)的人員上,這種安排比較容易造成工作天平的傾斜,一旦傾斜的嚴(yán)重,這部分開發(fā)人員就比較容易造成由于精力不足造成質(zhì)量問題。所以項(xiàng)目經(jīng)理在安排工作中需要有個(gè)權(quán)衡,如果說存在人員能力不均衡問題,那么在工作安排的時(shí)候,需要盡可能抽取重復(fù)性的工作,讓能力欠缺的人員做這部分工作,同時(shí)需要協(xié)調(diào)他們學(xué)習(xí),也需要明確學(xué)習(xí)的目標(biāo)和結(jié)果。
對(duì)于團(tuán)隊(duì)中我們需要樹立一個(gè)責(zé)任意識(shí),同時(shí)需要有合作精神,在項(xiàng)目開發(fā)中整個(gè)團(tuán)隊(duì)需要彼此合作,有時(shí)候一個(gè)人的問題有時(shí)候會(huì)影響到整個(gè)團(tuán)隊(duì)的質(zhì)量和進(jìn)度。我們最終給客戶交付的是一個(gè)完整的程序,其中任何一個(gè)部分出了問題,客戶對(duì)整個(gè)產(chǎn)品的評(píng)價(jià)都會(huì)因此而改觀,客戶不會(huì)說那個(gè)模塊怎么怎么樣,而是說你這個(gè)程序怎么怎么樣,這就代表說是一個(gè)整體的結(jié)果,所以項(xiàng)目經(jīng)理需要在團(tuán)隊(duì)中樹立起這種整體的責(zé)任意識(shí),避免團(tuán)隊(duì)中出現(xiàn)個(gè)人自管門前雪,不理他人瓦上霜的現(xiàn)象。
你能承受多大責(zé)任
你有沒有評(píng)價(jià)過你的項(xiàng)目經(jīng)理,你有沒有對(duì)你的項(xiàng)目經(jīng)理感到無奈和氣氛,如果你希望自己能夠往項(xiàng)目經(jīng)理方向發(fā)展,在我看來你首先需要考慮的不是你的技術(shù)背景,你的管理經(jīng)驗(yàn)是不是足夠,首先要考慮的是你是不是有能夠承受那些責(zé)任的心態(tài)。如果你是項(xiàng)目經(jīng)理的話,那么你負(fù)責(zé)管理的團(tuán)隊(duì)無論人員多少,他們需要在你的協(xié)調(diào)下工作,那么你肩上擔(dān)負(fù)的就是那些人的工作結(jié)果和評(píng)定,還有來自公司的各種壓力和考核。這些比單純寫代碼要?jiǎng)谛脑S多。
影響項(xiàng)目成敗的因素有很多,但是如果說項(xiàng)目經(jīng)理缺少責(zé)任心,我可以說項(xiàng)目必?cái)o疑。正是因?yàn)檫@樣,我才會(huì)在此一再強(qiáng)調(diào)責(zé)任心的問題。
作者:Yice(小余)
出處:http://www.yice800.cn

posted @ 2009-03-25 21:17 Condor 閱讀(680) | 評(píng)論 (0)編輯 收藏

如果你愛他,那么讓他去當(dāng)項(xiàng)目經(jīng)理,因?yàn)槟抢飼?huì)是他事業(yè)的天堂;如果你狠他,送他去當(dāng)項(xiàng)目經(jīng)理,因?yàn)槟菍⑹撬牡鬲z。
軟 件開發(fā)工作應(yīng)該屬于分工比較明確的行業(yè),每一個(gè)項(xiàng)目的啟動(dòng),調(diào)研,開發(fā),測(cè)試,部署,用戶培訓(xùn)和后期維護(hù)等一系列的過程都有不同的角色參與其中。在這一系 列的角色中項(xiàng)目經(jīng)理是最直接的管理者,無疑顯得格外的突出和重要。軟件項(xiàng)目開發(fā)的成功率本身就不高,在眾多的失敗過程中,由于項(xiàng)目經(jīng)理在管理上存在的問題 造成項(xiàng)目無法按時(shí)交納,質(zhì)量不高甚至失敗的例子在我看來數(shù)不勝數(shù)。雖然項(xiàng)目經(jīng)理的能力并不是項(xiàng)目失敗的直接原因,因?yàn)橛绊戫?xiàng)目成敗的因素有很多,但是如果 一個(gè)合格的項(xiàng)目經(jīng)理,對(duì)于項(xiàng)目的整個(gè)開發(fā)過程來說,如何利用他的經(jīng)驗(yàn)和能力來有效合理的管理項(xiàng)目進(jìn)度,從而避免很多無謂的失誤,在項(xiàng)目的最終成敗中還是占 有關(guān)鍵作用。
對(duì) 于很多從事軟件開發(fā)的人來說,項(xiàng)目經(jīng)理是他們事業(yè)上追求的目標(biāo),從初出校園的小牛犢,從最低級(jí)的學(xué)徒似的初級(jí)開發(fā)人員,再不斷的努力和學(xué)習(xí),慢慢得爬到有 經(jīng)驗(yàn)的中級(jí)程序員,再后來到高級(jí)程序員,到后來的大牛人才,慢慢開始帶領(lǐng)新人,開始接觸項(xiàng)目管理上的工作。我想很多人的軌跡都是這么一步一步的過來。在整 個(gè)過程中我們彼此都在學(xué)習(xí),關(guān)于很多的技術(shù)方面的知識(shí)可以通過網(wǎng)絡(luò)和書籍進(jìn)行學(xué)習(xí)。但是如何做一名項(xiàng)目經(jīng)理,如何做好一名項(xiàng)目經(jīng)理,倒缺乏一個(gè)系統(tǒng)的學(xué)習(xí) 框架,包括我自己在內(nèi),也是跟隨前人身邊學(xué)習(xí),自己觀察,在一次次錯(cuò)誤后進(jìn)行反思后才有所進(jìn)步。這個(gè)話題的文章我考慮了很久后才決定要寫出來,在一系列的 文章中結(jié)合我自己的項(xiàng)目和我自己身邊的項(xiàng)目,希望能夠?qū)⑦@些經(jīng)驗(yàn)與大伙分享,通過討論,彼此共勉。機(jī)會(huì)往往是給有所準(zhǔn)備的人,不論你現(xiàn)在是否是充當(dāng)項(xiàng)目經(jīng) 理的角色,但是如果你有所準(zhǔn)備,我想對(duì)于你來說機(jī)會(huì)只是遲早的事情。
項(xiàng)目從規(guī)模來說,可以劃分微型項(xiàng)目,小型項(xiàng)目,中型項(xiàng)目和大項(xiàng)目,當(dāng)然還有超大型的項(xiàng)目,對(duì)于工數(shù)在一人/月(一個(gè)中級(jí)程序員開發(fā)一個(gè)月,總計(jì)21個(gè)工作日)的項(xiàng)目定為微型項(xiàng)目;對(duì)于工數(shù)在1人/月到10人/月之間的規(guī)模稱為小型項(xiàng)目;對(duì)于工數(shù)在10人/月到100人/月之間的規(guī)模稱為中型項(xiàng)目;如果超過 100人/月的項(xiàng)目稱為大型項(xiàng)目;對(duì)于我們所討論的項(xiàng)目管理中,對(duì)于超過1000人/月的項(xiàng)目不做討論,因?yàn)橐话愕墓緛碚f,還是比較少能夠遇到中規(guī)模的項(xiàng)目。
如 果從類型來說可以簡單的劃分為產(chǎn)品開發(fā)和項(xiàng)目開發(fā),產(chǎn)品的開發(fā)一般會(huì)有后續(xù)定期的產(chǎn)品升級(jí)性開發(fā),項(xiàng)目的開發(fā)時(shí)間跨度也會(huì)比較長,對(duì)于項(xiàng)目的開發(fā)來說,一 般是指為了滿足某一特定客戶而開發(fā)的軟件,其開發(fā)周期往往會(huì)比較緊張,后續(xù)的開發(fā)主要是針對(duì)客戶的新功能追加,這種項(xiàng)目的開發(fā)往往會(huì)劃分為幾個(gè)階段分步進(jìn) 行。
如果從合作方式上也可以劃分為自主研發(fā)和外包開發(fā),甚至還有部分項(xiàng)目使用外駐人員進(jìn)行項(xiàng)目開發(fā),有時(shí)候開發(fā)還受到地域性的影響,兩地,三地合作開發(fā),國內(nèi)國外的合作開發(fā),還有甚至多國之間的合作開發(fā)。
不 同的項(xiàng)目開發(fā)方式都會(huì)有不同的問題出現(xiàn),比如說小型項(xiàng)目和大型項(xiàng)目的人員配備上就不可能一樣,外包開發(fā)和自主研發(fā)的項(xiàng)目計(jì)劃也不一樣,跨地域的合作上的時(shí) 間差異和人員的溝通和本公司內(nèi)部背靠背的模式也不一樣。項(xiàng)目中實(shí)際可能發(fā)生的事情千奇百怪,這些問題絕大部分都需要項(xiàng)目經(jīng)理來過問,分析和決策。所以說項(xiàng) 目經(jīng)理或許對(duì)于很多人來說將會(huì)是地獄,一旦深陷其中,很難有苦盡甘來的那一天。但是如果方法得當(dāng),管理手段有效,能夠合理的規(guī)避風(fēng)險(xiǎn)呢?那你將會(huì)感到項(xiàng)目 中的一切對(duì)你來說游刃有余,團(tuán)隊(duì)中每個(gè)人也都能相應(yīng)發(fā)揮自己的特長,也都能從中找到各自的成就感。
生與死只在一線間,好和壞也是如此。希望能夠從項(xiàng)目經(jīng)理的角度來看看項(xiàng)目實(shí)際過程中我們會(huì)遇到哪些問題,該如何去處理這些問題,通過著一些列的文章能讓你對(duì)項(xiàng)目的整體過程有更全面的了解,同時(shí)也能夠讓你更清楚項(xiàng)目經(jīng)理的日常工作和行為職責(zé)。
作者:Yice(小余)
出處:http://www.yice800.cn

posted @ 2009-03-25 21:16 Condor 閱讀(760) | 評(píng)論 (0)編輯 收藏

作者:Michael Howard
原文出處:Strsafe.h: Safer String Handling in C

  在微軟公司舉行的Microsoft Windows Security Push 活動(dòng)期間,一批測(cè)試者、程序管理經(jīng)理和普通程序員共同決定要為 C 語言量身定制一套具有較高安全性的字符串處理函數(shù),并且希望這些函數(shù)能被 Windows 程序員和微軟公司內(nèi)部的程序員所采用。
簡單說來,現(xiàn)有的 C 語言運(yùn)行時(shí)函數(shù)實(shí)在難以在當(dāng)今充斥著惡意攻擊企圖的大環(huán)境下立足。這些函數(shù)要么在返回值和參數(shù)上缺乏一致性,要么隱含著所謂的“截?cái)嗾`差”(truncation errors) 錯(cuò)誤,要么無法提供足夠強(qiáng)大的功能。坦言之,調(diào)用這些函數(shù)的代碼太容易產(chǎn)生“內(nèi)存溢出”問題了。
  我們發(fā)現(xiàn),面向 C++ 程序員的類足以應(yīng)付各種安全處理字符串的編程需要;他們能夠選擇 MFC 的Cstring 類、ATL 的CComBSTR 類 或者STL 的string 類,等等。然而,經(jīng)典的 C 語言程序仍然普遍地存在,何況許多人正在把 C++ 當(dāng)作 “改良的 C 語言” 來用,卻把豐富的 C++ 類束之高閣。
  其實(shí)只需要添加一行代碼,你就能在 C 語言代碼中調(diào)用安全性良好的 strsafe 系列函數(shù)了,詳細(xì)請(qǐng)參閱:
《Using the Strsafe.h Functions》
這些新函數(shù)包含在一個(gè)頭文件和一個(gè)函數(shù)庫(可選)中,而后兩者能在新版的 Platform SDK 中找到。對(duì),就這么簡單:

#include "strsafe.h"

還等什么呢!
再強(qiáng)調(diào)一次,對(duì) strsafe 函數(shù)庫的引用是可選的。
為了實(shí)現(xiàn) strsafe 系列函數(shù)的目標(biāo),你的代碼必須滿足下列條件:

  • 始終以 NULL 字符結(jié)束字符串。
  • 始終檢測(cè)目標(biāo)緩沖區(qū)的長度。
  • 始終用 HRESULT 語句產(chǎn)生統(tǒng)一的返回值。
  • 兼顧 32 位與 64 位兩種運(yùn)行環(huán)境。
  • 具有靈活性。

  我們覺得,缺乏統(tǒng)一性是導(dǎo)致現(xiàn)有許多 C 語言字符串處理函數(shù)容易產(chǎn)生安全漏洞的根本原因,而 strsafe 系列函數(shù)所帶來的高度統(tǒng)一性恰恰是解決此問題的一劑良藥。然而,strsafe 也不是萬能藥。單純依靠 strsafe 系列函數(shù)并不能保證代碼的安全性和堅(jiān)固性——你還必須開動(dòng)你的大腦才行——然而這樣對(duì)解決問題還是大有幫助的!
下面給出一段采用經(jīng)典 C 語言運(yùn)行時(shí)間函數(shù)的代碼:

void UnsafeFunc(LPTSTR szPath,DWORD cchPath) {
	TCHAR szCWD[MAX_PATH];

	GetCurrentDirectory(ARRAYSIZE(szCWD), szCWD);
	strncpy(szPath, szCWD, cchPath);
	strncat(szPath, TEXT("\\"), cchPath);
	strncat(szPath, TEXT("desktop.ini"),cchPath);
}

  以上代碼中的 bug 隨處可見 —— 它沒有檢查任何一個(gè)返回值,而且在對(duì) strncat 函數(shù)的調(diào)用中也沒有正確地使用 cchPath (因?yàn)镸AX_PATH 中保存的是目標(biāo)緩沖區(qū)內(nèi)剩余空間的長度,而不是目標(biāo)緩沖區(qū)的總長度)。于是,“內(nèi)存溢出” 問題將會(huì)快找上門來。然而,象這樣的代碼片段早已泛濫成災(zāi)了。如果改用 strsafe 系列函數(shù),那么以上代碼應(yīng)該變成:

bool SaferFunc(LPTSTR szPath,DWORD cchPath) {
	TCHAR szCWD[MAX_PATH];

	if (GetCurrentDirectory(ARRAYSIZE(szCWD), szCWD) &&
			SUCCEEDED(StringCchCopy(szPath, cchPath, szCWD)) &&
			SUCCEEDED(StringCchCat(szPath, cchPath, TEXT("\\"))) &&
			SUCCEEDED(StringCchCat(szPath, cchPath, TEXT("desktop.ini")))) {

			return true;
	}

	return false;
}						
  這段代碼不但檢查了每一個(gè)返回值,還保證了適時(shí)傳入同一目標(biāo)緩沖區(qū)的總長度。你還可以采用 Ex 版本的 strsafe 系列函數(shù)來實(shí)現(xiàn)更加高級(jí)的功能,比如:
  • 獲取目標(biāo)緩沖區(qū)的當(dāng)前指針。
  • 獲取目標(biāo)緩沖區(qū)的剩余空間長度。
  • 以某個(gè)特定字符填充空閑緩沖區(qū)。
  • 一旦字符串處理函數(shù)失敗,就把用特定值填充字符串。
  • 一旦字符串處理函數(shù)失敗,就把目標(biāo)緩沖區(qū)設(shè)成 NULL 。

  如此改進(jìn)后的代碼性能又如何呢?告訴你一個(gè)好消息:它與原先的代碼在性能上幾乎沒有差別。我曾在自己的 1.8 GHz 電腦上測(cè)試過混用經(jīng)典 C 語言中各種字符串連接函數(shù)的代碼、混用 strsafe 系列中各種字符串連接函數(shù)的代碼和混用 Ex 版本 strsafe 系列中各種字符串連接函數(shù)的代碼。它們各自獨(dú)立運(yùn)行一百萬次(沒錯(cuò),就是 10,000,000 次)所消耗的時(shí)間分別為:

  • 經(jīng)典 C 語言 —— 7.3 秒
  • Strsafe 系列—— 8.3 秒
  • Strsafe 系列 (Ex 版) —— 11.1 秒

在測(cè)試中,調(diào)用 Ex 版本的 strsafe 系列函數(shù)的程序會(huì)在調(diào)用失敗時(shí)把緩沖區(qū)設(shè)為 NULL ,并以 0xFE 作為填充字節(jié),代碼如下:

DWORD dwFlags = STRSAFE_NULL_ON_FAILURE | STRSAFE_FILL_BYTE(0xFE);

  其中設(shè)置填充字節(jié)的代碼耗時(shí)較多。事實(shí)上,如果這里僅僅把緩沖區(qū)設(shè)置為 NULL 的話,則采用 Ex 版本的 strsafe 系列函數(shù)的代碼將會(huì)與采用普通的 strsafe 系列函數(shù)的代碼耗時(shí)相同。
  由此可見,以上三種方案的性能差異極小。我相信你也不會(huì)經(jīng)常在一個(gè)程序中數(shù)百萬次地反復(fù)執(zhí)行包含大量字符串處理函數(shù)的代碼吧!
還有一點(diǎn)值得引起注意:當(dāng)你引用 strsafe 系列函數(shù)時(shí),原有的 C 語言字符串處理函數(shù)都將被自動(dòng)進(jìn)行 #undef 處理。這也沒問題,因?yàn)檎{(diào)試過程中的出錯(cuò)信息將會(huì)告訴你哪些函數(shù)已經(jīng)被相應(yīng)的 strsafe 系列函數(shù)取代了。好了,請(qǐng)放心地使用 strsafe.h 吧!更多相關(guān)信息請(qǐng)參閱 《Using the Strsafe.h Functions》

posted @ 2009-03-20 10:57 Condor 閱讀(2815) | 評(píng)論 (1)編輯 收藏

一、墨菲定律

    1949年,一位名叫墨菲的空軍上尉工程師,認(rèn)為他的某位同事是個(gè)倒霉蛋,不經(jīng)意間開了句玩笑:“如果一件事情有可能被弄糟,讓他去做就一定會(huì)弄糟。”
這句話迅速流傳,并擴(kuò)散到世界各地。在流傳擴(kuò)散的過程中,這句笑話逐漸失去它原有的局限性,演變成各種各樣的形式,其中一個(gè)最通行的形式是:“如果壞事情有可能發(fā)生,不管這種可能性多么小,它總會(huì)發(fā)生,并引起最大可能的損失。”
這就是著名的“墨菲定律”。下面是墨菲定律的一些變種或推論。
人生哲學(xué)
1.別試圖教貓唱歌,這樣不但不會(huì)有結(jié)果,還會(huì)惹貓不高興?
2.別跟傻瓜吵架,不然旁人會(huì)搞不清楚,到底誰是傻瓜?
3.不要以為自己很重要,因?yàn)闆]有你,太陽明天還是一樣從東方升上來?
4.笑一笑,明天未必比今天好。
5.好的開始,未必就有好結(jié)果;壞的開始,結(jié)果往往會(huì)更糟。
處世原理
6.你若幫助了一個(gè)急需用錢的朋友,他一定會(huì)記得你——在他下次急需用錢的時(shí)候。
7.有能力的——讓他做;沒能力的──教他做;做不來的──管理他。
8.你早到了,會(huì)議卻取消;你準(zhǔn)時(shí)到,卻還要等;遲到,就是遲了。
9.你攜伴出游,越不想讓人看見,越會(huì)遇見熟人。
愛情意義
10.你愛上的人,總以為你愛上他是因?yàn)椋核鼓阆肫鹉愕睦锨槿恕?br>11.你最后硬著頭皮寄出的情書;寄達(dá)對(duì)方的時(shí)間有多長,你反悔的時(shí)間就有多長。
生活常識(shí)
12.東西越好,越不中用。
13.一種產(chǎn)品保證60天不會(huì)出故障,等于保證第61天一定就會(huì)壞掉。
14.東西久久都派不上用場(chǎng),就可以丟掉;東西一丟掉,往往就必須要用它。
15.你丟掉了東西時(shí),最先去找的地方,往往也是可能找到的最后一個(gè)地方。
16.你往往會(huì)找到不是你正想找的東西。
17.你出去買爆米花的時(shí)候,銀幕上偏偏就出現(xiàn)了精彩鏡頭。
18.另一排總是動(dòng)的比較快;你換到另一排,你原來站的那一排,就開始動(dòng)的比較快了;你站的越久,越有可能是站錯(cuò)了排。
19.一分鐘有多長? 這要看你是蹲在廁所里面,還是等在廁所外面。

    二、二八法則

    1897年,意大利經(jīng)濟(jì)學(xué)家帕列托在對(duì)19世紀(jì)英國社會(huì)各階層的財(cái)富和收益統(tǒng)計(jì)分析時(shí)發(fā)現(xiàn):80%的社會(huì)財(cái)富集中在20%的人手里,而80%的人只擁有社 會(huì)財(cái)富的20%,這就是“二八法則”。“二八法則”反應(yīng)了一種不平衡性,但它卻在社會(huì)、經(jīng)濟(jì)及生活中無處不在。    附:破窗理論等

     在商品營銷中,商家往往會(huì)認(rèn)為所有顧客一樣重要;所有生意、每一種產(chǎn)品都必須付出相同的努力,所有機(jī)會(huì)都必須抓住。而“二八法則”恰恰指出了在原因和結(jié) 果、投入和產(chǎn)出、努力和報(bào)酬之間存在這樣一種典型的不平衡現(xiàn)象:80%的成績,歸功于20%的努力;市場(chǎng)上80%的產(chǎn)品可能是20%的企業(yè)生產(chǎn)的;20% 的顧客可能給商家?guī)?0%的利潤。遵循“二八法則”的企業(yè)在經(jīng)營和管理中往往能抓住關(guān)鍵的少數(shù)顧客,精確定位,加強(qiáng)服務(wù),達(dá)到事半功倍的效果。美國的普 爾斯馬特會(huì)員店始終堅(jiān)持會(huì)員制,就是基于這一經(jīng)營理念。

     “二八法則”同樣適用于我們的生活,如一個(gè)人應(yīng)該選擇在幾件事上追求卓越,而不必強(qiáng)求在每件事上都有好的表現(xiàn);鎖定少數(shù)能完成的人生目標(biāo),而不必追求所有的機(jī)會(huì)。

    三、馬太效應(yīng)

    《新約·馬太福音》中有這樣一個(gè)故事,一個(gè)國王遠(yuǎn)行前,交給三個(gè)仆人每人一錠銀子,吩咐他們:“你們?nèi)プ錾猓任一貋頃r(shí),再來見我。”國王回來時(shí),第一 個(gè)仆人說:“主人,你交給我的一錠銀子,我已賺了10錠。”于是國王獎(jiǎng)勵(lì)了他10座城邑。第二個(gè)仆人報(bào)告說:“主人,你給我的一錠銀子,我已賺了5錠。” 于是國王便獎(jiǎng)勵(lì)了他5座城邑。第三個(gè)仆人報(bào)告說:“主人,你給我的一錠銀子,我一直包在手巾里存著,我怕丟失,一直沒有拿出來。”于是國王命令將第三個(gè)仆 人的那錠銀子賞給第一個(gè)仆人,并且說:“凡是少的,就連他所有的,也要奪過來。凡是多的,還要給他,叫他多多益善。”這就是馬太效應(yīng),它反映了當(dāng)今社會(huì)中 存在的一個(gè)普遍現(xiàn)象,即贏家通吃。
對(duì)企業(yè)經(jīng)營發(fā)展而言,馬太效應(yīng)告訴我們,要想在某個(gè)領(lǐng)域保持優(yōu)勢(shì),就必須在此領(lǐng)域迅速做大。當(dāng)你成為某個(gè)領(lǐng)域的領(lǐng)頭羊的時(shí)候,即便投資回報(bào)率相同,你也能 更輕易地獲得比弱小的同行更大的收益。而若沒有實(shí)力迅速在某個(gè)領(lǐng)域做大,就要不停地尋找新的發(fā)展領(lǐng)域,才能保證獲得較好的回報(bào)。

    四、手表定理

    手表定理是指一個(gè)人有一只表時(shí),可以知道現(xiàn)在是幾點(diǎn)鐘,而當(dāng)他同時(shí)擁有兩只表時(shí)卻無法確定。兩只表并不能告訴一個(gè)人更準(zhǔn)確的時(shí)間,反而會(huì)讓看表的人失去對(duì) 準(zhǔn)確時(shí)間的信心。你要做的就是選擇其中較信賴的一只,盡力校準(zhǔn)它,并以此作為你的標(biāo)準(zhǔn),聽從它的指引行事。記住尼采的話:“兄弟,如果你是幸運(yùn)的,你只需 有一種道德而不要貪多,這樣,你過橋更容易些。”
如果每個(gè)人都“選擇你所愛,愛你所選擇”,無論成敗都可以心安理得。然而,困擾很多人的是:他們被“兩只表”弄得無所,心身交瘁,不知自己該信仰哪一 個(gè),還有人在環(huán)境、他人的壓力下,違心選擇了自己并不喜歡的道路,為此而郁郁終生,即使取得了受人矚目的成就,也體會(huì)不到成功的快樂。
手表定理在企業(yè)經(jīng)營管理方面給我們一種非常直觀的啟發(fā),就是對(duì)同一個(gè)人或同一個(gè)組織的管理不能同時(shí)采用兩種不同的方法,不能同時(shí)設(shè)置兩個(gè)不同的目標(biāo)。 甚至每一個(gè)人不能由兩個(gè)人來同時(shí)指揮,否則將使這個(gè)企業(yè)或這個(gè)人無所適從。手表定理所指的另一層含義在于每個(gè)人都不能同時(shí)挑選兩種不同的價(jià)值觀,否則,你 的行為將陷于混亂。

    五、“不值得”定律

    不值得定律最直觀的表述是:不值得做的事情,就不值得做好,這個(gè)定律似乎再簡單不過了,但它的重要性卻時(shí)時(shí)被人們疏忘。不值得定律反映出人們的一種心理, 一個(gè)人如果從事的是一份自認(rèn)為不值得做的事情,往往會(huì)保持冷嘲熱諷,敷衍了事的態(tài)度。不僅成功率小,而且即使成功,也不會(huì)覺得有多大的成就感。
哪些事值得做呢?一般而言,這取決于三個(gè)因素。
1、價(jià)值觀。關(guān)于價(jià)值觀我們已經(jīng)談了很多,只有符合我們價(jià)值觀的事,我們才會(huì)滿懷熱情去做。
2、個(gè)性和氣質(zhì)。一個(gè)人如果做一份與他的個(gè)性氣質(zhì)完全背離的工作,他是很難做好的,如一個(gè)好交往的人成了檔案員,或一個(gè)害羞者不得不每天和不同的人打交道。
3、現(xiàn)實(shí)的處境。同樣一份工作,在不同的處境下去做,給我們的感受也是不同的。例如,在一家大公司,如果你最初做的是打雜跑腿的工作,你很可能認(rèn)為是不值得的,可是,一旦你被提升為領(lǐng)班或部門經(jīng)理,你就不會(huì)這樣認(rèn)為了。
總結(jié)一下,值得做的工作是:符合我們的價(jià)值觀,適合我們的個(gè)性與氣質(zhì),并能讓我們看到期望。如果你的工作不具備這三個(gè)因素,你就要考慮換一個(gè)更合適的工作,并努力做好它。
因此,對(duì)個(gè)人來說,應(yīng)在多種可供選擇的奮斗目標(biāo)及價(jià)值觀中挑選一種,然后為之而奮斗。“選擇你所愛的,愛你所選擇的”,才可能激發(fā)我們的奮斗毅力,也 才可以心安理得。而對(duì)一個(gè)企業(yè)或組織來說,則要很好地分析員工的性格特性,合理分配工作,如讓成就欲較強(qiáng)的職工單獨(dú)或牽頭來完成具有一定風(fēng)險(xiǎn)和難度的工 作,并在其完成時(shí)給予定時(shí)的肯定和贊揚(yáng);讓依附欲較強(qiáng)的職工更多地參加到某個(gè)團(tuán)體中共同工作;讓權(quán)力欲較強(qiáng)的職工擔(dān)任一個(gè)與之能力相適應(yīng)的主管。同時(shí)要加 強(qiáng)員工對(duì)企業(yè)目標(biāo)的認(rèn)同感,讓員工感覺到自己所做的工作是值得的,這樣才能激發(fā)職工的熱情。

    六、彼得原理

管理學(xué)家勞倫斯·丁·彼得(Laurence.J.Peter),1917年牛于加拿大的范庫弗,1957年獲美國華盛頓州立大學(xué)學(xué)士學(xué)位,6年后 又獲得該校教育哲學(xué)博士學(xué)位,他閱歷豐富,博學(xué)多才,著述頗豐,他的名字還被收人了《美國名人榜》、《美國科學(xué)界名人錄》和《國際名人傳記辭典》等辭書 中。

     彼得原理(The PeterPrinciPle)正是彼得根據(jù)千百個(gè)有關(guān)組織中不能勝任的失敗實(shí)例的分析而歸納出來的。其具體內(nèi)容是:“在一個(gè)等級(jí)制度中,每個(gè)職工趨向于 上升到他所不能勝任的地位”。彼得指出,每一個(gè)職工由于在原有職位上工作成績表現(xiàn)好(勝任),就將被提升到更高一級(jí)職位;其后,如果繼續(xù)勝任則將進(jìn)一步被 提升,直至到達(dá)他所不能勝任的職位。由此導(dǎo)出的彼得推論是,“每一個(gè)職位最終都將被一個(gè)不能勝任其工作的職工所占據(jù)。層級(jí)組織的工作任務(wù)多半是由尚未達(dá)到 不勝任階層的員工完成的。”每一個(gè)職工最終都將達(dá)到彼得高地,在該處他的提升商數(shù)(PQ)為零。至于如何加速提升到這個(gè)高地,有兩種方法。其一。是上面的 “拉動(dòng)”,即依靠裙帶關(guān)系和熟人等從上面拉;其二是自我的“推動(dòng)”,即自我訓(xùn)練和進(jìn)步等,而前者是被普遍采用的。

     彼得認(rèn)為,由于彼得原理的推出,使他“無意間”創(chuàng)設(shè)了一門新的科學(xué)——層級(jí)組織學(xué)(hierarchiolgy)。該科學(xué)是解開所有階層制度之謎的鑰匙, 因此也是了解整個(gè)文明結(jié)構(gòu)的關(guān)鍵所在。凡是置身于商業(yè)、工業(yè)、政治、行政、軍亨、宗教、教育各界的每個(gè)人都和層級(jí)組織息息相關(guān),亦都受彼得原理的控制。當(dāng) 然,原理的假設(shè)條件是:時(shí)間足夠長,五層級(jí)組織里有足夠的階層。彼得原理被認(rèn)為是同帕金森定律有聯(lián)系的。

     帕金森(C.N.Parkinson)是著名的社會(huì)理論家,他曾仔細(xì)觀察并有趣地描述層級(jí)組織中冗員累積的現(xiàn)象。他假設(shè),組織中的高級(jí)主管采用分化和征服 的策略,故意使組織效率降低,借以提升自己的權(quán)勢(shì),這種現(xiàn)象即帕金森所說的“爬升金字塔”。彼得認(rèn)為這種理論設(shè)計(jì)是有缺陷的,他給出的解釋員工累增現(xiàn)象的 原因是層級(jí)組織的高級(jí)主管真誠追求效率(雖然徒勞無功)。正如彼得原理顯示的,許多或大多數(shù)主管必已到達(dá)他們的不勝任階層。這些人無法改進(jìn)現(xiàn)有的狀況,因 為所有的員工已經(jīng)竭盡全力了,于是為了再增進(jìn)效率,他們只好雇用更多的員工。員工的增加或許可以使效率暫時(shí)提升,但是這些新進(jìn)的人員最后將因晉升過程而到 達(dá)不勝任階層,于是唯一改善的方法就是再次增雇員工,再次獲得暫時(shí)的高效率,然后是另一。次逐漸歸于無效率。這樣就使組織中的人數(shù)超過了工作的實(shí)際需要。

     彼得原理首次公開發(fā)表于1960年9月美國聯(lián)邦出資的一次研習(xí)會(huì)上,聽眾是一群負(fù)責(zé)教育研究計(jì)劃、并剛獲晉升的項(xiàng)目主管,彼得認(rèn)為他們多數(shù)人“只是拼命地 想復(fù)制一些老掉牙了的統(tǒng)計(jì)習(xí)題”,于是引介彼得原理說明他們的困境。演說召來了敵意與嘲笑,但是彼得仍然決定以獨(dú)特的諷刺手法呈現(xiàn)彼得原理,盡管所有案例 研究都經(jīng)過精確編纂,且引用的資料也都符合事實(shí),最后定稿于1965年春完成,然后總計(jì)有16家之多的出版社無情地拒絕了該書的手稿。1966年,作者零 星地在報(bào)紙上發(fā)表了幾篇述論同一主題的文章,讀者的反應(yīng)異常熱烈,引得各個(gè)出版社趨之若婺鴛。正如彼得在自傳中提到的,人偶爾會(huì)在鏡中瞥見自己的身影而不 能立即自我辯認(rèn),于是在不自知前就加以嘲笑一番,這樣的片刻里正好可以使人進(jìn)一步認(rèn)識(shí)自己,“彼得原理”扮演的正是那樣一面鏡子。

    七、零和游戲

一個(gè)游戲無論幾個(gè)人來玩,總有輸家和贏家,贏家所贏的都是輸家所翰的,所以無論輸贏多少,正負(fù)相抵,最后游戲的總和都為零,這就是零和游戲。
    零和游戲之所以受人關(guān)注,是因?yàn)槿藗冊(cè)谏鐣?huì)生活中處處都能找到與零和游戲雷同或類似的現(xiàn)象。我們大肆開發(fā)利用煤炭石油資源,留給后人的便越來越少;我們研 究生產(chǎn)了大量的轉(zhuǎn)基因產(chǎn)品,一些新的病毒也跟著冒了出來;我們修筑了葛洲壩水利工程,白鰭豚就再也不能洄游到金沙江產(chǎn)卵了……
    發(fā)展是硬道理。人類在經(jīng)歷了經(jīng)濟(jì)高速增長、科技迅猛發(fā)展、全球經(jīng)濟(jì)一體化及曰益嚴(yán)重的生態(tài)破壞、環(huán)境污染之后,可持續(xù)發(fā)展理論才逐漸浮出水面。零和游戲原 理正在逐漸為“雙贏”觀念所取代,人們逐漸認(rèn)識(shí)到“利己”而不“損人”才是最美好的結(jié)局。實(shí)踐證明,通過有效合作,實(shí)現(xiàn)皆大歡喜的結(jié)局是可能的。
    領(lǐng)導(dǎo)者要善于跳出“零和”的圈子,尋找能夠?qū)崿F(xiàn)“雙贏”的機(jī)遇和突破口,防止負(fù)面影響抵消正面成績。批評(píng)下屬如何才能做到使其接受而不抵觸,發(fā)展經(jīng)濟(jì)如何 才能做到不損害環(huán)境,開展競(jìng)爭如何使自己勝出而不讓對(duì)方受到傷害,這些都是每一個(gè)為官者應(yīng)該仔細(xì)思考的問題。
    還是那句話,世上沒有現(xiàn)成的標(biāo)準(zhǔn)答案。這些企業(yè)經(jīng)營管理定律只能供我們參考和借鑒,至于什么條件下適合借鑒哪一種,回到手表定理上去,你需要自己選擇一塊戴著舒適而又走時(shí)準(zhǔn)確的手表。

    八、華盛頓合作規(guī)律

    華盛頓合作規(guī)律說的是:一個(gè)人敷衍了事,兩個(gè)人互相推諉,三個(gè)人則永無成事之日。多少有點(diǎn)類似于“三個(gè)和尚”的故事。

  人與人的合作不是人力的簡單相加,而是復(fù)雜和微妙得多。在人與人的合作中,假定每一個(gè)人的能力都為1,那么10個(gè)人的合作結(jié)果有時(shí)比10大得多,有時(shí)甚至比1還要小。因?yàn)槿瞬皇庆o止的物,而更像方向不同的能量,相互推動(dòng)時(shí)自然事半功倍,相互抵觸時(shí)則一事無成。

    九、酒與污水定律

    酒與污水定律是指,如果把一匙酒倒進(jìn)一桶污水中,你得到的是一桶污水;如果把一匙污水倒進(jìn)一桶酒中,你得到的還是一桶污水。幾乎在任何組織里,都存在幾個(gè) 難弄的人物,他們存在的目的似乎就是為了把事情搞糟。他們到處搬弄是非,傳播流言、破壞組織內(nèi)部的和諧。最糟糕的是,他們像果箱里的爛蘋果,如果你不及時(shí) 處理,它會(huì)迅速傳染,把果箱里其它蘋果也弄爛,“爛蘋果”的可怕之處在于它那驚人的破壞力。一個(gè)正直能干的人進(jìn)入一個(gè)混亂的部門可能會(huì)被吞沒,而一個(gè)人無 德無才者能很快將一個(gè)高效的部門變成一盤散沙。組織系統(tǒng)往往是脆弱的,是建立在相互理解、妥協(xié)和容忍的基礎(chǔ)上的,它很容易被侵害、被毒化。破壞者能力非凡 的另一個(gè)重要原因在于,破壞總比建設(shè)容易。一個(gè)能工巧匠花費(fèi)時(shí)日精心制作的陶瓷器,一頭驢子一秒鐘就能毀壞掉。如果擁有再多的能工巧匠,也不會(huì)有多少像樣 的工作成果。如果你的組織里有這樣的一頭驢子,你應(yīng)該馬上把它清除掉;如果你無力這樣做,你就應(yīng)該把它拴起來。

     十、水桶定律

    一只水桶能裝多少水取決于水桶中最短的一塊木板而不是最長的那塊木板。
    任何組織幾乎都有一個(gè)共同的特點(diǎn),即構(gòu)成組織的各個(gè)部分往往是優(yōu)劣不齊的,但劣勢(shì)部分卻往往決定著整個(gè)組織的水平。問題是劣勢(shì)部分是組織中一個(gè)有用的部分,你不能把它當(dāng)成爛蘋果扔掉,否則,你會(huì)一點(diǎn)水也裝不了,可它卻讓你那些長的東西白長了!
    劣勢(shì)決定優(yōu)勢(shì),劣勢(shì)決定生死,這是市場(chǎng)競(jìng)爭的殘酷法則。水桶定律告訴我們,領(lǐng)導(dǎo)者要有憂患意識(shí),如果你個(gè)人身上某個(gè)方面是“最短的一塊”,你應(yīng)該考慮盡快 把它補(bǔ)起來;如果你所領(lǐng)導(dǎo)的集體中存在著“一塊最短的木板”,你一定要迅速將它做長補(bǔ)齊,否則,它帶給你的損失可能是毀滅性的—叫艮多時(shí)候,往往就是因?yàn)?一件事沒做好而毀了所有的努力。有些人也許不知道水桶定律,但都知道“一票否決”,這是中國的“水桶”,有了它你便矢口道水桶定律是多么重要。
    決策和執(zhí)行發(fā)生的機(jī)率。讓謀劃的人盡心謀劃,讓執(zhí)行的人全力執(zhí)行,讓他們都從中獲得間接而不是直接的功利,這樣我們才能把“粥”分得更好。當(dāng)然,還應(yīng)有必不可少的獨(dú)立的監(jiān)督。

    十一、蘑菇管理原理

    蘑菇長在陰暗的角落,得不到陽光,也沒有肥料,自生自滅,只有長到足夠高的時(shí)候才開始被人關(guān)注,可此時(shí)它自己已經(jīng)能夠接受陽光了。
    蘑菇管理是大多數(shù)組織對(duì)待初入門者、初學(xué)者的一種管理方法。從傳統(tǒng)的觀念上講,“蘑菇經(jīng)歷”是一件好事,它是人才蛻殼羽化前的一種磨煉,對(duì)人的意志和耐力 的培養(yǎng)有促進(jìn)作用。但用發(fā)展的眼光來看,蘑菇管理有著先天的不足:一是太慢,還沒等它長高長大恐怕瘋長的野草就已經(jīng)把它蓋住了,使它沒有成長的機(jī)會(huì);二是 缺乏主動(dòng),有些本來基因較好的蘑菇,一鉆出土就碰上了石頭,因?yàn)榈貌坏綆椭Y(jié)果胎死腹中。
    讓初入門者當(dāng)上一段時(shí)間的“蘑菇”,可以消除他們不切實(shí)際的幻想,從而使他們更加接近現(xiàn)實(shí),更實(shí)際、更理性地思考問題和處理問題。領(lǐng)導(dǎo)者應(yīng)當(dāng)注意的是,這 一過程不可過長,時(shí)間太長便會(huì)使其消極退化乃至枯萎,須知不給陽光不給關(guān)愛不僅是任其自生自滅,而且更是對(duì)其成長的抑制。如何讓他們成功地走過生命中的這 一段,盡快吸取經(jīng)驗(yàn)、成熟起來,這才是領(lǐng)導(dǎo)者所應(yīng)當(dāng)考慮的。

    十二、錢的問題

    當(dāng)某人告訴你:“不是錢,而是原則問題”時(shí),十有八九就是錢的問題。
照一般的說法,金錢是價(jià)值的尺度,交換的媒介,財(cái)富的貯藏。但是這種說法忽略了它的另一面,它令人陶醉、令人瘋狂、令人激動(dòng)的一面,也撇開了愛錢的心理不談。馬克思說,金錢是“人情的離心力”,就是指這一方面而言。
關(guān)于金錢的本質(zhì)、作用和功過,從古到今,人們已經(jīng)留下了無數(shù)精辟深刻的格言和妙語。我們常會(huì)看到,人們?yōu)殄X而興奮,努力賺錢,用財(cái)富的畫面挑逗自己。 金錢對(duì)世界的秩序以及我們的生活產(chǎn)生的影響是巨大的、廣泛的,這種影響有時(shí)是潛在的,我們往往意識(shí)不到它的作用如此巨大,然而奇妙的是:它完全是人類自己 創(chuàng)造的。致富的驅(qū)動(dòng)力并不是起源于生物學(xué)上的需要,動(dòng)物生活中也找不到任何相同的現(xiàn)象。它不能順應(yīng)基本的目標(biāo),不能滿足根本的需求-的確,“致富”的定義 就是獲得超過自己需要的東西。然而這個(gè)看起來漫無目標(biāo)的驅(qū)動(dòng)力卻是人類最強(qiáng)大的力量,人類為金錢而互相傷害,遠(yuǎn)超過其他原因。

    附:一街東頭那個(gè)乞丐去摸彩票。中了五等獎(jiǎng),得款50元。甚喜!這個(gè)冬天好過了,他擁有棉襖、棉褲、和棉鞋了。街西頭那個(gè)乞丐也去摸彩票。中了一等獎(jiǎng),得款50萬元。狂喜! 

 首先大宴賓客,熱鬧三天,煞是風(fēng)光,耗款3千元,小意思。然后買西服、配手機(jī)、穿金戴銀,容光煥發(fā),一掃窮氣。再次,買房子,滿街轉(zhuǎn)悠,要帶車庫 的。第四,就是買車了。“夏利”太便宜,“奔馳”太貴,還是“桑塔納”吧!第五……第六……第七……過年的時(shí)候,街東頭那個(gè)乞丐還在到處晃悠,穿著那50 元買的“家當(dāng)”;而街西頭那個(gè)乞丐卻在勞教所里,據(jù)說是因?yàn)橘€博、嫖娼、吸毒、鬧事……擁有50元,街東頭的乞丐不再受凍,自得其樂;擁有50萬元,街西 頭乞丐成了個(gè)大富翁,卻也把自己送上了死路。不懂得善用錢財(cái)?shù)娜耍€是沒錢點(diǎn)才安全。

    十三、奧卡姆剃刀定律

    12世紀(jì),英國奧卡姆的威廉主張唯名論,只承認(rèn)確實(shí)存在的東西,認(rèn)為那些空洞無物的普遍性概念都是無用的累贅,應(yīng)當(dāng)被無情地“剃除”。他主張“如無必要, 勿增實(shí)體”。這就是常說的“奧卡姆剃刀”。這把剃刀曾使很多人感到威脅,被認(rèn)為是異端邪說,威廉本人也因此受到迫害。然而,并未損害這把刀的鋒利,相反, 經(jīng)過數(shù)百年的歲月,奧卡姆剃刀已被歷史磨得越來越快,并早已超載原來狹窄的領(lǐng)域,而具有廣泛、豐富、深刻的意義。

  奧卡姆剃刀定律在企業(yè)管理中可進(jìn)一步演化為簡單與復(fù)雜定律:把事情變復(fù)雜很簡單,把事情變簡單很復(fù)雜。這個(gè)定律要求,我們?cè)谔幚硎虑闀r(shí),要把握事情的主要實(shí)質(zhì),把握主流,解決最根本的問題,尤其要順應(yīng)自然,不要把事情人為地復(fù)雜化,這樣才能把事情處理好。

    美國政治學(xué)家威爾遜和犯罪學(xué)家凱林經(jīng)過觀察提出了“破窗理論”。

  如果有人打壞了一棟建筑上的一塊玻璃,又沒有及時(shí)修復(fù),別人就可能受到某些暗示性的縱容,去打碎更多的玻璃。久而久之,這些窗戶就給人造成一種無序的感覺,在這種麻木不仁的氛圍中,犯罪就會(huì)滋生、蔓延。

  “破窗理論”更多的是從犯罪的心理去思考問題,但不管把“破窗理論”用在什么領(lǐng)域,角度不同,道理卻相似:環(huán)境具有強(qiáng)烈的暗示性和誘導(dǎo)性,必須及時(shí)修好“第一扇被打碎玻璃的窗戶”。

  推而廣之,從人與環(huán)境的關(guān)系這個(gè)角度去看,我們周圍生活中所發(fā)生的許多事情,不正是環(huán)境暗示和誘導(dǎo)作用的結(jié)果嗎?

  比如,在窗明幾凈、環(huán)境優(yōu)雅的場(chǎng)所,沒有人會(huì)大聲喧嘩,或“噗”地吐出一口痰來;相反,如果環(huán)境臟亂不堪,倒是時(shí)常可以看見吐痰、便溺、打鬧、互罵等不文明的舉止。

  又比如,在公交車站,如果大家都井然有序地排隊(duì)上車,又有多少人會(huì)不顧眾人的文明舉動(dòng)和鄙夷眼光而貿(mào)然插隊(duì)?與這相反,車輛尚未停穩(wěn),猴急的人 們你推我擁,爭先恐后,后來的人如果想排隊(duì)上車,恐怕也沒有耐心了。因此,環(huán)境好,不文明之舉也會(huì)有所收斂;環(huán)境不好,文明的舉動(dòng)也會(huì)受到影響。人是環(huán)境 的產(chǎn)物,同樣,人的行為也是環(huán)境的一部分,兩者之間是一種互動(dòng)的關(guān)系。

  在公共場(chǎng)合,如果每個(gè)人都舉止優(yōu)雅、談吐文明、遵守公德,往往能夠營造出文明而富有教養(yǎng)的氛圍。千萬不要因?yàn)槲覀儌€(gè)人的粗魯、野蠻和低俗行為而形成“破窗效應(yīng)”,進(jìn)而給公共場(chǎng)所帶來無序和失去規(guī)范的感覺。

  從這個(gè)意義上說,我們平時(shí)一直強(qiáng)調(diào)的“從我做起,從身邊做起”,就不僅僅是一個(gè)空洞的口號(hào),它決定了我們自身的一言一行對(duì)環(huán)境造成什么樣的影響。

帕金森定律

  英國著名歷史學(xué)家諾斯古德·帕金森通過長期調(diào)查研究,寫出一本名叫《帕金森定律》的書。他在書中闡述了機(jī)構(gòu)人員膨脹的原因及后果:一個(gè)不稱職的 官員,可能有三條出路,第一是申請(qǐng)退職,把位子讓給能干的人;第二是讓一位能干的人來協(xié)助自己工作;第三是任用兩個(gè)水平比自己更低的人當(dāng)助手。這第一條路 是萬萬走不得的,因?yàn)槟菢訒?huì)喪失許多權(quán)利;第二條路也不能走,因?yàn)槟莻€(gè)能干的人會(huì)成為自己的對(duì)手;看來只有第三條路最適宜。于是,兩個(gè)平庸的助手分擔(dān)了他 的工作,他自己則高高在上發(fā)號(hào)施令,他們不會(huì)對(duì)自己的權(quán)利構(gòu)成威脅。兩個(gè)助手既然無能,他們就上行下效,再為自己找兩個(gè)更加無能的助手。如此類推,就形成 了一個(gè)機(jī)構(gòu)臃腫,人浮于事,相互扯皮,效率低下的領(lǐng)導(dǎo)體系。

  苛希納定律

  西方管理學(xué)中有一條著名的苛希納定律:如果實(shí)際管理人員比最佳人數(shù)多兩倍,工作時(shí)間就要多兩倍,工作成本就要多4倍;如果實(shí)際管理人員比最佳人員多3倍,工作時(shí)間就要多3倍,工作成本就要多6倍。

  250定律

  美國著名推銷員拉德在商戰(zhàn)中總結(jié)出了“250定律”。他認(rèn)為每一位顧客身后,大體有250名親朋好友。如果您贏得了一位顧客的好感,就意味著贏 得了250個(gè)人的好感;反之,如果你得罪了一名顧客,也就意味著得罪了250名顧客。這一定律有力地論證了“顧客就是上帝”的真諦。由此,我們可以得到如 下啟示:必須認(rèn)真對(duì)待身邊的每一個(gè)人,因?yàn)槊恳粋€(gè)人的身后,都有一個(gè)相對(duì)穩(wěn)定的、數(shù)量不小的群體。善待一個(gè)人,就像撥亮一盞燈,照亮一大片。

  達(dá)維多定律

  達(dá)維多定律是以英特爾公司副總裁達(dá)維多的名字命名的。他認(rèn)為,一個(gè)企業(yè)要想在市場(chǎng)上總是占據(jù)主導(dǎo)地位,那么就要做到第一個(gè)開發(fā)出新產(chǎn)品,又第一 個(gè)淘汰自己的老產(chǎn)品。這一定律的基點(diǎn)是著眼于市場(chǎng)開發(fā)和利益分割的成效。因?yàn)槿藗冊(cè)谑袌?chǎng)競(jìng)爭中無時(shí)無刻不在搶占先機(jī),只有先入市場(chǎng)才能更容易獲取較大的份 額和較高的利潤。

  木桶定律

一個(gè)有許多塊長短不同的木板箍成的木桶,決定其容量大小的并非其中最長的那塊木板,而是其中最短的那塊木板。同樣,在一個(gè)企業(yè)的營銷過程中,必然存在著許多相關(guān)的環(huán)節(jié),只有找出制約企業(yè)經(jīng)濟(jì)效益提高的某一關(guān)鍵環(huán)節(jié),把這一個(gè)矛盾解決了,其它矛盾就可以迎刃而解了。

a、領(lǐng)導(dǎo)

太長了!先看到這里去看看是誰發(fā)的這么火的帖子~~~

一、 素養(yǎng)

藍(lán)斯登原則

在你往上爬的時(shí)候,一定要保持梯子的整潔,否則你下來時(shí)可能會(huì)滑倒。
提出者:美國管理學(xué)家藍(lán)斯登
點(diǎn)評(píng):進(jìn)退有度,才不至進(jìn)退維谷;寵辱皆忘,方可以寵辱不驚。

盧維斯定理

謙虛不是把自己想得很糟,而是完全不想自己。
提出者:美國心理學(xué)家h·盧維斯
點(diǎn)評(píng):如果把自己想得太好,就很容易將別人想得很糟。

托利得定理

測(cè)驗(yàn)一個(gè)人的智力是否屬于上乘,只看腦子里能否同時(shí)容納兩種相反的思想,而無礙于其處世行事。
提出者:法國社會(huì)心理學(xué)家h·m·托利得
點(diǎn)評(píng):思可相反,得須相成。

二、統(tǒng)御

刺猬理論

刺猬在天冷時(shí)彼此靠攏取暖,但保持一定距離,以免互相刺傷。
點(diǎn)評(píng):保持親密的重要方法,乃是保持適當(dāng)?shù)木嚯x。

鰷魚效應(yīng)

鰷魚因個(gè)體弱小而常常群居,并以強(qiáng)健者為自然首領(lǐng)。將一只稍強(qiáng)的鰷魚腦后控制行為的部分割除后,此魚便失去自制力,行動(dòng)也發(fā)生紊亂,但其他鰷魚卻仍像從前一樣盲目追隨。
提出者:德國動(dòng)物學(xué)家霍斯特
點(diǎn)評(píng):1、下屬的悲劇總是領(lǐng)導(dǎo)一手造成的。2、下屬覺得最沒勁的事,是他們跟著一位最差勁的領(lǐng)導(dǎo)。

雷鮑夫法則

在你著手建立合作和信任時(shí)要牢記我們語言中:
1、最重要的八個(gè)字是:我承認(rèn)我犯過錯(cuò)誤
2、最重要的七個(gè)字是:你干了一件好事
3、最重要的六個(gè)字是:你的看法如何
4、最重要的五個(gè)字是:咱們一起干
5、最重要的三個(gè)字是:謝謝您
6、最重要的兩個(gè)字是:咱們
提出者:美國管理學(xué)家雷鮑夫
點(diǎn)評(píng):1、最重要的四個(gè)字是:不妨試試;2、最重要的一個(gè)字是:您

洛伯定理

對(duì)于一個(gè)經(jīng)理人來說,最要緊的不是你在場(chǎng)時(shí)的情況,而是你不在場(chǎng)時(shí)發(fā)生了什么。
提出者:美國管理學(xué)家r·洛伯
點(diǎn)評(píng):如果只想讓下屬聽你的,那么當(dāng)你不在身邊時(shí)他們就不知道應(yīng)該聽誰的了。

三、溝通

斯坦納定理

在哪里說得愈少,在哪里聽到的就愈多。
提出者:美國心理學(xué)家s·t·斯坦納
點(diǎn)評(píng):只有很好聽取別人的,才能更好說出自己的。

費(fèi)斯諾定理

人有兩只耳朵卻只有一張嘴巴,這意味著人應(yīng)該多聽少講。
提出者:英國聯(lián)合航空公司總裁兼總經(jīng)理l·費(fèi)斯諾
點(diǎn)評(píng):說得過多了,說的就會(huì)成為做的障礙。

牢騷效應(yīng)

凡是公司中有對(duì)工作發(fā)牢騷的人,那家公司或老板一定比沒有這種人或有這種人而把牢騷埋在肚子里的公司要成功得多。
提出者:美國密歇根大學(xué)社會(huì)研究院
點(diǎn)評(píng):1、牢騷是改變不合理現(xiàn)狀的催化劑。2、牢騷雖不總是正確的,但認(rèn)真對(duì)待牢騷卻總是正確的。

避雷針效應(yīng)

在高大建筑物頂端安裝一個(gè)金屬棒,用金屬線與埋在地下的一塊金屬板連接起來,利用金屬棒的尖端放電,使云層所帶的電和地上的電逐漸中和,從而保護(hù)建筑物等避免雷擊。
點(diǎn)評(píng):善疏則通,能導(dǎo)必安

四、協(xié)調(diào)

氨基酸組合效應(yīng)

組成人體蛋白的八種氨基酸,只要有一種含量不足,其他七種就無法合成蛋白質(zhì)。
點(diǎn)評(píng):當(dāng)缺一不可時(shí),"一"就是一切。

米格-25效應(yīng)

前蘇聯(lián)研制的米格-25噴氣式戰(zhàn)斗機(jī)的許多零部件與美國的相比都落后,但因設(shè)計(jì)者考慮了整體性能,故能在升降、速度、應(yīng)急反應(yīng)等方面成為當(dāng)時(shí)世界一流。
點(diǎn)評(píng):所謂最佳整體,乃是個(gè)體的最佳組合。

磨合效應(yīng)

新組裝的機(jī)器,通過一定時(shí)期的使用,把磨擦面上的加工痕跡磨光而變得更加密合。
點(diǎn)評(píng):要想達(dá)到完整的契合,須雙方都作出必要的割舍。

五、指導(dǎo)

波特定理

當(dāng)遭受許多批評(píng)時(shí),下級(jí)往往只記住開頭的一些,其余就不聽了,因?yàn)樗麄兠τ谒妓髡摀?jù)來反駁開頭的批評(píng)。
提出者:英國行為科學(xué)家l·w·波特
點(diǎn)評(píng):總盯著下屬的失誤,是一個(gè)領(lǐng)導(dǎo)者的最大失誤。

藍(lán)斯登定律

跟一位朋友一起工作,遠(yuǎn)較在"父親"之下工作有趣得多。
提出者:美國管理學(xué)家藍(lán)斯登
點(diǎn)評(píng):可敬不可親,終難敬;有權(quán)沒有威,常失權(quán)。

吉爾伯特法則

工作危機(jī)最確鑿的信號(hào),是沒有人跟你說該怎樣作。
提出者:英國人力培訓(xùn)專家b·吉爾伯特
點(diǎn)評(píng):真正危險(xiǎn)的事,是沒人跟你談危險(xiǎn)。

權(quán)威暗示效應(yīng)

一化學(xué)家稱,他將測(cè)驗(yàn)一瓶臭氣的傳播速度,他打開瓶蓋15秒后,前排學(xué)生即舉手,稱自己聞到臭氣,而后排的人則陸續(xù)舉手,紛紛稱自己也已聞到,其實(shí)瓶中什么也沒有。
點(diǎn)評(píng):迷信則輕信,盲目必盲從。

沒走過的路。2、特色不特,優(yōu)勢(shì)無優(yōu)。

古特雷定理

每一處出口都是另一處的入口。
提出者:美國管理學(xué)家W·古特雷
點(diǎn)評(píng):上一個(gè)目標(biāo)是下一個(gè)目標(biāo)的基礎(chǔ),下一個(gè)目標(biāo)是上一個(gè)目標(biāo)的延續(xù)。

十四、計(jì)劃

列文定理

那些猶豫著遲遲不能作出計(jì)劃的人,通常是因?yàn)閷?duì)自己的能力沒有把握。
提出者:法國管理學(xué)家P·列文
點(diǎn)評(píng):如果沒有能力去籌劃,就只有時(shí)間去后悔了。

弗洛斯特法則

在筑墻之前應(yīng)該知道把什么圈出去,把什么圈進(jìn)來。
提出者:美國思想家W·P·弗洛斯特
點(diǎn)評(píng):開始就明確了界限,最終就不會(huì)作出超越界限的事來。

十五、參謀

波克定理

只有在爭辯中,才可能誕生最好的主意和最好的決定。
提出者:美國莊臣公司總經(jīng)理詹姆士·波克
點(diǎn)評(píng):無磨擦便無磨合,有爭論才有高論。

韋奇定理

即使你已有了主見,但如果有十個(gè)朋友看法和你相反,你就很難不動(dòng)搖。
提出者:美國洛杉磯加州大學(xué)經(jīng)濟(jì)學(xué)家伊渥·韋奇
點(diǎn)評(píng):1、未聽之時(shí)不應(yīng)有成見,既聽之后不可無主見。2、不怕開始眾說紛紜,只怕最后莫衷一是。

十六、決策

福克蘭定律

沒有必要作出決定時(shí),就有必要不作決定。
提出者:法國管理學(xué)家D·L·福克蘭
點(diǎn)評(píng):當(dāng)不知如何行動(dòng)時(shí),最好的行動(dòng)就是不采取任何行動(dòng)。

王安論斷

猶豫不決固然可以免去一些作錯(cuò)事的機(jī)會(huì),但也失去了成功的機(jī)遇。
提出者:美籍華裔企業(yè)家王安博士
點(diǎn)評(píng):寡斷能使好事由好變壞,果斷可將危機(jī)轉(zhuǎn)危為安。

十七、執(zhí)行

格瑞斯特定理

杰出的策略必須加上杰出的執(zhí)行才能奏效。
提出者:美國企業(yè)家H·格瑞斯特
點(diǎn)評(píng):好事干實(shí)更好,實(shí)事辦好愈實(shí)。

吉德林法則

把難題清清楚楚地寫出來,便已經(jīng)解決了一半。
提出者:美國通用汽車公司管理顧問查爾斯·吉德林
點(diǎn)評(píng):雜亂無章的思維,不可能產(chǎn)生有條有理的行動(dòng)

d、調(diào)控

十八、信息

沃爾森法則

把信息和情報(bào)放在第一位,金錢就會(huì)滾滾而來。
提出者:美國企業(yè)家s·m·沃爾森
點(diǎn)評(píng):你能得到多少,往往取決于你能知道多少。

塔馬拉效應(yīng)

塔馬拉是捷克雷達(dá)專家弗·佩赫發(fā)明的一種雷達(dá),它與其他雷達(dá)的最大不同是不發(fā)射信號(hào)而只接收信號(hào),故不會(huì)被敵方反雷達(dá)裝置發(fā)現(xiàn)。
點(diǎn)評(píng):善藏者人不可知,能知者人無以藏。

十九、監(jiān)督

小池定理

越是沉醉,就越是抓住眼前的東西不放。
提出者:日本管理學(xué)家小池敬
點(diǎn)評(píng):自我陶醉不易清醒,自以為是不喜批評(píng)。

赫勒法則

當(dāng)人們知道自己的工作成績有人檢查的時(shí)候會(huì)加倍努力。
提出者:英國管理學(xué)家h·赫勒
點(diǎn)評(píng):只有在相互信任的情況下,監(jiān)督才會(huì)成為動(dòng)力。

二十、控制

橫山法則

最有效并持續(xù)不斷的控制不是強(qiáng)制,而是觸發(fā)個(gè)人內(nèi)在的自發(fā)控制。
提出者:日本社會(huì)學(xué)家橫山寧夫
點(diǎn)評(píng):有自覺性才有積極性,無自決權(quán)便無主動(dòng)權(quán)。

蝴蝶效應(yīng)

"紊亂學(xué)"研究者稱,南半球某地的一只蝴蝶偶爾扇動(dòng)一下翅膀所引起的微弱氣流,幾星期后可變成席卷北半球某地的一場(chǎng)龍卷風(fēng)。他們將這種由一個(gè)極小起因,經(jīng)過一定的時(shí)間,在其他因素的參與作用下,發(fā)展成極為巨大和復(fù)雜后果的現(xiàn)象稱為"蝴蝶效應(yīng)"。
點(diǎn)評(píng):善終者慎始,謹(jǐn)小者慎微。

阿什法則

承認(rèn)問題是解決問題的第一步。
提出者:美國企業(yè)家m·k·阿什
點(diǎn)評(píng):你愈是躲著問題,問題愈會(huì)揪住你不放。

二十一、法紀(jì)

洛克忠告

規(guī)定應(yīng)該少定,一旦定下之后,便得嚴(yán)格遵守。
提出者:英國教育家洛克
點(diǎn)評(píng):簡則易循,嚴(yán)則必行。

熱爐法則

當(dāng)人用手去碰燒熱的火爐時(shí),就會(huì)受到"燙"的懲罰,其有以下三個(gè)特點(diǎn):即時(shí)性、預(yù)警性、平等性。
點(diǎn)評(píng):罪與罰能相符,法與治可相期。

二十二、改革

柯美雅定律

世上沒有十全十美的東西,所以任何東西都有改革的余地。
提出者:美國社會(huì)心理學(xué)家m·r·柯美雅
點(diǎn)評(píng):不拘于常規(guī),才能激發(fā)出創(chuàng)造力。

達(dá)維多夫定律

沒有創(chuàng)新精神的人永遠(yuǎn)也只能是一個(gè)執(zhí)行者。
提出者:前蘇聯(lián)心理學(xué)家達(dá)維多夫
點(diǎn)評(píng):只有敢為人先的人,才最有資格成為真正的先驅(qū)者。

自吃幼崽效應(yīng)

美國硅谷企業(yè)競(jìng)爭十分激烈,以至于各公司都積極尋找自己的致命弱點(diǎn),所有公司共同的生存之道是:拿出更好看產(chǎn)品來擊敗自己的原有產(chǎn)品。有人將這種行為戲稱為"自吃幼崽"。
點(diǎn)評(píng):1、自己不逼自己,別人遲早會(huì)逼你。2、敢于對(duì)過去告一個(gè)段落,才有信心掀開新的一章。

二十三、創(chuàng)新

舍恩定理

新思想只有落到真正相信它,對(duì)它著迷的人手里才能開花結(jié)果。
提出者:美國麻省理工學(xué)院教授舍恩
點(diǎn)評(píng):只有信之不疑,才能持之以恒。

吉寧定理

真正的錯(cuò)誤是害怕犯錯(cuò)誤。
提出者:美國管理學(xué)家h·吉寧
點(diǎn)評(píng):不怕錯(cuò)誤的人,錯(cuò)誤往往也離他最遠(yuǎn)。

卡貝定理

放棄是創(chuàng)新的鑰匙。
提出者:美國電話電報(bào)公司前總經(jīng)理卡貝
點(diǎn)評(píng):在未學(xué)會(huì)放棄之前,你將很難懂得什么是爭取。


史密斯原則

如果你不能戰(zhàn)勝他們,你就加入到他們之中去。
提出者:美國通用汽車公司前董事長r·史密斯
點(diǎn)評(píng):競(jìng)爭使人進(jìn)步最快,合作讓人得到最多。

二十六、營銷

阿爾巴德定理一個(gè)企業(yè)經(jīng)營成功與否,全靠對(duì)顧客的要求了解到什么程度。
提出者:匈牙利全面質(zhì)量管理國際有限公司顧問波爾加·韋雷什·阿爾巴德
點(diǎn)評(píng):看到了別人的需要,你就成功了一半;滿足了別人的需求,你就成功了全部。

冰淇淋哲學(xué)

賣冰淇淋必須從冬天開始,因?yàn)槎祛櫩蜕伲瑫?huì)逼迫你降低成本,改善服務(wù)。如果能在冬天的逆境中生存,就再也不會(huì)害怕夏天的競(jìng)爭。
提出者:臺(tái)灣著名企業(yè)家王永慶
點(diǎn)評(píng):逆境不錯(cuò),順境更好。

二十七、廣告

布里特定理

商品不作廣告,就像姑娘在暗處向小伙子遞送秋波,脈脈此情只有她自己知道。
提出者:英國廣告學(xué)專家s·布里特
點(diǎn)評(píng):要推而廣之,先廣而告之。

伯內(nèi)特定理

只有占領(lǐng)頭腦,才會(huì)占有市場(chǎng)。
提出者:美國廣告專家利奧·伯內(nèi)特
點(diǎn)評(píng):膾炙人口才會(huì)耐人尋味,深得人心方可引人入勝。

拉圖爾定律

一個(gè)好品名可能無助于劣質(zhì)產(chǎn)品的銷售,但是一個(gè)壞品名則會(huì)使好產(chǎn)品滯銷。
提出者:法國諾門公司德國分公司負(fù)責(zé)人蘇珊·拉圖爾
點(diǎn)評(píng):取名的藝術(shù),亦是取得成功的藝術(shù)。

赫斯定律

廣告超過12個(gè)字,讀者的記憶力要降低50%。
提出者:澳大利亞廣告家h·赫斯
點(diǎn)評(píng):忘卻即等于拋棄。

二十八、公關(guān)

瑪麗法則

假如還沒有破,就不要去修它,免得弄巧成拙。
提出者:美國著名企業(yè)家瑪麗·凱·阿什
點(diǎn)評(píng):弄巧之所以成拙,往往是因?yàn)楸緛砭蜔o巧可弄。

弗里施定理

沒有滿意的工作人員,就沒有滿意的顧客。
提出者:德國慕尼黑企業(yè)咨詢顧問弗里施
點(diǎn)評(píng):協(xié)調(diào)內(nèi)外關(guān)系,從協(xié)調(diào)內(nèi)部關(guān)系開始。

反哺效應(yīng)

動(dòng)物學(xué)家將某些動(dòng)物長大后把覓到的食物給予其父母的行為稱為反哺。
點(diǎn)評(píng):給別人好處的人,往往也是得到好處最多的人。

史崔維茲定理

如果你為獲得好處而幫助他人,就不算幫助他人。
提出者:美國社會(huì)心理學(xué)家g·史崔維茲
點(diǎn)評(píng):動(dòng)機(jī)不純,行為失真。

二十九、談判

奧狄思法則

在每一次談判中,你都應(yīng)準(zhǔn)備向?qū)Ψ阶鞒鲎尣健?br>提出者:美國談判專家j·s·奧狄思
點(diǎn)評(píng):爭,丈不足;讓,寸有余。

居家效應(yīng)

一個(gè)人在家里或自己最熟悉的環(huán)境中,言談舉止表現(xiàn)得最為自信和從容。
點(diǎn)評(píng):沒有實(shí)力墊底,自信永遠(yuǎn)是蒼白的。

尼倫伯格原則

一場(chǎng)圓滿的、成功的談判,每一方都應(yīng)是勝利者。
提出者:美國著名談判學(xué)家尼倫伯格
點(diǎn)評(píng):總想自己得勢(shì),必然勢(shì)不兩立。

比林定律

一生中的麻煩有一半是由于太快說"是",太慢說"不"造成的。
提出者:美國幽默作家比林
點(diǎn)評(píng):1、沒有否決權(quán),發(fā)言權(quán)也很容易被剝奪。2、對(duì)不該讓步的事不讓步,別人反而更容易給你讓步。

三十、交往

克林納德法則

與人相處得好壞,在很大程度上取決于我們用什么方式與人打交道。
提出者:美國人際關(guān)系學(xué)家h·h·克林納德
點(diǎn)評(píng):交之有道,能打好交道;來而無往,難有常來往。

忌諱效應(yīng)

因風(fēng)俗習(xí)慣或個(gè)人理由等,對(duì)某些言語或舉動(dòng)有所顧忌,積久成為禁忌。
點(diǎn)評(píng):知道別人不喜歡什么,比知道別人喜歡什么更重要。

弗里德曼定律

當(dāng)一個(gè)人的需要可以滿足另一個(gè)人的需要時(shí),兩人就趨于互相喜歡。
提出者:美國心理學(xué)家n·w·弗里德曼
點(diǎn)評(píng):有利益與利益的相互補(bǔ)充,才會(huì)有需要與需要的相互滿足。

三十一、成果

基利定理

容忍失敗,這是人們可以學(xué)習(xí)并加以運(yùn)用的極為積極的東西。
提出者:美國多布林咨詢公司集團(tuán)總經(jīng)理拉里·基利
點(diǎn)評(píng):1、成功者之所以成功,只不過是他不被失敗左右而已。2、不許失敗,無異于不許成功。

沸騰效應(yīng)

水溫升到99度,還不是開水,其價(jià)值有限;若再添一把火,在99度的基礎(chǔ)上再升高1度,就會(huì)使水沸騰,并產(chǎn)生大量水蒸氣來開動(dòng)機(jī)器,從而獲得巨大的經(jīng)濟(jì)效益。
點(diǎn)評(píng):只差一點(diǎn)點(diǎn),往往是導(dǎo)致最大差別的關(guān)鍵。

王永慶法則

節(jié)省一元錢等于凈賺一元錢。
提出者:臺(tái)灣企業(yè)界"精神領(lǐng)袖"臺(tái)塑總裁王永慶
點(diǎn)評(píng):賺錢要依賴別人,節(jié)省只取決自己。

posted @ 2009-03-17 19:48 Condor 閱讀(376) | 評(píng)論 (0)編輯 收藏

算法的力量
算法是計(jì)算機(jī)科學(xué)領(lǐng)域最重要的基石之一,但卻受到了國內(nèi)一些程序員的冷落。許多學(xué)生看到一些公司在招聘時(shí)要求的編程語言五花八門,就產(chǎn)生了一種誤解,認(rèn)為 學(xué)計(jì)算機(jī)就是學(xué)各種編程語言,或者認(rèn)為,學(xué)習(xí)最新的語言、技術(shù)、標(biāo)準(zhǔn)就是最好的鋪路方法。其實(shí),大家被這些公司誤導(dǎo)了。編程語言雖然該學(xué),但是學(xué)習(xí)計(jì)算機(jī) 算法和理論更重要,因?yàn)橛?jì)算機(jī)語言和開發(fā)平臺(tái)日新月異,但萬變不離其宗的是那些算法和理論,例如數(shù)據(jù)結(jié)構(gòu)、算法、編譯原理、計(jì)算機(jī)體系結(jié)構(gòu)、關(guān)系型數(shù)據(jù)庫 原理等等。在“開復(fù)學(xué)生網(wǎng)”上,有位同學(xué)生動(dòng)地把這些基礎(chǔ)課程比擬為“內(nèi)功”,把新的語言、技術(shù)、標(biāo)準(zhǔn)比擬為“外功”。整天趕時(shí)髦的人最后只懂得招式,沒 有功力,是不可能成為高手的。
算法與我
當(dāng)我在1980年轉(zhuǎn)入計(jì)算機(jī)科學(xué)系時(shí),還沒有多少人的專業(yè)方向是計(jì)算機(jī)科學(xué)。有許多其他系的人嘲笑我們說:“知道為什么只有你們系要加一個(gè)‘科學(xué)’,而沒 有‘物理科學(xué)系’或‘化學(xué)科學(xué)系’嗎?因?yàn)槿思沂钦娴目茖W(xué),不需要畫蛇添足,而你們自己心虛,生怕不‘科學(xué)’,才這樣欲蓋彌彰。” 其實(shí),這點(diǎn)他們徹底弄 錯(cuò)了。真正學(xué)懂計(jì)算機(jī)的人(不只是“編程匠”)都對(duì)數(shù)學(xué)有相當(dāng)?shù)脑煸劊饶苡每茖W(xué)家的嚴(yán)謹(jǐn)思維來求證,也能用工程師的務(wù)實(shí)手段來解決問題——而這種思維和 手段的最佳演繹就是“算法”。
記得我讀博時(shí)寫的Othello對(duì)弈軟件獲得了世界冠軍。當(dāng)時(shí),得第二名的人認(rèn)為我是靠僥幸才打贏他,不服氣地問我的程序平均每秒能搜索多少步棋,當(dāng)他發(fā) 現(xiàn)我的軟件在搜索效率上比他快60多倍時(shí),才徹底服輸。為什么在同樣的機(jī)器上,我可以多做60倍的工作呢?這是因?yàn)槲矣昧艘粋€(gè)最新的算法,能夠把一個(gè)指數(shù) 函數(shù)轉(zhuǎn)換成四個(gè)近似的表,只要用常數(shù)時(shí)間就可得到近似的答案。在這個(gè)例子中,是否用對(duì)算法才是能否贏得世界冠軍的關(guān)鍵。
還記得1988年貝爾實(shí)驗(yàn)室副總裁親自來訪問我的學(xué)校,目的就是為了想了解為什么他們的語音識(shí)別系統(tǒng)比我開發(fā)的慢幾十倍,而且,在擴(kuò)大至大詞匯系統(tǒng)后,速 度差異更有幾百倍之多。他們雖然買了幾臺(tái)超級(jí)計(jì)算機(jī),勉強(qiáng)讓系統(tǒng)跑了起來,但這么貴的計(jì)算資源讓他們的產(chǎn)品部門很反感,因?yàn)椤鞍嘿F”的技術(shù)是沒有應(yīng)用前景 的。在與他們探討的過程中,我驚訝地發(fā)現(xiàn)一個(gè)O(n*m)的動(dòng)態(tài)規(guī)劃(dynamic programming)居然被他們做成了O(n*n*m)。更驚 訝的是,他們還為此發(fā)表了不少文章,甚至為自己的算法起了一個(gè)很特別的名字,并將算法提名到一個(gè)科學(xué)會(huì)議里,希望能得到大獎(jiǎng)。當(dāng)時(shí),貝爾實(shí)驗(yàn)室的研究員當(dāng) 然絕頂聰明,但他們?nèi)际菍W(xué)數(shù)學(xué)、物理或電機(jī)出身,從未學(xué)過計(jì)算機(jī)科學(xué)或算法,才犯了這么基本的錯(cuò)誤。我想那些人以后再也不會(huì)嘲笑學(xué)計(jì)算機(jī)科學(xué)的人了吧!
網(wǎng)絡(luò)時(shí)代的算法
有人也許會(huì)說:“今天計(jì)算機(jī)這么快,算法還重要嗎?”其實(shí)永遠(yuǎn)不會(huì)有太快的計(jì)算機(jī),因?yàn)槲覀兛倳?huì)想出新的應(yīng)用。雖然在摩爾定律的作用下,計(jì)算機(jī)的計(jì)算能力 每年都在飛快增長,價(jià)格也在不斷下降。可我們不要忘記,需要處理的信息量更是呈指數(shù)級(jí)的增長。現(xiàn)在每人每天都會(huì)創(chuàng)造出大量數(shù)據(jù)(照片,視頻,語音,文本等 等)。日益先進(jìn)的記錄和存儲(chǔ)手段使我們每個(gè)人的信息量都在爆炸式的增長。互聯(lián)網(wǎng)的信息流量和日志容量也在飛快增長。在科學(xué)研究方面,隨著研究手段的進(jìn)步, 數(shù)據(jù)量更是達(dá)到了前所未有的程度。無論是三維圖形、海量數(shù)據(jù)處理、機(jī)器學(xué)習(xí)、語音識(shí)別,都需要極大的計(jì)算量。在網(wǎng)絡(luò)時(shí)代,越來越多的挑戰(zhàn)需要靠卓越的算法 來解決。
再舉另一個(gè)網(wǎng)絡(luò)時(shí)代的例子。在互聯(lián)網(wǎng)和手機(jī)搜索上,如果要找附近的咖啡店,那么搜索引擎該怎么處理這個(gè)請(qǐng)求呢?
最簡單的辦法就是把整個(gè)城市的咖啡館都找出來,然后計(jì)算出它們的所在位置與你之間的距離,再進(jìn)行排序,然后返回最近的結(jié)果。但該如何計(jì)算距離呢?圖論里有不少算法可以解決這個(gè)問題。
這么做也許是最直觀的,但絕對(duì)不是最迅速的。如果一個(gè)城市只有為數(shù)不多的咖啡館,那這么做應(yīng)該沒什么問題,反正計(jì)算量不大。但如果一個(gè)城市里有很多咖啡館,又有很多用戶都需要類似的搜索,那么服務(wù)器所承受的壓力就大多了。在這種情況下,我們?cè)撛鯓觾?yōu)化算法呢?
首先,我們可以把整個(gè)城市的咖啡館做一次“預(yù)處理”。比如,把一個(gè)城市分成若干個(gè)“格子(grid)”,然后根據(jù)用戶所在的位置把他放到某一個(gè)格子里,只對(duì)格子里的咖啡館進(jìn)行距離排序。
問題又來了,如果格子大小一樣,那么絕大多數(shù)結(jié)果都可能出現(xiàn)在市中心的一個(gè)格子里,而郊區(qū)的格子里只有極少的結(jié)果。在這種情況下,我們應(yīng)該把市中心多分出 幾個(gè)格子。更進(jìn)一步,格子應(yīng)該是一個(gè)“樹結(jié)構(gòu)”,最頂層是一個(gè)大格——整個(gè)城市,然后逐層下降,格子越來越小,這樣有利于用戶進(jìn)行精確搜索——如果在最底 層的格子里搜索結(jié)果不多,用戶可以逐級(jí)上升,放大搜索范圍。
上述算法對(duì)咖啡館的例子很實(shí)用,但是它具有通用性嗎?答案是否定的。把咖啡館抽象一下,它是一個(gè)“點(diǎn)”,如果要搜索一個(gè)“面”該怎么辦呢?比如,用戶想去 一個(gè)水庫玩,而一個(gè)水庫有好幾個(gè)入口,那么哪一個(gè)離用戶最近呢?這個(gè)時(shí)候,上述“樹結(jié)構(gòu)”就要改成“r-tree”,因?yàn)闃渲虚g的每一個(gè)節(jié)點(diǎn)都是一個(gè)范 圍,一個(gè)有邊界的范圍(參考:http://www.cs.umd.edu/~hjs/rtrees/index.html)。
通過這個(gè)小例子,我們看到,應(yīng)用程序的要求千變?nèi)f化,很多時(shí)候需要把一個(gè)復(fù)雜的問題分解成若干簡單的小問題,然后再選用合適的算法和數(shù)據(jù)結(jié)構(gòu)。
并行算法:Google的核心優(yōu)勢(shì)
上面的例子在Google里就要算是小case了!每天Google的網(wǎng)站要處理十億個(gè)以上的搜索,GMail要儲(chǔ)存幾千萬用戶的2G郵箱, Google Earth要讓數(shù)十萬用戶同時(shí)在整個(gè)地球上遨游,并將合適的圖片經(jīng)過互聯(lián)網(wǎng)提交給每個(gè)用戶。如果沒有好的算法,這些應(yīng)用都無法成為現(xiàn)實(shí)。
在這些的應(yīng)用中,哪怕是最基本的問題都會(huì)給傳統(tǒng)的計(jì)算帶來很大的挑戰(zhàn)。例如,每天都有十億以上的用戶訪問Google的網(wǎng)站,使用Google的服務(wù),也 產(chǎn)生很多很多的日志(Log)。因?yàn)長og每分每秒都在飛速增加,我們必須有聰明的辦法來進(jìn)行處理。我曾經(jīng)在面試中問過關(guān)于如何對(duì)log進(jìn)行一些分析處理 的問題,有很多面試者的回答雖然在邏輯上正確,但在實(shí)際應(yīng)用中是幾乎不可行的。按照他們的算法,即便用上幾萬臺(tái)機(jī)器,我們的處理速度都跟不上數(shù)據(jù)產(chǎn)生的速 度。
那么Google是如何解決這些問題的呢?
首先,在網(wǎng)絡(luò)時(shí)代,就算有最好的算法,也要能在并行計(jì)算的環(huán)境下執(zhí)行。在Google的數(shù)據(jù)中心,我們使用的是超大的并行計(jì)算機(jī)。但傳統(tǒng)的并行算法運(yùn)行 時(shí),效率會(huì)在增加機(jī)器數(shù)量后迅速降低,也就是說,十臺(tái)機(jī)器如果有五倍的效果,增加到一千臺(tái)時(shí)也許就只有幾十倍的效果。這種事倍功半的代價(jià)是沒有哪家公司可 以負(fù)擔(dān)得起的。而且,在許多并行算法中,只要一個(gè)結(jié)點(diǎn)犯錯(cuò)誤,所有計(jì)算都會(huì)前功盡棄。
那么Google是如何開發(fā)出既有效率又能容錯(cuò)的并行計(jì)算的呢?
Google最資深的計(jì)算機(jī)科學(xué)家Jeff Dean認(rèn)識(shí)到, Google 所需的絕大部分?jǐn)?shù)據(jù)處理都可以歸結(jié)為一個(gè)簡單的并行算法: Map and Reduce(http://labs.google.com/papers/mapreduce.html)。 這個(gè)算法能夠在很多種 計(jì)算中達(dá)到相當(dāng)高的效率,而且是可擴(kuò)展的(也就是說,一千臺(tái)機(jī)器就算不能達(dá)到一千倍的效果,至少也可以達(dá)到幾百倍的效果)。Map and Reduce 的另外一大特色是它可以利用大批廉價(jià)的機(jī)器組成功能強(qiáng)大的server farm。最后,它的容錯(cuò)性能異常出色,就算一個(gè)server farm里面的機(jī) 器down掉一半,整個(gè)farm依然能夠運(yùn)行。正是因?yàn)檫@個(gè)天才的認(rèn)識(shí),才有了Map and Reduce算法。借助該算法,Google幾乎能無限地 增加計(jì)算量,與日新月異的互聯(lián)網(wǎng)應(yīng)用一同成長。
算法并不局限于計(jì)算機(jī)和網(wǎng)絡(luò)
舉一個(gè)計(jì)算機(jī)領(lǐng)域外的例子:在高能物理研究方面,很多實(shí)驗(yàn)每秒鐘都產(chǎn)生幾個(gè)TB的數(shù)據(jù)量。但因?yàn)樘幚砟芰痛鎯?chǔ)能力的不足,科學(xué)家不得不把絕大部分未經(jīng)處 理的數(shù)據(jù)丟棄掉。可大家要知道,新元素的信息很有可能就藏在我們來不及處理的數(shù)據(jù)里面。同樣的,在其他任何領(lǐng)域里,算法都可以改變?nèi)祟惖纳睢@缛祟惢?因的研究,就可能因?yàn)樗惴ǘl(fā)明新的醫(yī)療方式。在國家安全領(lǐng)域,有效的算法可能避免下一個(gè)911的發(fā)生。在氣象方面,算法可以更好地預(yù)測(cè)未來天災(zāi)的發(fā)生, 以拯救生命。
所以,如果你把計(jì)算機(jī)的發(fā)展放到應(yīng)用和數(shù)據(jù)飛速增長的大環(huán)境下,你一定會(huì)發(fā)現(xiàn),算法的重要性不是在日益減小,而是在日益加強(qiáng)。
給程序員的七個(gè)建議
(1)練內(nèi)功。不要只花功夫?qū)W習(xí)各種流行的編程語言和工具,以及某些公司招聘廣告上要求的科目。要把數(shù)據(jù)結(jié)構(gòu)、算法、數(shù)據(jù)庫、操作系統(tǒng)原理、計(jì)算機(jī)體系結(jié) 構(gòu)、計(jì)算機(jī)網(wǎng)絡(luò),離散數(shù)學(xué)等基礎(chǔ)課程學(xué)好。大家不妨試試高德納所著The Art of Computer Programming里的題目,如果你能夠 解決其中的大部分題目,就說明你在算法方面有一定的功力了。
(2)多實(shí)戰(zhàn)。通過編程的實(shí)戰(zhàn)積累經(jīng)驗(yàn)、鞏固知識(shí)。很多中國大學(xué)畢業(yè)生缺乏編程和調(diào)試經(jīng)驗(yàn);學(xué)習(xí)C語言,考試過關(guān)就算學(xué)會(huì)了;課題項(xiàng)目中,只要程序能夠編 譯,運(yùn)行,并且輸入輸出滿足要求就算了事。這些做法是不行的。寫程序的時(shí)候,大家必須多想想如何把程序?qū)懙酶泳珶挕⒏咝А⒏哔|(zhì)量。建議大家爭取在大學(xué)四 年中積累編寫十萬行代碼的經(jīng)驗(yàn)。我們必須明白的是:好程序員是寫出來的,不是學(xué)出來的。
(3)求實(shí)干。不要輕視任何實(shí)際工作,比如一些看似簡單的編碼或測(cè)試。要不懈追求對(duì)細(xì)節(jié)一絲不茍的實(shí)干作風(fēng)與敬業(yè)精神。我發(fā)現(xiàn)不少程序員對(duì)于知識(shí)的掌握很 膚淺,不求甚解,沒有好奇心,不會(huì)刨根問底。比如,學(xué)會(huì)了C++,是否了解一個(gè)對(duì)象在編譯后,在匯編代碼中是如何被初始化的?這個(gè)對(duì)象的各個(gè)成員在內(nèi)存中 是如何存放的?當(dāng)一個(gè)成員函數(shù)被調(diào)用時(shí),編譯器在匯編代碼中加入了哪些額外的動(dòng)作?虛函數(shù)的調(diào)用是如何實(shí)現(xiàn)的? 這些東西恐怕在編程語言或編譯原理中都沒 有詳細(xì)提到,只有通過踏實(shí)的實(shí)干才能真正掌握。
(4)重視數(shù)學(xué)學(xué)習(xí)。數(shù)學(xué)是思維的體操,數(shù)學(xué)無處不在。學(xué)計(jì)算機(jī)至少要學(xué)習(xí)離散數(shù)學(xué)、概率論、布爾代數(shù)、集合論和數(shù)理邏輯。這些知識(shí)并不難,但是對(duì)你未來 的工作幫助會(huì)很大。 尤其當(dāng)你對(duì)一些“數(shù)學(xué)密集型”的領(lǐng)域如視頻、圖像處理等有興趣時(shí),這些知識(shí)將成為你手中的利器。
(5)培養(yǎng)團(tuán)隊(duì)精神,學(xué)會(huì)與人合作。今天的軟件工程早已經(jīng)不是一個(gè)人可以單獨(dú)操作的,而必須靠團(tuán)隊(duì)合作才能成功。不懂得合作的人是不能成大器的。大家要多去尋找可以與人一起做項(xiàng)目的機(jī)會(huì)。
(6)激勵(lì)創(chuàng)新意識(shí),培養(yǎng)好奇心,不要死記硬背。沒有掌握某種算法技術(shù)的根本原理,就不會(huì)有應(yīng)變和創(chuàng)新的能力。想成為一位好程序員(其實(shí)從事任何一個(gè)行業(yè) 都是如此),重要的是要養(yǎng)成鉆研,好奇,創(chuàng)新,動(dòng)手,合作的優(yōu)秀習(xí)慣,不滿足于填鴨,不滿足于考試交差,不滿足于表象。這不是學(xué)幾門課能夠一蹴而就的。
(7)有策略地“打工”。在不影響學(xué)業(yè)的前提下,尋找真正有意義的暑期工作或兼職。去找一個(gè)重視技術(shù)的公司,在一個(gè)好的“老板”指導(dǎo)下完成真正會(huì)被用戶使 用的程序。不要急于去一個(gè)要你做“頭”而獨(dú)擋一面的地方,因?yàn)橄騽e人學(xué)習(xí)才是你的目的。找工作也是一樣,不要只看待遇和職銜,要挑一個(gè)你能夠?qū)W習(xí)的環(huán)境, 一個(gè)愿意培養(yǎng)員工的企業(yè),一個(gè)重視你的專業(yè)的公司。最后,還要挑一個(gè)好老板。
希望大家都能把握機(jī)會(huì),養(yǎng)成好的學(xué)習(xí)習(xí)慣,把算法學(xué)精學(xué)透;希望大家都能有一個(gè)美好的未來!

posted @ 2009-03-17 19:37 Condor 閱讀(292) | 評(píng)論 (0)編輯 收藏

僅列出標(biāo)題
共10頁: 1 2 3 4 5 6 7 8 9 Last 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩在线一区二区| 国产一区二区三区在线观看精品| 欧美日韩大陆在线| 欧美日韩大片一区二区三区| 欧美日韩国产专区| 欧美视频一区二区三区| 国产精品美女主播| 国产女人精品视频| 国语自产精品视频在线看抢先版结局| 国产综合视频| …久久精品99久久香蕉国产 | 久久久中精品2020中文| 久久久噜噜噜久久久| 蜜桃av综合| 亚洲精品日韩一| 一区二区三区精品在线| 欧美夜福利tv在线| 欧美91精品| 国产精品久久久久久久久久三级 | 欧美影院久久久| 久久综合中文色婷婷| 亚洲高清不卡av| 日韩视频一区二区三区在线播放免费观看| 99国产精品99久久久久久| 午夜久久影院| 欧美国产精品va在线观看| 国产精品久久久久久久久久三级| 国产一区999| 日韩视频在线一区二区| 欧美亚洲自偷自偷| 欧美成熟视频| 亚洲尤物视频在线| 久久综合给合| 欧美性视频网站| 黄色成人av| 亚洲午夜av| 美女视频一区免费观看| 一本色道久久综合亚洲精品婷婷| 欧美一区激情| 欧美理论视频| 国产一区二区中文字幕免费看| 亚洲精品永久免费| 欧美在线视频免费| 亚洲黄色成人| 欧美一区二区三区视频免费播放 | 亚洲一二三四区| 另类天堂视频在线观看| 国产精品久久午夜夜伦鲁鲁| 亚洲国产清纯| 久久av二区| 亚洲精品一区中文| 久久综合色播五月| 国产精品一区二区三区成人| 亚洲精品小视频| 久久男人资源视频| 中文亚洲欧美| 欧美高清在线精品一区| 国内精品一区二区三区| 亚洲午夜黄色| 亚洲国产精品嫩草影院| 久久国产福利| 国产精品一区二区三区四区五区 | 国产精品一区免费在线观看| 亚洲美女淫视频| 另类成人小视频在线| 午夜精品视频| 欧美日韩在线一区二区| 亚洲精品一区二区三区福利| 久色成人在线| 午夜国产不卡在线观看视频| 欧美日韩日本视频| 亚洲人成网站999久久久综合| 久久综合影视| 久久激五月天综合精品| 国产欧美一区二区精品秋霞影院| 在线一区亚洲| 日韩午夜在线观看视频| 欧美精品福利在线| 亚洲人成在线观看一区二区| 久久久久九九九九| 欧美一区二区观看视频| 国产午夜亚洲精品不卡| 欧美在线视频网站| 亚洲欧美一区二区激情| 国产精品系列在线播放| 亚洲自拍都市欧美小说| 一本不卡影院| 国产精品成人va在线观看| 亚洲色图在线视频| 亚洲免费大片| 欧美色道久久88综合亚洲精品| av成人老司机| 日韩亚洲欧美精品| 欧美亚一区二区| 午夜电影亚洲| 亚洲在线视频观看| 国产美女扒开尿口久久久| 欧美一区二视频在线免费观看| 亚洲免费视频成人| 国产日韩精品一区二区三区在线| 久久成人免费视频| 欧美影视一区| 亚洲电影免费观看高清完整版在线观看| 久久天天躁夜夜躁狠狠躁2022| 久久久青草婷婷精品综合日韩| 亚洲国产精品第一区二区| 亚洲国产精品欧美一二99| 欧美日韩国产在线播放| 亚洲一区二区在线免费观看| 亚洲一区二区三区免费观看| 国产一区二区三区高清播放| 免费高清在线视频一区·| 麻豆乱码国产一区二区三区| 亚洲美女91| 亚洲无亚洲人成网站77777| 国产日韩欧美在线看| 久久艳片www.17c.com| 另类av一区二区| 这里只有精品丝袜| 亚洲淫性视频| 在线播放不卡| 亚洲乱码国产乱码精品精98午夜| 欧美性色综合| 老鸭窝毛片一区二区三区| 欧美成年网站| 亚洲欧美在线播放| 久久全球大尺度高清视频| 99re6热只有精品免费观看 | 国产精品久久久久77777| 久久国产精品一区二区| 久久中文在线| 亚洲综合色在线| 久久成人资源| 一本色道久久88亚洲综合88| 亚洲主播在线| 亚洲另类自拍| 欧美一乱一性一交一视频| 亚洲精品一级| 欧美亚洲在线| 夜夜夜精品看看| 欧美在线视频一区二区三区| 亚洲精品中文在线| 性8sex亚洲区入口| 99av国产精品欲麻豆| 欧美一区二区三区免费大片| 99精品欧美一区| 欧美一区精品| 亚洲夜晚福利在线观看| 久久精品官网| 亚洲男人第一网站| 欧美成人首页| 久久深夜福利| 国产精品国产一区二区| 欧美成人精品不卡视频在线观看| 国产精品久久国产愉拍| 亚洲第一网站| 韩日欧美一区二区三区| 99精品国产在热久久婷婷| 黄色一区二区三区四区| 亚洲午夜av在线| 99pao成人国产永久免费视频| 久久精品视频在线观看| 亚洲欧美伊人| 欧美日本精品| 亚洲第一精品福利| 国产亚洲一区二区三区| 一区二区三区视频观看| 日韩小视频在线观看| 久久偷窥视频| 久久久久.com| 国产精品视频99| 99热在这里有精品免费| 亚洲精品一区二区三区福利| 久久久久久久999精品视频| 欧美一区二区黄| 欧美性一区二区| 亚洲精品三级| 亚洲剧情一区二区| 嫩草国产精品入口| 欧美va亚洲va国产综合| 狠狠色狠色综合曰曰| 亚洲欧美成人综合| 香蕉久久夜色精品国产使用方法 | 免费成年人欧美视频| 久久综合久久综合久久| 国产日韩在线播放| 亚洲伊人一本大道中文字幕| 亚洲线精品一区二区三区八戒| 欧美日本免费| 亚洲精品一区二区三区在线观看| 亚洲精品视频在线播放| 欧美88av| 最新中文字幕亚洲| 亚洲精品欧美激情| 欧美国产在线观看| 亚洲欧洲中文日韩久久av乱码| 亚洲日本欧美| 欧美国产精品v| 亚洲人精品午夜| 99视频精品在线|