當前位置:首頁 » 編程軟體 » 腳本同構

腳本同構

發布時間: 2022-06-05 13:07:57

A. 怎麼把oracle數據移植到mysql

建議還是使用MySQL官方提供的一套工具,以前分開的幾個軟體工具,目前,已經集成在一個MySQL Workbench (GUI Tools)的一個工具集中。該工具集既有基於GPL使用協議的社區版本,也有基於Commercial License商業許可使用權的標准版本,整個工具中包含了資料庫建模與設計、MySQL程序開發集成環境、資料庫管理工具,還有就是Migration Toolkits工具,用於將其它資料庫源,包含Oralce、SQL Server、DB2、Sybase、PostgreSQL、Access、Excel等等遷移到MySQL的一個工具,按照這個工具要求的幾個步驟,就可以比較輕松的把相關資料庫源的資料庫結構和數據導入到MySQL資料庫系統中,如果涉及到資料庫端的一些程序,如存儲過程、觸發器等,可能還需要手動做一些遷移工作;針對每一種資料庫的遷移,MySQL也都給出了一份技術指導的白皮書,有興趣的朋友可以聯系我。

B. 怎麼實現兩個資料庫的同步

同步兩個SQLServer資料庫

如何同步兩個sqlserver資料庫的內容?程序代碼可以有版本管理cvs進行同步管理,可是資料庫同步就非常麻煩,只能自己改了一個後再去改另一個,如果忘記了更改另一個經常造成兩個資料庫的結構或內容上不一致.各位有什麼好的方法嗎?

一、分發與復制

用強制訂閱實現資料庫同步操作. 大量和批量的數據可以用資料庫的同步機制處理:

//

說明:

為方便操作,所有操作均在發布伺服器(分發伺服器)上操作,並使用推模式

在客戶機器使用強制訂閱方式。

二、測試通過

1:環境

伺服器環境:

機器名稱: zehuadb

操作系統:windows 2000 server

資料庫版本:sql 2000 server 個人版

客戶端

機器名稱:zlp

操作系統:windows 2000 server

資料庫版本:sql 2000 server 個人版

2:建用戶帳號

在伺服器端建立域用戶帳號

我的電腦管理->本地用戶和組->用戶->建立

username:zlp

userpwd:zlp

3:重新啟動伺服器mssqlserver

我的電腦->控制面版->管理工具->服務->mssqlserver 服務

(更改為:域用戶帳號,我們新建的zlp用戶 .zlp,密碼:zlp)

4:安裝分發伺服器

a:配置分發伺服器

工具->復制->配置發布、訂閱伺服器和分發->下一步->下一步(所有的均採用默認配置)

b:配置發布伺服器

工具->復制->創建和管理發布->選擇要發布的資料庫(sz)->下一步->快照發布->下一步->選擇要發布的內容->下一步->下一步->下一步->完成

c:強制配置訂閱伺服器(推模式,拉模式與此雷同)

工具->復制->配置發布、訂閱伺服器和分發->訂閱伺服器->新建->sql server資料庫->輸入客戶端伺服器名稱(zlp)->使用sql server 身份驗證(sa,空密碼)->確定->應用->確定

d:初始化訂閱

復制監視器->發布伺服器(zehuadb)->雙擊訂閱->強制新建->下一步->選擇啟用的訂閱伺服器->zlp->下一步->下一步->下一步->下一步->完成

5:測試配置是否成功

復制監視器->發布衿?zehuadb)->雙擊sz:sz->點狀態->點立即運行代理程序

查看:

復制監視器->發布伺服器(zehuadb)->sz:sz->選擇zlp:sz(類型強制)->滑鼠右鍵->啟動同步處理

如果沒有錯誤標志(紅色叉),恭喜您配置成功

6:測試數據

在伺服器執行:

選擇一個表,執行如下sql: insert into wq_newsgroup_s select '測試成功',5

復制監視器->發布伺服器(zehuadb)->sz:sz->快照->啟動代理程序 ->zlp:sz(強制)->啟動同步處理

去查看同步的 wq_newsgroup_s 是否插入了一條新的記錄

測試完畢,通過。

7:修改資料庫的同步時間,一般選擇夜晚執行資料庫同步處理

(具體操作略) :d

/*

注意說明:

伺服器一端不能以(local)進行數據的發布與分發,需要先刪除注冊,然後新建注冊本地計算機名稱

卸載方式:工具->復制->禁止發布->是在"zehuadb"上靜止發布,卸載所有的資料庫同步配置伺服器

注意:發布伺服器、分發伺服器中的sqlserveragent服務必須啟動

採用推模式: "d:microsoft sql servermssql epldataunc" 目錄文件可以不設置共享

拉模式:則需要共享~!

*/

少量資料庫同步可以採用觸發器實現,同步單表即可。

三、配置過程中可能出現的問題

在sql server 2000里設置和使用資料庫復制之前,應先檢查相關的幾台sql server伺服器下面幾點是否滿足:

1、mssqlserver和sqlserveragent服務是否是以域用戶身份啟動並運行的(.administrator用戶也是可以的)

如果登錄用的是本地系統帳戶local,將不具備網路功能,會產生以下錯誤:

進程未能連接到distributor '@server name'

(如果您的伺服器已經用了sql server全文檢索服務, 請不要修改mssqlserver和sqlserveragent服務的local啟動。

會照成全文檢索服務不能用。請換另外一台機器來做sql server 2000里復制中的分發伺服器。)

修改服務啟動的登錄用戶,需要重新啟動mssqlserver和sqlserveragent服務才能生效。

2、檢查相關的幾台sql server伺服器是否改過名稱(需要srvid=0的本地機器上srvname和datasource一樣)

在查詢分析器里執行:

use master

select srvid,srvname,datasource from sysservers

如果沒有srvid=0或者srvid=0(也就是本機器)但srvname和datasource不一樣, 需要按如下方法修改:

use master

go

-- 設置兩個變數

declare @serverproperty_servername varchar(100),

@servername varchar(100)

-- 取得windows nt 伺服器和與指定的 sql server 實例關聯的實例信息

select @serverproperty_servername = convert(varchar(100), serverproperty('servername'))

-- 返回運行 microsoft sql server 的本地伺服器名稱

select @servername = convert(varchar(100), @@servername)

-- 顯示獲取的這兩個參數

select @serverproperty_servername,@servername

--如果@serverproperty_servername和@servername不同(因為你改過計算機名字),再運行下面的

--刪除錯誤的伺服器名

exec sp_dropserver @server=@servername

--添加正確的伺服器名

exec sp_addserver @server=@serverproperty_servername, @local='local'

修改這項參數,需要重新啟動mssqlserver和sqlserveragent服務才能生效。

這樣一來就不會在創建復制的過程中出現18482、18483錯誤了。

3、檢查sql server企業管理器裡面相關的幾台sql server注冊名是否和上面第二點里介紹的srvname一樣

不能用ip地址的注冊名。

(我們可以刪掉ip地址的注冊,新建以sql server管理員級別的用戶注冊的伺服器名)

這樣一來就不會在創建復制的過程中出現14010、20084、18456、18482、18483錯誤了。

4、檢查相關的幾台sql server伺服器網路是否能夠正常訪問

如果ping主機ip地址可以,但ping主機名不通的時候,需要在

winntsystem32driversetchosts (win2000)

(win2003)

文件里寫入資料庫伺服器ip地址和主機名的對應關系。

例如:

127.0.0.1 localhost

192.168.0.35 oracledb oracledb

192.168.0.65 fengyu02 fengyu02

202.84.10.193 bj_db bj_db

或者在sql server客戶端網路實用工具里建立別名,例如:

5、系統需要的擴展存儲過程是否存在(如果不存在,需要恢復):

sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll'

go

sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll'

go

sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll'

go

sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

接下來就可以用sql server企業管理器里[復制]-> 右鍵選擇 ->[配置發布、訂閱伺服器和分發]的圖形界面來配置資料庫復制了。

下面是按順序列出配置復制的步驟:

1、建立發布和分發伺服器

[歡迎使用配置發布和分發向導]->[選擇分發伺服器]->[使"@servername"成為它自己的分發伺服器,sql server將創建分發資料庫和日誌]

->[制定快照文件夾]-> [自定義配置] -> [否,使用下列的默認配置] -> [完成]

上述步驟完成後, 會在當前"@servername" sql server資料庫里建立了一個distribion庫和 一個distributor_admin管理員級別的用戶(我們可以任意修改密碼)。

伺服器上新增加了四個作業:

[ 代理程序歷史記錄清除: distribution ]

[ 分發清除: distribution ]

[ 復制代理程序檢查 ]

[ 重新初始化存在數據驗證失敗的訂閱 ]

sql server企業管理器里多了一個復制監視器, 當前的這台機器就可以發布、分發、訂閱了。

我們再次在sql server企業管理器里[復制]-> 右鍵選擇 ->[配置發布、訂閱伺服器和分發]

我們可以在 [發布伺服器和分發伺服器的屬性] 窗口-> [發布伺服器] -> [新增] -> [確定] -> [發布資料庫] -> [事務]/[合並] -> [確定] -> [訂閱伺服器] -> [新增] -> [確定]

把網路上的其它sql server伺服器添加成為發布或者訂閱伺服器.

新增一台發布伺服器的選項:

我這里新建立的jin001發布伺服器是用管理員級別的資料庫用戶test連接的,

到發布伺服器的管理鏈接要輸入密碼的可選框, 默認的是選中的,

在新建的jin001發布伺服器上建立和分發伺服器fengyu/fengyu的鏈接的時需要輸入distributor_admin用戶的密碼。到發布伺服器的管理鏈接要輸入密碼的可選框,也可以不選,也就是不需要密碼來建立發布到分發伺服器的鏈接(這當然欠缺安全,在測試環境下可以使用)。

2、新建立的網路上另一台發布伺服器(例如jin001)選擇分發伺服器

[歡迎使用配置發布和分發向導]->[選擇分發伺服器]

-> 使用下列伺服器(選定的伺服器必須已配置為分發伺服器) -> [選定伺服器](例如fengyu/fengyu)

-> [下一步] -> [輸入分發伺服器(例如fengyu/fengyu)的distributor_admin用戶的密碼兩次]

-> [下一步] -> [自定義配置] -> [否,使用下列的默認配置]

-> [下一步] -> [完成] -> [確定]

建立一個資料庫復制發布的過程:

[復制] -> [發布內容] -> 右鍵選擇 -> [新建發布]

-> [下一步] -> [選擇發布資料庫] -> [選中一個待發布的資料庫]

-> [下一步] -> [選擇發布類型] -> [事務發布]/[合並發布]

-> [下一步] -> [指定訂閱伺服器的類型] -> [運行sql server 2000的伺服器]

-> [下一步] -> [指定項目] -> [在事務發布中只可以發布帶主鍵的表] -> [選中一個有主鍵的待發布的表]

->[在合並發布中會給表增加唯一性索引和 rowguidcol 屬性的唯一標識符欄位[rowguid],默認值是newid()]

(添加新列將: 導致不帶列列表的 insert 語句失敗,增加表的大小,增加生成第一個快照所要求的時間)

->[選中一個待發布的表]

-> [下一步] -> [選擇發布名稱和描述] ->

-> [下一步] -> [自定義發布的屬性] -> [否,根據指定方式創建發布]

-> [下一步] -> [完成] -> [關閉]

發布屬性里有很多有用的選項:設定訂閱到期(例如24小時)

設定發布表的項目屬性:

常規窗口可以指定發布目的表的名稱,可以跟原來的表名稱不一樣。

下圖是命令和快照窗口的欄目

( sql server 資料庫復制技術實際上是用insert,update,delete操作在訂閱伺服器上重做發布伺服器上的事務操作

看文檔資料需要把發布資料庫設成完全恢復模式,事務才不會丟失

但我自己在測試中發現發布資料庫是簡單恢復模式下,每10秒生成一些大事務,10分鍾後再收縮資料庫日誌,

這期間發布和訂閱伺服器上的作業都暫停,暫停恢復後並沒有丟失任何事務更改 )

發布表可以做數據篩選,例如只選擇表裡面的部分列:

例如只選擇表裡某些符合條件的記錄, 我們可以手工編寫篩選的sql語句:

發布表的訂閱選項,並可以建立強制訂閱:

成功建立了發布以後,發布伺服器上新增加了一個作業: [ 失效訂閱清除 ]

分發伺服器上新增加了兩個作業:

[ jin001-dack-dack-5 ] 類型[ repl快照 ]

[ jin001-dack-3 ] 類型[ repl日誌讀取器 ]

上面藍色字的名稱會根據發布伺服器名,發布名及第幾次發布而使用不同的編號

repl快照作業是sql server復制的前提條件,它會先把發布的表結構,數據,索引,約束等生成到發布伺服器的os目錄下文件

(當有訂閱的時候才會生成, 當訂閱請求初始化或者按照某個時間表調度生成)

repl日誌讀取器在事務復制的時候是一直處於運行狀態。(在合並復制的時候可以根據調度的時間表來運行)

建立一個資料庫復制訂閱的過程:

[復制] -> [訂閱] -> 右鍵選擇 -> [新建請求訂閱]

-> [下一步] -> [查找發布] -> [查看已注冊伺服器所做的發布]

-> [下一步] -> [選擇發布] -> [選中已經建立發布伺服器上的資料庫發布名]

-> [下一步] -> [指定同步代理程序登錄] -> [當代理程序連接到代理伺服器時:使用sql server身份驗證]

(輸入發布伺服器上distributor_admin用戶名和密碼)

-> [下一步] -> [選擇目的資料庫] -> [選擇在其中創建訂閱的資料庫名]/[也可以新建一個庫名]

-> [下一步] -> [允許匿名訂閱] -> [是,生成匿名訂閱]

-> [下一步] -> [初始化訂閱] -> [是,初始化架構和數據]

-> [下一步] -> [快照傳送] -> [使用該發布的默認快照文件夾中的快照文件]

(訂閱伺服器要能訪問發布伺服器的repldata文件夾,如果有問題,可以手工設置網路共享及共享許可權)

-> [下一步] -> [快照傳送] -> [使用該發布的默認快照文件夾中的快照文件]

-> [下一步] -> [設置分發代理程序調度] -> [使用下列調度] -> [更改] -> [例如每五分鍾調度一次]

-> [下一步] -> [啟動要求的服務] -> [該訂閱要求在發布伺服器上運行sqlserveragent服務]

-> [下一步] -> [完成] -> [確定]

成功建立了訂閱後,訂閱伺服器上新增加了一個類別是[repl-分發]作業(合並復制的時候類別是[repl-合並])

它會按照我們給的時間調度表運行資料庫同步復制的作業。

3、sql server復制配置好後, 可能出現異常情況的實驗日誌:

1.發布伺服器斷網,sql server服務關閉,重啟動,關機的時候,對已經設置好的復制沒有多大影響

中斷期間,分發和訂閱都接收到沒有復制的事務信息

2.分發伺服器斷網,sql server服務關閉,重啟動,關機的時候,對已經設置好的復制有一些影響

中斷期間,發布伺服器的事務排隊堆積起來

(如果設置了較長時間才刪除過期訂閱的選項, 繁忙發布資料庫的事務日誌可能會較快速膨脹),

