主頁 > 軟體工程 > Winsock1_DataArrival 中使用doevents出現Out of stack space錯誤

Winsock1_DataArrival 中使用doevents出現Out of stack space錯誤

2020-09-15 09:27:21 軟體工程

搞了好久都搞不定Winsock的問題,請大神幫忙:使用Winsock控制元件接收刷卡資料,每秒記錄數大概在5到8條,然后存入到SQL SERVER資料表中,為防止界面卡死,中間使用doevents,但是運行一段時間后在doevents這一行出現“錯誤號:28 錯誤描述:Out of stack space 錯誤源:Rfid 錯誤行號:2061”錯誤,實在搞不懂doevents還會出這個錯?部分代碼:

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
On Error GoTo lblErr:

.....

2060                Me.Text5.Text = strCardNo '卡號

2061                DoEvents

2062                Me.txtAll.Text = strls

...

lblExit:
    Exit Sub
lblErr:
    
    
    If Err.Number = 28 Then 'Out of stack space 可能程序的回圈呼叫是造成的堆疊溢位
905    Open App.Path & "\log.txt" For Append As FreeNum
906    Print #FreeNum, "發生錯誤時間:" & Now() & " 錯誤號:" & Err.Number & " 錯誤描述:" & Err.Description & " 錯誤源:" & Err.Source & " 錯誤行號:" & Erl
907    Close FreeNum
910        If cn.State = 1 Then cn.Close
911        cn.Open strconn
        Exit Sub
    End If

uj5u.com熱心網友回復:

DataArrival 是“有資料送達”的時候才觸發。
這個時候應該取走緩沖區中的資料,并做相關的處理。

在這個事件程序中,用不著 DoEvents 吧!

uj5u.com熱心網友回復:

不用DoEvents ,這個界面運行半個小時就無回應了,我這個是要求一年中除了春節那幾天假期之外,其它時間是24小時無休的

uj5u.com熱心網友回復:

用一個FIFO緩沖區……

uj5u.com熱心網友回復:

還帶著行號的代碼,這代碼有點年頭了吧,或者說寫這個代碼的人有點年頭了吧

uj5u.com熱心網友回復:

Winsock1_DataArrival 的完整代碼或者這個doevents前后各20行代碼發出來看看。
估計是有一個回圈在這里吧。基本上你這玩意就是回圈搞死的。猜你是在dataarrival以后回圈等待后續資料了。不加doevents就在里面傻等。加了doevents資料一來就形成嵌套呼叫堆疊兩下半就爆了

uj5u.com熱心網友回復:

僅供參考:
Private Sub tcpRTB_DataArrival(ByVal bytesTotal As Long)
Dim i As Long
Dim p As Long
Dim qn As Long
Dim s As Long
Dim e As Long
Dim Total_Length As Long
Dim iBuf() As Byte
Dim lnx As String
Const STX = 2
Const ETX = 3
Dim L As Long
Dim XORSUM As Long
Dim BYTESUM As Long
Dim strMsgToProcess As String
Dim bt As Long
    On Error Resume Next
    If INtcpRTB_DataArrival Then
        INtcpRTB_DataArrival_TotalBytes = bytesTotal
        if bytesTotal<128 Then
            LogDebug "ReEnter tcpRTB_DataArrival bytesTotal=" + CStr(bytesTotal)
            Exit Sub
        Else
            LogErrMsg "ReEnter tcpRTB_DataArrival bytesTotal=" + CStr(bytesTotal) + ">=128"
        End If
    End If
    bt = bytesTotal
    INtcpRTB_DataArrival = True
REDATA:
'   收當前流
    ReDim iBuf(bt - 1)
    tcpRTB.GetData iBuf
'   log每個收到的位元組
    i = 0
    lnx = "RTB-->BYTE:" + Right("0000000" + Hex(i), 8) + "-"
    For i = 0 To bt - 1
        lnx = lnx + " " + Right("0" + Hex(iBuf(i)), 2)
        If i Mod 16 = 15 Then
            LogRX lnx
            lnx = "RTB-->BYTE:" + Right("0000000" + Hex(i + 1), 8) + "-"
        End If
    Next
    i = bt - 1
    If i Mod 16 <> 15 Then
        LogRX lnx
    End If

'   將本次收到位元組放到接識訓沖區末尾
    For i = 0 To bt - 1
        iRTB(iRTBn + i) = iBuf(i)
    Next
    iRTBn = iRTBn + bt
