v1.0.25 新版發布及Smart Meetup重新開啟丨SmartIDE

cffdf34580e0456aca4162ca1e14e3bd.gif

作者:徐磊

文章首發地址:https://smartide.cn/zh/blog/2022-0892-sprint25/

5fe95b27a93ff834bf56fc43fc802c10.jpeg

關于SmartIDE

SmartIDE是一群開發者為所有開發者開發的開源云原生IDE,我們的使命是“為開發者賦予云原生的超能力”!

使用SmartIDE你只需要學會一個簡單的指令 smartide start 即可一鍵搭建任何開發語言的開源環境,包括:Java, DotNet, JavaScript/前端,Go語言,Python,PHP,C/C++七種主流技術棧;你也可以在 Windows/MacOS/Linux 三種操作系統上使用SmartIDE,你還可以選擇自己喜歡的IDE工具,包括:VSCode/JetBrains全家桶。

SmartIDE v1.0.25 (CLI build 5383, Server Build 5503) 已經發布,這個版本中我們針對一些關鍵特性進行了重要重構,比如 統一配置文件 和 工作區策略;同時我們還發布了一鍵啟動鏈接和 SmartIDE Codespaces for Azure DevOps 插件,允許開發者在Azure DevOps上直接啟動SmartIDE工作區;具體列表如下:

  • 統一配置文件:開發者可以使用一個.ide.yaml 文件同時支持本地/遠程/k8s三種模式的工作區配置

  • 一鍵啟動鏈接:允許開發者將這個鏈接放置在README文件,博客或者任何網頁上,直接點擊即可啟動工作區

  • Azure DevOps插件:允許開發者在Azure DevOps的代碼庫,流水線和工作項上一鍵啟動SmartIDE工作區

  • 工作區策略改進:增加了credential策略,方便開發者為k8s工作區設置密碼,同時允許開發者使用這個密碼通過SSH登錄工作區

統一配置文件

dd77235b11ccdc905bcfd6b7c0a176aa.png

這個版本中我們開始允許使用一個 .ide.yaml?同時支持本地,遠程和k8s三種工作區模式的配置。由于我們使用了 docker-compose 和 k8s manifest 兩種環境編排,在之前的版本中用戶需要針對2種編排模式提供至少2個不同的 .ide.yaml 文件,并且需要在啟動的時候特意指定不同的配置文件,才能在不同類型的資源上啟動工作區。現在開始,我們支持使用一個統一的.ide.yaml作為多種環境資源的入口,比如以下配置文件:

version: smartide/v0.3
orchestrator:type: allinoneversion: 3
workspace:dev-container:service-name: boathouse-calculator-devwebide-port: 6800ports: tools-webide-vscode: 6800tools-ssh: 6822apps-application: 3001ide-type: vscode  volumes: git-config: truessh-key: truecommand:- npm config set registry https://registry.npmmirror.com- npm installkube-deploy-files: "k8s-deployment.yaml" docker-compose-file: "docker-compose.yaml"

幾個關鍵點:

  • Line 3 - orchestrator 的類型指定為 allinone,之前的選項是 docker-compose 或者 k8s

  • Line 20 - 指定k8s環境的編排文件

  • Line 21 - 指定本地和主機環境的編排文件

使用統一配置文件之后,開發者可以使用統一的指令格式在三種不同資源上啟動工作區,比如以下指令

## 本地啟動 (windows/mac/linux)
smartide start https://github.com/idcf-boat-house/boathouse-calculator.git
## 遠程主機啟動
smartide start --host <hostId> https://github.com/idcf-boat-house/boathouse-calculator.git
## k8s啟動
smartide start --k8s <context> https://github.com/idcf-boat-house/boathouse-calculator.git

可以看到,以上啟動指令中只是增加了?--host 或者?--k8s 參數,其他部分完全一致。另外,使用了統一配置文件之后,開發者也可以直接使用現有的 docker-compose 文件 或者 k8s 配置文件,不再需要復制這些文件的內容放入到我們的 .ide.yaml 中,這將簡化開發者使用SmartIDE的準備工作。

網頁鏈接一鍵啟動

af051c6312f5062a0525866ae933d1a6.png

開發者現在可以使用類似以下的鏈接格式直接觸發工作區的創建

https://dev.smartide.cn/#<Git代碼庫URL>

比如,以下就是一個可以直接觸發工作區創建的鏈接,點擊這個鏈接將會自動為boathouse-calculator庫創建工作區

  • https://dev.smartide.cn/#https://github.com/idcf-boat-house/boathouse-calculator

你也可以在自己的README.md上放置一個 smartide start 的徽章,并在徽章上使用這個鏈接

fb7dc392c4c976a2f70f902c7bab9aff.png