訂閱伺服器會因為訪問不到發布伺服器,反復重試

我們可以設置重試次數和重試的時間間隔(最大的重試次數是9999, 如果每分鍾重試一次,可以支持約6.9天不出錯)

分發伺服器sql server服務啟動,網路接通以後,發布伺服器上的堆積作業將按時間順序作用到訂閱機器上:

會需要一個比較長的時間(實際上是生成所有事務的insert,update,delete語句,在訂閱伺服器上去執行)

我們在普通的pc機上實驗的58個事務100228個命令執行花了7分28秒.

3.訂閱伺服器斷網,sql server服務關閉,重啟動,關機的時候,對已經設置好的復制影響比較大,可能需要重新初試化

我們實驗環境(訂閱伺服器)從18:46分意外停機以, 第二天8:40分重啟動後, 已經設好的復制在8:40分以後又開始正常運行了, 發布伺服器上的堆積作業將按時間順序作用到訂閱機器上, 但復制管理器里出現快照的錯誤提示, 快照可能需要重新初試化,復制可能需要重新啟動.(我們實驗環境的機器並沒有進行快照初試化,復制仍然是成功運行的)

4、刪除已經建好的發布和定閱可以直接用delete刪除按鈕

我們最好總是按先刪定閱,再刪發布,最後禁用發布的順序來操作。

如果要徹底刪去sql server上面的復制設置, 可以這樣操作:

[復制] -> 右鍵選擇 [禁用發布] -> [歡迎使用禁用發布和分發向導]

-> [下一步] -> [禁用發布] -> [要在"@servername"上禁用發布]

-> [下一步] -> [完成禁用發布和分發向導] -> [完成]

我們也可以用t-sql命令來完成復制中發布及訂閱的創建和刪除, 選中已經設好的發布和訂閱, 按屬標右鍵可以[生成sql腳本]。(這里就不詳細講了, 後面推薦的網站內有比較詳細的內容)

當你試圖刪除或者變更一個table時,出現以下錯誤

server: msg 3724, level 16, state 2, line 1

cannot drop the table 'object_name' because it is being used for replication.

比較典型的情況是該table曾經用於復制,但是後來又刪除了復制。

處理辦法:

select * from sysobjects where replinfo >'0'

sp_configure 'allow updates', 1

go

reconfigure with override

go

begin transaction

update sysobjects set replinfo = '0' where replinfo >'0'

commit transaction

go

rollback transaction

go

sp_configure 'allow updates', 0

go

reconfigure with override

go

C. jQuery $(window).scroll事件出現問題

web前端開發 20 年變遷史,讓我們來看看這20年裡,web前端究竟經歷了哪些變革,web前端在這20年裡又有哪些突破和成就,怎麼樣看待這20年的web前端開發!

1990年,第一個Web瀏覽器誕生,而WWW的誕生直接拉開前端史的序幕。

從靜態頁面到Java,從依賴後端到自主開發,前端開發者從不被重視的「頁面仔」逆襲為如今很多前端工程師的薪資比後端還高,從前端技術由國外開發者主導到如今國內自主產生的小程序技術,我們走了20年。

了解web前端:http://www.cnite.cn/qianan/

作者 | 司徒正美

責編 | 伍杏玲

1990 年,第一個Web瀏覽器的誕生;1991 年,WWW誕生,這標志著前端技術的開始。

在這將近20年的前端發展史中,我們經歷了從最早的純靜態頁面,到Java跨時代的誕生;從PC端到移動端;從依賴後端到前端可自由打包開發;從早期的網景Navigator瀏覽器到現在各家瀏覽器百花齊放……

我們經歷了前端的洪荒時代、Prototype時代、jQuery時代 、後jQuery時期、三大框架割據時代,這其中均是由國外開發者主導,直到如今的小程序時代,才是中國開發者獨創的。

這是漫長的技術儲備下的成果,最終促成了良好的技術成長收獲。期間的前端發展之路,崎嶇艱難:

洪荒時代(1990~1994年)

在1990~1994年期間,前端界發生的大事有:WWW(World Wide Web)的誕生、瀏覽器的誕生、Java的誕生,沒有專業的前端,頁面全是由後端開發的。

1990年,萬維網之父蒂姆·伯納斯-李(Tim Berners-Lee)在NeXT電腦上發明了第一個Web瀏覽器。

1991年8月6日,Tim在alt.hypertext新聞組貼出了一份關於World Wide Web的簡單摘要,這標志了Web頁面在Internet上的首次登場。

最早的Web主要被一幫科學家們用來共享和傳遞信息,全世界的Web伺服器也就幾十台。由於僅是用來傳遞信息,從可視化方式或從傳遞數量上看,僅比電報強一點點。

當時還沒有Java,用的是純靜態的頁面。

1993年,CGI(Common Gateway Interface)出現了,人們可以在後端動態生成頁面。

Perl由於跨操作系統和易於修改的特性成為CGI的主要編寫語言。當然,CGI也支持其他支持標准輸入輸出和環境變數的語言編寫,比如Shell腳本、C/C++語言,只要符合介面標准即可。

但顯然,頁面的內容更新完全由後端生成,這帶來一個明顯的缺憾:每次更新都要整頁刷新,加上早期的網速情況,這個操作是非常慢的。因此針對這情況,人們從多方面著手改進:編寫語言的升級、瀏覽器的升級、HTML的升級。

1994年,網景公司成立,發布了第一款商業瀏覽器Navigator。自從這款瀏覽器面世後,微軟推出IE瀏覽器。雖說有競爭才有發展,但這也埋下了Java分裂的種子。

(1994 年,網景瀏覽器的截圖)

同年,PHP誕生。PHP能將動態的內容嵌入到HTML中,提升了編寫頁面的效率與可讀性,其性能也比一般的CGI高。PHP的界定符、循環語句等的發明,深刻影響了後來的ASP、JSP,乃致後來的Java前端模板引擎。

1994年10月,W3C小組也成立了,他們負責HTML的發展路徑,其宗旨是通過促進通用協議的發展。

待這一切就緒後, Java於1995年誕生了。

傳聞,網景工程師布蘭登·艾克(Brendan Eich)只花了10天時間設計出 Java 語言,近乎上帝七日創造世界那麼高效。但也因為工期太短的緣故,導致許多瑕疵,因此一直被正統傳序員所嫌棄,直到Ajax的出世,才讓人們找到理由忍受它的畸形。早期的瀏覽器都配有一個選項,用來禁止Java語言運行。

Java主要語言特徵[1]:

借鑒C語言的基本語法;

借鑒Java語言的數據類型和內存管理;

借鑒Scheme語言,將函數提升到"第一等公民"(first-class citizen)的地位;

借鑒Self語言,使用基於原型(Prototype)的繼承機制。

時下,靜態語言大行其道,類與介面被證明是構建大工程的最佳實踐,人們想不出沒有類的語言如何編寫業務。因此當時的微軟也打造了另一門運行於瀏覽器的語言——VB。

如果繼續細探Java的能力,你會發現它早期真的非常空洞,一門沒有靈魂的語言,沒有包管理機制,也沒有像Java與C++那樣的打輔助用的SDK,內置的方法也屈指可數。比如說數組方法,早期只有push、pop、shift、unshift、splice、slice、sort、reverse、concat、join等操作。動態調用方面,Function的apply、call操作還沒有出現!

早年的偷懶,導致後來不得不補課:到了2019年,數組上的原型方法,是原來3倍。

除了方法缺乏,還有性能問題,大家討論用eval還是Function,用哪種循環方式,用parseInit還是~~,就是為了那一點點的性能提升。例如jsperf.com,就是一個專門研究Java性能的網站。

