我是程序員,不是程序猿:請別把我當猴耍——拒絕被低估,用專業贏得尊重

摘要

本文旨在深度剖析“程序員”與“程序猿”一字之差背后所反映的職業尊嚴與身份認同問題。我們生活在一個技術驅動的時代,但對技術創造者的認知卻常常被“程序猿”、“碼農”等標簽簡單化、甚至矮化。本文將從正名開始,辨析“程序員”的專業內涵,并聚焦于職場中“被當猴耍”的典型場景,如無休止的需求變更和不切實際的工時預估。更重要的是,文章將結合當下最前沿的AI技術浪潮,探討程序員如何利用AI輔助編程工具完成角色進化,從“代碼工人”轉變為“代碼指揮官”和“系統架構師”,從而提升核心價值。最后,本文提供了一套系統的、可操作的實戰策略,涵蓋溝通技巧、向上管理和個人品牌建設,旨在幫助每一位程序員在充滿挑戰的職場環境中,捍衛專業尊嚴,奪回工作主導權,真正實現從“程序猿”到“卓越工程師”的價值回歸。
在這里插入圖片描述

關鍵字

程序員, 程序猿, 職業尊嚴, AI輔助編程, 需求變更


🚀 引言:從“程序猿”自嘲到“反內卷”的覺醒

不知從何時起,“程序猿”這個稱呼在互聯網行業中流行開來 [1, 7]。起初,它或許帶有一絲自嘲的幽默,是程序員群體面對高強度工作、格子衫、黑框眼鏡等刻板印象的一種自我解構 [11, 15]。大家笑著說自己是“猿”,似乎在調侃自己進化不完全,只會埋頭敲代碼。

然而,隨著時間的推移,這個詞的意味變了。當996成為常態,當“拿命換錢”的調侃變成現實,當無休止的內卷和技術工具化傾向愈演愈烈時,“程序猿”這個標簽仿佛成了一道無形的枷鎖。它不再僅僅是自嘲,更在潛移默化中固化了一種負面認知:程序員不過是產業鏈上的一環,是接受指令、產出代碼的“生物”,其創造性、工程思維和專業價值被嚴重低估。

今天,我們必須重新審視這個稱呼。這篇博文的目的,不是要搞文字獄,而是要發起一場關于職業身份和尊嚴的“正名運動”。我們將深入探討,如何從認知、技能到行動,徹底擺脫“程序猿”的困境,理直氣壯地宣告:“我是程序員(Programmer),是解決問題的工程師(Engineer),不是任人擺布的程序‘猿’(Ape)。”

一、💡 辨名正身:程序員 vs 程序猿,一字之差,天壤之別

語言是思想的載體。一個稱謂的流行,往往反映了群體的集體潛意識和社會認知。要捍衛尊嚴,必先從“正名”開始。

📜 非自嘲,乃警鐘

“程序員”和“程序猿/碼農”,雖然在日常語境中常被混用 [5, 19],但其背后代表的職業定位和價值導向卻截然不同。前者是專業的代名詞,后者則帶有明顯的工具化和去專業化色彩。

我們可以通過一個表格來清晰地對比二者的核心差異:

特征維度👨?💻 程序員 (Programmer/Engineer)🐒 程序猿 / 碼農 (Program-ape/Coder)
核心定位問題解決者、系統構建者。他們理解業務,設計方案,是創造價值的工程師 [2, 9, 13]。代碼實現者、任務執行者。主要工作是根據明確指令編寫代碼,如同“搬磚” [5, 18, 19]。
工作模式系統性思考、工程化實踐。關注軟件的整體架構、可維護性、擴展性和性能 [4, 8]。任務驅動、線性執行。更關注單個功能的快速實現,對整體設計考慮較少。
價值體現創造與設計。通過技術創新和工程卓越性,為產品和業務帶來根本性價值 [9, 13]。勞動與產出。價值主要通過代碼行數、完成任務量等體力勞動指標衡量。
職業心態專業、自信、有主見。擁有自己的技術判斷和職業操守,敢于對不合理的需求說“不”。被動、順從,甚至麻木。傾向于接受指令,完成任務,對工作的掌控感較弱。