以下視頻展示了使用?網頁鏈接一鍵啟動?Github代碼庫的場景

36d04195f9e1ad88928c8fe4101439d2.jpeg

SmartIDE Codespaces for Azure DevOps 插件

c6fb9e4ce9be44272fe0a39a0ea72d23.png

基于以上?一鍵啟動鏈接?能力 ,我們為 Azure DevOps 平臺提供了一個插件,允許用戶在不同的位置按照當前的上下文啟動工作區,自動獲取代碼庫地址,分支名稱等參數,簡化開發者創建開發環境的準備工作。這些自動化操作可以簡化開發者從日常任務中進入編碼環境的操作,并實現全線上化操作。

以下視頻是在早鳥用戶姚圣偉訪談過程中對這個插件的演示過程:

5add203558a9792ce3e184cf35b22c5c.jpeg

這個插件和已經發布到了 Azure DevOps 的插件市場,鏈接如下

  • SmartIDE Codespaces for Azure DevOps 插件

3b2f612742f38b507db13340f0d701f7.png

這個插件提供了4類入口,分別是

1. 代碼庫:?用戶可以在任何分支或者提交記錄上啟動工作區,插件會自動識別當前代碼庫地址和分支名稱,并使用這些參數啟動一個與當前代碼版本一致的開發環境。

7f9a2c1c91c740e07143b4e13afc17d9.png

2. 拉取請求:?使用拉取請求(PR)進行代碼評審是非常普遍的開發實踐,但是評審者往往會因為無法看到軟件的運行情況而無法對當前正在評審的內容進行有效和完整的判斷。此時,評審者就可以直接點擊 Open in SmartIDE 按鈕,即可獲取一個和當前被評審代碼完全一致的,可運行的環境來輔助進行代碼評審,這會讓評審工作變得更加簡單和高效。評審者在整個過程中也無需安裝任何開發工具,SDK和中間件環境,所有的環境都通過SmartIDE自動創建完成。評審結束后這個環境就可以直接銷毀。

53c29db9ab9596224decbbfc01829371.png

3. 流水線:?一次流水線執行代表一個軟件版本,測試人員一般是需要圍繞這樣的版本來進行測試的。傳統模式下,測試人員需要準備幾套測試環境來輪流測試不同的版本,如果出現多個版本并行的情況就很難管理這些測試環境。使用了SmartIDE之后,測試人員可以隨時在任何版本(流水線運行記錄)上點擊 Open in SmartIDE 按鈕,即可獲取一個和當前流水線運行版本一致的環境進行測試;并且,這個環境中還包含了可供開發人員直接進行調試的IDE工具。測試過程中如果發現問題,測試人員可以將這個環境直接共享給開發者進行問題定位和調試。這種隨用隨起的測試環境將極大簡化測試人員獲取可用測試環境,以及在測試環境中定位問題的復雜度,提高開發測試迭代速度。

5be06aafec0d4bad92e0190403cca59d.png

4. 看板工作項:?使用特性分支對應到具體工作任務是大型軟件開發團隊中常用的分支策略,也是一種高效團隊協作模式。以往開發者需要手工創建分支,并在本地開發環境拉取代碼并手工切換到這個分支上才能開發工作。如果遇到同時在2個特性上工作的情況,繁瑣的分支操作很容易造成操作失誤。現在,開發者可以在工作任務上直接點擊 Open in SmartIDE 按鈕并根據需要創建或者使用已有分支,SmartIDE會自動使用指定分支創建開發環境。對于多特性并行情況,開發者只需要打開2個不同的瀏覽器窗口即可同時在2個分支上互不影響的進行工作。

f70ace29a97e8fb9e2a7d19c06b03ff6.png

SmartIDE Codespaces for Azure DevOps 插件只是我們計劃提供的各種插件的一個示例,未來我們還將為常用的DevOps工具提供類似的入口,比如:Jira, Confluence, GitLab, Jenkins等等。這些擴展將幫助現有的DevOps工具與開發環境及編碼過程實現更加緊密的集成,為開發人員提供一體化的工作體驗。

工作區策略改進

e8a6be1cf68ac767705dafb738540cc9.png

工作區策略是SmartIDE中針對工作區進行各種控制的通用能力,之前我們已經提供了 Git Config 和 SSH Key 兩種策略分別用來控制工作區中的git配置和ssh密鑰。這個版本中我們增加了統一設定工作區訪問密碼的credential策略,一旦設定,開發者就可以使用一個統一的密碼來控制對自己工作區的訪問,包括SSH訪問。

對于原有的SSH Key策略,我們進一步完善了密鑰的推送過程,幫助開發者在使用SSH遠程連接的時候實現免密登錄。

