主頁 > 軟體設計 > 2021年25佳DevOps工具, 你用了幾個

2021年25佳DevOps工具, 你用了幾個

2021-08-18 08:34:49 軟體設計

目錄

配置管理:

Puppet

Ansible

Chef

持續集成:

Jenkins

TeamCity

Bamboo

代碼管理:

GitHub

BitBucket

GitLab

持續部署:

Spinnaker

Octopus Deploy

Argo CD

漏洞管理:

TwistLock(Palo Alto Networks )

系統資料

Anchore

質量/測驗:

JMeter

JUnit

Selenium

SonarQube

記錄和監控:

Grafana

New Relic

Nagios

專案管理和協作

JIRA

Slack

Microsoft Teams


DevOps 正在改變軟體開發的狀態,在一項DevOps 調查中,超過 80% 的軟體行業受訪者表示,DevOps 正在以某種形式有效地為他們的作業增加價值--投產速度、產品質量等,

2021 年將是 DevOps 的重要一年,由于 DevOps 跨越 Dev、Ops、IT、安全和產品團隊,以及軟體開發的不同階段,因此有大量工具可供我們選擇,

在本文中,我詳細介紹了目前市場上可用的一些優秀的DevOps 工具,同時分類歸納整理,

2021 年 25 大 DevOps 工具 - Opsera.io

配置管理:

Puppet

#木偶

Puppet 是一種開源配置管理和部署工具,通常用于確保所有服務器都配置到所需的狀態,Puppet 是基于代理的,最常用于 Linux 和 Windows 同時控制多個應用程式服務器,

Puppet 主要用于客戶端/服務器配置,其中受管節點與服務器的配置保持同步,借助 Puppet 的代碼管理工具 R10K,可以更輕松地對 CI/CD 代碼實施自動化或手動更改、更新、審查和測驗,你還可以使用 R10K 和 Puppetfiles 來創建環境的自動部署,

Puppet 還提供了與 Git 的輕松集成以進行版本控制,

Puppet 是宣告性的,因此你需要定義一個宣告性狀態,Puppet會找出如何最好地實作該狀態,

缺點:

  • 整體速度緩慢
  • Puppet 一般無法自動檢查 exec 資源之外的系統狀態
  • Hiera是Puppet的配置資料查找系統,它的執行速度也慢

Ansible

img

?

Ansible 是一種開源配置管理和編排工具,以其簡單性和性能而聞名,Ansible可以使用 SSH 連接到節點,

Ansible 可以在任何安裝了 Python 2(版本 2.7)或 Python 3(版本 3.5 及更高版本)的機器上運行,包括 Red Hat、Debian、CentOS、macOS 和 BSD,

Ansible 使用 YAML(一種標記語言)管理配置變得非常容易,對于跨平臺的自動化任務,Ansible 也很有效,你還可以使用 Ansible 的拉模式從特定檔案中獲取存盤庫和運行命令,將 shell 腳本和組態檔轉換為 Ansible Playbooks 或 Roles 也很容易,Ansible 也有很多可用的檔案,

缺點:

  • 隨著系統規模變大,也變得緩慢
  • 缺乏 Windows 支持
  • 當數百個服務器需要同步時效率低下

Chef

img

Chef 是一個開源 DevOps 工具,主要用于配置管理,Chef 也基于master-agent模型,因為 Chef 客戶端在每臺客戶端機器上運行(使用“knife”工具并通過 SSH 進行通信),但是,Chef 與 Puppet 的不同之處在于它的額外層,這被稱為 Workstation,其中包含所有配置----這些配置首先在本地機器上自動測驗,然后推送到服務器,

當存在主機依賴時,Chef 非常出色,它會獲取系統狀態的描述,并將它們與代理的實時實體進行比較,并確保物件保持同步,

Chef 使用 AWS OpsWorks 等服務維護更大規模的自動化功能,Chef Inspec 還有助于確保網路和部署的安全性和完整性,Chef InSpec 是一個開源框架,允許對你的應用程式進行自動和手動測驗和審計,

AWS Opworks適用于在AWS中使用Chef Automate和Puppet Enterprise的用戶,

借助AWS Opworks,你可以輕松自動化服務器的部署,配置和管理方式,

官網鏈接:https://aws.amazon.com/opsworks/

盡管 Chef 具有強大的 GUI,但你必須了解 Ruby 才能利用 Chef 的基礎架構即代碼的真正力量,尤其是在涉及復雜任務和自定義時,

