本周難點問題詳細總結

📋 本周技術問題總結

🔴 1. 表單校驗與用戶體驗

1.1 表單錯誤提示不規范
  • 問題:校驗失敗時缺少頁面標識
  • 位置SupplierForm.vue:375
  • 代碼示例
    message.error('[基本信息] 表單校驗失敗,請檢查必填字段')
    
  • 影響:多表單組件共性問題
  • 改進:統一添加頁面標識
1.2 必填規則不一致
  • 問題:各表單必填字段標準不統一
  • 差異對比
    • 供應商表單:6個必填字段
    • 采購訂單:8個必填字段
  • 影響:影響數據完整性
1.3 表單布局擁擠
  • 問題:8列布局導致長文本字段顯示不全
  • 位置SupplierForm.vue:25-130

🔴 2. 字典數據管理

2.1 字典類型拼寫錯誤
  • 問題:付款協議字典多拼寫字母"P"
  • 錯誤代碼
    DICT_TYPE.PSI_SUPPIER_PAYMENTAGREEMENT
    
  • 正確應為PSI_SUPPLIER_PAYMENTAGREEMENT
2.2 字典加載時序問題
  • 問題:表單打開時字典可能未加載完成
  • 解決方案代碼
    const dictStore = useDictStoreWithOut()
    if (!dictStore.getIsSetDict) {await dictStore.setDictMap()
    }
    
2.3 字典重復使用
  • 問題:結算日和會計期間共用同一字典
  • 位置SupplierForm.vue:103115

🔴 3. 數據類型處理

3.1 類型轉換問題
  • 問題:后端返回字符串需要轉數字
  • 轉換代碼
    accountDay: supplierData.accountDay ? parseInt(supplierData.accountDay) : undefined
    
3.2 類型定義松散
  • 問題:混合使用駝峰和下劃線命名
  • 示例
    createdBy: undefined as string | undefined,  // 駝峰
    createTime: undefined as string | undefined, // 下劃線
    

🔴 4. 子表數據管理

4.1 關聯字段不一致
  • 問題:銀行賬戶和聯系人使用不同關聯字段
  • 代碼對比
    :supplier-code="formData.supplierCode"  // 銀行賬戶
    :supplier-id="formData.supplierCode"    // 聯系人
    
4.2 查詢參數不統一
  • 問題:子表查詢使用不同參數名
  • 代碼差異
    supplierCode: formData.value.supplierCode  // 銀行賬戶
    supplierId: formData.value.supplierCode    // 聯系人
    
4.3 進度跟蹤關聯混亂
  • 問題:使用ID查詢但需顯示名稱
  • 關鍵代碼
    progressQueryParams.supplierId = formData.value.id || 0
    

🔴 5. 狀態管理

5.1 臨時編碼生成
  • 問題:新增模式生成臨時編碼可能不一致
  • 代碼
    formData.value.supplierCode = 'TEMP_' + Date.now()
    
5.2 狀態管理復雜
  • 問題:多個異步狀態難以維護
  • 涉及狀態
    • 表單加載狀態
    • 彈窗顯示狀態
    • 子表標簽狀態

🔴 6. 錯誤處理

6.1 調試代碼殘留
  • 問題:生產環境保留console.log
  • 示例
    console.log('供應商分類字典:', getIntDictOptions(DICT_TYPE.PSI_SUPPLIER_CATEGORY))
    
6.2 錯誤提示不統一
  • 問題:各操作錯誤處理方式不同
  • 示例對比
    • 銀行賬戶:顯示檢查數據提示
    • 進度跟蹤:僅顯示操作失敗

🔴 7. 提交邏輯

7.1 提交順序問題
  • 問題:主表提交成功后才處理子表
  • 風險:子表失敗導致數據不一致
7.2 子表失敗處理不足
  • 問題:子表失敗僅警告,主表已提交
  • 現狀代碼
    try {await SupplierAccountApi.createSupplierAccount(a)
    } catch {message.warning('保存失敗')
    }
    

📋 本周難點問題詳細總結