將自己或同事稱為“程序猿”,或許初衷無害,但長期以往,這種稱謂會麻痹我們的專業自覺。它讓我們在面對不公和不專業時,更容易選擇“算了,‘猿’嘛,不都這樣”的妥協心態。這并非自嘲,而是職業尊嚴被侵蝕的警鐘。

二、🌪? 職場“耍猴”重災區:你是否也深陷其中?

如果說“程序猿”的稱呼是精神上的枷鎖,那么在實際工作中,一系列“耍猴式”的操作,則是對程序員專業價值的直接踐踏。以下是幾個最典型的“重災區”。

🎭 需求一日三變,視我等為何物?

這是程序員心中永遠的痛 [128, 130]。一個功能剛開發到一半,產品經理跑過來說:“我們再想想,還是改成B方案吧。” 代碼還沒提交,群里又@你:“老板體驗了一下,覺得C方案更好。”

這種混亂的需求管理,不僅造成了巨大的時間浪費和代碼冗余,更是對程序員專業勞動的極度不尊重。它將本應嚴謹的軟件開發過程,變成了一場場朝令夕改的鬧劇。

一個理想的需求變更流程和一個混亂的流程,其對比是鮮明的:

混亂的流程
理想的流程
評估通過
先這么改
我有個想法
感覺不對 換個方案
老板說要加個功能
程序員崩潰加班
影響評估
需求提出
變更排期
開發實現
測試上線

在這種混亂中,程序員仿佛成了產品經理或老板的“實時渲染器”,專業性被徹底消解 [126, 137]。

?? 估時如同許愿,視技術為無物?

“這個功能很簡單,明天能上線吧?”

當聽到這句話時,無數程序員的內心是崩潰的。提問者往往忽略了需求背后的技術復雜性:數據庫結構變更、兼容性測試、API接口設計、潛在的性能瓶頸等等。他們將軟件開發等同于搭積木,以為功能實現只是簡單的代碼堆砌 。

這種“許愿式”的排期,本質上是對技術專業性的藐視。它迫使程序員在不合理的DDL(截止日期)下做出妥協,犧牲代碼質量、測試覆蓋率,甚至個人健康,來滿足不切實際的期望。這不僅增加了項目風險,也讓程序員的專業判斷力變得一文不值。

🤷 “這個很簡單”,視專業如無物?

“加個登錄功能,不是很簡單嗎?”、“改個按鈕顏色,五分鐘搞定吧?”

“簡單”二字,是扼殺專業討論的利器 。它將一個需要經過需求分析、設計、開發、測試、部署的完整工程流程,輕描淡寫地歸結為“舉手之勞”。

當一個程序員聽到“這很簡單”時,他聽到的潛臺詞是:“你的專業知識和技能沒什么了不起,你的工作不值一提。” 這種評價不僅打擊工作積極性,更是對整個軟件工程專業赤裸裸的貶低 [68, 75]。

三、🤖 AI賦能新時代:從“碼農”到“代碼指揮官”的進化

面對職業尊嚴被挑戰的困境,我們除了抱怨和躺平,是否還有更主動的出路?答案是肯定的。2025年的今天,以大語言模型(LLM)為代表的AI技術浪潮,正以前所未有的力量重塑軟件開發領域,為程序員提供了一次千載難逢的角色進化契機 [22, 23]。

🛡? AI不是對手,是你的“鋼鐵戰甲”

很多人曾擔憂AI會取代程序員。然而,現實恰恰相反。AI正成為程序員最強大的輔助工具,一件可以抵御重復、瑣碎工作的“鋼鐵戰甲” 。

以 GitHub Copilot、Amazon CodeWhisperer、InsCode AI IDE 等為代表的AI編程助手,已經滲透到開發的每一個環節 [22, 25]。它們極大地改變了我們的工作模式:

開發任務🤖 AI輔助前 (傳統模式)🦾 AI輔助后 (新范式)
代碼編寫手動逐行編寫所有邏輯和樣板代碼。AI根據注釋或上下文自動生成函數、類,甚至整個代碼文件 [26, 31]。
Bug修復依賴日志、斷點和人腦推理,耗時耗力。AI能夠分析錯誤信息定位問題根源,并直接給出修復建議 。
學習新技術查閱大量官方文檔、博客、教程。直接向AI提問,獲得針對性強、附帶代碼示例的快速解答
代碼重構手動識別“壞味道”,進行優化,風險較高。AI可以分析代碼質量,提供重構方案,并一鍵生成優化后的代碼
文檔與測試手動編寫單元測試、API文檔,枯燥且易遺漏。AI能夠根據函數簽名和邏輯自動生成測試用例和文檔注釋