因此Java誕生後,其兩大任務就是完善語言特性與提高性能。這兩座大山分別由著名的prototype.js與jQuery來搬掉。

在搬掉之前,前端界還有一個曲折實踐——第一次瀏覽器戰爭,並由其發展而來UA嗅深技術。

瀏覽器戰爭(1994~2005年)

瀏覽器戰爭一共打了三場,IE瀏覽器vs網景瀏覽器、IE瀏覽vs火狐瀏覽器、IE瀏覽器vs谷歌瀏覽器。

第一場瀏覽器之戰打得尤其激烈。

微軟的IE瀏覽器發布於1994年,但此時的網景已經佔領絕對優勢。微軟在落後的情況,反編譯Netscape的源碼,推出IE與J。但是由於Bug非常多,大家不願意為IE開發網站,因此發掘出UA,專門過濾掉IE瀏覽器。

UA即Navigator.userAgent ,是用一個字元串來記錄用戶當前運行在什麼操作系統與瀏覽器中。當前IE3的UA是這樣的:

Mozilla/2.0 (compatible; MSIE 3.02; Windows 95)

程序判斷UA信息,假如發現當前運行的環境是IE瀏覽器的話,就提示用戶用網景瀏覽器打開。因此微軟不得不讓自己的UA盡量偽裝成網景的UA,欺騙用於檢測UA的腳本,達到IE瀏覽器可以跑這些網站的目的。

最終,第一次瀏覽器之戰以微軟勝利,Netscape被美國在線收購,而落下帷幕。

第一次瀏覽器戰爭年代非常久遠了,但其結局告訴我們,其實技術強弱並不重要。那時技術保護並沒有這么重視,否則微軟的行為可能會被告(谷歌的openSDK僅抄襲幾十行代碼,被Oracle公司訴訟賠88億)。

第一次瀏覽器戰爭帶來了一個問題:盡管當時有ECMA-262(Java規範文檔)與W3C(HTML與CSS的規範文檔),微軟卻沒有照規范來實現Java、HTML與CSS,導致前端兼容問題的誕生。所以CSS Hack、瀏覽器判定、特性偵測,這些技術就應運而生。

這個時代最著名的人物是Dean Edwrad,他是最早的近乎完美解決事件綁定的兼容性大神,其addEvent()內置於jQuery最早的版本中。jQuery的作者John Resig看到其超強的技藝,最後放棄推出大而全的框架,專攻選擇器引擎。

Dean Edwrad的IE7.js、IE8.js是早期處理瀏覽器兼容的良葯,可以說是一切Polyfill[2]的起源。他寫了大量的Hack, 比如在IE如何測量元素的寬高,許多操作DOM的兼容。

這時期太早,中國基本沒有參與這次瀏覽器戰爭。

Prototype時期(2005~2009年)

Prototype是Sam Stephenson寫的一個非常優雅的Java基礎類庫。他是Ruby的大牛,因此Prototype的許多方法名都是來自Ruby界。

Sam Stephenson最大的貢獻是發掘了Prototype與創造了Function.prototype.bind,在數組上也寫了一大堆方法,其中許多被標准化了。

同期的MooTools也是Prototype的方法,當時,大家還在前端論壇為這個爭吵。還有前端工程師喜歡在當時很出名的前端聚集地——藍色理想(現淪為設計師網站)上,討論如何扒腳本、分享彈層、日歷等小組件的技術,這在當時已經是非常了不起的事。

Prototype當時還解決兩大問題:動畫特效與Ajax請求。動畫特效是由aculous提供,我們現在所熟知的各種緩動函數,各種特效的命名與大致的運行形態,都是由aculous確定下來的。

在早期,谷歌就開始使用iframe實現頁面刷新。

2005 年2月,傑西·詹姆士·賈瑞特(JesseJamesGarrett)發表了一篇名為《Ajax:一種Web應用程序開發的新方法》的文章後,Ajax被挖掘出,大家才開始重視起這技術的應用。

例如IE下的ActiveXObject("Microsoft.XMLHTTP"),這是IE創建Ajax引擎的。假如當時有工程師開發出一個核心庫,如果不包含Ajax的封裝,便不好意思發布出來。

一些Ajax書藉

當時前端開發模式是選擇一個核心庫,找一些組件,或者扒別人的腳本進行開發

Prototype的源碼挺好理解的,代碼量也少,只有5000多行,裡面的每個方法也很易扒出來,因此一些大公司總有高手能創造自己的Prototype。

但前端開發還是離不開後端,因為前端沒有模塊機制,當時我們需要用PHP進行打包。打包是雅虎34條軍規之一,可以減少請求數。打包的同時也可以進行混淆,防止代碼小偷來窺探。

N年前,前端面試必問的題目:

模塊化的雛型, 在注釋中標注它的依賴

這個時期,還沒有前後端分離,可國內一些帶著深厚後端背景的高手已經入場。

jQuery 時期(2009~2012年)

2006年,jQuery發布,它當時的競爭對手很多:Dojo、Prototype、ExtJS、MooTools。

所以那時jQuery的宣傳口號僅能說是它的性能上升了100%、200%、300%。直到2009年,Sizzle選擇器引擎研發成功,jQuery才取得壓倒性的優勢。

當時前端界首要面對的是瀏覽器兼容性問題,jQuery在處理DOM兼容上真是知微見著, 發掘出大量的DOM/BOM兼容方案(例如Dean Edwrad的addEvent(), IE的px轉換方案,domReady的doScroll方案,globalEval的兼容方案等)

jQuery也打破了前端開發者的編程思維,之前是按照後端的開發思路來的:做一個業務就先封裝一個類,有了這個類後,再想辦法傳入一個DOM,然後再通過類方法操作DOM。而jQuery是DOM為中心,開發者可以選一個或多個DOM,變成jQuery對象,然後進行鏈式操作。當時為了改變用戶的思維,國內的高手寫了不少文章來引導大家。

其次,開發者們已開始注重前後端分離,並要求不能污染Object原型對象,不能污染window全局變數。這樣,jQuery只佔用兩個全局變數。

再次,jQuery非常輕量級,採用Dean Edwards編寫的Packer壓縮後, 大小不到30KB。並且裡面實現得非常精妙,以令人瞠目的手段解決各種兼容痼疾。

為了學習這些技巧,高手們翻了一遍遍jQuery的源碼,所以網上有大量關於其源碼詳解的書藉。甚至前端工程師在面試時也會被考到jQuery的源碼實現,這樣,jQuery在國內更加流行。

jQuery的流行間接帶來以下的發展:

促使人們對CSS1~CSS3選擇器的學習

促進了瀏覽器原生選擇器引擎document.querySelectorAll、Element.matches的誕生

提高人們對domReady(DOMContentLoaded事件)的認識

促進了Promise與requestAnimateFrame 的誕生

最重要的是降低前端門檻,讓更多人進入這行業,前端工程師的隊伍越來越壯大。

這樣的話,不斷涌現出優秀的工程師,他們創造了大量jQuery插件與UI庫。為後jQuery時代,人們研發前端模塊載入、統一非同步機制、 打造大型MVC框架, 甚至伸向後端,接管打包腳本而發明Node.js,來騰出大量時間。

這個時期涌現了大量jQuery-like的庫,其中最著名的是Zepto.js。Zepto的出現也標志著我們進入移動互聯網時代。那時配套出的著名庫還有iScroll、fastclick、Lazy Load、Modernizr、fullPage。

jQuery的鏈式操作風麾一時,也帶來許多問題,當Ajax出現依賴時,就不可避免就出現回調地獄。因此針對這方面的討論,誕生Deffered與Promise。有關回調地獄的討論,在後來講Node.js非同步處理時,將會再一次熱烈地討論。因此太陽下沒有新事,我們總是遇到相似的問題。