缺點:

  • Agent 實體需要定期監聽 master 來安裝更新
  • 初學者難以理解
  • 缺乏詳細的檔案
  • 缺乏按需的可擴展性

持續集成:

Jenkins

?

img

Jenkins 是一種用 Java 撰寫的自動化服務,它可以充當 CI(持續集成)工具,使開發人員可以輕松地將新組件集成到軟體中以實作無縫集成,Jenkins 使用插件進行集成來實作這一目標,

Jenkins 偵聽新的拉取請求,將新的作業分支合并到主代碼中,運行自動化測驗,生成新的測驗資料,報告失敗并將最新的代碼更改部署到 QA 環境,

Jenkins Pipeline 用于實作持續集成程序的自動化表達,你可以在流水線中定義構建檔案,將它們加載到 SCM 并配置作業變數,

Jenkins 已經存在了很長時間,并且由于其成熟的生態系統、插件支持、檔案和社區,實際上已經成為一個標準,由于其簡單的 UX/Syntax 流水線和 Docker 集成,它已成為許多公司的首選之一,

缺點:

  • 要使用 Jenkins,你可能需要學習 Groovy,Jenkins 中的 Groovy 腳本不容易撰寫和編輯,
  • 在許多情況下,你還需要在 UI 中手動配置構建、硬編碼組態檔和設定訪問控制,
  • 如果沒有 JenkinsFile,Jenkins 極難使用,JenkinsFile 是一個文本檔案,包含 Jenkins Pipeline 的定義,

TeamCity

img

TeamCity 是一款高級 的CI 工具(也提供功能有限的免費版本),以其易于使用的界面、流暢的配置和創造性的功能而聞名,TeamCity 在 Java 環境和 Apache Tomcat 服務器中運行,但也可以安裝在 Windows 和 Linux 服務器上,

應該選擇 TeamCity 嗎?這在很大程度上取決于你的需求,如果你有預算,并且你的主要任務包括設定固定數量的構建代理,以便輕松地并行執行構建,TeamCity 適合你,TeamCity 也有一個非常完善的檔案,TeamCity 的“Snapshot Dependencies”功能允許你在整個流水線中保持相同的源版本,而無需代碼實作,

但是,TeamCity 會自動為你修復雪花代理(snowflake agents ),你必須為此使用配置工具或容器技術,

TeamCity 基于模板的構建配置可以讓你的生活更輕松,

TeamCity 還原生支持 AWS、GCE 和 Azure 中的代理自動擴展,它還通過插件支持 VMware 和 Kubernetes,還與 GitHub 本地集成,

缺點:

  • 費用昂貴
  • 日志難以決議

Bamboo

img

Bamboo 是由 Atlassian 開發的持續集成和持續部署服務器,Bamboo 的主要優勢之一是能夠在單個作業流中將自動化構建、測驗和發布與其他 Atlassian 產品(如 JIRA、BitBucket、Stash、Hipchat 和 Confluence)集成,從而創建一個穩固的軟體開發和交付的生態系統,

Bamboo 還具有可靠、易于使用的 GUI,

與 BitBucket、Confluence 和 Jira 的輕松集成是 Bamboo 的一大優勢,它還可以啟動類似 cron 的觸發器,如果你有審查分析、自動化測驗等,這些觸發器會派上用場,

缺點:

  • Bamboo的代碼分析能力不強
  • Bamboo 無法集中構建配置
  • 沒有全域工具配置
  • Bamboo 缺乏憑據插件,這意味著必須在每個相關的 Bamboo 專案上進行密碼設定或更改

代碼管理:

GitHub

img

GitHub 是全球數百萬人使用的最流行的源代碼管理工具之一,GitHub 的主要優勢包括其易于使用的 UI、其智能功能--如恢復意外洗掉的存盤庫、多樣化的集成和安全性,GitHub 幾乎很少宕機,這使得它非常可靠,

GitHub 擁有龐大的社區,非常適合開源專案,由于 Microsoft 擁有 GitHub,因此 Azure DevOps 和 Microsoft 工具可以實作可靠的集成,GitHub 使你可以更好地控制 CI/CD 的執行程序,

但是,GitHub 提供的免費的功能有限,

BitBucket

img