🔴 1. 表單校驗和用戶體驗問題

1.1 表單校驗失敗提示不規范
  • 問題描述: 表單校驗失敗時,錯誤提示沒有顯示頁面標識
  • 具體位置: SupplierForm.vue:375
  • 問題代碼:
    message.error('[基本信息] 表單校驗失敗,請檢查必填字段')
    
  • 影響范圍: 多個表單組件都存在此問題
  • 解決方案: 按照用戶規則,所有錯誤彈窗都應該顯示頁面標識
1.2 必填字段校驗規則不統一
  • 問題描述: 不同表單的必填字段校驗規則不一致
  • 具體表現:
    • 供應商表單:name, category, paymentAgreement, accountDay, accountPeriod, status 為必填
    • 采購訂單表單:supplierId, warehouseId, contractItemId, unitPrice, qty, urgency, trackStatus, status 為必填
  • 影響: 用戶體驗不一致,容易造成數據不完整
1.3 表單字段布局不合理
  • 問題描述: 表單字段排列過于密集,用戶體驗不佳
  • 具體位置: SupplierForm.vue:25-130
  • 問題表現: 8列布局導致字段過于擁擠,特別是地址、網址等長文本字段

🔴 2. 字典數據配置和加載問題

2.1 字典類型拼寫錯誤
  • 問題描述: 付款協議字典類型拼寫錯誤
  • 具體位置: SupplierForm.vue:60 行和 utils/dict.ts:296
  • 問題代碼:
    DICT_TYPE.PSI_SUPPIER_PAYMENTAGREEMENT  // 多了一個'P'
    
  • 正確拼寫: 應該是 PSI_SUPPLIER_PAYMENTAGREEMENT
  • 影響: 付款協議下拉框無法正確顯示選項
2.2 字典數據異步加載時序問題
  • 問題描述: 表單打開時字典數據可能還未完全加載
  • 具體位置: SupplierForm.vue:305-320
  • 問題代碼:
    // 確保字典數據已加載
    const dictStore = useDictStoreWithOut()
    if (!dictStore.getIsSetDict) {await dictStore.setDictMap()
    }
    
  • 影響: 下拉選擇框可能顯示為空或加載失敗
2.3 字典數據重復使用問題
  • 問題描述: 會計結算日和會計期間使用相同的字典類型
  • 具體位置: SupplierForm.vue:103115
  • 問題代碼:
    // 兩個字段都使用同一個字典類型
    DICT_TYPE.PSI_SUPPLIER_ACCOUNTING_SETTLEMENT
    
  • 影響: 可能導致數據語義不清晰

🔴 3. 數據類型轉換和兼容性問題

3.1 字符串轉數字類型轉換
  • 問題描述: 從后端獲取的數據類型與前端表單期望類型不匹配
  • 具體位置: SupplierForm.vue:325-330
  • 問題代碼:
    // 轉換字典字段為數字類型
    const convertedData = {...supplierData,accountDay: supplierData.accountDay ? parseInt(supplierData.accountDay) : undefined,accountPeriod: supplierData.accountPeriod ? parseInt(supplierData.accountPeriod) : undefined,status: supplierData.status !== undefined ? parseInt(supplierData.status) : 0
    }
    
  • 影響: 可能導致表單提交時數據類型錯誤
3.2 類型定義不嚴格
  • 問題描述: 部分類型定義使用any或過于寬松
  • 具體位置: SupplierForm.vue:240-270
  • 問題代碼:
    const formData = ref({// 混合了不同的字段命名規范createdBy: undefined as string | undefined,  // 駝峰命名createTime: undefined as string | undefined, // 下劃線命名
    })
    

🔴 4. 子表數據關聯和同步問題

4.1 供應商編碼關聯不一致
  • 問題描述: 銀行賬戶和聯系人使用不同的關聯字段
  • 具體位置: SupplierForm.vue:140-150
  • 問題代碼:
    <SupplierAccountForm:supplier-code="formData.supplierCode"  // 使用supplierCode
    />
    <SupplierContactForm:supplier-id="formData.supplierCode"    // 使用supplierId
    />
    
  • 影響: 數據關聯可能出現問題