jQuery如此多的選擇器也法維護,隨著越來越多人涌現這行業,頁面的交互也越來越復雜,從Web Page向Web App進化,新的趨勢帶來新的開發方式。

後jQuery時期(2012~2016年)

這時期以RequireJS的誕生為起點,以RN的出現結束。同時解決了前端的模塊定義問題,模塊打包問題(通過Node.js),Java不依靠其他語言創造了一套自己的工具鏈。

jQuery的出現讓前端工程師開發更加輕松,假如工程師想實現一個功能,現搜索出一個jQuery插件來實現。那時候大家在前端網站就整天介紹jQuery插件,很少討論一些底層的實現。

前端工程師通常編寫一個頁面,會引入十多個乃至幾十個jQuery插件,頁面上塞滿了標簽。眾所周知,瀏覽器是單線程,的載入,會影響到頁面的解析與呈現,導致著名的白屏問題(當時前端用力過勐,body中的所有東西都是動態生成的)。

jQuery另一個問題是全局污染,由於插件的質量問題,或者開發的素質問題,這已經是IIEF模塊或命名空間等傳統手段無法解決了。

於是一些優秀的前端工程師們決定從取經後端,引入模塊機制。早期,這種模塊機制在Dojo、EXT這些框架中都是內置的,但是顯然說服不了另一個框架的用戶用對方的模塊機制,於是有人立志要統一這種模塊定義方式,成立了CommonJS。

但不料,CommonJS內部也有派系,誰也說不服對方。終於有一個人忍不住自己獨立開發出RequireJS,其模塊規范即為AMD。 AMD最大的優勢是它支持各種插件,且簡單明了,並且提供shim機制載入以非AMD規范編寫的Java代碼。

但在CommonJS誕生很久一段時間後,在後端的Node.js出現時才有用武之地。而國內,則流行另一種規范風格,背靠阿里的大旗,有人推出了SeaJS,號稱其規范為CMD。其實無論國內還是國外,都產生許多模塊載入器,但最後還是被淘汰了,規范一個就夠了,不宜過多。

但是前端工程師的創造力就是這么驚人,從無到有,再到泛濫成災,一年足矣。這可能與前端代碼是開源的原因。最後有人統一了前兩種規范(AMD、Node.js模塊),同時還支持老式的「全局」變數規范。

自此,Java開發模式煥然一身了,大家只要在代碼外麵包一層就可以全世界通用,不用提心全局污染的問題。

其次,jQuery開發者需要解決大段HTML的生成問題,之前jQuery有$.html, $.append, $before等方法,可以將一大段符合HTML結構的字元串轉換成DOM再插入到頁面上。

但現在我們想分離出來,讓HTML獨立到不同的文件中,然後插數據,這就是前端模板。前端模板的情況與模板規范一樣,從沒有到多如芝麻的境地。這時篩選一個好用且性能高的模板是一件讓前端工程師頭疼的問題,那時網上有許多評測文章來介紹它們。

前端模板技術可以用一個公式來描述:

HTML = template(vars)

有了前端模板後,又誕生了前端路由,基於它們,人們發明一個新詞彙SPA。作為這個時代的尾聲,來自Ruby界的高手Ryan Dahl發明了Node.js。 前端工程師們歡唿:可以不用傳統的後端就能自己寫一個網站了!

Node.js的發展就不詳述上,很快它就冒出海量模塊、路由、狀態管理、資料庫、MVC框架都有了。這時,前端就缺自己的MVC框架了。Node.js轉眼就十歲生日了。

著名的MEAN架構,是Java全棧開發的先鋒。當時涌現了大量的MVC與MVVM框架。最先火起來的是Backbone.js,使用純正的MVC模型, Backbone.js是jQuery最後的支持者,它強依賴於jQuery。

Backbone.js的作者還搞了另一套編譯語言Coffee, 裡面的箭頭函數、類機制、 解構賦值等語法糖都深深影響了後來的ES6。

接著下來是谷歌的Angular,微軟的Knockout.js,蘋果的Ember.js這三個MVVM框架,MVVM就是比MVC多一個數據綁定功能,但這數據綁定功能是非常難實現。Knockout是使用函數代替屬性的技巧實現,它的設計影響到後來的Mobx;Ember.js是基於Object.defineProperty;Angular是將函數體轉譯成setter()、getter()函數。

大公司的介入,對個人開發者影響是很大,畢竟大家都愛迷信大公司,因此局面一下子就穩定下來。大公司還帶來了全新的開發模式,早期都是找一個核心庫,再搜刮一大堆插件,然後自己寫業務代碼,最後後端打包。

大公司將後端開發經驗挪用過來,用Node.js開發了一套CLI,裡麵包含了腳手架生成, 打包腳本、語法風格檢測、環境變數插入,代碼復雜度檢測,代碼提交時自動跑單元測試, 圖片與JS壓縮等功能。ESLint、JSLint、JSHint、CSS Lint、 htmllint等就是那時期出現的。

但CLI的出現導致了前端的分裂,以前大家都使用jQuery,但自CLI幫你建好項目的那一刻起,就將你劃歸某一子陣營,你是Angular?Ember.js?還是jQuery?對了,jQuery沒有大公司支撐的陣營被快速邊緣化。

對於個人開發者,他們是沒有能力開發這么功能完備的CLI,於是出現了Code Climate、Travis CI、CircleCI這樣的平台。它們的出現標志著jQuery小作坊時代的終結了。

CircleCI官網

前端開發者也出現分化:有些人轉向後端,出現了CNode的門戶網站。另外一些人開始搞工程化。一時間出現上百種構建工具,出名的有Grunt、Gulp、FIS3、webpack、 Rollup、npm-。

你方唱罷我登場,這些構建工具均會經歷時代的考驗,如大浪淘沙般,最後存活得僅為寥寥。

因此在這場工程化得盛宴中,註定把許多低層次的jQueryer淘汰掉。jQueryer在空閑之餘培育出的前端模板、前端路由、MVC框架、模塊載入器、Node.js構建工具,卻不料最終成為它自己的挖墓人。

jQuery的時代一去不返了,再沒有人關心拖堂拖了N年的Bootstrap 4終於發布了,沒有人知道jQuery3.5的瘦身計劃,也沒有人問jQuery的源碼,漸漸地,大家不關注jQuery的工具鏈了。

三大框架割據時代(2016~至今)

React是突然爆發的,雖然它是與Angular是同時期發布,但因為JSX怪異的語法讓人們遠離它。此時已經進入移動互聯網的中期,大公司都有自己的App,或者基於原生,或者基於Hybird。

Hybird是用WebView載入一個網站或一個SPA。

由於原生成本太貴,需要招兩套班子,一套安卓的,一套iOS的;而Hybird則一直存在性能問題。於是在2017年,Facebook推出了React Native(RN)。

RN的性能不比原生差多少,比Hybird能好些, 其次使用JSX開發界面比原生的快; RN 只需要低成本的前端開發人員就能上手了。中國國內經過瀑布流(圖片導購)、團購、P2P、區塊鏈等全新商業模式的開發浪潮後,前端人員數量大增。現在,他們只要稍微培訓就可以轉型為App開發。

在開發RN的過程中,人們開始了解React一系列的優勝之處。比如JSX背後的虛擬DOM技術,雖然事實證明虛擬DOM不會帶來性能的巨大優勢,但保證了你怎麼寫其性能不會太差。

React為了引入JSX,必須需要引入編譯,這又間接促成Babel與webpack的壯大。尤其是Babel, 讓我們在很舊的瀏覽器中使用非常新的語法,甚至一些還沒有定案的語法。React從14升級到React 15,強制使用class語法,讓這個推了好久的語法糖終於大規模落地。