BitBucket 是一種軟體版本控制存盤庫服務,通常用于源代碼管理,該服務基于 Mercurial 或 Git 版本控制系統,如果你使用其他 Atlassian 產品,BitBucket 會很有用,在管理大量代碼存盤庫方面,BitBucket 也以其效率而聞名,免費的公共 BitBucket 存盤庫支持無限數量的用戶,

BitBucket 還以其與 JIRA 和 Confluence 的無縫集成而聞名,BitBucket 是私人存盤庫的首選,

BitBucket 還為完整的 CI/CD 周期提供流水線服務,

缺點:

  • 正常運行時間中,BitBucket 不提供SLA 協議
  • 用戶界面體驗不好

GitLab

img

GitLab 基于 Git,為軟體開發提供版本控制、持續集成、持續部署等功能,由于其強大的 CI 服務,大多數公司更喜歡使用 GitLab 進行源代碼管理,如果你希望在自己的服務器上集成 CI/CD,GitLab 也是一種可行的方法,因為你可以在你的服務器上托管 GitLab,GitLab 是免費和開源的,并提供無限成員數量的免費私人存盤庫,

GitLab 還允許你在私有環境中安裝部署,

持續部署:

Spinnaker

img

Spinnaker 是一個開源 CD 軟體平臺,可與 Kubernetes、Google Cloud Platform、AWS、Microsoft Azure 和 Oracle Cloud 配合使用,它主要是一個部署和交付平臺,用于獲取你的應用程式并將其部署到生產環境中,

Spinnaker 的儀表板和界面非常易于使用,開發人員可以輕松地進行自動構建、測驗、驗證并將代碼推送到生產環境,借助 Spinnaker,你可以使用 Kuberenetes、GitHub 和 Google 的云構建,提交和部署對軟體的更改,

Spinnaker 還可以構建 EC2 AMI、配置 ASG 和設定負載均衡器,

缺點:

  • 缺乏有效的可擴展性
  • 檔案不完善
  • 自動化任務操作復雜

Octopus Deploy

img

Octopus Deploy 是一個用于自動化部署的 CD 工具,它可以在代理機器上自動部署應用程式和服務,Octopus Deploy 適用于 ASP.NET Web 應用程式、Java 應用程式、NodeJS 應用程式和運行自定義腳本到多種環境,包括 AWS 和 Azure,大多數情況下,它與 AzureDevOps 一起使用,并受到 Microsoft 生態系統公司的青睞,

Octopus Deploy 可以集成流水線的 CI 基礎設施,你可以向 Octopus 發起 API 呼叫,以通過 CI 流水線創建新版本并推送二進制檔案,

缺點:

  • 費用昂貴

Argo CD

img

Argo CD 是為 Kubernetes 提供的 GitOps 持續交付工具,它是 CNCF Argo 專案的一部分,該專案是一組 Kubernetes 原生工具,用于在 Kubernetes 上運行和管理作業和應用程式,

理想情況下,開發人員希望專注于撰寫應用程式并將其代碼推送到 git 倉庫上,而不必擔心 CI/CD 流水線以及配置和運行應用程式時的其他操作問題,Kubernetes 上一個非常流行的模式是將應用程式從 git 自動部署到生產環境中,這就是 Argo CD 的用武之地,它會持續監視 git 倉庫的新提交,并自動將它們部署到生產環境中,Argo CD 應用倉庫中預定義的 Kubernetes 部署清單檔案來創建或升級在 Kubernetes 上運行的應用程式,

綜上可知, Argo CD 可以自動應用更新或更改的清單資訊,以對集群進行更改,ArgoCD 服務器可以跟蹤你的專案分支,Argo CD 還可以自動檢測何時將構建分支合并到部署分支中,

缺點:

  • Argo CD 不支持 CI,這意味著如果你想要一個完整的 CI/CD 流水線,你將需要其他工具,如 Jenkins、Travis、Circle CI 或 Gitlab CI,
  • 不支持回滾鉤子( rollback hooks),

漏洞管理:

TwistLock(Palo Alto Networks )

img

TwistLock 為基于容器的應用程式提供威脅和漏洞檢查,該服務以其與 Kubenetes 和 Docker 容器的集成而聞名,TwistLock 現在歸 PaloAlto Networks 所有,通過其運行時應用安全保護和容器自動掃描,提供運行時的安全檢查,

TwistLock 有一個強大的檔案,而且易于部署并優化資源消耗,它還以其 CI/CD 流水線集成、對容器安全協議和鏡像掃描的強合規性而聞名,