下圖:開發者獲取SSH登陸指令并直接進入工作控制臺終端。

2314320b11630dc477ebee7ed90aed41.gif

開發者也可以使用這個指令將本地VSCode或者JetBrains IDE連接到工作區,整個過程無需輸入密碼。

下圖:使用VSCode遠程模式免密進入SmartIDE云端工作區

876f35460743d9289bf23be355c72b11.gif

感謝你對SmartIDE的關注,歡迎從SmartIDE官網(文末鏈接)下載體驗我們的產品,獲取加入我們的早鳥群,及時了解SmartIDE的開發進展。

8dbad0049db6a1e3f6b18ff95588442b.jpeg

39607071c69379e5cd212bc90693b4db.gif

#SmartIDE Meetup,終于回來了。

2022年9月13日開始,我們將重新啟動Smart Meetup線上直播活動,為大家持續揭秘SmartIDE的各種好玩的特性,并帶領大家真正將SmartIDE用到自己日常的開發工作中👇

趕緊掃碼預約吧,還有機會抽取SmartIDE主題文化衫哦!

d6ad8a6233d29de9775a96fb6eb73f93.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282911.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282911.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282911.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

線程安全的單例模式

面試的時候&#xff0c;常常會被問到這樣一個問題&#xff1a;請您寫出一個單例模式&#xff08;Singleton Pattern&#xff09;吧。好吧&#xff0c;寫就寫&#xff0c;這還不容易。順手寫一個&#xff1a; public final class EagerSingleton { private static EagerSi…

vue實現首屏加載等待動畫 避免首次加載白屏尷尬

為什么80%的碼農都做不了架構師&#xff1f;>>> 0 直接上效果圖 1背景&#xff0c;用戶體驗良好一直是個重要的問題。 2怎么加到自己項目里面&#xff1f; 復制css html代碼到自己的index.html即可 代碼鏈接 源碼地址 Vue學習前端群493671066&#xff0c;美女多多。…

java-回調機制詳解

轉&#xff1a;http://blog.csdn.net/llayjun/article/details/50454148 閱讀目錄 一、前言二、回調的含義和用途三、Java實現接口回調 四、Android中的接口回調五、參考資料一、前言 最近在看android fragment與Activity進行數據傳遞的部分&#xff0c;看到了接口回調的內容&a…

lfi讀取php,php LFI讀php文件源碼以及直接post webshell