AI的出現,將程序員從大量重復性、低創造性的“編碼勞動”中解放出來,讓我們能將寶貴的精力聚焦于更核心、更有價值的工作上 [28, 40]。

🧑??? 新技能Get:從“編碼者”到“提示工程師+架構師”

當AI接管了大部分“怎么寫代碼”的工作后,程序員的角色定位必然發生深刻轉變。我們不再是單純的“編碼者”(Coder),而是進化為復合型的新角色:“代碼指揮官”和“系統架構師” [22, 34, 36]。

在這個新角色下,我們的核心技能棧也需要升級:

  1. 問題定義與拆解能力:AI很強大,但它不能理解模糊的業務需求。程序員需要將復雜的業務問題精確地定義、拆解成AI可以理解的、清晰的子任務。
  2. 提示工程(Prompt Engineering) :如何通過精準的自然語言指令(Prompt),引導AI生成高質量、安全、高效的代碼,成為一項關鍵技能 [23, 37]。這就像給AI下達精確的作戰指令。
  3. 系統設計與架構能力:當AI負責“磚塊”的生產時,程序員的核心職責變成了設計“大廈”的藍圖。對系統架構、領域建模、技術選型的把控能力變得前所未有的重要 。
  4. 批判性思維與驗證能力:AI會產生“幻覺”,生成看似正確實則有誤的代碼 [30, 39]。程序員需要具備極強的批判性思維,對AI的產出進行嚴格的審核、測試和驗證,成為質量的最終守護者。

新的AI增強型開發流程如下所示:

通過
不通過, 優化Prompt
業務需求分析
程序員: 問題定義與任務拆解
程序員: 編寫高質量Prompt
AI: 生成代碼/方案
程序員: 審核/測試/優化
集成與部署
程序員: 系統架構設計

擁抱AI,意味著我們將工作重心從“體力勞動”轉向“腦力創造”,從關注“實現”轉向關注“設計”和“價值”。這正是擺脫“程序猿”標簽,回歸“工程師”本源的最佳路徑。

四、?? 不做“被耍的猴”:奪回主導權的實戰策略

認知升級和技能進化是內功,但要在職場中真正捍衛尊嚴,還需要一套行之有效的外功——實戰策略。

🛡? 守住需求變更的“南天門”

面對需求變更,情緒化的對抗或無條件的順從都是下策。專業的做法是,建立流程,用理性和數據說話。

下次在需求變更會議上,試試下面的溝通話術轉換:

? 不要這樣說 (情緒化/被動)? 可以這樣說 (專業/主動)
“怎么又改?這個做不了!”“這是一個有趣的新方向。為了實現這個變更,我初步評估需要增加X個工作日的開發時間。同時,這可能意味著原計劃中的Y功能需要延期。技術上,我們需要重構A和B兩個模塊,這會引入Z風險。我建議我們正式記錄這次變更請求,將評估結果同步給所有相關方,待確認后再排入開發計劃。” [126, 186, 305]
“你昨天不是這么說的啊!”“我理解需求在探索中會不斷演進。為了確保我們團隊的目標一致,我們能否建立一個變更控制流程?比如,所有非緊急變更統一在每周的評審會上提出,并附上變更理由和預期收益,由產品、技術、業務方共同評估優先級。” [124, 185, 196]
“好吧,我加班做。” (內心MMP)“如果這個需求非常緊急,必須立即執行,那么我們需要明確,這會暫時擱置正在進行中的某某任務,并且可能因為時間緊張而無法進行充分的測試。這個風險需要您知曉并確認。”

核心思想是: 不直接拒絕,而是清晰地、量化地呈現變更的“成本”和“風險” ,將決策權拋回給需求方,讓他們為自己的決定負責。

🧠 用專業武裝自己,讓外行閉嘴