之前如果Java想使用類,只能自己模擬類,由於沒有官方的實現,只能任由各優秀工程師發揮。而普通人想用好類,需要了解很復雜的Prototype機制。

現在只用幾個新關鍵字就可以得到這一切。

如果對比python 2與Python 3間的升級,Java實在太辛運了!針對CSS邏輯功能過弱的問題,我們也有了新的解決方案:Less、Sass、PostCSS與CSS Moles!

谷歌在發布Angular的同時,也發布了一個叫Polymer的框架,那時它想推廣一種叫Web Components的瀏覽器自定義組件技術。這其實是微軟在IE5就玩剩的HTC技術的升級版。雖然它沒有火起來,但它將、Style、Template三種內容混在一個文件的設計,啟發一個留美華人,再結合當時的Backbone.js、Angular等設計,Vue.js橫空出世。目前,這是國人最成功的前端框架了。

除此之外,國人也弄了好幾套迷你React框架與迷你Vue框架。這有點像jQuery時代,大家瘋狂做迷你jQuery框架一樣。

總的來說,最有創造力的是React團隊,做出狀態管理器、CSS-in-JS、Flow靜態類型檢查、devTool、Fetch、前後端同構、Fiber、suspend、並發渲染等名詞層出不窮。其中,狀態管理器擁有上百套, CSS-in-JS也擁有上百套,Flow則讓前端嘗鮮到介面編程的好處,間接推動發Type發展。這三大框架無法比拼個一二出來:Vue.js有國人的擁躉,React與Angular有大公司光環。

三大框架的纏斗從PC領域擴展到移動端:React有RN, Vue.js有Weex,Angular有ionic。想當年我們為了兼容瀏覽器,攢了一大堆瀏覽器偵探的Hack,全部貶值為垃圾了。

在這時期,一種全新的後端渲染崛起,稱之為前後同構,既擁有早期SEO的功效,又能復用大量的業務邏輯。隨著國內移動互聯網的發展,獲客成本提高,各種有效的商業模式都進入紅海,但只有頭部用戶能賺到錢,馬太效應越來越嚴重,純粹的技術解決方案已經無法滿足商業訴求了。

小程序時代(2017~至今)

小程序時代與三大框架的時代幾乎重合,但是出自不同一批人,決戰的平台也不一樣。

一直以來前端技術都是由國外開發者主導的,即便是Vue.js也是由美國的華人創造的。但是國內外的技術更新是存在代差,國內通常延期兩三年,這個時間差可以讓一些模仿者得以生存(如SeaJS、FIS、avalon)。但隨著封閉的時間越來越長,國內肯會也會誕生自己的轉有物種。小程序就是其中之一。

小程序的出現有著明顯的商業訴求,因為馬太效應,一些超大流量的App誕生了。這些大流量App集成了許多功能,但顯然公司再多員工,也無法所有功能全是自己弄,於是產生小程序這種「外包」的手段。

小程序是國內前端技術的一次厚積薄發:底層運行的迷你React的虛擬DOM, 內置組件是使用Web Component,API來源於Hybird的橋方法,打包使用webpack,調試台是Chrome console的簡化版, WXML、WXSS的語法高亮也應該是webpack或VS Code的插件, 模塊機制是Node.js的CommonJS……其中最值得一提的是微信開發者工具,以後開發者工具成了各種小程序/快應用的標配。

但微信小程序一開始的復用能力非常弱,沒有類繼承,不能使用npm, 不支持Less、Sass, 因此基於它的轉譯框架就應運而生。第一代譯轉框架是wept、WePY、mpvue,它們無一例外是Vue風格的。因為WXML的模板指令與Vue非常相似,只是改一下就能兼容。當時也出現了一個MINA的框架,聽說是微信團隊開發的,可以單獨架起Node.js後端,讓小程序運於瀏覽器中,方便做單元測試。

第一代轉譯框架主要是基於Template標簽實現組件機制,自定義組件機制是很後的事了。這就造成了利用第一代轉譯框架編寫的小程序項目很難升級。那時候是個人開發者的天堂,這些框架都是某一大牛獨力開發的。

第二代轉譯框架是大公司主導的,因為需要兼容的小程序越來越多,網路、支付寶、位元組跳動、小米、華為等公司都推出自己的小程序和快應用。個人開發者很難憑個人力量去開發轉譯框架,這時候各大團隊紛紛推出自己的輪子:如京東的Taro、滴滴的Chameleon網易的Megalo、去哪兒網的nanachi、網路的Okam等。

在這個時期,Angular顯然落伍了,一是Angular升級太快,國內的高手還沒有消化好,新一版的Angular又發布了。二是國內缺乏迷你Angular的輪子,導致龐大的Angular無法塞進小程序中。

國外谷歌發布了Flutter跨平台轉譯框架,但是它的編寫語言是Dart,它也無法跨界到小程序中。

未來不僅國內一線巨頭爭奪小程序,二三線的巨頭也可能會加入小程序的混戰中,例如有人稱360也在打造自己的小程序平台。小程序這種新的流量變現模式深刻地影響了國內的互聯網布局。

結語

當初Java被誤解為最糟糕的語言,時至今日它是最流行的語言:GitHub 60%的開源項目都是與Java有關。

以前,從事這行業的人被稱為頁面仔,現在他們的起薪有的比PHP、JAVA、C++等後端還高。甚至有人說,「任何可以使用Java來編寫的應用,最終會由Java編寫。」

我們前端開發者觸及的領域不僅僅是瀏覽器,還可以做後端,做桌面端,做手機端,做小程序端,前端開發者的性價比越來越高,越來越重要。可謂是時代造英雄。

筆者有幸成為前端開發者大隊伍中的一員,也堅信我們前端開發者以後的路會越來越寬,越來越好走。

資料:

[1]:計算機和編程語言的發展歷史

[2]:Polyfill是一塊代碼(通常是 Web 上的 Java),用來為舊瀏覽器提供它沒有原生支持的較新的功能。

作者簡介:司徒正美,擁有十年純前端經驗,著有《Java框架設計》一書,去哪兒網公共技術部前端架構師。愛好開源,擁有mass、Avalon、nanachi等前端框架。目前在主導公司的小程序、快應用的研發項目。


  • 本文鏈接:http://www.cnite.cn/qianan/share/20198308.html

D. 第1章 為什麼將Python用於金融

python是一門高級的編程語言,廣泛應用在各種領域之中,同時也是人工智慧領域首選的語言。
為什麼將python用於金融?因為Python的語法很容易實現金融演算法和數學計算,可以將數學語句轉化成python代碼,沒有任何語言能像Python這樣適用於數學。

E. 電腦里常用的的英語有那些(漢語意思)

硬體類(Hardware)
軟體類(Software)
網路類(Network)