TwistLock 還以其精細級別的安全分析而聞名,該服務還使用 AI 功能來了解你的環境,

他們還提供基于 SaaS 的安全掃描(prisma 云)和內部部署解決方案,

系統資料

img

Sysdig 是一種用于云基礎架構、服務和應用程式的監控工具,Sysdig 通常用于 PaaS 基礎設施上的容器安全、監控以及編排監控,

Sysdig 還可用于監控 OpenShift 集群,因為它提供細粒度資料來分析指標,

使 Sysdig 脫穎而出的是其容器監控與編排層的強大集成,

如果你想深入了解行程級流量,Sysdig 也很有用,Sysdig Opensource 允許你在內核系統呼叫級別捕獲主機的詳細資訊,

其他一些功能包括:

  • 網路圖
  • 監控基于 AWS 的系統
  • 輕松集成

Anchore

img

?

Anchore 是一個完整的容器安全作業流解決方案,可與各種開發工具和平臺無縫集成,Anchore 為一系列不同的應用程式提供量身定制的容器檢查和合規性解決方案,使團隊能夠遵守行業安全標準,

安全團隊可以審計和驗證整個組織的合規性,??

功能包括:

  • 支持webhooks,包括云托管或本地 Kubernetes 環境和 CI/CD 平臺
  • 基于策略的安全性和合規性
  • 檢查: - 漏洞掃描 - 密鑰和憑據資訊 - 作業系統 - 第三方庫 - Dockerfile

質量/測驗:

JMeter

img

JMeter 是一種用于測驗 Web 應用程式的負載測驗工具,即使 JMeter 用于負載/性能測驗,它仍然可以用于 API 呼叫、狀態代碼和回應,JMeter 還支持很多插件,

你還可以使用 JMeter 的并發池大小功能,在測驗期間為每個執行緒啟動多個連接,

JMeter 是獨立于平臺的,可以在不同環境下流暢運行,

你還可以通過多種方式查看測驗結果,包括圖形、圖表、樹視圖、XML 和 JSON,

JUnit

img

JUnit 是一個單元測驗框架,主要用于 Java 應用程式,JUnit 框架屬于 Java 框架的 xUnit 家族,

JUnit 使用注解來幫助你確定應該在測驗中使用的方法,、也因其自定義功能而在開發者社區中享有盛譽,你還可以在 JUnit 中使用斷言來測驗預期結果,

在 JUnit 中,你可以在多個引數之間使用不同的組合,使用 JUnit 為整個應用程式創建和管理豐富的單元測驗用例,將會變得非常容易,JUnit 還可以在模塊或系統級測驗之前,自動測驗應用程式的所有功能和單元,

Selenium

img

?

Selenium 是一個端到端的測驗軟體測驗平臺,以其友好的用戶界面而聞名,它允許測驗人員模擬 Web 系統行為、發送 API 請求并分析系統行為,

Selenium 允許你用 RUBY 或 HTML 撰寫復雜和高級的測驗腳本,以解決多個級別的復雜性,

Selenium 為 Web 應用程式開發人員提供了一個完整的 IDE,用于編輯、記錄和除錯測驗,你可以為多個測驗用例設定自定義的起點和斷點,

SELENIUM 的其他一些主要特性包括:

  • 與多個開發平臺集成,如 Jenkins、Maven、TestNG、QMetry、SauceLabs,
  • 使用 Selenium Grid 進行并行測驗,
  • 兼容所有著名語言,包括 Java、Ruby、C#、PHP、JavaScript、Perl 和 R,

SonarQube

?

img

SonarQube 是一個開源工具,用于代碼質量、持續檢查、安全和錯誤分析,它適用于 Java、Python、XML 和 PHP 以及許多開箱即用的語言,該工具可以通過 xpath 運算式動態添加規則,

SonarQube 主要用于靜態分析,它與 GitLab 有很好的集成,SonarQube 的儀表板和高級跟蹤,使你可以對代碼質量和檢查進行大量控制,

一些缺點包括:

  • SonarQube 與 JavaScript 的集成不是很順利
  • 有時執行比較慢
  • 對第三方工具和插件的支持有限

記錄和監控:

Grafana

img

Grafana 是一種基于 Apache 2.0 許可證構建的開源分析和監控解決方案,以其出色的 UI、圖形、圖表、實時分析和觸發器而聞名,Grafana 可以從多個來源提取資料,包括 Graphite、InfluxDB、OpenTSDB 和 Prometheus,