應對“這個很簡單”的最好方式,就是讓對方看到“不簡單”的部分。這依賴于你持續構建和展示的專業權威。

  1. 建立個人技術品牌:這是讓你區別于普通“碼農”的利器。

    • 寫技術博客:將你的項目經驗、踩坑總結、技術思考沉淀成文章。這不僅能幫助他人,更能彰C顯你的深度和專業性 [64, 74]。
    • 參與開源項目:為知名開源項目貢獻代碼,是證明你技術實力的硬通貨 。
    • 技術分享:在團隊內部、公司年會、甚至行業大會上做技術分享,鍛煉表達能力,擴大影響力。
  2. 讓你的專業“被看見”——技術博客的SEO入門
    光有好的內容還不夠,你得讓需要它的人(包括你的同事、領導、未來的雇主)能找到它。這里簡單介紹一下技術博客的關鍵字優化(SEO)思路,以知名工具Ahrefs為例 [281, 382]:

步驟操作示例
1. 確定核心主題你想寫一篇關于什么的文章?“React性能優化”
2. 關鍵字研究使用Ahrefs的Keywords Explorer ,輸入"React performance",查看相關詞匯。發現高搜索量詞: “optimize react app”, “react lazy loading”, “react memo” [342, 383]。
3. 規劃文章結構圍繞找到的關鍵字組織文章大綱,確保內容全面。- H1標題:React性能優化終極指南<br>- H2:為何要優化React應用?<br>- H2:實戰技巧1:使用React.memo<br>- H2:實戰技巧2:代碼分割與懶加載<br>- …
4. 自然融入關鍵字在標題、副標題、正文中自然地使用這些關鍵字,避免堆砌 [103, 113]。在講解懶加載的部分,使用“lazy loading in React”等短語。

通過這種方式,你的專業知識就能通過搜索引擎被放大,為你建立起堅實的個人品牌。

🤝 向上管理,把你的老板變成“盟友”

不要把你的管理者當作對立面。他們是你爭取資源、抵擋不合理壓力的重要盟友。關鍵在于如何“管理”他們。

  • 主動溝通,暴露風險:不要等到問題爆發了才去匯報。在項目早期就主動溝通潛在的技術風險、資源缺口。“老板,這個項目如果要保證年底上線,按照目前的人力,測試資源可能會有較大風險,我建議提前申請外部測試支持。”
  • 用業務語言對話:和管理者溝通時,少說技術術語,多說業務影響。“如果我們不重構這個陳舊的支付模塊(技術問題),未來每次對接新的支付渠道都需要3周開發時間,而且出錯率很高(業務影響)。”
  • 提供解決方案,而非僅提出問題:“這個服務器扛不住雙十一的流量”是提出問題。“我分析了去年的數據,預估今年峰值流量會翻倍。我提出了兩個方案:A方案是升級服務器,成本X,耗時Y;B方案是做服務降級和限流,成本低,但會影響部分用戶體驗。我個人推薦A方案,因為…” 這是提供解決方案。

當你能站在管理者的角度思考問題,并為他提供決策支持時,你就不再是一個被動的執行者,而是一個值得信賴的合作伙伴。

🎉 結語:告別“程序猿”,擁抱“工程師”的黃金時代

“我是程序員,不是程序猿”,這句宣言,不是一句牢騷,而是一種選擇。

它選擇專業,而非敷衍;選擇創造,而非重復;選擇主導,而非被動。

在這個AI技術日新月異的時代,單純編寫代碼的價值正在被快速稀釋。這對于停留在“程序猿”階段的人來說是危機,但對于立志成為“工程師”的我們來說,卻是前所未有的機遇。AI為我們掃清了前進路上的荊棘,讓我們得以攀登更高、更陡峭的山峰——系統架構、領域深耕、技術創新。

從今天起,讓我們在每一次溝通中展現專業,在每一次決策中體現擔當,在每一次學習中完成進化。請收起自嘲的笑容,穿上自信的鎧甲,用你的代碼和思想去證明:

你,是一名真正的軟件工程師。你的價值,值得被尊重。