'   從接識訓沖區中逐個解包
    qn = iRTBn '剩余要解包位元組數
    p = 0 '本次解包的首位元組
    Do
        '0   1    2   3  4   5   6  |7   ...
        'STX-DATA-ETX-XORSUM-BYTESUM|STX-DATA-ETX-XORSUM-BYTESUM|...
        If qn >= 7 Then
            For i = 0 To qn - 1
                 If STX = iRTB(p + i) Then Exit For
            Next
            If i >= qn Then
                For i = 0 To qn - 1
                    iRTB(i) = iRTB(p + i)
                Next
                iRTBn = qn
                Exit Do '找不到STX
            End If
            s = i
            For i = s To qn - 1
                 If ETX = iRTB(p + i) Then Exit For
            Next
            If i >= qn Then
                For i = 0 To qn - 1
                    iRTB(i) = iRTB(p + i)
                Next
                iRTBn = qn
                Exit Do '找不到ETX
            End If
            e = i
            If e - p + 4 >= qn Then
                For i = 0 To qn - 1
                    iRTB(i) = iRTB(p + i)
                Next
                iRTBn = qn
                Exit Do 'ETX之后不足4個位元組
            Endif
            Total_Length = e - s + 5
            L = e - s - 1
            XORSUM = STX
            BYTESUM = STX
            strMsgToProcess = ""
            For i = 1 To L
                XORSUM = XORSUM Xor iRTB(p + s + i)
                BYTESUM = BYTESUM + iRTB(p + s + i)
                strMsgToProcess = strMsgToProcess + ChrW(iRTB(p + s + i))
            Next
            XORSUM = XORSUM Xor ETX
            BYTESUM = BYTESUM + ETX
            If iRTB(p + e + 1) = Asc(Hex((XORSUM Mod 256) \ 16)) And iRTB(p + e + 2) = Asc(Hex(XORSUM Mod 16)) And iRTB(p + e + 3) = Asc(Hex((BYTESUM Mod 256) \ 16)) And iRTB(p + e + 4) = Asc(Hex(BYTESUM Mod 16)) Then
                LogRX "rtb-->" + strMsgToProcess
                RTBput strMsgToProcess
                TimerRTB.Enabled=True
            Else
                LogRX "rtb-->CKSUM error!"
            End If
        NEXTMSG:
            p = p + Total_Length
            qn = qn - Total_Length
            If qn <= 0 Then
                iRTBn = 0
                Exit Do
            End If
        Else
            If p > 0 Then
                If qn > 0 Then
                    For i = 0 To qn - 1
                        iRTB(i) = iRTB(p + i)
                    Next
                End If
                iRTBn = qn
            End If
            Exit Do
        End If
    Loop
    If INtcpRTB_DataArrival_TotalBytes > 0 Then
        bt = INtcpRTB_DataArrival_TotalBytes
        INtcpRTB_DataArrival_TotalBytes = 0
        LogDebug "REDATA bt=" + CStr(bt)
        GoTo REDATA
    End If
    INtcpRTB_DataArrival = False
End Sub

uj5u.com熱心網友回復:

趙四居然能貼出VB代碼,真是難得啊。

uj5u.com熱心網友回復:


代碼行數|代碼檔案
       59|C:\NEW\電話會議\ZzCASClient_source\frmChat.frm
     3188|C:\NEW\電話會議\ZzCASClient_source\frmConfInfo.frm
      222|C:\NEW\電話會議\ZzCASClient_source\frmCreateConf.frm
      230|C:\NEW\電話會議\ZzCASClient_source\frmCreateParty.frm
       75|C:\NEW\電話會議\ZzCASClient_source\frmErasureLock.frm
      109|C:\NEW\電話會議\ZzCASClient_source\frmLineCommand.frm
       90|C:\NEW\電話會議\ZzCASClient_source\frmLog.frm
      904|C:\NEW\電話會議\ZzCASClient_source\frmPartyInfo.frm
      398|C:\NEW\電話會議\ZzCASClient_source\frmQA.frm
     1297|C:\NEW\電話會議\ZzCASClient_source\frmSubConferencing.frm
      548|C:\NEW\電話會議\ZzCASClient_source\frmVoting.frm
      204|C:\NEW\電話會議\ZzCASClient_source\frmWebOpInfo.frm
     9683|C:\NEW\電話會議\ZzCASClient_source\ProgramForm.frm
       49|C:\NEW\電話會議\ZzCASClient_source\clsACCSession.cls
      124|C:\NEW\電話會議\ZzCASClient_source\clsACVSession.cls
       45|C:\NEW\電話會議\ZzCASClient_source\clsBVSession.cls
       44|C:\NEW\電話會議\ZzCASClient_source\clsCNO.cls
       26|C:\NEW\電話會議\ZzCASClient_source\clsLSSession.cls
       27|C:\NEW\電話會議\ZzCASClient_source\clsOVSession.cls
       83|C:\NEW\電話會議\ZzCASClient_source\clsPort.cls
       86|C:\NEW\電話會議\ZzCASClient_source\frmAbout.frm

uj5u.com熱心網友回復:

我學Basic是95年,第一次接觸VB是99年

uj5u.com熱心網友回復:

參考 8 樓 zhao4zhong1 的回復:
Quote: 參考 7 樓 Chen8013 的回復:

趙四居然能貼出VB代碼,真是難得啊。


我寫經典VB6代碼的時候,你可能還沒出生。我猜。
參考:www.xajh.com QQ群:106786637

 胡說八道……

uj5u.com熱心網友回復:

C:\www\MUD.VBP
Type=Exe
Form=MUD.frm
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\WINDOWS\system32\stdole2.tlb#OLE Automation
Object={C1A8AF28-1257-101B-8FB0-0020AF039CA3}#1.1#0; MCI32.OCX
Object={248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0; MSWINSCK.OCX
Object={82351433-9094-11D1-A24B-00A0C932C7DF}#1.5#0; ANIGIF.OCX
Form=MFTP.frm
Object={48E59290-9880-11CF-9754-00AA00C00908}#1.0#0; MSINET.OCX
Object={EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}#1.1#0; shdocvw.dll
Form=MWEB.frm
Form=MMNU.frm
Module=Module1; mmdl.bas
IconForm="Form1"
Startup="Form1"
HelpFile=""
Title="WWW"
ExeName32="WWW.exe"
Command32=""
Name="MUD"
HelpContextID="0"
CompatibleMode="0"
MajorVer=6
MinorVer=7
RevisionVer=2
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="樂斗士"
VersionFileDescription="互聯網游戲"
VersionProductName="《笑傲江湖-精忠報國》"
CompilationType=-1
OptimizationType=2
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1

[MS Transaction Server]
AutoRefresh=1

     行數|檔案名
        3|C:\www\MMDL.BAS
       58|C:\www\MWEB.frm
      940|C:\www\MMNU.FRM
      364|C:\www\MFTP.FRM
     6326|C:\www\MUD.frm
1999年

uj5u.com熱心網友回復:

https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=index&fr=&hs=0&xthttps=111111&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=%E7%AC%91%E5%82%B2%E6%B1%9F%E6%B9%96%E7%B2%BE%E5%BF%A0%E6%8A%A5%E5%9B%BD

uj5u.com熱心網友回復:

uj5u.com熱心網友回復:

因為DoEvents是啟動另一個訊息回圈。你每接到個資料就啟動一個訊息回圈,out of stack是必然的。

正確的辦法是把socket放到作業執行緒里面去。

uj5u.com熱心網友回復:

樓上的是把VB6當成C++來玩啊。

uj5u.com熱心網友回復:

事件大量觸發,導致遞回太深,不然你給doevents前面加上on error resume next吧

uj5u.com熱心網友回復:

參考 16 樓 jiangsheng 的回復:
因為DoEvents是啟動另一個訊息回圈。你每接到個資料就啟動一個訊息回圈,out of stack是必然的。

正確的辦法是把socket放到作業執行緒里面去。

你會用EditBin.exe修改VB6生成的EXE檔案的默認堆疊大小嗎?

uj5u.com熱心網友回復:

有無限遞回的bug的時候跑來跟我說改堆疊大小……不懂別裝懂。

uj5u.com熱心網友回復:

為什么doevents會導致呼叫堆疊溢位,本質是因為doevents的實作的偽代碼是
while(GetMessage(&Msg,NULL,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}

DispatchMessage(&Msg);
內部呼叫了WndProc()
而WndProc呼叫了你觸發事件的處理函式(比如button1_click或者datarecived)
可以想象,當datarecived大量觸發,并且前者沒有執行完,你呼叫了doevents,它呼叫了新的datarecived
如果很多這樣的,堆疊自然就爆了。

蔣老大說的是對的,我只是展開來說一下。

uj5u.com熱心網友回復:


沒有VB,拿VB.net寫一個故意溢位的定時器事件,感受下

uj5u.com熱心網友回復:

添加一個訊息接識訓沖區,用執行緒死回圈遍歷才是正解。

uj5u.com熱心網友回復:

參考 23 樓 u010068569 的回復:
添加一個訊息接識訓沖區,用執行緒死回圈遍歷才是正解。

你懂不懂什么叫“事件通知”啊!

還“死回圈遍歷”!還自詡“正解”!!!

uj5u.com熱心網友回復:

參考 21 樓 caozhy 的回復:
為什么doevents會導致呼叫堆疊溢位,本質是因為doevents的實作的偽代碼是
while(GetMessage(&Msg,NULL,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}

DispatchMessage(&Msg);
內部呼叫了WndProc()
而WndProc呼叫了你觸發事件的處理函式(比如button1_click或者datarecived)
可以想象,當datarecived大量觸發,并且前者沒有執行完,你呼叫了doevents,它呼叫了新的datarecived
如果很多這樣的,堆疊自然就爆了。

蔣老大說的是對的,我只是展開來說一下。


正解

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

標籤:控件

上一篇:如何用vb獲取虎牙彈幕?

下一篇:錄制宏所得資料透視表一直報錯

標籤雲
其他(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)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more