4.2 子表數據加載參數不一致
  • 問題描述: 銀行賬戶和聯系人查詢時使用不同的參數
  • 具體位置: SupplierForm.vue:345-355
  • 問題代碼:
    // 銀行賬戶使用supplierCode
    const accountData = await SupplierAccountApi.getSupplierAccountPage({supplierCode: formData.value.supplierCode,pageSize: 100,pageNo: 1
    })// 聯系人使用supplierId
    const contactData = await SupplierContactApi.getSupplierContactPage({supplierId: formData.value.supplierCode,  // 這里應該是supplierCodepageSize: 100,pageNo: 1
    })
    
4.3 進度跟蹤數據關聯混亂
  • 問題描述: 進度跟蹤查詢參數使用供應商ID,但顯示時又需要供應商名稱
  • 具體位置: SupplierForm.vue:470-480
  • 問題代碼:
    // 注意:這里使用供應商的ID而不是supplierCode
    progressQueryParams.supplierId = formData.value.id || 0
    

🔴 5. 臨時編碼和狀態管理問題

5.1 臨時供應商編碼生成
  • 問題描述: 新增模式下生成臨時編碼可能導致數據不一致
  • 具體位置: SupplierForm.vue:360
  • 問題代碼:
    // 新增模式:生成臨時供應商編碼
    formData.value.supplierCode = 'TEMP_' + Date.now()
    
  • 影響: 臨時編碼可能與實際保存后的編碼不一致
5.2 表單狀態管理復雜
  • 問題描述: 多個異步操作的狀態管理復雜
  • 具體位置: 整個組件
  • 問題表現:
    • formLoading: 表單加載狀態
    • dialogVisible: 彈窗顯示狀態
    • subTabsName: 子表標簽頁狀態
    • 多個子組件的狀態

🔴 6. 錯誤處理和調試代碼問題

6.1 調試代碼殘留
  • 問題描述: 生產代碼中殘留大量console.log調試語句
  • 具體位置: SupplierForm.vue:312-339
  • 問題代碼:
    // 調試:檢查字典數據是否正確加載
    console.log('供應商分類字典:', getIntDictOptions(DICT_TYPE.PSI_SUPPLIER_CATEGORY))
    console.log('供應商級別字典:', getIntDictOptions(DICT_TYPE.PSI_SUPPLIER_LEVEL))
    console.log('付款協議字典:', getIntDictOptions(DICT_TYPE.PSI_SUPPIER_PAYMENTAGREEMENT))// 調試:檢查加載的數據
    console.log('加載的供應商數據:', supplierData)
    console.log('轉換后的數據:', convertedData)
    console.log('表單數據:', formData.value)
    
  • 影響: 影響生產環境性能,暴露內部邏輯
6.2 錯誤處理不統一
  • 問題描述: 不同操作的錯誤處理方式不一致
  • 具體表現:
    • 銀行賬戶保存失敗:message.warning('銀行賬戶信息保存失敗,請檢查數據')
    • 聯系人保存失敗:message.warning('聯系人信息保存失敗,請檢查數據')
    • 進度跟蹤失敗:message.error('操作失敗,請重試')

🔴 7. 表單提交邏輯問題

7.1 表單提交順序問題
  • 問題描述: 先提交供應商基本信息,再處理子表數據
  • 具體位置: SupplierForm.vue:380-450
  • 問題表現: 如果子表數據保存失敗,主表數據已經保存,可能導致數據不一致
7.2 子表數據保存失敗處理不當
  • 問題描述: 當子表數據保存失敗時,系統僅顯示警告提示,而主表數據卻已完成保存
  • 具體代碼:
    try {// 保存銀行賬戶await SupplierAccountApi.createSupplierAccount(accountData)
    } catch (error) {console.error('保存銀行賬戶失敗:', error)message.warning('銀行賬戶信息保存失敗,請檢查數據')// 缺少主表數據回滾邏輯
    }
    