附錄:引用文章列表

  1. : 程序員為什么被叫做程序猿?和碼農有什么區別? - 知乎
  2. : 程序員和軟件工程師有什么區別? - 知乎
  3. : 程序員是做什么的(程序員的具體工作內容)- CSDN博客
  4. : 程序員和軟件工程師有什么區別? - 知乎
  5. : 程序員、碼農、程序猿之間有什么區別和聯系? - 知乎
  6. : 程序員=程序猿?為什么程序員會被稱為“程序猿”? - 知乎
  7. : 程序員和軟件工程師有什么區別? - 知乎
  8. : 程序員,碼農,程序猿之間有什么區別和聯系? - 知乎
  9. : 程序員和軟件工程師有什么區別? - 知乎
  10. : 程序員=程序猿?為什么程序員會被稱為“程序猿”? - 知乎
  11. : 程序員的悲哀,你知道多少? - 知乎
  12. : 程序員是做什么的(程序員的具體工作內容)- CSDN博客
  13. : 程序員為什么被叫做程序猿?和碼農有什么區別? - 知乎
  14. : 程序員=程序猿?為什么程序員會被稱為“程序猿”? - 知乎
  15. : 程序員的悲哀,你知道多少? - 知乎
  16. : 程序員、碼農、程序猿之間有什么區別和聯系? - 知乎
  17. : 程序員、碼農、程序猿之間有什么區別和聯系? - 知乎
  18. : 程序員和軟件工程師有什么區別? - 知乎
  19. : AI不僅沒干掉程序員,還帶來了新的編程范式-鈦媒體官方網站
  20. : 面對AI浪潮,程序員如何轉危為機? - InfoQ
  21. : AI 時代,程序員會被取代嗎?- InfoQ
  22. : AI不僅沒干掉程序員,還帶來了新的編程范式-鈦媒體官方網站
  23. : AI 時代,程序員會被取代嗎?- InfoQ
  24. : AI不僅沒干掉程序員,還帶來了新的編程范式-鈦媒體官方網站
  25. : AI不僅沒干掉程序員,還帶來了新的編程范式-鈦媒體官方網站
  26. : AI 時代,程序員會被取代嗎?- InfoQ
  27. : AI不僅沒干掉程序員,還帶來了新的編程范式-鈦媒體官方網站
  28. : AI不僅沒干掉程序員,還帶來了新的編程范式-鈦媒體官方網站
  29. : 面對AI浪潮,程序員如何轉危為機? - InfoQ
  30. : 面對AI浪潮,程序員如何轉危為機? - InfoQ
  31. : AI 時代,程序員會被取代嗎?- InfoQ
  32. : AI 時代,程序員會被取代嗎?- InfoQ
  33. : 同為程序員,請管好自己的言行!- 知乎
  34. : 程序員如何打造自己的個人品牌? - 掘金
  35. : 職場上被人瞧不起,經常被欺負,該怎么辦? - 知乎
  36. : 程序員如何打造自己的個人品牌? - 掘金
  37. : 程序員的尊嚴,不是靠別人給的 - 知乎
  38. : 程序員如何打造自己的個人品牌? - 掘金
  39. : 技術博客SEO 指南:如何讓你的技術文章在Google 排得更高
  40. : 技術博客SEO 指南:如何讓你的技術文章在Google 排得更高
  41. : 如何應對程序員最討厭的“需求變更”? - 知乎
  42. : 產品經理如何應對程序員最討厭的“需求變更”? - 知乎
  43. : 為什么程序員那么討厭需求變更? - 知乎
  44. : 為什么程序員那么討厭需求變更? - 知乎
  45. : 你還在跟開發互撕?這六個方法幫你搞定需求變更- 人人都是產品經理
  46. : 面對需求變更時,聰明的程序員都怎么做? - 知乎
  47. : 面對需求變更,程序員如何與客戶/產品經理溝通? - 知乎
  48. : 面對需求變更時,聰明的程序員都怎么做? - 知乎
  49. : 2024年Ahrefs中國區詳細圖文使用教程(建議收藏) - 知乎
  50. : 2024年Ahrefs中國區詳細圖文使用教程(建議收藏) - 知乎
  51. : 程序員如何優雅地拒絕產品經理的“奇葩”需求? - 知乎
  52. : Ahrefs教程(2024更新):高手都這么用! - SEOClerks
  53. : Ahrefs教程(2024更新):高手都這么用! - SEOClerks
  54. : Ahrefs 關鍵詞研究:查找數千個關鍵詞的分步指南

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

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

