幕後花絮:JMP®Live(2021-EU-PO-732)中的軟件開發級別:初學者
SAS JMP高級軟件開發人員Aurora Tiffany-Davis
窺視幕後,了解我們如何開發JMP Live軟件。 開發軟件不僅僅是坐在鍵盤上編寫代碼。 在工作的“編寫代碼”部分之前,之中和之後,查看我們使用哪些工具和流程。
了解我們如何:
- 了解需要什麼。
- 定義成功的模樣。
- 編寫代碼。
- 發現問題(這樣我們的客戶就不必這樣做)。
- 維護軟件。
自動產生的筆錄...
成績單
|
| 嗨,我是Aurora Tiffany-Davis, |
| JMP Live團隊,我今天想與您談談 |
| 我們如何在JMP Live團隊中開發軟件。 |
| 首先,我想讓您想像一下軟件開發的樣子 |
| 喜歡你。 如果您自己不是開發人員,那麼 |
| 您腦海中的圖片可能已被電視和 |
| 您看過的電影。 |
| 您可能正在想像一個獨自工作的奇才天才, |
| 而且軟件開發過程非常簡單。 他們 |
| 認真思考一個問題。 他們寫一些代碼 |
| 然後他們確保它可以正常工作。 它可能會做到, |
| 因為畢竟它們是一個 |
| 天才。如果我們都是像好萊塢這樣的天才,說我們是, |
| 這個過程可能對我們有用,但實際上我們只是人類, |
| 因此,我們需要的不僅僅是 |
| 那。首先,我們不是一個人工作。 我們非常努力 |
| 合作,我們有一個過程可以幫助我們 |
| 生產高質量的軟件。 我要指出的是,這裡沒有 |
| 一種正確的軟件開發過程。 你的 |
| 各個公司之間的流程將有所不同,甚至 |
| 在公司內部。 但是我今天要做的是引導您完成 |
| 如果要在中開發新功能,該怎麼辦 |
| JMP Live。 |
| 首先,在我坐下來編寫代碼之前,我必須 |
| 有一些實際需要。 必須有一個真實的人 |
| 誰在JMP Live中找到了一些東西 |
| 並沒有按照他們認為的方式工作,這是 |
| 說他們發現了錯誤或有一個錯誤的好方法 |
| 請求新功能。 我們會在 |
| 內部系統,所以我要做的第一件事就是 |
| 該系統,並找到一個很好的高優先級問題 |
| 匹配我的技能,然後開始思考,然後開始 |
| 談論它。 我接下來要做的就是嘗試了解 |
| 通過與人交談的需要。 什麼樣的用戶要去 |
| 需要這個功能嗎? 他們怎麼樣 |
| 要用它嗎? 然後,我將在自己的計算機上運行JMP Live, |
| 然後開始研究新功能的適用範圍 |
| 進入JMP Live |
| 今天存在。 然後我會提出代碼並開始思考 |
| 通過新代碼將如何適合我們的代碼庫。 |
| 一旦我認為自己對需要有充分的了解,我就會 |
| 將繼續進行設計步驟。 再來一次,我的第一個 |
| 要做的就是與人交談。 我將與用戶交談 |
| 我們在JMP中擁有經驗豐富的專家,我將與我交談 |
| 同事問:“您是否曾從事與 |
| 這之前? 您以前曾經在代碼的這一部分工作過嗎?” |
| 然後,我將開始充實設計。 我可能會寫文章 |
| 並繪製圖表並共享這些內容,以便我可以 |
| 確保團隊的其他成員通常 |
| 適應方向 |
| 我要搬進去 現在我坐下來開始寫一些 |
| 代碼。為此,我將使用集成開發 |
| 環境,這是一個包含很多內容的程序 |
| 旨在幫助我們更好地完成工作的功能。 |
| 現在,我已經寫了一些代碼,第一步是找到 |
| 我剛創建的問題。 我只是人類,所以機會 |
| 我在第一次嘗試時編寫了100%無缺陷的代碼,這非常苗條。 |
| 我的第一步將是 |
| 使用靜態分析。 靜態分析不會運行代碼, |
| 它看起來就像寫在一塊 |
| 紙。一個類比可能是Microsoft Word中的拼寫檢查。 拼寫檢查 |
| 無法告訴我我是否寫過引人注目的內容 |
| 小說,但它可以告訴我是否錯過了逗號。 |
| 靜態分析針對代碼執行此操作。 |
| 現在,我已經找到並解決了那些非常明顯的問題, |
| 下一步將是尋找不太明顯的問題, |
| 為此,我將使用自動化測試套件。 我們有 |
| 針對我們的代碼編寫了廣泛的測試。 自動化的 |
| 測試確實可以運行代碼,或者更確切地說,它可以運行 |
| 代碼,提供了一定的輸入,並期望有一定的輸出。 |
| 坐下來寫下這些是非常有價值的練習 |
| 測試,因為有時候我坐下來寫一個新的測試 |
| 任何功能,都迫使我真正闡明我的想法 |
| 首先該軟件應如何工作。 |
| 它還提供了一個非常關鍵的保護措施,以防止 |
| 同事在將來不小心破壞了此功能。 所以 |
| 這是找到的好方法 |
| 提早出現問題。 一旦我編寫並自動運行這些 |
| 測試,我將繼續進行一些手動測試。 我可能會運行JMP |
| 駐留在我的本地計算機上,或者在我們擁有的幾台服務器中的一台上 |
| 在辦公室裡閒逛並嘗試一些東西,只是要確保 |
| 以我的方式運作 |
| 認為應該的。 我什至可以查看數據庫 |
| 坐在JMP Live後面,並跟踪記錄 |
| 用戶,帖子,組,評論,並確保記錄是 |
| 以我期望他們的方式寫。 |
| 現在,我對自己寫的一些文章保持謹慎的樂觀態度。 |
| 代碼,我創建了一個有用的 |
| 特徵。下一步是向我的同齡人徵求意見。 患病的 |
| 通過同行評審對此進行說明。 現在在JMP Live中,我們將100%的 |
| 我們通過同行評審編寫的代碼,原因是 |
| 我們發現它是如此有價值。 |
| 我可能錯過了一些東西,因為我只是 |
| 對某事有盲目性。 或可能是 |
| 如果我的團隊中的其他人只是知道我 |
| 缺少。在評論中,審閱者通常也會 |
| 從鍛煉中獲得很多價值,因為他們可能 |
| 了解一些新技術。 |
| 現在,團隊對我們創建的團隊非常樂觀 |
| 一些好的代碼,我最終將提交我的代碼或將其檢入 |
| 源代碼存儲庫。 |
| 我們有一個持續不斷的構建系統,可以監視我們 |
| 提交代碼,當我們這樣做時, |
| 分析它。 它尋找真正的基本內容,例如文件 |
| 命名正確的方式和正確的位置? 它也會重新運行 |
| 靜態分析,它將重新運行我們的整個自動化測試 |
| 套房。這樣做是為了防止有人忘記這樣做 |
| 在此過程的早期。 或更常見的情況是 |
| 自上次以來,一些細微的變化已經改變了 |
| 自動化測試套件已運行。 |
| 因此,它會進行所有這些分析以及何時完成分析 |
| 這一步,該代碼現在可供外部人員使用 |
| 開發團隊 |
| 看它。 最早接受此測試的人是測試 |
| 我們在JMP Live和JMP團隊中擁有的專家 |
| 更廣泛地。 這些是測試專業人員。 這就是他們所做的 |
| 在他們的整個職業生涯中,他們真的很擅長。 |
| 他們可能會重新運行自動化測試套件。 他們可能會添加更多測試 |
| 到我們的套房。 他們可能會手動運行JMP Live並四處張望 |
| 一般來說。他們可能會在本地運行JMP Live,並假裝這樣做 |
| 作為用戶的事情絕對是瘋狂的。 到底是什麼 |
| 用戶可以做的最瘋狂的事情? 讓我們看看該軟件 |
| 對此作出回應。 他們對這些測試非常有創意 |
| 場景。他們可能還會在各種計算機上運行該軟件。 |
| 不同的瀏覽器和操作系統,以確保我們 |
| 該軟件靈活而強大。 |
| 一旦他們簽署了這項新功能,現在 |
| 可在我們的下一個軟件版本中獲取。 |
| 現在讓我縮小範圍,向您展示整個過程。 |
| 這是很多步驟。 我們真的為所有這些做所有這些嗎 |
| 我們的軟件有變化嗎? 信不信由你,我們願意。 但是這個 |
| 流程的規模很大,具體取決於 |
| 工作。 如果我們有一個非常簡單的明顯錯誤,我們將逐步 |
| 通過此過程,但我們會很快做到。 |
| 另一方面,如果我們有一個非常複雜的新功能, |
| 在此過程的每個步驟中,我們都將放慢速度。 |
| 我們會花時間並多加註意,以確保 |
| 我們做對了。 |
| 現在,任何需要時間的東西都會花費金錢,那為什麼會這樣呢? |
| JMP是否願意將這筆錢用於軟件質量? |
| 原因很簡單。 我們為自己的工作感到自豪,我們 |
| 想要生產出好的產品。 |
| 下一個原因是不太理想化的。 我們知道 |
| 無論我們有什麼問題 |
| 過程,在我們的產品中,如果找不到它們,我們的 |
| 客戶會這樣做,但這對業務不利。 所以我們 |
| 希望將其最小化。 |
| 現在沒有任何流程可以交付 |
| 絕對完美。 因此,我們真的邀請您繼續參與 |
| JMP社區的成員。 轉到community.jump.com,讓我們 |
| 知道JMP Live是否有任何問題,如果它不起作用, |
| 您認為應該的方式,或者您想要的任何新事物 |
| 將來看。 |
| 這種現實世界的反饋對我們來說非常寶貴,並且 |
| 我們真的很歡迎。 |
| 這就是我今天為您準備的一切,但我真的希望 |
| 您將享受其餘的探索體驗。 謝 |
| 你。 |
最佳峰會數據訪問與操作電子海報質量與可靠性