CPU(Center Processor Unit)中央處理單元
mainboard主板
RAM(random access
memory)隨機存儲器(內存)
ROM(Read Only Memory)只讀存儲器
Floppy Disk軟盤
Hard Disk硬碟
CD-ROM光碟驅動器(光碟機)
monitor監視器
keyboard鍵盤
mouse滑鼠
chip晶元
CD-R光碟刻錄機
HUB集線器
Modem= MOlator-DEMolator,數據機
P-P(Plug and Play)即插即用
UPS(Uninterruptable Power Supply)不間斷電源
BIOS(Basic-input-Output
System)基本輸入輸出系統
CMOS(Complementary Metal-Oxide-Semiconctor)互補金屬氧化物半導體
setup安裝
uninstall卸載
wizzard向導
OS(Operation Systrem)操作系統
OA(Office AutoMation)辦公自動化
exit退出
edit編輯
復制
cut剪切
paste粘貼
delete刪除
select選擇
find查找
select all全選
replace替換
undo撤消
redo重做
program程序
license許可(證)
back前一步
next下一步
finish結束
folder文件夾
Destination Folder目的文件夾
user用戶
click點擊
double click雙擊
right click右擊
settings設置
update更新
release發布
data數據
data base資料庫
DBMS(Data Base Manege
System)資料庫管理系統
view視圖
insert插入
object對象
configuration配置
command命令
document文檔
POST(power-on-self-test)電源自檢程序
cursor游標
attribute屬性
icon圖標
service pack服務補丁
option pack功能補丁
Demo演示
short cut快捷方式
exception異常
debug調試
previous前一個
column行
row列
restart重新啟動
text文本
font字體
size大小
scale比例
interface界面
function函數
access訪問
manual指南
active激活
computer language計算機語言
menu菜單
GUI(graphical user
interfaces )圖形用戶界面
template模版
page setup頁面設置
password口令
code密碼
print preview列印預覽
zoom in放大
zoom out縮小
pan漫遊
cruise漫遊
full screen全屏
tool bar工具條
status bar狀態條
ruler標尺
table表
paragraph段落
symbol符號
style風格
execute執行
graphics圖形
image圖像
Unix用於伺服器的一種操作系統
Mac OS蘋果公司開發的操作系統
OO(Object-Oriented)面向對象
virus病毒
file文件
open打開
colse關閉
new新建
save保存
exit退出
clear清除
default默認
LAN區域網
WAN廣域網
Client/Server客戶機/伺服器
ATM( Asynchronous
Transfer Mode)非同步傳輸模式
Windows NT微軟公司的網路操作系統
Internet互聯網
WWW(World Wide Web)萬維網
protocol協議
HTTP超文本傳輸協議
FTP文件傳輸協議
Browser瀏覽器
homepage主頁
Webpage網頁
website網站
URL在Internet的WWW服務程序上
用於指定信息位置的表示方法
Online在線
Email電子郵件
ICQ網上尋呼
Firewall防火牆
Gateway網關
HTML超文本標識語言
hypertext超文本
hyperlink超級鏈接
IP(Address)互聯網協議(地址)
SearchEngine搜索引擎
TCP/IP用於網路的一組通訊協議
Telnet遠程登錄
IE(Internet Explorer)探索者(微軟公司的網路瀏覽器)
Navigator引航者(網景公司的瀏覽器)
multimedia多媒體
ISO國際標准化組織
ANSI美國國家標准協會
able 能
activefile 活動文件
addwatch 添加監視點
allfiles 所有文件
allrightsreserved 所有的權力保留
altdirlst 切換目錄格式
並能夠解決更大范圍內的磁碟問題
andotherinFORMation 以及其它的信息
archivefileattribute 歸檔文件屬性
assignto 指定到
autoanswer 自動應答
autodetect 自動檢測
autoindent 自動縮進
autosave 自動存儲
availableonvolume 該盤剩餘空間
badcommand 命令錯
badcommandorfilename 命令或文件名錯
batchparameters 批處理參數
binaryfile 二進制文件
binaryfiles 二進制文件
borlandinternational borland國際公司
bottommargin 頁下空白
bydate 按日期
byextension 按擴展名
byname 按名稱
bytesfree 位元組空閑
callstack 調用棧
casesensitive 區分大小寫
要求出現確認提示,在你想覆蓋一個
centralpointsoftwareinc central point 軟體股份公司
changedirectory 更換目錄
changedrive 改變驅動器
changename 更改名稱
characterset 字元集
checkingfor 正在檢查
檢查磁碟並顯示一個狀態報告
chgdrivepath 改變盤/路徑
china 中國