相關文章

C++中vector刪除操作的安全隱患與最佳實踐

std::vector 是C標準模板庫&#xff08;STL&#xff09;中最常用的動態數組容器&#xff0c;提供了高效的隨機訪問和動態擴容能力。然而&#xff0c;其刪除操作如果使用不當&#xff0c;會引入嚴重的安全隱患&#xff0c;包括未定義行為、內存泄漏和數據競爭等問題。本文將深入…

Unix/Linux 系統中的 `writev` 系統調用

<摘要> 本文對 Unix/Linux 系統中的 writev 系統調用進行了全面深入的解析。內容涵蓋了其產生的背景&#xff08;從傳統 write 的局限性到分散/聚集 I/O 概念的引入&#xff09;、核心概念&#xff08;如 struct iovec、系統調用流程&#xff09;。重點剖析了其設計意圖&…

深入理解 Android targetSdkVersion:從 Google Play 政策到依賴沖突

深入理解 Android targetSdkVersion&#xff1a;從 Google Play 政策到依賴沖突 作為 Android 開發者&#xff0c;你很可能在 Android Studio 中見過這條提示&#xff1a;Google Play requires that apps target API level 33 or higher。它像一個盡職的提醒者&#xff0c;時常…

灰匣(GrayBox)1.0.0 發布【提升系統權限APP】

灰匣是一個提升系統權限的工具&#xff0c;可以配合Root、三方軟件&#xff08;Shizuku&#xff09;以及【設備管理員】&#xff08;設備所有者&#xff09;實現一些高級功能及底層接口&#xff0c;可以自動隔離&#xff08;凍結/禁用&#xff09;不必要的應用&#xff0c;如某…

PAT 1104 Sum of Number Segments

這一題的大意就是找一個數組中的所有子數組&#xff0c;它們的累加和為多少&#xff0c; 題目上給出的數據范圍是O(n^5)那么只能遍歷一次&#xff0c;不能用暴力的方法求出。 看到這一題我有兩個思路&#xff1a; 1.試圖用雙指針和滑動窗口來把O&#xff08;n^2)的時間復雜度降…

[萬字長文]AJAX入門-常用請求方法和數據提交、HTTP協議-報文、接口文檔、案例實戰

本系列可作為前端學習系列的筆記&#xff0c;代碼的運行環境是在VS code中&#xff0c;小編會將代碼復制下來&#xff0c;大家復制下來就可以練習了&#xff0c;方便大家學習。 HTML、CSS、JavaScript系列文章 已經收錄在前端專欄&#xff0c;有需要的寶寶們可以點擊前端專欄查…

Codesy中的UDP發送信息

Codesy UDP通訊 概述 CAA Net Base Services UDP通訊的建立 發送UDP 狀態控制 效果 概述 Codesys中默認安裝的通訊支持很多,不安裝其他的軟件也可以實現TCP通訊。但是,在使用UDP通訊時,因為我們的PLC有兩個網卡,一般我們把第一個網口做編程和HMI用,把的個網口做外部通訊,…

神經網絡之深入理解偏置

&#x1f50d; 1. 表達能力&#xff1a;無偏模型不能表示全體函數族 ? 有偏線性變換&#xff1a; yWxb&#xff08;仿射變換&#xff09; y Wx b \quad \text{&#xff08;仿射變換&#xff09;} yWxb&#xff08;仿射變換&#xff09; 能表示任意線性函數 平移是仿射空間的…

小白必看:AI智能體零基礎搭建全攻略!

寫在前面&#xff1a;別怕&#xff0c;真的不需要技術背景&#xff01; 你是不是經常聽到"AI智能體"、"大模型"這些高大上的詞&#xff0c;總覺得那是技術大牛的專利&#xff1f;別擔心&#xff0c;這篇教程就是為你準備的&#xff01;我們將用最通俗的語…

React state在setInterval里未獲取最新值的問題

目錄 一、問題描述 二、解決方案 方案一&#xff0c;使用函數式更新 方案二&#xff0c;使用 useRef 保存最新值 一、問題描述 在 React 中&#xff0c;當在 setInterval或setTimeout 中使用 setState 時&#xff0c;經常會遇到狀態不是最新值的問題。這是因為閉包導致的&a…