Grafana 主要用于監控 Docker 容器、網路設備、帶寬、資料流、虛擬服務器、Azure 基礎設施、資料庫和 Web 應用程式,Grifana 還以其豐富的插件,以及與 Telegraf 和 Zabbix 的無縫集成而聞名,

Grafana 可以為你可視化資料,包括準確的宕機時間、宕機前的事件、用戶日志、資料中心溫度和性能預測等指標,

New Relic

img

New Relic 是一個全堆疊監控工具,用于跟蹤基于云的應用程式和軟體,New Relic 提供豐富的儀表板、分布式跟蹤支持、詳細日志、自上而下的可見性和監控,New Relic 對后端呼叫具有強大的監控能力,可以詳細說明系統速度變慢的原因,

該工具對于需要詳細分析多個堆疊組態檔的公司非常有用,

NEW RELIC 的一些缺點包括

  • 客戶支持比較少
  • 費用昂貴
  • 除錯復雜困難

Nagios

img

Nagios 是一個開源軟體,可以監控系統、網路和基礎設施,它主動監控服務的健康狀況并維護日志存盤檔案,它還顯示宕機原因、宕機持續時間和可能觸發宕機的事件

Nagios 還提供了幾個配置選項和警報功能,你可以抑制主機警報、在主機上強制實施維護模式、自定義警報通知設定等等,

Nagios 支持數百個插件,你還可以創建自定義并的插件,

但是,由于 Nagios 相對較舊,因此很難使用最新的基礎架構進行操作,它缺乏資料庫驅動的配置支持,

專案管理和協作

JIRA

img

?

JIRA 是全球軟體公司使用的專案管理和協作工具,JIRA 是一個非常強大的工具,提供各種自定義和功能,

為了充分利用 JIRA 的優勢和強大功能,你需要一位專家,因為如果你的需求很復雜,則該工具很難配置,你可以使用 JIRA 的 Portfolio 功能創建時間表、發布沖刺計劃等,你可以使用 JIRA 的結構來跟蹤不同級別的進度,

其他一些功能包括

  • Zephyr for JIRA 是一個本地測驗應用程式,可用于整個軟體測驗生命周期
  • 關鍵路徑工具
  • 計算團隊速度的工具
  • 與 Atlassian 的產品(如 BitBucket 和 Bamboo)集成

JIRA 的一些缺點包括

  • 用戶界面體驗不好

Slack

img

Slack 是一種協作和通信工具,最近廣受歡迎,Slack 以其實時對話、搜索功能和友好的用戶界面而聞名,

由于其強大的用戶界面、有趣的功能和敏捷性,Slack 正在迅速取代軟體行業的電子郵件,

由于它的流行,現在有幾個軟體協作工具為即時訊息提供了 Slack 集成,

JIRA 和 Slack 集成通常用于專案活動日志、Sprint 會議、票務解決方案和警報,

還可以為 Slack 制作自定義聊天機器人、觸發器等,

Microsoft Teams

img

Microsoft Teams 是一種通信和協作工具,它對在 Windows 生態系統中作業的公司很有用,除了即時訊息服務之外,Teams 也很有用,因為它與 Azure DevOps 平臺集成,你還可以將你的團隊與 Azure Repos 和 Azure Pipelines 連接起來,

團隊提供不同的渠道,團隊可以在其中相互協作,這將創建一個特定于專案的通信存盤庫,你可以隨時搜索它,

其他一些功能包括:

  • 檔案倉庫
  • 電話/視頻會議
  • 集成聊天機器人
  • 集成 Office 365

雖然選擇很好,但眾多太多可能令人生畏,因為缺乏標準化和自動化,可能會在入職或交接程序中產生極高的學習曲線,通常,同一組織內的團隊會投資于相似的工具,從而浪費時間和財務資源,隨著構建和集成工具鏈的增多,也會讓開發人員筋疲力盡,隨著工具版本的老化,安全問題也會暴露, 因此,選擇工具時要做好統一規劃,長遠考慮,以及對新工具的關注,

參考鏈接: https://dzone.com/articles/top-25-devops-tools-for-2021

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/294527.html

標籤:其他

上一篇:【程式人生】從外包到大廠,你知道我這一個月是怎么過的嗎?

下一篇:分析了10萬條B站UP主資料后,我知道了成為百萬粉絲UP主的一些秘密

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more