chooseoneofthefollowing 從下列中選一項
clearall 全部清除
clearallbreakpoints 清除所有斷點
clearsanattribute 清除屬性
clearscommandhistory 清除命令歷史
clearscreen 清除屏幕
closeall 關閉所有文件
codegeneration 代碼生成
colorpalette 彩色調色板
commandline 命令行
commandprompt 命令提示符
compressedfile 壓縮文件
配置硬碟,以為 MS-DOS 所用
conventionalmemory 常規內存
***ceptemptyones 拷貝目錄和子目錄,空的除外
拷貝設置了歸檔屬性的文件
把文件拷貝或搬移至另一地方
把一個軟盤的內容拷貝到另一個軟盤上
diskette 復制磁碟
C拷貝M移動 O比 F搜索R改名 D刪除 V版本 E瀏覽A屬性 W寫字 P列印 L列表
rightc 版權(c
創建DOS分區或邏輯DOS驅動器
createextendeddospartition 創建擴展DOS分區
在擴展DOS分區中創建邏輯DOS驅動器
createprimarydospartition 創建DOS主分區
createsadirectory 創建一個目錄
創建,改變或刪除磁碟的卷標
currentfile 當前文件
currentfixeddiskdrive 當前硬碟驅動器
currentsettings 當前設置
currenttime 當前時間
cursorposition 游標位置

defrag 整理碎片
dele 刪去
刪除分區或邏輯DOS驅動器
刪除一個目錄和所有的子目錄及其中的所有文件
deltree 刪除樹
devicedriver 設備驅動程序
dialogbox 對話欄
directionkeys 方向鍵
directly 直接地
directorylistargument 目錄顯示變數
directoryof 目錄清單
directorystructure 目錄結構
diskaccess 磁碟存取
disk 磁碟拷貝
磁碟服務功能: C拷貝 O比較 F搜索R改卷名V校驗 瀏覽E編緝M圖 L找文件 N格式化
diskspace 磁碟空間
displayfile 顯示文件
displayoptions 顯示選項
displaypartitioninFORMation 顯示分區信息
顯示指定目錄和所有目錄下的文件
顯示指定屬性的文件
顯示或改變文件屬性
displaysorsetsthedate 顯示或設備日期
以單色而非彩色顯示安裝屏信息
顯示系統中已用和未用的內存數量
顯示磁碟上所有文件的完整路徑和名稱
顯示或改變當前目錄
doctor 醫生
doesn 不
doesntchangetheattribute 不要改變屬性
dosshell DOS 外殼
doubleclick 雙擊
你想顯示邏輯驅動器信息嗎(y/n)?
driveletter 驅動器名
editmenu 編輯選單
emsmemory ems內存
endoffile 文件尾
endofline 行尾
enterchoice 輸入選擇
entiredisk 轉換磁碟
environmentvariable 環境變數
esc esc
everyfileandsubdirectory 所有的文件和子目錄
existingdestinationfile 已存在的目錄文件時
expandedmemory 擴充內存
expandtabs 擴充標簽
explicitly 明確地
extendedmemory 擴展內存
fastest 最快的
fatfilesystem fat 文件系統
fdiskoptions fdisk選項
fileattributes 文件屬性
fileFORMat 文件格式
filefunctions 文件功能
fileselection 文件選擇
fileselectionargument 文件選擇變元
filesin 文件在
filesinsubdir 子目錄中文件
fileslisted 列出文件
filespec 文件說明
filespecification 文件標識
filesselected 選中文件
findfile 文件查尋
fixeddisk 硬碟
fixeddisksetupprogram 硬碟安裝程序
fixeserrorsonthedisk 解決磁碟錯誤
floppydisk 軟盤
FORMatdiskette 格式化磁碟
FORMatsadiskforusewithmsdos 格式化用於MS-DOS的磁碟
FORMfeed 進紙
freememory 閑置內存
fullscreen 全屏幕
functionprocere 函數過程
graphical 圖解的
graphicslibrary 圖形庫
groupdirectoriesfirst 先顯示目錄組
hangup 掛斷
harddisk 硬碟
hardwaredetection 硬體檢測
ha**een 已經
helpfile 幫助文件
helpindex 幫助索引
helpinFORMation 幫助信息
helppath 幫助路徑
helpscreen 幫助屏
helptext 幫助說明
helptopics 幫助主題
helpwindow 幫助窗口
hiddenfile 隱含文件
hiddenfileattribute 隱含文件屬性
hiddenfiles 隱含文件
howto 操作方式
ignorecase 忽略大小寫
在常規和上位內存
incorrectdos 不正確的DOS
incorrectdosversion DOS 版本不正確
indicatesabinaryfile 表示是一個二進制文件
indicatesanasciitextfile 表示是一個ascii文本文件
insertmode 插入方式
請用scandisk,不要用chkdsk
inuse 在使用
invaliddirectory 無效的目錄
is 是
kbytes 千位元組
keyboardtype 鍵盤類型
labeldisk 標注磁碟
laptop 膝上
largestexecutableprogram 最大可執行程序
largestmemoryblockavailable 最大內存塊可用
lefthanded 左手習慣
leftmargin 左邊界
linenumber 行號
linenumbers 行號
linespacing 行間距
listbyfilesinsortedorder 按指定順序顯示文件
listfile 列表文件
listof 清單
locatefile 文件定位
lookat 查看
lookup 查找
macroname 宏名字
makedirectory 創建目錄
memoryinfo 內存信息
memorymodel 內存模式
menubar 菜單條
menucommand 菜單命令
menus 菜單
messagewindow 信息窗口
microsoft 微軟
microsoftantivirus 微軟反病毒軟體
microsoftcorporation 微軟公司
mini 小的
modemsetup 數據機安裝
molename 模塊名
monitormode 監控狀態
monochromemonitor 單色監視器
moveto 移至
multi 多
newdata 新建數據
newer 更新的
newfile 新文件
newname 新名稱
newwindow 新建窗口
norton norton
nostack 棧未定義
noteusedeltreecautiously 注意:小心使用deltree
onlinehelp 聯機求助
optionally 可選擇地
or 或
pageframe 頁面
pagelength 頁長
在顯示每屏信息後暫停一下
pctools pc工具
postscript 附言
prefixmeaningnot 前綴意即"不
prefixtoreverseorder 反向顯示的前綴
presetche** 用前綴和放在短橫線-後的開關(例如/-w)預置開關
pressakeytoresume 按一鍵繼續
pressanykeyforfilefunctions 敲任意鍵執行文件功能
pressentertokeepthesamedate 敲回車以保持相同的日期
pressentertokeepthesametime 敲回車以保持相同的時間
pressesctocontinue 敲esc繼續
pressesctoexit 敲鍵退出
pressesctoexitfdisk 敲esc退出fdisk
敲esc返回fdisk選項

F. kettle有什麼特點

【好評贈送】Kettle軟體包6.1-8.2免費下載

鏈接:https://pan..com/s/1yYLRTGL_D6MV14jVJAkOvg

提取碼:3fxt

Kettle最早是一個開源的ETL工具,全稱為KDE Extraction, Transportation, Transformation and Loading Environment。在2006年,Pentaho公司收購了Kettle項目,原Kettle項目發起人Matt Casters加入了Pentaho團隊,成為Pentaho套件數據集成架構師[1];從此,Kettle成為企業級數據集成及商業智能套件Pentaho的主要組成部分,Kettle亦重命名為Pentaho Data Integration[1-2]。Pentaho公司於2015年被Hitachi Data Systems收購。[3](Hitachi Data Systems於2017年改名為Hitachi Vantara[4])

G. etl抽取後,如何驗證兩邊數據

數據抽取。
異構資料庫或者跨庫數據抽取,用kettle的轉換比較方便,數據的適配是在內存中進行的,性能比dblink之類的要好。
同構資料庫能通過簡單的sql跨庫跨schema操作的,建議直接使用kettl的sql腳本,性能要好點,通過腳本獨立出來,維護也方便點。

H. Oracle SQL Developer能否將Oracle數據移植到mysql

使用MySQL Migration Toolkit應該是可以選擇表的啊,不過,你每次導一張表的話也是很巨大的工作量啊,一共有1W多張表,是很龐大的系統。建議你咨詢一下國內一家專門做MySQL資料庫咨詢的公司,上海愛可生,應該還有一些方法來實現的。

I. 論文翻譯 求助

樹是最常見和福利組合結構的研究
計算機科學。特別是,問題比較樹木發生在幾個
不同的領域,如計算生物學,結構化文本的資料庫,圖像
分析,自動定理證明和編譯器優化[ 43 , 55 , 22 , 24 ,
16 , 35 , 56 ] 。例如,在計算生物學,計算相似度
樹木之間的距離在各種措施中使用的比較
RNA二級結構[ 55 , 18 ] 。
讓我們成為一個根深蒂固的樹。我們呼籲Ť如果一標記樹的每個節點是一個指定
標志由一個固定的有限字母? 。我們呼籲Ť有序樹如果左向右
為了兄弟姐妹之間的T給出。在本文中,我們考慮匹配問題
基於簡單原始業務適用於標記的樹木。如果T是一個有序
樹這些行動的定義如下:
relabel更改標簽的一個節點第五Ť 。
刪除刪除非根節點第五Ť家長V字,使兒童的V
成為孩子們的V ' 。這些兒童被插入的位置上第五
隨後在左向右為了子女的V字。
插入補充刪除。插入一個節點第五兒童的V '的T決策
五母公司連續子序列的兒童的V ' 。
圖1說明了行動。樹木為無序的行動可
同樣的定義。在這種情況下,插入和刪除操作的工程
子集,而不是子。我們確定三個問題的基礎上修改
行動。讓T1和T2標示樹木(或無序排列) 。
樹編輯距離假定我們會得到一個成本函數定義
每個編輯作業。修改腳本縣之間的T1和T2是一個序列編輯
業務轉向表# t1到時刻。成本S是一筆費用
行動由最優編輯腳本之間的T1和T2是一個編輯腳本
T1和T2之間的最低成本,這種成本是樹編輯距離。那個
樹編輯距離的問題是計算編輯距離和相應的
編輯腳本。
樹排列距離假設我們會得到一個成本函數定義
關於對標簽。的排列阿的T1和T2得到如下。首先,我們
插入標記節點艙進入T1和T2 ,使它們成為同構
當標簽被忽略。由此產生的樹木,然後overlayed頂部的每一
其他給予對齊阿,這是一種樹的每個節點的標記
對標簽。的費用是一筆費用都對對方的標簽
答:在優化調整T1和T2是一個調整和最低的成本
這一費用被稱為對准距離T1和T2 。對齊距離
問題是計算排列的距離和相應的調整。
樹列入表# t1包含在T2當且僅當t1處理器可以同時得到
刪除節點時刻。樹列入問題是,以確定是否是表# t1
包括在T2 。

熱點內容
登陸認證失敗請檢查伺服器地址 發布:2025-05-20 07:06:55 瀏覽:831
無限分類實現php 發布:2025-05-20 06:57:40 瀏覽:681
數據結構c語言版嚴蔚敏李冬梅 發布:2025-05-20 06:55:05 瀏覽:449
iphone快捷訪問 發布:2025-05-20 06:55:05 瀏覽:928
如何加密硬碟分區 發布:2025-05-20 06:52:29 瀏覽:362
反編譯gd 發布:2025-05-20 06:52:23 瀏覽:838
java源碼知乎 發布:2025-05-20 06:47:59 瀏覽:483
dos解壓縮命令 發布:2025-05-20 06:47:57 瀏覽:638
安卓傳數據給蘋果的軟體叫什麼 發布:2025-05-20 06:42:48 瀏覽:803
怎麼樣盤解壓力 發布:2025-05-20 06:37:08 瀏覽:84