彈性腳本
『壹』 怎麼用flash製作彈性
動畫想要更加流暢考慮加多一些幀數,可以在動畫過程中添加緩動效果。
『貳』 戲劇的需求富有彈性嗎
是,戲劇根據演出時間能增能減。
戲劇,指以語言、動作、舞蹈、音樂、木偶等形式達到敘事目的的舞台表演藝術的總稱。文學上的戲劇概念是指為戲劇表演所創作的腳本,即劇本。
『叄』 AE文字動畫中怎樣做出逐字彈性抖動等效果
我一開始做這種效果是拿關鍵幀純手動扣出來的.
但現在有個腳本叫Ease & wizz就是專門做各種Q彈的效果的.
『肆』 腳本法的優缺點
腳本法的優點是,使戰略能夠適應備用的環境腳本,同時開闊管理者的思路,擴展視野,提高它們對環境威脅的警惕,同時不失對長期機遇的把握。即使實際情況並沒有發生所預期的情
況,至少可以建立組織接受不確定性和實施戰略變化的心理准備。 1、識別影響企業的外部直接因素和間接因素。通常,直接因素是產業環境因素,間接因素是一般環境因素。但對特定的企業的特定時期,有些一般環境因素也有可能是直接因素。
2、識別直接因素和間接因素的變化趨勢。這是七步腳本法最重要的核心步驟,也是最困難的步驟。每種因素一般列出三種可能的變化趨勢,其中,第一種是基本趨勢,後兩種是相反的兩種趨勢。直接因素的基本趨勢根據影響它的間接因素的基本趨勢預測。直接因素的兩種相反的趨勢根據間接因素的兩種趨勢進行分析、預測,它們之間不是簡單的對應關系,需要開動腦筋設想未來,是分析的難點和重點。 3、評價間接因素各趨勢的發生概率。基本趨勢的概率自然比較大,重點是分析其他兩種相反的變化趨勢的發生概率。
4、評價直接因素各趨勢的發生概率。同樣,基本趨勢的概率大,重點是分析其他兩種相反的變化趨勢的發生概率。
5、評價直接因素各變化趨勢的戰略重要性。
6.根據各直接因素趨勢的發生概率和戰略重要性,繪出環境腳本矩陣。
7.依據戰略上重要而發生概率大的直接因素變化趨勢形成的環境腳本(下圖右上角虛框內的直接因素變化趨勢組)制定基本戰略方案;依據戰略上重要而可能性不大的直接因素變化趨勢形成的環境腳本(下圖右下角虛框內的直接因素變化趨勢組)制定備用戰略方案。在此過程中,需要對環境腳本進行一致性檢驗。 對於戰略上不重要的兩個環境腳本(下圖的左上角和左下角),無論發生概率大還是小,在戰略管理中都可以不於考慮。 例如,影響某企業的間接因素可以用a、b、c、d……表示,這些因素可以包括諸如國民生產總值、銀行利率、人口數量、消費者收入分布等等,每個企業都需要通過掃描確定。其不同的下標數字也表示不同的變化趨勢,例如a1表示國民生產總值上升,是基本趨勢,a2、a3分別表示國民生產總值不變和下降兩種相反的變化趨勢。直接因素例如包括:A成本;B競爭水平和性質;C市場價格;D日間服務;E擴展機會;F需求。A至F不同的下標數字表示不同的變化趨勢。例如,A1表示成本不變,是基本趨勢,A2 、A3表示成本的上升和下降這兩種相反的趨勢。
顯然,七步腳本法的關鍵是正確地識別對企業有重要影響的直接和間接因素,正確地識別各自的變化趨勢,正確地評價各自的發生概率和戰略重要性。如下圖所示。
關於如何識別和判斷間接因素的各種變化如何影響、決定了直接因素的各種變化,是腳本分析最關鍵的內容。但目前對此尚沒有研究出一種令人信服的可操作更強的方法,只有藉助於宏觀經濟學等學科的研究和預測,需要依靠戰略分析者和戰略決策者的正確分析和判斷。七步腳本法只是提供一個分析的步驟、思路和分析表單,從而在一定程度上促進對環境的分析和把握,但不能代替戰略分析與戰略決策。
案例:荷蘭皇家殼牌公司基於腳本的戰略規劃 殼牌公司以重視戰略規劃著稱。其戰略規劃有兩個特點。第一,高度參與。不是由高層專家孤立地提出沒有彈性的10年計劃,而主要是為各經營單位提出課題。第二,採用腳本法,提出一系列的「如果怎樣」的或然課題。該公司70年代成功地預測了因OPEC的出現而導致的原油價格上漲和80年代由於OPEC石油供應配額協議的破裂而導致的原油價格的下跌。
80年代初,每桶原油價格在30$左右,該產業的成本是每桶11$,因此多數石油公司是盈利的。對未來的分析,一般看好,有的公司預測到90年代將上漲到每桶50$。殼牌公司分析了一系列未來腳本。其中之一是:OPEC石油供應配額協定破裂,石油充斥,每桶降至15$。1984年,公司對各下屬公司提出的課題是,如果這一情況發生,我們該怎麼辦?
殼牌公司根據自己認定的或然情況,圍繞核心業務實施了以下降低成本的變革,包括採用領先的開采技術,大量投資於提煉設備,該設備具有成本效率和取消低利潤的服務站等。其它石油公司(如Exxon公司等)未改善核心業務的效率,而是實施多樣化。到1986年1月殼牌公司完成上述變革時,原油價格為27$/桶。但與此同時,OPEC生產配額協議失敗,北海和阿拉斯加出現新的石油產量,與此同時,需求下降。2月1日,原由的價格為17$/桶,4月則降至10$/桶。
結果是,1988年,殼牌公司的資產凈收益率為8.4%,該產業主要公司(Exxon,BP,Chevron,Mobil,Texaco等)的平均收益率為3.8% 。至1989年,殼牌公司的主要變革方向是低成本,改進精練,原油開采成本低於2$/桶,同事強化市場營銷。
『伍』 CS中,我看別人跳的很高的,好象有彈性的一樣,這怎麼跳起來的啊
超級跳全解
一.首先我們來認識一下超級跳
很多新手對超級跳這個概念還不是很清楚,誤以為蹬腿跳(蹲跳)就是超級跳,其實利用旋轉加速的連跳都可以稱作超級跳,也就是「旋轉跳+連跳+旋轉跳……」
1.3以前版本的超級跳可以與飛相提並論,速度可達到走的數倍,當時在比賽中利用超級跳來搶占據點等其它用處是被視為犯規的,而1.5跳躍增加了跳躍停滯後,無法再達到原先的飛行距離和移動速度,因此在1.5的比賽中使用超級跳是允許的。
必須明確的幾點:
超級跳一直存在,只不過效果不一樣,超級跳不能讓你跳的更高,除非更改了重力參數,最近有人在論壇發了國外玩家在1.6的超級跳demo,其效果與 1.3一樣,好多人看後大為驚訝,其實在1.3以後的純凈版本里是跳不出這種效果的,那是因為伺服器安裝了超級跳插件或類似於跳躍不停頓的插件。
二.一般的超級跳步驟(以先向左旋轉為例)
a.准心保持向下45度左右,往前跑,起跳,松開前
b.按住左,同時滑鼠向左勻速平移
c.空中松開左的同時按住右不松
d.按住右,落地的時候跳,同時滑鼠向右勻速平移
e.空中松開右的同時按住左不松
f.按住左,落地的時候跳,同時滑鼠向左勻速平移
g.就這樣一直重復下去……
要點:
a,b兩個步驟加起來其實就是一個標準的旋轉跳
a,b,c這3個動作要一次性滯空完成
a.准心保持向下45度更易保持身體平衡
b.滑鼠平移的角度越大旋轉幅度也越大
d.落地的時候按跳要有連跳的那種感覺
g.必須熟練掌握按鍵的順序和時間
只有助跑的時候才按「前」
跳起來之後就不需要再按它了
三.以上分解動作已經寫的很詳細,可是還有人練習之後沒有進展
這是因為:
1、大家不知道為什麼要這樣跳
如果大家玩過滑冰,就能體會到超級跳是怎麼個原理了,滑冰的前進動作是單足側向蹬地,所以超級跳也是使用左右兩個方向鍵,這就相當於兩條腿,在轉換支撐重心腿時,最好將重心向中線擺動,具體動作就是滑鼠平移之後(向一個方向旋轉之後),向相反的方向微移滑鼠,也就是准心向屏幕中間靠,轉換了重心之後,要克服摩擦,滑出速度,就要單足蹬(連跳),體會了這個動作的原理,再看看動作的過程,很容易就跳出來了
2、連跳有難度
有了以下腳本,可以基本解決連跳節奏難掌握的問題
把alias+a"+jump;wait;-jump;wait;+jump;wait;
-jump;wait;+jump;wait;-jump;wait;+jump;wait;-jump"
alias-a"-jump"加到autoexec.cfg中
把bindmwhwwldown"+a"加到config.cfg中
用bindspace"+a"也可以,個人推薦用滑輪跳
用空格跳久了手會累,畢竟滑動滾輪是一個時段,而按空格是一個時刻嘛,前者更易把握,這樣只要游戲人物觸地之後按了跳或滑動了滑輪都被判定為跳起成功
四.在1.5或1.6里練習超級跳的幾點建議:
1.滑鼠速度不要太快也不要太慢,太快的話會使你的手所要移動的距離更小,很難保持一個連續的,有節奏的扭動,太慢了旋轉幅度太小,不利於加速,推薦1.5到3.0之間,只要保持旋轉過程當中扭動手腕就可以了。
2.先把連跳和旋轉跳這兩個分支學好(建議到吊橋練習繞柱跳)
3.手中拿較輕的武器(如刀,手雷,手槍)
4.不要在狹窄的地圖上跳,從斜坡上往下跳會使你信心倍增
5.不要到人多的fps低的伺服器去蹦蹦跳跳,雖然更易於連跳,但fps越低就越不易旋轉加速
6.跳躍的過程當中如因操作失誤而導致速度減慢的話請不要放棄,落地之後繼續連跳+旋轉加速,如操作得當的話若干個回合之後是可以提速上去的。
7.雙重跳雙左或者雙右可以避免你撞牆。
如:跳的過程中一直按住左平移鍵,這樣連續跳兩次,滑鼠也要有節奏地向左平移兩次,第一次平移後馬上提起滑鼠往墊子中心放,接著再向左平移一次,不然滑鼠墊會限制你。
8.試試在原地做微小的向前旋轉跳躍,然後和地面一直左右旋轉摩擦下去積累加速使速度提升上去,用滑輪較易完成
9.你還可以一直向一個方向(如向左)連續旋轉跳做圓周運動
也可以跳成N個「3」字連起來的直線
或是「蹬腿跳+旋轉跳+連跳……」
或是360度的旋轉跳
或是從斜坡下往上跳
或是在一次滯空中完成兩次旋轉(站的越高往下跳越明顯)
甚至倒著跳,正面跳轉換成倒著跳等等等等……
只要你的想像力夠豐富,在這里就不一一說明了
凡事不要急於求成,慢慢來
五.一些比較常見的旋轉跳和連跳在實戰當中的運用
1.首先是繞柱跳或是繞箱跳,必須注意的幾點:先向柱子或箱子的外側跳,至最高點准心甩回到內側,起跳點不能離石柱太近或太遠,滑鼠速度不能過低
2.橫向旋轉跨欄,比如st2中T一出生可以貼著牆壁向斜坡方向起跳,然後向左旋轉跳至暗道,迅速搶占據點,當然多數情況用普通跳就能解決問題
3.可跳至普通跳無法達到的地方,如nuke靠近T老家房頂對面的岩石等等,這個跳躍運用了旋轉跳加速的原理,可以跳出比正常跳躍遠一點點的距離
4.在不能確認對面是否有狙擊防守的時候,你可以用一個大跳去觀察然後立刻旋轉回掩體,這樣比你直接閃半個身子出去要好,別人一個定點就把你搞定了,按照普通的思維方式對方的狙擊看到你是跳出來的,打定點他很難打死你,因為你又旋轉回掩體了,在他看來就是你跳到最高點,然後又迅速地消失了,如果對方是個甩狙高手那就不好辦,所以說打CS還是要多動動腦子,多打破些常規思維。
5.雙連跳狙
(1)手拿HE/FLASH/SMOKE橫向蹬腿跳跳出掩體
立刻切換成AWP,再連跳,開鏡,落地,開槍,為什麼要手拿HE並縮著身子跳呢?CS里好象有這么個BUG吧:對於AWP來說蹲著並手拿HE你的上半身無敵……逃跑的時候也可以一直拿著HE/FLASH/SMOKE做連續的蹬腿跳來躲避AWP,當然以上純屬花式動作,遇到高手你就掛定了
(2)一般平時的混戰或比賽拿手槍切換AWP進行雙連跳狙就足夠了
6.逃命用:感覺身後大批敵人即將殺到或是丟出彈以後敵人立刻現身,此時候來不及換槍便可以用旋轉跳旋轉到掩體來逃命,在某些情況下是很有用的。
小結:超級跳是一項技術性很強的技巧,在混戰或是比賽中不提倡亂跳,應該有機的運用其分支連跳或旋轉跳來進行快速突破,移動和躲閃,從而使你的技術變得更加全面,相信很多朋友都看過世界強隊的DEMO,巨星們巧妙地運用旋轉跳和連跳,的例子不在少數,如SpawN,fisker,Ksharp, sunman等等等等
回答者: grindan - 大魔法師 八級 1-31 18:43
--------------------------------------------------------------------------------
提問者對於答案的評價:
留個QQ吧,探討一下。
--------------------------------------------------------------------------------
評價已經被關閉 目前有 1 個人評價
好
100% (1) 不好
0% (0)
其他回答 共 7 條
1.6版開始已經取消了超級跳。
手雷是打不到的。你所看到的不過是視頻上的特效。
真正的甩槍只有在1.3版本和之前的版本中可以實現,就是一槍可以打死1個(排)以上的人。但是在1.5版本中,已經修正了這個BUG。但是目前還是可以(甩槍)的,其實說白了就是滑鼠準星跟蹤目標的快速移動!如果你最後紅點不在敵人身上,你無論如何也是擊斃不了他的!
1.5的BUG有很多不便一一敘述!但是1.5之前的就多了,也很可笑,比如隔牆仍雷!
你可以看看世界的CS強隊!就知道什麼是真正的水平了,他們的水平其實都差不多。兄弟,看來你還是個初學者,本人對CS十分感興趣!並付出了很多!只要你勤奮練習,做不了一槍一個,10槍7.8個還是差不多的!努力吧!
以上全是個人經驗之談!希望對你有所幫助!!
『陸』 如何用Consul打造彈性可擴展的PaaS平台
如何用Consul打造彈性可擴展的PaaS平台
杜威,程序員,混跡互聯網研發和運維近十年。《Linux系統案例精解》合著者之一。目前就職亮風台,專注DevOps、雲計算、大數據等相關領域。
應用背景
HiAR 是亮風台打造的新一代增強現實(AR)開發平台,提供簡單易用、功能強大、跨平台的 AR 服務。讓廣大開發者可以輕松使用最前沿的計算機視覺技術、計算機圖形學技術,快速搭建個性化的 AR 應用。
雲服務是HiAR平台中重要的基礎設施。無論從高可用,還是到可擴展,服務發現都發揮著不可或缺的作用。在沒有使用服務發現之前,我們遇到的幾個痛點:
◆ 系統添加一個服務節點,我們需要手工修改Nginx/LVS的配置文件、修改DNS記錄。
◆ 應用服務發布新版本,我們還是需要手工修改Nginx的配置文件把節點下線、等待發布成功後,再次修改Nginx的配置文件把服務上線。
◆ 盡管後來我們對上面兩種場景的運維做了改進,編寫腳本把過程改良為半自動半手動的方式,但還不是很方便,而結合服務注冊就可以做到全自動。
◆ 內網DNS出了故障,我們需要對DNS服務進行維護。
◆ 沒有服務注冊,限制了Docker的發揮,只能當輕量級虛擬機來用。
現在,有了服務發現,一切都變得簡單有趣。增減服務節點可以自動更新Nginx/LVS的配置文件;DNS丟一邊吧!用IP就好;接入Mesos+Docker玩彈性擴展。
為什麼選擇 Consul
已經有很多文章對Zookeeper、etcd、Consul進行比較,這里就不重復類比了。沒有什麼比合適更重要!Consul 的運維成本低,部署簡單、使用方便、五臟俱全,這對於中小型團隊應該是性價比很高的。
在進入實戰前,先看看 Consul 都有哪些特性。
◆ 服務注冊。通過HTTP API或DNS,告訴服務注冊中心有新的服務加入。
◆ 服務發現。通過HTTP API或DNS,可以知道目標服務的地址和埠。
◆ 健康檢查。支持多種方式,HTTP、TCP、Docker、Shell腳本定製化監控。
◆ 配置模板。Consul Template 負責定期從服務注冊中心獲取信息,如果有變化自動更新配置文件並重新載入。
以上四點已經能滿足很多企業的需求。當然這不是Consul的所有,Consul還有很多錦上添花的特性,比如:可視化Web界面、支持多數據中心。
實戰經驗
我們對Consul的使用可以歸納到四個方面:部署、應用、管理、升級。
部署
Consul Cluster有Server和Client兩種角色。Server一般是3~5台,這也是官方推薦的。Consul Client就是需要進行服務注冊或服務發現的節點。
Consul的部署簡單、開箱即用,一個consul可執行文件,還沒有亂七八糟的依賴。在官網下載編譯好的Consul agent可執行文件,並上傳到所有Server和Client角色的節點,便隨時可啟動consul agent了。
下面一起來看看,如何啟動一個Consul集群(3台Server、1台Client)。
實驗環境:
server01 192.168.1.11
server02 192.168.1.12
server03 192.168.1.13
client01 192.168.1.21
分別登錄Server01、Server02、Server03,並啟動agent。
[worker@server01 ~]$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -bind=192.168.1.11 -node=server01
[worker@server02 ~]$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -bind=192.168.1.12 -node=server02
[worker@server03 ~]$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -bind=192.168.1.13 -node=server03
新開窗口登錄Server03,加入Server01、Server02的集群。
[worker@server03 ~]$ consul join 192.168.1.11 192.168.1.12
上面幾步就完成了初始化Server節點,以後通過-rejoin參數啟動,可以重新加入集群。
[worker@server01 ~]$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -bind=192.168.1.11 -node=server01 -rejoin
[worker@server02 ~]$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -bind=192.168.1.12 -node=server02 -rejoin
[worker@server03 ~]$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -bind=192.168.1.13 -node=server03 -rejoin
就這樣三個Server節點部署完畢。接下來,部署Client節點,和Server節點一樣,有初次啟動、手工加入和重新加入集群三步。
[worker@client01 ~]$ consul agent -data-dir /tmp/consul -bind=192.168.1.21 -node=client01
還是在Client01上,新開一個登錄窗口,加入Server01的集群。
[worker@client01 ~]$ consul join 192.168.1.11
Client01節點日後的維護,通過-rejoin參數啟動,便可重新加入集群。
[worker@client01 ~]$ consul agent -data-dir /tmp/consul -bind=192.168.1.21 -node=client01 -rejoin
到這里為止,我們已經搭建好了一個Consul集群。然而,怎麼進行服務注冊和服務發現呢?這得跟實際需求緊密結合,在接下來的小節中進一步說明。
應用
Consul不是單獨存在的。為了充分發揮Consul的優勢,可以結合Nginx、LVS、Docker等工具來應用。
Nginx、LVS是系統的基礎組件,RecoService、FeatureService、SearchService是基於SOA的內部服務。前者向Consul集群發現服務,後者向Consul集群注冊服務。Consul是粘合劑也是開關,讓整個系統的運作起來,低成本的實現了彈性伸縮。
接入層,用的是Nginx,負責反向代理和負載均衡。Nginx節點上跑兩個Consul相關服務。一個是Consul Agent,做Consul Client;另外一個是Consul Template,做服務發現和配置更新。Consul Template負責定期查詢本地Consul Agent,如果相關服務的注冊信息有變化,則更新Nginx的配置文件並重新載入Nginx服務。
運行Consul Template是實現彈性擴展的關鍵步驟:
$ consul-template -consul 127.0.0.1:8500 -template "/etc/nginx/conf/vhosts/test.ctmpl:/etc/nginx/conf/vhosts/test.conf:nginx -s reload"
上面這句命令中,test.conf是Nginx的虛擬主機配置文件,test.ctmpl是該配置文件對應的模板。下面是模板在負載均衡上的代碼片段:
upstream test-cluster {
ip_hash;{{range service "test"}}
server {{.Address}}:{{.Port}};{{end}}
}
邏輯層,基於SOA的內部服務集群。不同的內部服務集群之間通信需要做服務發現,這里引入LVS做服務發現。好處是不用在內部服務的代碼里實現服務發現,而且規模大了還要做負載均衡。與接入層的Nginx類似,LVS也用Consul Template定期查詢本地Consul Agent,更新相關配置文件,然後重載服務。
內部服務如何向服務中心注冊?有兩種方式,一是通過Consul的服務注冊HTTP API,由服務自身在啟動後調用API注冊自己,二是通過在配置文件中定義服務的方式進行注冊。建議使用後面一種方式來做服務注冊。怎麼辦到的?請繼續往下看 :)
為項目添加一個配置文件consul.json,指定服務名稱和服務埠,並加上健康檢查,內容如下:
{
"service":
{
"name" : "test",
"port" : 9999,
"check":
{
"tcp": "127.0.0.1:9999",
"interval": "10s"
}
}
}
最後一步,對服務進行注冊,需要在Consul agent啟動時指定配置文件,如下:
$ consul agent -data-dir /tmp/consul -node=test -bind=192.168.1.21 -config-dir=/tmp/consul.json
管理
一是節點管理,也就是Consul進程的管理。由於Consul Agent本身不具備高可用能力,所以我們有必要對Consul進程進行接管,我們用的是Systemd,你也可以選擇Supervisord或者Upstart這些進程管理工具。
二是集群管理,Consul提供了可視化管理界面。可以查看所有的服務和節點,以及它們的健康檢測和當前狀態。
升級
由於Consul關繫到整個系統的正常運作,所以升級的時候還是要很小心。最好在測試環境試驗多幾次,再到生產環境升級。升級的狀況可以歸納為下面三種,需要對號入座之後再進行升級。
◆ 特殊版本的升級。在upgrade-specific頁面查看當前升級的版本是否有特殊說明。比如:0.5.1之前的版本直接升級到0.6版本,要藉助工具consul-migrate進行數據遷移。
◆ 不兼容的升級。使用consul -v查看新版的向後兼容協議版本號,當出現與當前版本不兼容時,需要分兩步升級。先通過參數-protocal=舊的協議版本號,把整個集群升級一次,再把啟動命令中的參數-protocal去掉來重啟所有節點。
◆ 標準的升級。如果上面兩種情況都不是,那麼恭喜你,你需要做的只是簡單的標准升級。即:停止舊版本的agent,然後啟動新版本的agent。PS:其實大多數情況都是標准升級。
升級節點的推薦順序是,先升級Server的Follower節點,再升級Server的Leader節點,最後升級所有Client的節點。
結語
在系統中引入服務注冊和發現,雖然是一發牽動全身的改造,但整個系統架構會因此受益,尤其是現代的微服務架構。相信很多系統都具備負載均衡、健康檢查、心跳檢測等能力,利用好服務發現,那麼彈性伸縮、服務高可用、灰度發布,自然是水到渠成的事情。
『柒』 如何搭建彈性高可用的持續集成環境
什麼是持續集成
隨著開發復雜度的不斷提高,團隊開發成員間如何更好地協同工作以確保開發的質量已經慢慢成為開發過程中不可迴避的問題。尤其是近些年來,敏捷(Agile) 在工程領域越來越紅火,如何能再不斷變化的需求中快速適應和保證的質量也顯得尤其的重要。
持續集成正是針對這一類問題的一種開發實踐。它倡導團隊開發成員必須經常集成他們的工作,甚至每天都可能發生多次集成。而每次的集成都是通過自動化的構建來驗證,包括自動編譯、發布和測試,從而盡快地發現集成錯誤,讓團隊能夠更快的開發內聚的。
持續集成的核心價值在於:
持續集成中的任何一個環節都是自動完成的,無需太多的人工干預,有利於減少重復過程以節省時間、費用和工作量;
持續集成保障了每個時間點上團隊成員提交的代碼是能成功集成的。換言之,任何時間點都能第一時間發現的集成問題,使任意時間發布可部署的成為了可能;
持續集成還能利於本身的發展趨勢,這點在需求不明確或是頻繁性變更的情景中尤其重要,持續集成的質量能幫助團隊進行有效決策,同時建立團隊對開發產品的信心。
持續集成的原則
業界普遍認同的持續集成的原則包括:
1)需要版本控制保障團隊成員提交的代碼不會導致集成失敗。常用的版本控制有 IBM Rational ClearCase、CVS、Subversion 等;
2)開發人員必須及時向版本控制庫中提交代碼,也必須經常性地從版本控制庫中更新代碼到本地;
3)需要有專門的集成伺服器來執行集成構建。根據項目的具體實際,集成構建可以被的修改來直接觸發,也可以定時啟動,如每半個小時構建一次;
4)必須保證構建的成功。如果構建失敗,修復構建過程中的錯誤是優先順序最高的工作。一旦修復,需要手動啟動一次構建。
持續集成系統的組成
由此可見,一個完整的構建系統必須包括:
一個自動構建過程,包括自動編譯、分發、部署和測試等。
一個代碼存儲庫,即需要版本控制來保障代碼的可維護性,同時作為構建過程的素材庫。
一個持續集成伺服器。
Jenkins是由Sun的前員工開發的,它的根基是java,但也可以用在非Java的項目里,比如PHP、Ruby on Rails、.NET。在.NET項目里,你除了Jenkins之外還要熟悉另一樣工具:MSBuild。Visual Studio用MSBuild構建.NET項目。MSBuild所需的僅僅是一個腳本,在腳本中指定要執行的target。項目中的.csproj和.vbproj 文件都是MSBuild腳本。下面的幾篇文章介紹如何使用Jenkins 快速搭建持續集成伺服器。
『捌』 ASP,JSP,JSP,python,Ruby,PERL 腳本語言的的特徵和優點
ASP
ASP(Active Server Pages)動態網頁,是微軟公司推出的一種用以取代CGI(Common Gateway Interface)通用網關介面的技術。我們可以通過ASP結合HTML語言、ASP指令和ActiveX元件以及資料庫等方面知識,使用自己的 Web 伺服器創建並運行動態的互動式 Web 站點。ASP的主要優點大概可以歸納如下:
1、您可以用 VBScript 或JScript創建腳本,同時結合HTML語言就能夠非常方便地完成網站的應用程序。對於 VBScript和JScript,使用哪種語言並不重要,Web 伺服器等同地處理這兩種語言,並向用戶的瀏覽器發送 HTML 格式化結果。
2、因為ASP採用Script語言(VBScript和JScript)就可以輕松編寫程序,因此這就大節省了網路設計人員又得重新學習一種新語言的時間。而且編寫ASP無須手工compile編譯或鏈接程序,可在伺服器端直接執行,這無疑是更加方便了我們的編寫過程。
3、使用普通的使用記事本之類的文本編輯器,即可進行編輯設計,如:Windows的記事本。建議不要用FontPage98或DreamWeaver2.0等主頁製作軟體修改,因為他們會破壞源代碼的。在這里我建議使用Cuteftp攜帶的CuteHTML編輯器進行編輯設計。
4、ASP是運行在伺服器端,所以我們無須擔心瀏覽器是否支持ASP所使用的編程語言,用戶端只要使用可執行HTML碼的瀏覽器,即可瀏覽Active Server Pages所設計的網頁內容。ASP在伺服器端運行,當程序執行完畢後,伺服器僅將執行的結果返回給客戶瀏覽器,這樣也就減輕了客戶端瀏覽器的負擔,大大提高了交互的速度。
5、ASP能與任何ActiveX scripting語言相容。除了可用VBScript或JScript語言來設計外,還通過plug-in的方式,使用由第三方所提供的其他腳本語言,譬如Perl、Tcl等。腳本引擎是處理腳本程序的COM(Component Object Model)組件。
6、Active Server Pages的程序代碼隱藏,在客戶端上僅可以看到由ASP輸出的動態HTML文件。因而可以避免所寫的源程序被他人剽竊,也提高了程序的安全性。
7、可使用伺服器端的腳本來產生客戶端的腳本。
8、面向對象(Object oriented),並可擴展ActiveX Server組件功能。
9、ActiveX Server Components(ActiveX伺服器組件)具有無限可擴充性。你可以使用任何編程語言來編寫你所需要的ActiveX Server 組件。
10、可以通過ADO(ActiveX Data Objects,微軟的一種新的數據訪問模型,是一種可以提供WEB頁面開發者輕松存取Internet的資料庫,並可以在用戶端實現網上立即、即時更新顯示的最新WEB頁面資料庫技術。)非常方便地訪問資料庫,從而使存取資料庫變得輕松容易。
JSP
JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標准,本文簡單介紹JSP及其優點。
JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標准。 JSP技術是用JAVA語言作為腳本語言的,JSP網頁為整個伺服器端的JAVA庫單元提供了一個介面來服務於HTTP的應用程序。
在傳統的網頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標記(tag),就構成了JSP網頁(*.jsp)。Web伺服器在遇到訪問JSP網頁的請求時,首先執行其中的程序片段,然後將執行結果以HTML格式返回給客戶。程序片段可以操作資料庫、重新定向網頁以及發送 email 等等,這就是建立動態網站所需要的功能。所有程序操作都在伺服器端執行,網路上傳送給客戶端的僅是得到的結果,對客戶瀏覽器的要求最低,可以實現無Plugin,無ActiveX,無Java Applet,甚至無Frame。
JSP的優點:
·對於用戶界面的更新,其實就是由 Web Server進行的,所以給人的感覺更新很快。
·所有的應用都是基於伺服器的,所以它們可以時刻保持最新版本。
·客戶端的介面不是很繁瑣,對於各種應用易於部署、維護和修改。
Python
首先就以語法而論,python完全沒有perl的靈活緊湊。只能說是中庸,感覺和basic,pascal,java差不多。一個簡單的問題,如果沒有相應的類庫,也要寫上一段臃腫的代碼。唯一的好處是代碼臃腫卻直白,容易看懂--和basic一樣。
類庫-比perl真的是大大不如,只能覆蓋很小的范圍,更不用說java了,很多需要的工作都要自己來做。
快速開發--說實話,我覺得用python和用C++效率差不多。誰能告訴我python效率比C++高在哪裡嗎?對於perl我則可以毫不猶豫的說,是它語法的靈活,對於字元處理能力的強大。
很多人說python適合大型工程,但更多的人說,他們用python不過是作為一種原型語言來使用。。這本身不就有點矛盾嗎?呵呵 而且對於腳本來完成大型工程,我本身就持懷疑態度。
覺得python唯一的優點在於嵌入C++使用時體現出來的:支持OO,語法容易看懂,有一個boost.python
不是想引起論戰,只是不吐不快
Ruby
Ruby是面向對象的編程語言,她追求的是「簡便快捷的面向對象編程」。Ruby是解釋型語言,因此不需編譯即可快捷地編程。同時Ruby具有類似Perl的強大的文本處理功能,她可並不只是個玩具,您可以用她來進行實用的編程。此外,您還可以很方便地使用C語言來擴展Ruby的功能,因此可以把她當作各種庫的前端來使用。
若您曾經「想要一種簡單的面向對象的語言」,或者認為「Perl的功能雖然好用,但它的語法真讓人受不了」,又或者覺得「lisp系列語言的思想不錯,但到處都是括弧真讓人討厭,最起碼算式應該按照通常的樣式書寫」。那麼,Ruby或許能讓您滿意。
歸納以來,Ruby有以下優點。
解釋器
Ruby是解釋型語言,其程序無需編譯即可輕松執行。
變數無類型
Ruby的變數沒有類型,因此不必為靜態的類型匹配而煩惱。相應地,錯誤檢查功能也變弱了。
不需要變數聲明
所有變數均無需聲明即可立即使用。另外,從變數名即可判斷出是何種變數(局部變數,全局變數,實例變數)。
語法簡單
語法比較簡單,類似Algol系語法。
不需要內存管理
具有垃圾回收(Garbage Collect,GC)功能,能自動回收不再使用的對象。
一切都是對象
Ruby從一開始就被設計成純粹的面向對象語言,因此以整數等基本數據類型為首的所有東西都是對象,它們都有發送信息的統一介面。
類,繼承,方法
Ruby當然具有面向對象語言的基本功能。
特殊方法
可向某對象添加方法。例如,可以把GUI按鈕被按下時的動作作為方法記述下來,還可以用它來進行原型庫(prototypebase)的面向對象編程(有人這么干吧)。
用模塊進行混合插入(Mixin)
Ruby故意舍棄了多重繼承,但擁有混合插入功能。使用模塊來超越類的界限來共享數據和方法等。
迭代器
該功能可以將循環抽象化。
閉包
可以將某過程片段對象化。對象化後的該過程片段就稱作閉包。
功能強大的字元串操作/正則表達式
以Perl為樣板創造出了功能強大的字元串操作和正則表達式檢索功能。
擁有超長整數
添加超長整數功能後,可以計算非常大的整數。例如計算400的階乘也輕而易舉。
具有錯誤處理功能
錯誤處理功能可以使您編寫代碼處理出錯情況。
可以直接訪問OS
Ruby可以使用(UNIX的)絕大部分的系統調用。單獨使用Ruby也可以進行系統編程。
動態載入
若OS支持的話,可以在運行時讀入對象文件。
但Ruby也有下列缺點。
Ruby On Rails,優點是不像Struts那樣需要大量的配置文件,一切都採取默認的配置,包括訪問路徑,uri等,而這也是它的缺點,不能靈活的配置。
見笑,小弟看了幾天,一點見解。
RERL
第一. Perl強大的正則表示式(regular expression)比對以及字元串操作使這個工作變得簡單而沒有其它語言能相比。Perl 非常擅長於切割,扭轉,絞,弄平,總結,以及其它的操作文字文件。生物資料大部分是文字文件:物種名稱,種屬關系,基因或序列的註解,評住,目錄查閱, 甚至DNA序列也是類文字的。現在互相交換以以文字文件的形式存在的但是具有不兼容的資料格式生物信息資料是一個很頭疼的問題,perl的這個方面的優點,可以在這一方面解決不少問題.
第二. Perl 能容錯。生物資料通常是不完全的,錯誤或者說誤差從數據的產生時候可能就產生了.另外生物數據的某項值欄位可以被忽略 ,可能是空著的,或是某個欄位也就是某個值,被預期要出現好幾次(舉例來說,一個實驗可能被重復的操作),或是資料以手動輸入所以有錯誤。Perl並不介意某個值是空的或是有奇怪的字元。正規表示式能夠被寫成取出並且更正錯誤的一般錯誤。當然這種彈性也可能是各壞處。
還有,Perl 是組件導向的。Perl 鼓勵人們將他們的軟體寫成小模組,不論是用 Perl 函式庫模組或是正統的 Unix 工具導向的方式。外部程序能夠輕易的被整合進 Perl 程序,靠著管道(pipe),系統呼叫,或是插座(socket)。Perl5 引進的動態載入器允許人們使用 C 的函式,或者讓整個編程過的函式庫,被使用在 Perl 直譯器中。最近的成果是世界各地的智能結晶都會收錄在一組模組裡面,稱為」bioPerl」(請參考 Perl Journal)
Perl 很容易去寫並且能很快開發完。直譯器讓你不需要宣告你所有的函數型式以及資料型態,當未定義的函式被呼叫時只會引起一個錯誤,除錯器也能與Emacs很好的合作並且讓你能用令人舒服的交談式的開發模式。
Perl 是良好的原型語言。因為它快而且臟(quick and dirty),用 Perl 建構新演算的原型比直接寫成一個快的需要編程過的語言來的有意義。有時候發現結果是Perl已經夠快了,所以程序變不需要移植;更多情形是某人可以用C寫一個小的核心程序,編程成動態載入的模組或是外部的可執行程序,然後其它的部分用Perl來完成。這部分的例子可以參考 http://waldo.wi.mit.e/ftp/distribution/software/rhmapper/)。
有一點要強調的是, Perl 在寫作網頁 CGI 方面非常優秀,而且重要性隨著各實驗將資料發表在網路上之後更是增加。我在基因中心環境下使用 Perl 的經驗從頭到尾都是值得稱贊的。然而我發現 Perl 也有它的問題。它的鬆散的程序風格導致許多錯誤,這些在其它嚴格的語言都會被抓到。舉例來說,Perl 讓你在一個變數在被指定值之前就能使用,這是個很有用的特性當你需要的時候,但是卻是一個災難當你單純的打錯了辨識名稱。同樣的,很容易忘記要宣告一個函式裡面的區域變數,導致不小心地改到了全域變數。
最後,Perl 的不足之處在於建立圖形化的使用者介面。雖然 Unix忠實信徒所有事情都能在命令模式下完成,大多數的終端使用者卻不同意。視窗,選單,彈跳的圖案已經變成了必要的時尚。
直到最近,直到最近,Perl 的使用者界面(GUI)發展仍是不成熟的。然而 Nick Ing-Simmons的努力使得 perlTK(pTK) 的整合使得以 Perl 驅動的使用者介面在 X-window上面成為可能。我的夥伴和我曾經在 MIT 基因中心寫過幾個 pTK 為基礎的應用程序供互連網使用者,而且從頭到尾都是一個令人滿意的經驗。其它的基因中心則更大規模的使用 pTK,在某些地方已經成為主要的生產力。
『玖』 LoadRunner腳本是什麼語言
LoadRunner腳本是C語言。
C語言是一門面向過程的計算機編程語言,與C++、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速,工作量小、可讀性好,易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%~20%。
(9)彈性腳本擴展閱讀:
C語言的特有特點:
1、C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。
2、C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
3、不同的變數類型可以用結構體(struct)組合在一起。
4、只有32個保留字(reserved keywords),使變數、函數命名有更多彈性。
5、部份的變數類型可以轉換,例如整型和字元型變數。
6、通過指針(pointer),C語言可以容易的對存儲器進行低級控制。
7、預編譯處理(preprocessor)讓C語言的編譯更具有彈性。