人生苦短,開發用雲-如何優雅完成程式設計師的俠客夢
簡介: Coding的魅力如此之強,引無數程式設計師競折腰,在今年由CSDN舉辦的1024程式設計師節上,中國初代程式設計師大宗師求伯君說,當年看到有人在用WPS,可開心了,因為有很多人用。然後,也會去找看是誰破解的,於是就這麼認識雷軍的,目前我雖然退休了,還在寫程式碼,寫遊戲程式碼,不是商業軟體....其實是寫外掛,這個不好意思拿出來炫耀但確實可以讓遊戲簡單點嘛。讓自己的程式碼,自己的專案廣泛流傳可以說是每一位程式設計師的最高目標。開發平臺就像是程式設計師手中的劍,只是程式設計師手中的劍已經由從前只能隨身攜帶,變成了現在來自雲端的天外飛仙。
工欲善其事,必先得其器
工欲善其事,必先得其器,一款得心應手的程式設計工具,對於程式設計師來說無疑是效率神器,可以令開發工作事半功倍,在筆者親身試用了雲原生開發工具之後,可以說目前以雲開發平臺為代表的最新開發平臺,其帶來的效率提升加成,令人歎為觀止了。
在十年前業界普遍流傳著一句話叫做“程式碼正在吞沒世界”,後來又說“網際網路世界的一切源自開源”,而直到最近人們才真正醒悟原來雲原生才是背後的那個大BOSS,凡是不使用雲的都將落後,都無法做到敏捷,跟不上時代。雲開發平臺作為雲原生工具的典範,在未來必然會成為主流的程式設計神器。
而下面我們先盤點一下開發平臺的發展歷程,和各位讀者一起讀懂雲原生與DEVOPS結合從而形成的大趨勢。開發平臺就像是程式設計師手中的劍,只是程式設計師手中的劍已經由從前只能隨身攜帶,變成了現在來自雲端的天外飛仙。
從本地化開發到線上開發
在高階語言出現以後,程式設計師就只需要關心核心的業務邏輯與程式碼實現了,而不再需要關心具體的組合語言手冊,也不必再與暫存器打交道了。尤其是IDE使程式設計師在程式碼之外的配置除錯等工作越來越少。本地化開發平臺如最早的vim+gcc到後來的Borland的Powerbuilder,以及後來的本地IDE集大成者Visual stuio 以及Eclipese,在推出之時也都曾經風靡一時。
但是這樣的開發工具其實是軟體時代的產物,當年的軟體公司僅提供編譯後的二進位制可執行程式,而不提供原始碼,原始碼也是商業意義更重,甚至在公司內部都不會公開,在這樣的背景下本地化開發工具的確可以完成他的使命。
但是開源基礎會GNU的興起和Linux的火爆,開源的理念也隨著網際網路時代逐漸深入人心, IT界傳奇人物Eric Raymond在其史詩級著作《大教堂和集市》(The Cathedral and the Bazaar)中講到,世界上的建築可以分兩種:一種是集市,天天開放在那裡,從無到有,從小到大;還有一種是大教堂,幾代人嘔心瀝血,幾十年才能建成,投入使用。當你新建一座建築時,你可以採用集市的模式,也可以採用大教堂的模式。一般來說,集市的特點是開放式建設、成本低、週期短、品質平庸;大教堂的特點是封閉式建設、成本高、週期長、品質優異。在開源模式的推動下,以Github的Web Ide以及kaggle為代表的線上開發平臺崛起。這也使萬千上人開發者同時開發開源專案成為可能。
不過線上開發平臺雖然與程式碼倉庫結合更為緊密,但是也無法做到完全的敏捷,不能直接實現所見即所得式的測試,也無法高效快速的釋出版本,可以說這也不是開發平臺的最終形態。
雲開發平臺零距離
將雲服務與開發平臺結合,開發時即可隨時呼叫Serverless服務,才是真正的所見即所得。下面筆者就帶大家共同來零距離感受一下雲開發平臺的魅力。目前人臉資訊已經是資訊保安攻防的重點領域了,比如Partialconv模型可以通過AI對於影象進行修復(Partialconv的論文地址、Partialconv的Github傳送門)即使影象丟失了大面積的畫素他也能通過AI將損失進行修復,Partialconv也是所謂的一鍵”去“衣、一鍵”去“碼之類應用的鼻祖,其效果圖如下:
當Partialconv推出之後不少人都驚呼道以後頭像打碼也不保險了,甚至完全沒有作何意義了。基於自編碼技術的AI換臉專案ALAE成功登頂Github之後更是開啟了AI換臉的新時代,相比於之於的人臉影象處理的專案,ALAE可謂是大BOSS的級別了,隨便貼幾張效果圖大家來感受一下。
不但影象分辨甩之前幾代的換臉模型幾條街,而且學習過程的視覺化也更強。
可以說一旦面部資訊丟失那麼後果將十分嚴重,而不少年輕人分享社交動態也就是爆照是一種剛需。那麼如何平衡就是一個問題了。而這個問題的答案就是將自身的影象卡通化,比如使用UGATIT(論文地址、Githu地址)模型,讓自己的頭像在各種卡通風格之間轉換
請求引數
返回資料
示例
請求示例
http(s)://[Endpoint]/?Action=GenerateHumanAnimeStyle
&ImageURL=http://invi-label.oss-cn-shanghai.aliyuncs.com/label/temp/cartoon/test_data/g1.png
&<公共請求引數>
正常返回示例
XML 格式
59697D68-2A6E-4553-89BD-0FADD07881E8
http://vibktprfx-prod-prod-aic-gd-cn-shanghai.oss-cn-shanghai.aliyuncs.com/person-image-cartoonizer/59697D68-2A6E-4553-89BD-0FADD07881E8_7ee5_20201027-070958.jpg?Expires=1603784400&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&Signature=ut2kn46Lz%2FRwqJ9jWJ0RBDut12****
JSON 格式
{
"RequestId": "59697D68-2A6E-4553-89BD-0FADD07881E8",
"Data": {
"ImageURL": "http://vibktprfx-prod-prod-aic-gd-cn-shanghai.oss-cn-shanghai.aliyuncs.com/person-image-cartoonizer/59697D68-2A6E-4553-89BD-0FADD07881E8_7ee5_20201027-070958.jpg?Expires=1603784400&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSR****&Signature=ut2kn46Lz%2FRwqJ9jWJ0RBDut12****"
}
}
以上程式碼在雲開發平臺上配置這樣的HTTP請求是非常簡單的,不但可以快速除錯,甚至還有10萬次免費的生產環境呼叫額度。
當然如有讀者有微信小程式的需求,那麼其實現也的窘迫的簡單快捷,只需要上傳人像圖,傳遞給後端,後端呼叫演算法,返回結果
小程式呼叫api示例
wx.chooseImage({
success({ tempFiles }) {
var files = tempFiles
that.fileUpload(files[0].path);
wx.request({
url: '/api',
method: 'GET|POST',
data: {
imageUrl: 'url'
}
})
}
})
測試結果如下:
原圖
卡通結果圖
這樣的快速開發方式及功能實現,可以稱得上頗有事後拂袖去深藏功與名的俠客之風了,雲原發平臺其實是雲原生平臺,只要有想法就可以迅速變成對應的功能快速上線,小白也能在雲開發平臺的加持下成為一個武功高超的大俠,圓夢極客時代。IT業與傳統行業最大的不同,就是其背後還隱藏著俠義江湖的影子,筆者相信阿里此次懷著巨大誠意的雲開發平臺,也必將能從技術社群中得到中肯的意見與支援。雲開發平臺開發平臺為各路武林高手快速伸展的途徑,而在這種不斷交流切磋的過程中,必將提高各門派的武功水準。所以在此筆者也由衷希望阿里今後能夠推出更多優質的雲原生專案,推動行業良性發展。
作者:霸道網管
本文為阿里雲原創內容,未經允許不得轉載