x86 架構 Docker 鏡像遷移至 ARM 環境的詳細指南

目錄 一、問題背景與分析 二、解決步驟 &#xff08;一&#xff09;檢查 docker-compose 版本 &#xff08;二&#xff09;升級 docker-compose 1. 對于 Linux 系統 2. 對于 Windows 系統 &#xff08;三&#xff09;驗證升級 &#xff08;四&#xff09;重新運行 dock…

零代碼部署工業數據平臺:TRAE + TDengine IDMP 實踐

對于編程初學者來說&#xff0c;軟件開發流程中的開發環境配置、安裝異常或報錯往往需要花費大量時間查閱資料和反復試錯&#xff0c;才能正常安裝和啟動某些軟件工具。現在&#xff0c;在 TRAE 的幫助下&#xff0c;即使完全沒有接觸過編程&#xff0c;也能通過自然語言直接表…

史上最全Flink面試題(完整版)

1、簡單介紹一下 FlinkFlink 是一個框架和分布式處理引擎&#xff0c;用于對無界和有界數據流進行有狀態計算。并且 Flink 提供了數據分布、容錯機制以及資源管理等核心功能。Flink提供了諸多高抽象層的API以便用戶編寫分布式任務&#xff1a;DataSet API&#xff0c; 對靜態數…

C# .NET中使用log4Net日志框架指南

C# .NET中使用log4Net日志框架指南 log4Net是Apache基金會開發的一款高效、靈活的日志記錄框架&#xff0c;廣泛應用于.NET生態系統中。它支持多種日志輸出目標&#xff08;如文件、數據庫、控制臺&#xff09;&#xff0c;并提供細粒度的日志級別控制&#xff0c;幫助開發者監…

每日算法刷題Day68:9.10:leetcode 最短路6道題,用時2h30min

一. 單源最短路&#xff1a;Dijkstra 算法 1.套路 1.Dijkstra 算法介紹 (1)定義 g[i][j] 表示節點 i 到節點 j 這條邊的邊權。如果沒有 i 到 j 的邊&#xff0c;則 g[i][j]∞。 (2)定義 dis[i] 表示起點 k 到節點 i 的最短路長度&#xff0c;一開始 dis[k]0&#xff0c;其余 …

Spring Boot + Apache Tika 從文件或文件流中提取文本內容

應用效果&#xff1a;1、安裝 Apache Tika 依賴pom.xml<!-- Apache Tika 從文件中提取結構化文本和元數據 --><dependency><groupId>org.apache.tika</groupId><artifactId>tika-core</artifactId><version>2.9.2</version>&l…

qqq數據結構補充

1.緒論1.存儲方式順序存儲&#xff1a;邏輯相鄰&#xff0c;物理相鄰鏈式存儲&#xff1a;邏輯相鄰&#xff0c;物理不一定相鄰2.線性表1.順序表1.不可擴容數組寫一個順序表1.在頭文件中應有#pragam once&#xff0c;防止頭文件多次編譯&#xff1b;如果頭文件多次編譯&#x…

Anaconda與Jupyter 安裝和使用

Anaconda內部集成了很多科學計算包&#xff0c;并且可以實現環境隔離 1. 安裝Anaconda 定義&#xff1a;Anaconda是一個集成的Python發行版&#xff0c;專為數據科學、機器學習和AI開發而設計。它包含了常用的Python庫、包管理工具&#xff08;Conda&#xff09;和Jupyter No…

5.后臺運行設置和包設計與實現

程序的入口點(想讓其后臺默認.exe進程運行)也可以不通過vs設置也可以通過定義預處理設置第三種就是沒有窗口的變成后臺運行的了 處理client傳來的數據包 第一步&#xff1a;咱們怎么設計一種包呢&#xff1f;FEFF在網絡環境里面出現的概率低所以就采用這個 自己數據包截斷了&am…

【開題答辯全過程】以 基于微信小程序校園綜合服務平臺的設計與實現為例,包含答辯的問題和答案

個人簡介一名14年經驗的資深畢設內行人&#xff0c;語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧。感謝大家的…