A. Kubernetes Operator 快速入門教程(Operator 101)
在 Kubernetes 的監控方案中我們經常會使用到一個Promethues Operator的項目,該項目可以讓我們更加方便的去使用 Prometheus,而不需要直接去使用最原始的一些資源對象,比如 Pod、Deployment,隨著 Prometheus Operator 項目的成功,CoreOS 公司開源了一個比較厲害的工具:Operator Framework,該工具可以讓開發人員更加容易的開發 Operator 應用。
在本篇文章中我們會為大家介紹一個簡單示例來演示如何使用 Operator Framework 框架來開發一個 Operator 應用。
Kubernetes Operator
Operator 是由 CoreOS 開發的,用來擴展 Kubernetes API,特定的應用程序控制器,它用來創建、配置和管理復雜的有狀態應用,如資料庫、緩存和監控系統。Operator 基於 Kubernetes 的資源和控制器概念之上構建,但同時又包含了應用程序特定的領域知識。創建Operator 的關鍵是CRD(自定義資源)的設計。
Kubernetes 1.7 版本以來就引入了自定義控制器的概念,該功能可以讓開發人員擴展添加新功能,更新現有的功能,並且可以自動執行一些管理任務,這些自定義的控制器就像 Kubernetes 原生的組件一樣,Operator 直接使用 Kubernetes API進行開發,也就是說他們可以根據這些控制器內部編寫的自定義規則來監控集群、更改 Pods/Services、對正在運行的應用進行擴縮容。
Operator Framework
Operator Framework 同樣也是 CoreOS 開源的一個用於快速開發 Operator 的工具包,該框架包含兩個主要的部分:
Workflow
Operator SDK 提供以下工作流來開發一個新的 Operator:
Demo
我們平時在部署一個簡單的 Webserver 到 Kubernetes 集群中的時候,都需要先編寫一個 Deployment 的控制器,然後創建一個 Service 對象,通過 Pod 的 label 標簽進行關聯,最後通過 Ingress 或者 type=NodePort 類型的 Service 來暴露服務,每次都需要這樣操作,是不是略顯麻煩,我們就可以創建一個自定義的資源對象,通過我們的 CRD 來描述我們要部署的應用信息,比如鏡像、服務埠、環境變數等等,然後創建我們的自定義類型的資源對象的時候,通過控制器去創建對應的 Deployment 和 Service,是不是就方便很多了,相當於我們用一個資源清單去描述了 Deployment 和 Service 要做的兩件事情。
這里我們將創建一個名為 AppService 的 CRD 資源對象,然後定義如下的資源清單進行應用部署:
通過這里的自定義的 AppService 資源對象去創建副本數為2的 Pod,然後通過 nodePort=30002 的埠去暴露服務,接下來我們就來一步一步的實現我們這里的這個簡單的 Operator 應用。
開發環境
環境需求
要開發 Operator 自然 Kubernetes 集群是少不了的,還需要 Golang 的環境,這里的安裝就不多說了,然後還需要一個 Go 語言的依賴管理工具包:dep,由於 Operator SDK 是使用的 dep 該工具包,所以需要我們提前安裝好,可以查看資料:https://github.com/golang/dep,另外一個需要說明的是,由於 dep 去安裝的時候需要去谷歌的網站拉取很多代碼,所以正常情況下的話是會失敗的,需要做什麼工作大家應該清楚吧?要科學。
安裝 operator-sdk
operator sdk 安裝方法非常多,我們可以直接在 github 上面下載需要使用的版本,然後放置到 PATH 環境下面即可,當然也可以將源碼 clone 到本地手動編譯安裝即可,如果你是 Mac,當然還可以使用常用的 brew 工具進行安裝:
我們這里使用的 sdk 版本是v0.7.0,其他安裝方法可以參考文檔:https://github.com/operator-framework/operator-sdk/blob/master/doc/user/install-operator-sdk.md
演示
創建新項目
環境准備好了,接下來就可以使用 operator-sdk 直接創建一個新的項目了,命令格式為: operator-sdk new
按照上面我們預先定義的 CRD 資源清單,我們這里可以這樣創建:
到這里一個全新的 Operator 項目就新建完成了。
項目結構
使用operator-sdk new命令創建新的 Operator 項目後,項目目錄就包含了很多生成的文件夾和文件。
我們主要需要編寫的是 pkg 目錄下面的 api 定義以及對應的 controller 實現。
添加 API
接下來為我們的自定義資源添加一個新的 API,按照上面我們預定義的資源清單文件,在 Operator 相關根目錄下面執行如下命令:
添加完成後,我們可以看到類似於下面的這樣項目結構:
添加控制器
上面我們添加自定義的 API,接下來可以添加對應的自定義 API 的具體實現 Controller,同樣在項目根目錄下面執行如下命令:
這樣整個 Operator 項目的腳手架就已經搭建完成了,接下來就是具體的實現了。
自定義 API
打開源文件pkg/apis/app/v1/appservice_types.go,需要我們根據我們的需求去自定義結構體 AppServiceSpec,我們最上面預定義的資源清單中就有 size、image、ports 這些屬性,所有我們需要用到的屬性都需要在這個結構體中進行定義:
代碼中會涉及到一些包名的導入,由於包名較多,所以我們會使用一些別名進行區分,主要的包含下面幾個:
這里的 resources、envs、ports 的定義都是直接引用的"k8s.io/api/core/v1"中定義的結構體,而且需要注意的是我們這里使用的是ServicePort,而不是像傳統的 Pod 中定義的 ContanerPort,這是因為我們的資源清單中不僅要描述容器的 Port,還要描述 Service 的 Port。
然後一個比較重要的結構體AppServiceStatus用來描述資源的狀態,當然我們可以根據需要去自定義狀態的描述,我這里就偷懶直接使用 Deployment 的狀態了:
定義完成後,在項目根目錄下面執行如下命令:
改命令是用來根據我們自定義的 API 描述來自動生成一些代碼,目錄pkg/apis/app/v1/下面以zz_generated開頭的文件就是自動生成的代碼,裡面的內容並不需要我們去手動編寫。
實現業務邏輯
NewDeploy 方法實現如下:
newService 對應的方法實現如下:
這樣我們就實現了 AppService 這種資源對象的業務邏輯。
調試
如果我們本地有一個可以訪問的 Kubernetes 集群,我們也可以直接進行調試,在本地用戶~/.kube/config文件中配置集群訪問信息,下面的信息表明可以訪問 Kubernetes 集群:
首先,在集群中安裝 CRD 對象:
上面的命令會在本地運行 Operator 應用,通過~/.kube/config去關聯集群信息,現在我們去添加一個 AppService 類型的資源然後觀察本地 Operator 的變化情況,資源清單文件就是我們上面預定義的(deploy/crds/app_v1_appservice_cr.yaml)
直接創建這個資源對象:
我們可以看到我們的應用創建成功了,這個時候查看 Operator 的調試窗口會有如下的信息出現:
然後我們可以去查看集群中是否有符合我們預期的資源出現:
看到了吧,我們定義了兩個副本(size=2),這里就出現了兩個 Pod,還有一個 NodePort=30002 的 Service 對象,我們可以通過該埠去訪問下應用:
如果應用在安裝過程中出現了任何問題,我們都可以通過本地的 Operator 調試窗口找到有用的信息,然後調試修改即可。
清理:
部署
自定義的資源對象現在測試通過了,但是如果我們將本地的operator-sdk up local命令終止掉,我們可以猜想到就沒辦法處理 AppService 資源對象的一些操作了,所以我們需要將我們的業務邏輯實現部署到集群中去。
執行下面的命令構建 Operator 應用打包成 Docker 鏡像:
鏡像構建成功後,推送到 docker hub:
鏡像推送成功後,使用上面的鏡像地址更新 Operator 的資源清單:
現在 Operator 的資源清單文件准備好了,然後創建對應的 RBAC 的對象:
到這里我們的 CRD 和 Operator 實現都已經安裝成功了。
現在我們再來部署我們的 AppService 資源清單文件,現在的業務邏輯就會在上面的opdemo-64db96d575-9vtq6的 Pod 中去處理了。
然後同樣的可以通過 30002 這個 NodePort 埠去訪問應用,到這里應用就部署成功了。
清理
有資源清單文件,直接刪除即可:
開發
Operator SDK 為我們創建了一個快速啟動的代碼和相關配置,如果我們要開始處理相關的邏輯,我們可以在項目中搜索TODO(user)這個注釋來實現我們自己的邏輯,比如在我的 VSCode 環境中,看上去是這樣的:
本篇文章示例代碼地址:https://github.com/cnych/opdemo
參考資料
B. 誰有數控宏程式編程教程
羅技游戲驅動及宏教程網路網盤免費資源在線學習
鏈接: https://pan..com/s/1sbQCla9fgI2VA8ChnRKuLg
羅技游戲驅動及宏教程 羅技滑鼠宏文件及設置教程(此宏文件直接導入即可使用, 非常詳細)LOL_CF_守望-逆戰-劍靈-CSOL(此教程不適用於絕地求生) 羅技滑鼠宏文件及教程(需自己錄制,此教程不適用於絕地求生) 絕地求生 吃雞壓槍滑鼠宏文件以及設置調試教程 LGS 羅技老版驅動 G系列驅動軟體(按照位數下載安裝) G HUB 羅技新版驅動 羅技滑鼠宏設置常規指導教程(此教程絕地求生不適用).mp4 ▲使用羅技滑鼠宏前必看!!!!!(重要提醒).txt LOL-CF-守望-逆戰-劍靈-CSOL導入宏文件步驟教程(絕地吃雞宏導入教程不要看這個,看宏設置教程視頻).doc lghub(可在線更新至最新版本)
win8.exe lghub(可在線更新至最新版本)
win7.exe lghub(可在線更新至最新版本)
win10.exe 4_Logitech 系統位數64位 支持win7 win8 win10.exe 6_Logitech 系統位數32位 支持win7 win8 win10.exe (目前有效)吃雞宏修改版 有效期至2019年12月
C. 電腦編程入門書籍,應該先看什麼
我轉載的,感覺對你有用!!! 都是我看過或正要看的書,晾晾書架,希望對後來者也有一點作用,當年我也是浪費時間看了一些沒有價值的書籍,頗為後悔,現將精華總結如下:
c語言篇:(雖有人說學C++不用先學c,但我頗不以為然,不知數據為何,又何來的封裝繼承多態)
1:c語言入門大學教程c語言譚浩強版足以。
2:windows c語言API編程基礎,推薦《windows程序設計(第5版)》 Charles Petzold著,通過學習可對界面編程一覽無遺,剩下的就是看怎樣用c++進行包裝,體會c++面向對象復用代碼的威力了。
3:《TCP/IP協議及網路編程技術》 羅軍舟等編著 清華大學出版社 國貨上品,是應用c語言在windows下進行網路編程的好教材.也是使用c++進行網路編程的知識准備。
C++基礎篇: 1:《C++Primer(3or4版)》入門第一部.
2:《深入淺出MFC》 侯捷著 國貨精品,本應歸入學習vc的范疇,但他實際是對widows API的c++框架介紹,用來做vc項目只能起輔助作用,對建立c++面向對象思想卻多有啟迪。
3: 《C++標准程序庫》 侯捷/孟岩譯 庫是語言的延伸,學習c++不可不看。
4: 《C++實踐之路》 周良忠譯 一個計算器例子貫穿全書,幾乎用到C++所有知識,真正的例子驅動教學法。
面向對象技術:
1: 《設計模式-可復用面向對象軟體的基礎》 美國四人幫的跨時代大作 230頁卻足以開啟一個時代,真正體現了面向對象技術的價值,是代碼復用的經典之作,不能不看。
2: 《UML Distilled》 UML建模很火歐,但對我來說看主要目的是看懂類關系草圖,這本小書足以。
c++進階篇
1: 《C++高級編程》 劉鑫等譯 有對c++知識的精要總結其中包括如何更好地實現重用、如何有效地測試和調試等C++專業人員常用的一些技術與方法,值得了解。
2: 《Effective C++》,《必知必會》,《c++編程規范》 三本小書卻足以檢測你對c++知識掌握的真正情況。
c++高階篇:(本人仍在閱讀中)
1: 《深入探索c++對象模型》 侯捷譯 對C++內存布局的深入介紹,是真正理解com/corba等組件技術的必備基礎。
2: 《C++ Templates中文版》 陳偉柱譯 模板聖經,現代c++發展的前沿泛型編程思想總結 (是看懂boost類庫的知識儲備)。
3:《C++設計新思維》 侯捷/於春景譯 泛型編程與設計模式的綜合應用,鍛煉思維的好書,(已經買了半年多了,等我有空時一定看'_')。
其他:
C++編程思想,C++語言之父的c++語言特別版 等書本人只在書店裡見過,沒有閱讀就不敢置評了。
(一)語言入門:
《C++ Primer》
最新版本:第三版(第四版國外已上架,國內一些網上書店也在預訂中)
適合有豐富C經驗,缺乏C++經驗的。不過我個人一直認為此書帶著過於強烈的C語言的痕跡,對於C++的學習未必是好事。
《The C++ Programming Language》/《C++程序設計語言》
最新版本:第三版特別版
簡稱TC++PL,有其他語言的豐富經驗的。(也有人簡稱之為「TCPL」,但需與另一本《The C Programmer Language》區分開來)
《Essential C++》
《Accelerated C++》
這兩本薄一些,都是不錯的選擇。《Accelerated C++》本人沒有讀過,從各方面的評價來看,完全值得推薦。
以上幾本書都有相應的中文版,而且翻譯的質量都不錯。上面的書未必都需要讀一遍,但無論如何,TC++PL是應該閱讀的。
(二)進階A:
這個路線側重於語言本身
《Effective C++》
最新版本:第二版(第三版國外已上架,國內一些網上書店也在預訂中)
簡稱EC。C++程序員必讀!很多時候,我們說C++聖經不是指TC++PL,而是這一本。《The Pragmatic Programmer》一書中寫到:「一旦你發現自己要參與C++項目的開發,趕快跑(不要走)到書店去購買Scott Mayer的《Effective C++》,可能還要《More Effective C++》」。
《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 編程規范》
個人認為此書應為C++程序員必備的案頭書。幾乎Effective系列和Exceptional系列都在這里得到了總結。最新的模版、異常的業界經驗都在這里的到了體現。可能的唯一缺陷就是對一個新手而言,關於「為什麼這么做」的問題,解釋的不夠。
我的看法是:如果你不理解其中的條款,記憶,並且照做;如果你理解其中的條款,我猜你一定會同意書中的觀點。我認為這本書中的內容至少在2009年以前都不會過時,人們將廣為傳誦它制定的101條戒律。
還不知道他的簡稱,也許「101」會成為一個候選者?
提到《Effective C++》,那麼另外三本書一一浮出水面:
《More Effective C++》
《Exceptional C++》
《More Exceptional C++》。
新書《Exceptional C++ Style》也是值得一看的好書。
上述幾本書,一本也不應該放過。
個人建議上述書籍按順序閱讀。並且,在將來反復閱讀這幾本書。
D. 101VR編輯器到底是什麼我從來沒有聽說過這個程序,但是比賽要用,從哪裡可以找到教程 有人用過嗎
這是是一款運用於教學上的軟體,主要是進行vr場景的創作。裡面的內容與模板的結合性強,對教師與學生的教學效果都是挺好的。
101VR編輯器,是網龍華漁公司的VR產品,市場上基本沒有任何一家公司使用,這款產品極弱,在2017年以前基本沒有任何人使用,現在之所以有人用,完全是因為一個所謂的教育部的比賽指定使用這個產品。
作為國內VR技術應用的先驅企業,網龍華漁教育打造的這款名為「101創想世界」的VR編輯器一推出便引來各方矚目,成為國內中高職國賽的指定編輯器,並加入了中國教育技術協會、國家開放大學與網龍共同成立的「虛擬現實教育聯盟」中,運用於「國育華漁VR世界實驗室」中,強大的編輯能力得到多方認可。
依託網龍多年來在游戲和教育行業積累的海量VR、2D、3D素材,101創想世界擁有40餘類,總計約5萬個的素材資源,完全可以滿足你在創作時的資源需求,讓用戶隨身攜帶一個可移動的龐大雲端資源庫。
E. 在台達101例教程裡面有講,台達PLC與台達M系列變頻器通信的,裡面有句程序MODWR K1 H2000 H12
通過通訊對M變頻器設定輸出頻率的時候:將設定2102H就好,
若是要知道產品實際輸出頻率:讀取2103H的數值;
H2000是通訊控制變頻器運轉的寄存器
F. 101教育PPT電子教材在哪
單擊插入可以選擇導入。
101教育PPT提供的教學資源涵蓋了電子教材、教案、課件等素材,並針對全國不同地區的老師提供了人教版、北師大版、蘇教版、外研社版等在內的全國主流教材版本;覆蓋學前階段、K12階段、中高職及本科以在內的語、數、英、物、化、地理、生物、歷史、政治等幾十個學科。
G. DMX512 192調台的編程具體步驟是什麼
摘要 你好,1、打開電源後等候約5秒鍾顯示「101」,按著「program」鍵約3秒進入編程狀態,相對應在數碼屏的「program」指示燈會閃爍;
H. 程序員101:如何自學編程
你也許曾經想過要學習如何開發軟體或只是想臨時的寫出一個腳本但不知道如何入手。 幸運的是,現在的互聯網上到處都有豐富的學習資源讓你能在短時間里成為一個程序員。因為互聯網的出現,使程序員們可以通過它討論軟體開發技術,發布學習指導,以及共享代碼實例讓其他人可以在線學習。 如果你感興趣如何才能成為一個程序員,從網上這些大量的優秀的培訓資料、學習向導入手將會是個不錯的開始。首要之首:不要急於選擇一種語言新手們有一個常見的錯誤就是猶豫於判斷哪種編程語言是做好的、最該先學的。 我們有很多的選擇,但你不能說那種語言最好。 我們應該理解:說到底,什麼語言並不重要。 重要的是理解數據結構、控制邏輯和設計模式。任何一種語言甚至一種簡單的腳本語言都會具有所有編程語言都共有的各種特徵,也就是說各種語言是貫通的。 我正在攻讀我的計算機學學位,我編程使用Pascal,匯編,和C語言,事實上我從來沒有把它當成職業以求獲得回報。 我一直在自學編程,工作上用不到它,我使用現有的知識,參考各種文檔和書本,學習它們的用法。 因此,不要急於選擇何種編程語言。 找出你想要開發的東西,使用一種能夠完成這項任務的語言,這就可以了。根據各種開發平台的不同,有很多不同的軟體開發形式可供你選擇:從網站應用到桌面軟體到智能手機軟體到命令行腳本工具。 這篇文章里,我將重點介紹一些很受歡迎的入門教程和資源,它們能幫助你學會如何在各種主流的平台上編程開發。 我先假設你是一個悟性很強的讀者,但對於新手,當我談論程序代碼時還是要按照入門級的水平。 因為即使是你自己看一篇編程入門 手冊,如果發現都能理解時,心情自然會很高興,這樣利於你進一步學習。桌面腳本想要動手在Windows里或蘋果系統里編程,最簡單的方法是從一種腳本語言或宏語言開始,例如AutoHotkey (Windows) 或 Automator (蘋果系統)。 如今一些硬體程序員沖著他們的屏幕大喊大叫,說AHK和AppleScript並不是真正的編程語言。 也許他們說的是對的技術上,這些種類的語言只能做一些上層的編程。 但是對於那些只是想來脫盲、想在他們的電腦里實現一些能自動運行的程序的新手來說,這些語言會是一個絕妙的入門入口而且你會吃驚於它們豐富的功能。例如,大家都喜愛的Texter就是Adam使用AutoHotkey開發的能獨立運行的Windows應用程序,所以說這種腳本語言遠不是只能開發小規模腳本軟體。 如果你想從AutoHotkey入手,可以參考Adam的指導: how to turn any action into a keyboard shortcut using AutoHotkey(然後,你可以下載 Texter源代碼 看看這個功能齊全的使用AHK開發的Windows應用程序的內部結構)。Web開發除了把自己約束在特定的編程語言和特定的操作系統上,你還可以在瀏覽器里開發你的殺手鐧程序,讓它在互聯網上運行,這就是webapp。 歡迎來到奇妙的web編程世界。HTML 和 CSS:開發網站,你第一件要知道的事情就是HTML(網頁就是由它組成的)和CSS(一種讓外觀更好看的樣式標記)。 HTML 和 CSS 並不是編程語言它們只是頁面的結構和樣式信息。 然而,在開始開發web應用程序之前你必須要學會如何手工的編寫簡單的HTML和CSS,web頁面是任何webapp的前端顯示部分。 這個 HTML 指導 是你入手的好地方。JavaScript:當你可以通過HTML和CSS構建一個靜態頁面後,事情就開始變得有趣了因為到了該學JavaScript的時候了。 JavaScript是一種web瀏覽器上的編程語言,它的魔力就是能在頁面里製造一些動態效果。 JavaScript可以做bookmarklets, Greasemonkey 腳本, 和 Ajax, 所以它是web上各種好東西的關於因素。 學習JavaScript從這里開。伺服器端腳本:一旦你學會了網頁里的知識,你就要開始對它添加一些動態伺服器操作為了實現這些,你需要把目光轉移到伺服器端腳本語言,例如PHP, Python, Perl, 或 Ruby。 舉個例子,如果想要製作一個網頁形式的聯系方式表單,根據用戶的輸入發送郵件,你就需要使用伺服器端腳本來實現。 像PHP這樣的腳本語言可以讓你跟web伺服器上的資料庫進行溝通,所以如果你想搭建一個用戶可以登錄注冊的網站,這樣的語言正是你需要的。 Webmonkey 是一個優秀的web開發資源網站,裡面有大量的各種web編程語言的指導手冊。 閱讀一下他們的 PHP 初學者指南。 當你感覺差不多了的時候,看看WebMonkeys PHP and MySQL tutorial 學習如何使用PHP跟資料庫交互。 網上最好的要數PHP語言官方的在線文檔和函數參考了。 每個知識點上 (例如strlen function這個)都在後面列出來用戶的評論注釋,這些對於文檔的本身是非常有價值的。 (我很喜歡PHP,但還有很多其他種伺服器端的腳本語言你們都可以選擇。)Web框架:過去數年裡,web開發人員在開發動態網站的過程中不得不一遍又一遍的針對重復遇到的問題寫出重復的代碼。 為了避免這種每次開發一些新網站都會重復勞動一次的問題,一些程序員動手搭建了一些框架,讓框架替我們完成重復性的工作。 非常流行的 Ruby on Rails 框架,作為一個例子,它利用Ruby編程語言,為我們提供了一個專門面向web的架構,普通的web應用程序都能使用它來完成。 事實上,Adam使用Rails開發了他的第一個正式的(而且是嘆為觀止的!)web應用程序,MixTape.me。這就是 他的如何在沒有任何經驗的情況下搭建一個網站。還有一些其他的web開發框架包括 CakePHP (針對 PHP 編程者), Django (針對 Python 編程中), 以及 jQuery (針對 JavaScript).Web APIs: API (應用層序編程介面) 是指不同的軟體之間相互交換的程序途徑。 例如,如果你想在你的網站上放一個動態的地圖,你可以使用Google Map,而不需要開發自己的地圖。 The Google Maps API 可以輕松的讓你通過JavaScript在程序中引入一個地圖到你的頁面上。 幾乎所有的現代的你所知道的和喜愛的web服務都提供了API,通過這些API你可以獲取到他們的數據和小工具,在你的應用程序里就可以使用這些交互過來的東西了,例如Twitter, Facebook, Google Docs, Google Maps, 這個列表遠不止這些。 通過API把其他web應用集成到你的web應用里是現在富web開發的前沿地帶。 每個優秀的主流的web服務API都附帶有完整的文檔和一些快速入手的指導(例如,這個就是 Twitter的)。 瘋狂吧。命令行腳本如果你想開發一個程序,讓它讀取文字或文件、輸入輸出一些有用的東西,那麼,命令行腳本語言將是個不錯的選擇。 然而它並不像web應用程序和桌面應用程序那樣有吸引力和好看的外觀,但是作為快速開發的腳本語言,你卻不能忽視它們。很多的在linux平台上運行的web腳本同樣能以命令行模式運行,例如Perl,Python和PHP,所以如果你學會了使用它們,你將能在兩種環境中使用它們。 我的學習道路一直沒離開Peal太遠,我自學Python使用的是這本優秀的在線免費書Dive into Python。如果成為一個Unix高手也是你學習的目標,那麼你絕對要精通bash這個腳本語言。 Bash是Unix和Linux環境下的一種命令行腳本語言,它能夠為你做所以的事情:從自動備份資料庫腳本到功能齊全的用戶交互程序。 起初我沒有任何使用bash腳本的經驗,但最終我用bash開發了一個全功能的個人代辦任務管理器: Todo.txt CLI。插件(Add-ons)如今的web應用程序和瀏覽器都可以通過一些擴展軟體來豐富自己的功能。 由於一些現有的軟體,例如Firefox、WordPress越來越受到開發人員的關注,插件的開發也日益流行,人們都在說But if only it could do THIS只要你掌握了HTML,JavaScript和CSS,你就可以在任何的瀏覽器里開發你想要的很多東西。 Bookmarklets, Greasemonkey user scripts, 和 Stylish user styles這些軟體都是用的更普通頁面一樣的語言寫成的, 這幾個東西都值得你去研究一些。更高級的瀏覽器擴展程序,例如Firefox的擴展,它們可以幫助你很多。 開發Firefox的擴展,舉個例子,需要你精通JavaScript和XML(一種標記語言,類似HTML,但具有更嚴格的格式)。 早在2007年我就寫下來 how to build a Firefox extension, 這是我在笨手笨腳的研究網上的一些學習資料後獲得的成果。很多免費的、受歡迎的web應用程序都提供了擴展框架,例如WordPress 和 MediaWiki。 這些應用程序都是用PHP寫成的,所以只有對PHP熟悉你才能做這些事情。 這個就是 如何編寫WordPress插件。 而想駕馭Google Wave前沿技術的開發人員可以從使用HTML, JavaScript, Java, 和 Python 寫小組件和小工具開始。 我寫的第一個Wave bot是跟著這個 一個下午時間的快速入門指導開始的。開發桌面上的Web應用程序學習編程最好的結果是你在一個環境下學的東西可以應用到另外的環境中。 先學習開發web應用程序的好處就是我們有一些方法可以讓web應用程序直接在桌面上運行。 例如, Adobe AIR 是一個跨平台的即時運行平台,它能讓你編寫的程序運行在任何裝有AIR的操作系統的桌面上。 AIR應用程序都是由HTML, Flash, 或 Flex 寫成的,所以它能讓你的web程序在桌面環境中運行。 AIR是開發部署桌面應用程序的一個優秀的選擇,就像我們提到過的 10個讓你值得去安裝AIR的應用程序。移動應用開發能在iPhone或者Android智能手機上運行的手機應用程序的開發如今正呈現井噴之勢,所以你也可以夢想一下如何在iTunes應用商店裡通過你的天才程序大賺一筆。 但是,作為一個編碼新手,直接奔向移動開發所經歷的學習曲線可能會很陡,因為它需要你熟悉高級的編程語言,例如Java和Objective C。 然而,你當然應該看看iPhone 和 Android 編程究竟是什麼樣子的。 閱讀這個 簡單的iPhone應用開發例子 可以初步認識一下iPhone程序的開發過程。 Android 程序都是由Java寫成的,這有一個 簡單的視頻教程教你如何開發第一個Hello Android程序(註:可能需要代理才能看這個視頻)。耐心,刻苦,嘗試,失敗好的程序員都有一個不達目的誓不罷休的品質,他們會驚喜於通過長期推敲和失敗換來的一點成績。 學會編程會有很好的回報的,但是學習的過程可能會是飽受挫折和孤獨的。 如果有可能,最好找個伴一起陪你做這件事。 想精通編程,這和其他事情一樣,需要堅持,反復嘗試,獲得更多的經驗。這篇文章里的內容就是對那些想通過自我研究達到學會編程目的的新手們的一些重要建議。 編程老手們:我有什麼遺漏嗎? 不論你的水平如何,請留下你的想法。