🔴 8. 數據驗證和業務邏輯問題

8.1 進度跟蹤數據格式問題
  • 問題描述: 進度跟蹤的context字段采用JSON格式存儲,但存在解析失敗風險
  • 具體位置: SupplierForm.vue:520-540
  • 問題代碼:
    const getProgressStage = (context: string) => {if (!context) return '-'try {const data = JSON.parse(context)return data.stage || '-'} catch (e) {return '其他'  // JSON解析失敗時的默認返回值}
    }
    
8.2 表單字段驗證規則缺失
  • 問題描述: 關鍵字段缺乏必要的驗證規則
  • 具體表現:
    • level 字段未設置必填驗證
    • addresswebsitepostalCode 等字段缺少格式驗證
    • accountBalance 未設置有效范圍驗證

🔴 9. 性能和用戶體驗問題

9.1 字典數據重復加載
  • 問題描述: 每次打開表單都會重新加載字典數據
  • 影響: 導致頁面響應速度下降
9.2 子表數據分頁查詢不合理
  • 問題描述: 銀行賬戶和聯系人查詢使用固定的pageSize=100
  • 具體代碼:
    pageSize: 100,  // 固定獲取100條記錄,存在性能隱患
    pageNo: 1
    
9.3 表單重置邏輯不完整
  • 問題描述: 表單重置操作未完全清理所有狀態
  • 具體位置: SupplierForm.vue:550-580
  • 問題表現: 子表數據、進度跟蹤數據等可能存在殘留

🔴 10. 代碼質量和維護性問題

10.1 硬編碼的中文文本
  • 問題描述: 部分文本未使用國際化配置
  • 具體表現:
    message.success('銀行賬戶信息保存成功')
    message.success('聯系人信息保存成功')
    message.error('供應商信息不完整')
    
10.2 組件職責不清晰
  • 問題描述: 主表單組件承擔過多職責
  • 具體表現:
    • 同時處理主表數據
    • 管理銀行賬戶數據
    • 處理聯系人數據
    • 維護進度跟蹤數據
    • 協調多個子組件狀態
10.3 異步操作嵌套過深
  • 問題描述: 存在多層異步操作嵌套,錯誤處理邏輯復雜
  • 具體表現: 主表保存 → 銀行賬戶保存 → 聯系人保存 → 進度跟蹤保存

🚀 建議的改進措施

1. 立即修復的問題

  1. 修正字典類型拼寫錯誤: 將PSI_SUPPIER_PAYMENTAGREEMENT更正為PSI_SUPPLIER_PAYMENTAGREEMENT
  2. 清理調試代碼: 移除所有console.log語句
  3. 統一錯誤提示格式: 為所有錯誤提示添加頁面標識
  4. 修復數據關聯不一致: 統一使用supplierCode或supplierId作為關聯字段

2. 架構優化

  1. 組件職責拆分: 將子表處理邏輯提取到獨立服務類
  2. 確保數據一致性: 引入事務或回滾機制
  3. 優化狀態管理: 使用Pinia store統一管理表單狀態

3. 性能優化

  1. 實現字典數據緩存: 避免重復加載
  2. 優化子表查詢: 實施真正的分頁和懶加載機制
  3. 減少API調用: 合并相關數據查詢請求

4. 代碼質量提升

  1. 完善類型定義: 采用更嚴格的TypeScript類型約束
  2. 統一錯誤處理: 建立標準化的錯誤處理機制
  3. 增強測試覆蓋: 為關鍵業務邏輯添加測試用例

這些問題集中在表單處理、數據關聯、錯誤處理、性能優化和代碼質量等方面,需要進行系統性重構和改進。#### 7.2 子表數據保存失敗處理不當

  • 問題描述: 子表數據保存失敗時,只顯示警告,但主表數據已經保存
  • 具體代碼:
    try {// 保存銀行賬戶await SupplierAccountApi.createSupplierAccount(accountData)
    } catch (error) {console.error('保存銀行賬戶失敗:', error)message.warning('銀行賬戶信息保存失敗,請檢查數據')// 這里沒有回滾主表數據
    }
    

🔴 8. 數據驗證和業務邏輯問題

8.1 進度跟蹤數據格式問題
  • 問題描述: 進度跟蹤的context字段使用JSON格式存儲,但解析時可能失敗
  • 具體位置: SupplierForm.vue:520-540
  • 問題代碼:
    const getProgressStage = (context: string) => {if (!context) return '-'try {const data = JSON.parse(context)return data.stage || '-'} catch (e) {return '其他'  // 解析失敗時的默認值}
    }
    
8.2 表單字段驗證規則缺失
  • 問題描述: 部分重要字段沒有驗證規則
  • 具體表現:
    • level 字段沒有必填驗證
    • address, website, postalCode 等字段沒有格式驗證
    • accountBalance 沒有范圍驗證

�� 9. 性能和用戶體驗問題

9.1 字典數據重復加載
  • 問題描述: 每次打開表單都可能重新加載字典數據
  • 影響: 影響頁面響應速度
9.2 子表數據分頁查詢不合理
  • 問題描述: 銀行賬戶和聯系人使用固定pageSize=100
  • 具體代碼:
    pageSize: 100,  // 固定100條,可能影響性能
    pageNo: 1
    
9.3 表單重置邏輯不完整
  • 問題描述: 表單重置時可能沒有完全清理所有狀態
  • 具體位置: SupplierForm.vue:550-580
  • 問題表現: 子表數據、進度跟蹤數據等可能殘留

🔴 10. 代碼質量和維護性問題

10.1 硬編碼的中文文本
  • 問題描述: 部分文本沒有使用國際化配置
  • 具體表現:
    message.success('銀行賬戶信息保存成功')
    message.success('聯系人信息保存成功')
    message.error('供應商信息不完整')
    
10.2 組件職責不清晰
  • 問題描述: 主表單組件承擔了太多職責
  • 具體表現:
    • 處理主表數據
    • 處理銀行賬戶數據
    • 處理聯系人數據
    • 處理進度跟蹤數據
    • 管理多個子組件狀態
10.3 異步操作嵌套過深
  • 問題描述: 多個異步操作嵌套,錯誤處理復雜
  • 具體表現: 主表保存 → 銀行賬戶保存 → 聯系人保存 → 進度跟蹤保存

🚀 建議的改進措施

1. 立即修復的問題

  1. 修正字典類型拼寫錯誤: PSI_SUPPIER_PAYMENTAGREEMENTPSI_SUPPLIER_PAYMENTAGREEMENT
  2. 清理所有調試代碼: 移除所有console.log語句
  3. 統一錯誤提示格式: 所有錯誤彈窗都加上頁面標識
  4. 修復數據關聯不一致: 統一使用supplierCode或supplierId

2. 架構優化

  1. 拆分組件職責: 將子表處理邏輯提取到獨立的服務類
  2. 實現數據一致性: 使用事務或回滾機制確保數據一致性
  3. 優化狀態管理: 使用Pinia store統一管理表單狀態

3. 性能優化

  1. 實現字典數據緩存: 避免重復加載
  2. 優化子表數據查詢: 實現真正的分頁和懶加載
  3. 減少不必要的API調用: 合并相關數據查詢

4. 代碼質量提升

  1. 完善類型定義: 使用更嚴格的TypeScript類型
  2. 統一錯誤處理: 建立統一的錯誤處理策略
  3. 完善單元測試: 為關鍵業務邏輯添加測試用例

這些問題主要集中在表單處理、數據關聯、錯誤處理、性能優化和代碼質量方面,需要系統性地進行重構和改進。

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

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

相關文章

下一代自動駕駛汽車系統XIL驗證方法

摘要自動駕駛汽車測試仍是一個新興且尚未成熟的過程&#xff0c;全球統一的測試流程尚需時日。實車測試對資源要求極高&#xff0c;因此開發并提升基于虛擬環境的測試方法的效率至關重要。有鑒于此&#xff0c;本文提出一種新穎的 X-in-the-Loop&#xff08;XIL&#xff0c;X 代…

視頻數據如何聯網共享?

視頻數據如何聯網共享&#xff1f; 視頻聯網共享系統&#xff0c;實現前端設備的接入管理以及接入數據的獲取。前端設備包括視頻設備、卡口設備、Wifi數據采集設備、移動采集設備以及GPS/北斗數據采集設備等。系統實現海量視頻數據的快速檢索&#xff0c;并為上層數據應用提供視…

Django項目開發全鏈路:數據庫操作、多環境配置、windows/linux項目部署一站式指南

Django項目開發全鏈路:數據庫操作、多環境配置、windows/linux項目部署一站式指南 一、項目初始化 二、創建第一個應用 三、數據庫與數據模型的應用 四、創建管理后臺用戶 五、數據模型與數據庫交互之添加 六、數據模型與數據庫交互之修改 七、數據模型與數據庫交互之查詢 八、…

GLib多線程編程實踐:從數據結構到線程池的完整指南

引言 GLib是一個功能豐富、跨平臺的C程序庫,提供了大量高效且經過充分測試的數據結構與算法接口。本文將通過一個完整的實踐案例,介紹如何使用GLib實現動態數組、鏈表、平衡二叉樹和線程池,并分享在實際開發中遇到的常見問題及解決方案。 一、GLib核心數據結構實踐 1.1 動…

LiteFlow:國產流程編排引擎體驗

文章目錄一、寫在前面二、使用1、Springboot集成2、組件3、表達式4、上下文5、執行器6、腳本組件7、規則配置源8、元數據管理9、異步中的線程池10、動態構造11、決策路由12、生命周期13、其他三、總結一、寫在前面 就不做過多介紹了。 官網&#xff1a;https://liteflow.cc/ …

Linux學習:生產者消費者模型

目錄1. 生產者消費者模型的相關概念1.1 什么是生產者消費者模型1.2 生產者消費者模型的優勢作用2. 多線程簡單實現生產者消費者模型2.1 設計方案2.2 代碼實現2.2.1 線程類2.2.2 BlockQueue類2.2.3 任務類2.2.4 主干代碼1. 生產者消費者模型的相關概念 1.1 什么是生產者消費者模…

《深度學習》卷積神經網絡:數據增強與保存最優模型解析及實現

目錄 一、數據增強 1. 核心概念 2. 核心目的 3. 常用方法 4. 實現示例&#xff08;基于 PyTorch&#xff09; 5. 自定義數據集加載 二、保存最優模型 1. 核心概念 2. 實現步驟 &#xff08;1&#xff09;定義 CNN 模型 &#xff08;2&#xff09;定義訓練與測試函數…

tcpdump用法

tcpdump用法tcpdump一、什么是tcpdump二、命令格式與參數三、參數列表四、過濾規則組合邏輯運算符過濾器關鍵字理解 Flag 標識符五、常用例子tcpdump 一、什么是tcpdump 二、命令格式與參數 option 可選參數&#xff1a;將在后邊一一解釋。 proto 類過濾器&#xff1a;根據協…

平衡車 - 電機調速

&#x1f308;個人主頁&#xff1a;羽晨同學 &#x1f4ab;個人格言:“成為自己未來的主人~” 在我們的這篇文章當中&#xff0c;我們主要想要實現的功能的是電機調速功能。在我們的這篇文章中&#xff0c;主要實現的是開環的功能&#xff0c;而非閉環&#xff0c;也就是不加…

從利潤率看價值:哪些公司值得長期持有?

&#x1f4a1; 為什么盯緊利潤率&#xff1f; 投資者常常盯著營收增長&#xff0c;卻忽略了一個更關鍵的指標——利潤率。 收入可以靠規模“堆”出來&#xff0c;但利潤率卻是企業護城河的真實體現。心理學研究表明&#xff1a;當一個產品或服務被消費者認定為“不可替代”&a…

小迪web自用筆記25

傳統文件上傳&#xff1a;上傳至服務器本身硬盤。云存儲&#xff1a;借助云存儲oss對象存儲&#xff08;只能被訪問&#xff0c;不可解析&#xff09;Oss云存儲Access key與Access ID&#xff1a;有了這兩個東西之后就可以操作云存儲&#xff0c;可以向里面發數據了。這玩意兒泄…

分發餅干——很好的解釋模板

好的&#xff0c;孩子&#xff0c;我們來玩一個“喂餅干”的游戲。 0. 問題的本質是什么&#xff1f; 想象一下&#xff0c;你就是個超棒的家長&#xff0c;手里有幾塊大小不一的餅干&#xff0c;而面前有幾個餓著肚子的小朋友。每個小朋友都有一個最小的“胃口”值&#xff0c…

場景題:如果一個大型項目,某一個時間所有的CPU的已經被占用了,導致服務不可用,我們開發人員應該如何使服務器盡快恢復正常

問&#xff1a;如果一個大型項目,某一個時間所有的CPU的 已經被占用了&#xff0c;導致服務不可用&#xff0c;我們開發人員 應該如何使服務器盡快恢復正常答&#xff1a;應對CPU 100%導致服務不可用的緊急恢復流程面試官&#xff0c;如果遇到這種情況&#xff0c;我會立即按照…

Docker 安裝 RAGFlow保姆教程

前提條件 Ubuntu 服務器(20.04 或 22.04 LTS 推薦) 已安裝 Docker 和 Docker Compose 如果尚未安裝,請先運行以下命令:# 安裝 Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh # 將當前用戶加入 docker 組,避免每次都要 sudo sudo user…

為什么實際工程里 C++ 部署深度學習模型更常見?為什么大家更愛用 TensorRT?

很多人剛接觸深度學習模型部署的時候&#xff0c;都會習慣用 Python&#xff0c;因為訓練的時候就是 PyTorch、TensorFlow 啊&#xff0c;寫起來方便。但一到 實際工程&#xff0c;特別是工業設備、醫療影像、上位機系統這種場景&#xff0c;你會發現大多數人都轉向了 C 部署。…

深入理解 Java 集合框架:底層原理與實戰應用

在日常開發中&#xff0c;集合是 Java 中使用頻率最高的工具之一。從最常見的 ArrayList、HashMap 到更復雜的并發集合&#xff0c;幾乎每一個 Java 程序員都離不開集合框架。集合框架不僅提供了豐富的數據結構實現&#xff0c;還封裝了底層復雜的邏輯&#xff0c;讓開發者能夠…

爬取m3u8視頻完整教程

爬取步驟&#xff1a;1.先找到網頁源代碼2.從網頁源代碼中拿到m3u83.下載m3u84.讀取m3u8文件&#xff0c;下載視頻5.合并視頻首先我們來爬取一個星辰影院的電影&#xff1a;下面我以這個為例&#xff1a;我們需要在源代碼中找到m3u8這個url&#xff1a;緊接著我們利用下面的方法…

Python爬蟲實戰: 基于Scrapy的Amazon跨境電商選品數據爬蟲方案

概述與設計思路 利用Python的Scrapy框架進行大規模頁面抓取和結構化數據提取,配合aiohttp實現高并發請求,從而高效獲取Amazon平臺上的商品列表、詳情、評論等公開信息。通過對這些數據進行清洗與分析,可以識別出有潛力的商品,評估市場競爭程度,并跟蹤競爭對手的動態,為跨…

穩定版IM即時通訊 仿默往APP即時通訊im源碼聊天社交源碼支持二開原生開發獨立部署 含搭建教程

內容目錄一、詳細介紹二、效果展示1.部分代碼2.效果圖展示三、學習資料下載一、詳細介紹 技術開發語言&#xff1a; 后臺管理端&#xff1a;Java GO Mysql數據庫 安卓端&#xff1a;Java iOS端&#xff1a;ob PC端&#xff1a;c 功能簡單介紹&#xff1a; 單聊&#xff…

封裝一個redis獲取并解析數據的工具類

redis獲取并解析數據工具類實現代碼使用示例實現代碼 import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import lom…