php LFI讀php文件源碼以及間接post 網站shell假如如下一個場景(&#xff11;) http://vulnerable/fileincl/example&#xff11;.php?pageintro.php(該php文件包孕LFI漏洞)(&#xff12;) 然而你不有中央能夠upload你的網站shell代碼(三) LFI只能讀取到非php文件的源碼(由于無…

根據請求上下文動態設置靜態文件存儲目錄

前言上次&#xff0c;我們實現了根據 subpath 特定格式《動態設置靜態文件存儲目錄》。例如&#xff1a;subpath靜態文件路徑/userAId/1.jpgc:\abc\userAId\1.jpg/userBId/1.jpgd:\xyz\123\userBId\1.jpg但是&#xff0c;如果 subpath 不能有這種特定格式&#xff0c;只能用通用…

BZOJ3019 : [Balkan2012]handsome

首先預處理出$f[i][j][k]$表示長度為$i$的序列&#xff0c;第一個位置是$j$&#xff0c;最后一個位置是$k$時合法的方案數。 從后往前枚舉LCP以及那個位置應該改成什么。 用線段樹維護區間內最左最右的已經確定的位置&#xff0c;以及區間內的合法方案數。 合并的時候只需要將左…

php smarty入門,smarty 快速入門

smarty 快速入門smarty定義:一個開源的模板引擎模板引擎是為了使用戶界面與業務數據分離而產生的&#xff0c;它可以生成特定格式的文檔&#xff0c;用于網站的模板引擎就會生成一個標準的HTML文檔。功能將網站的數據和網站的界面實現分離(php和html代碼)緩存頁面下載www.smart…

ImageView的scaleType理解

2019獨角獸企業重金招聘Python工程師標準>>> 1.android:scaleType“center” 保持原圖的大小&#xff0c;顯示在ImageView的中心。當原圖的size大于ImageView的size時&#xff0c;多出來的部分被截掉。 2.android:scaleType“center_inside” 以原圖正常顯示為目的&…

第一章 引論

1、什么是多道程序設計&#xff1f; 即內存中同時運行多道獨立程序&#xff0c;宏觀上所有程序同時運行&#xff0c;微觀上程序串行&#xff0c;多道程序輪流占用CPU&#xff0c;提高了資源利用率。 2、什么是SPOOLING&#xff1f;讀者是否認為將來的高級個人計算機會把SPOOLIN…

《ASP.NET Core 6框架揭秘》實例演示[24]:中間件的多種定義方式

ASP.NET Core的請求處理管道由一個服務器和一組中間件組成&#xff0c;位于 “龍頭” 的服務器負責請求的監聽、接收、分發和最終的響應&#xff0c;針對請求的處理由后續的中間件來完成。中間件最終體現為一個Func<RequestDelegate, RequestDelegate>委托&#xff0c;但…

Android之 RecyclerView,CardView 詳解和相對應的上拉刷新下拉加載

為什么80%的碼農都做不了架構師&#xff1f;>>> 隨著 Google 推出了全新的設計語言 Material Design&#xff0c;還迎來了新的 Android 支持庫 v7&#xff0c;其中就包含了 Material Design 設計語言中關于 Card 卡片概念的實現 —— CardView。RecyclerView也是谷…

php獲取郵箱內容嗎,php正則驗證email郵箱及抽取內容中email的例子

1&#xff0c;php正則驗證email格式&#xff1a;復制代碼 代碼示例:if (ereg(“/^[a-z]([a-z0-9]*[-_\.]?[a-z0-9])*([a-z0-9]*[-_]?[a-z0-9])[\.][a-z]{2,3}([\.][a-z]{2})?$/i; ”,$email)){echo “Your email address is correct!”;}else{echo “Please try again!”;}?…

Java——Arrays類操作數組的工具類

JDK中提供了一個專門用于操作數組的工具類&#xff0c;即 Arrays 類&#xff0c;位于 Java。util 包中。該類提供了一系列方法來操作數組&#xff0c;如排序、復制、比較、填充等&#xff0c;用戶直接調用這些方法即可&#xff0c;不需要自己編碼實現&#xff0c;降低了開發難度…

PropertiesUtil 獲取文件屬性值

有時候不要把一些屬性值寫死在代碼中&#xff0c;而是寫在配置在文件中&#xff0c;方便更改 PropertiesUtil工具類&#xff1a;讀取key-value形式的配置文件&#xff0c;根據key獲得value值 1、測試類 public class Test{private static PropertiesUtil propertiesUtil new …

CORS——跨域請求那些事兒

【本期嘉賓介紹】睿得&#xff0c;具有多年研發、運維、安全等IT相關從業經歷。目前從事CDN、存儲、視頻直播點播的技術支持。喜愛鉆研&#xff0c;喜愛編碼&#xff0c;喜愛分享。 在日常的項目開發時會不可避免的需要進行跨域操作&#xff0c;而在實際進行跨域請求時&#xf…

oracle 數據執行計劃,Oracle里常見的執行計劃

本文介紹了Oracle數據庫里常見的執行計劃&#xff0c;使用的Oracle數據庫版本為11.2.0.1。1、與表訪問相關的執行計劃Oracle數據庫里與表訪問有關的兩種方法&#xff1a;全表掃描和ROWID掃描。反映在執行計劃上&#xff0c;與全表掃描對應的執行計劃中的關鍵字是“TABLE ACCESS…

.NET MAUI實戰 Dispatcher

詳細內容這一期分享的內容非常簡單&#xff0c;在之前使用過WPF的開發者對MVVM開發模式下ViewModel中后臺線程轉UI線程并不陌生使用Appplication.Current.Dispatcher。那么在.NET MAUI中也有同樣的機制&#xff0c;存在于.NET MAUI Shell對象中。那么什么是Shell&#xff1f;官…

GDB 配置

GDB 配置 使用 GDB 擴展來配置 GDB 事實上我還是覺得原生的 GDB 就挺好&#xff0c;速度快&#xff0c;需要查看什么執行命令就可以。 GDB DashBoard https://github.com/cyrus-and/gdb-dashboard $sudo mkdir -m 777 ~/gdbinit; cd ~/gdbinit $git clone https://github.com/c…

Oracle區分中文和英文,oracle中中英文段落劃分實現

oracle中關于中文占用字節數&#xff0c;不同的數據庫有不同的情況&#xff0c;有的占用兩個字節、有的占用三個字節&#xff0c;現在測試環境的數據庫中文占用三個字節&#xff0c;要實現由中英文組成的段落字符串&#xff0c;按照每行占用多少字節重新分段&#xff0c;具體應…

未來哪些行業值得加入?

閱讀本文大概需要5分鐘。這個問題很多讀者都問過&#xff0c;基本上每隔幾篇原創就會有人留言問&#xff0c;還有公眾號后臺和知乎私聊。之前在一次留言中我承諾專門開一篇文章來聊聊這個話題&#xff0c;今天想著要兌現這個諾言了。為啥最近會存在這個問題呢&#xff0c;原因其…