很認真的聊一聊程式員的自我修養

来源:https://www.cnblogs.com/xiaogeng/archive/2018/06/02/9126846.html
-Advertisement-
Play Games

首先要談的是,今天的話題所聊的程式員包含哪些人? 在中國,寫程式,不僅僅是一種興趣,更多的時候,還是一種普通職業和謀生工具 大公司有厲害的程式員,優秀的架構師,但大量的小公司也有很多普通的程式員。在我這些年的工作經歷中,也越來越深刻的感受到普通程式員的影響和力量。對於高階程式員,所謂八仙過海各有神通 ...


首先要談的是,今天的話題所聊的程式員包含哪些人?

在中國,寫程式,不僅僅是一種興趣,更多的時候,還是一種普通職業和謀生工具

大公司有厲害的程式員,優秀的架構師,但大量的小公司也有很多普通的程式員。在我這些年的工作經歷中,也越來越深刻的感受到普通程式員的影響和力量。對於高階程式員,所謂八仙過海各有神通,各有各的成就,各有各的修養,但程式員在達成較高的水平之前,有一些“自我修養”,是最基礎的,是普世的。

所以今天的話題面向的程式員,就是所有的正在寫代碼或者曾經寫過代碼的程式員,也包括廣義上的程式員,例如項目經理、架構師等等。

 

做任何事都是有明確目的,那麼

再談一談,程式員提高自我修養是為了什麼?

程式寫的好有人崇拜,有妹子喜歡?還是到博客、論壇、社區發表文章進行分享獲得成就?我想這是少數人的追求,也是更高的追求,在這之前

我認為,在中國,程式員提高自我修養的目的,是為了

1、更好的融入工作,減少困難,增加成就

2、穩步的提升能力,提高收入,達成財務自由

2、站在更高的層面看待自己的學習和工作,樹立更加適合的人生觀價值觀,家庭幸福,生活愉快

說的更通俗一點,就是用更加合理的方式和方法,賺取到更多的收入

 

說了這麼多廢話,進入正題

何為程式員的自我修養?

正面論述很難說清楚,反向描述可能更通俗易懂一些,自我修養的對立面是“沒有修養”,先說一說在這麼多年的工作、學習、生活中,遇到的一些我認為“沒有修養”的程式員形態

  1. 程式員小張遇到了一個開發問題,很著急,想到了有幾個群,於是到群里發了他的問題,坐等回答,發現沒有人回答,就直接對話群主的QQ,群主也不回答,於是小張就搜索,突然搜到博客園有個帖子講解了相關話題,他看完就給博主留言,我的郵箱是:[email protected],麻煩博主把源碼發給我一下,謝謝。

  2. 程式員小張進公司3個月了,老闆佈置了很多任務,他覺得老闆很沒人性,工資給的不高,加班也不給錢,於是在寫代碼的時候能省就省,客戶反饋有問題也不主動解決,敷衍為主,又過了一個月,跳槽了。

  3. 程式員小張正在寫一個功能模塊,需要進行某種加密,到百度搜到了一個編碼模塊,看不明白具體寫了什麼,但是放到程式里剛好適用,於是就這麼原封不動放進去了。

  4. 程式員小張要對某個功能進行研發,項目經理對他說,這個功能應該能搜索到,你去搜搜看,小張就在百度搜啊搜,一天過去了啥都沒找到,項目經理來到小張身邊坐下,換了個關鍵詞,1分鐘就搜到瞭解決方案。程式員小張學.NET已經工作3年了,工資還是10000,和公司提漲工資也沒答應,想跳槽又猶豫,這時某個前輩對他說,你去看書吧,多看一些書,例如 《Visual C# 從入門到精通》,《CLR via C#》《Javascript權威指南》等等,於是小張買回來了, 隨手翻了翻發現有些東西是他已經會的,有些看不懂的好像又用不到,而且書這麼厚,要不要浪費時間去看呢?小張就這樣反覆糾結了半年,依然每天上班工作,下班LOL,偶爾還抱怨一下工資低。

  5. 程式員小張到了一家新公司,在做一個項目實現某個功能時,想起來以前做過這樣的功能,可是竟想不起怎麼實現了,於是就到自己電腦上找文檔,找了好久也沒找到,只好放棄,最後又折騰了2天,終於還是把這個功能給實現了。

  6. 程式員小張某天非常不高興,因為他的項目經理和項目組的產品人員又變更需求了,新的需求又要對整個結構進行大的調整,小張很鬱悶,到一個QQ里發泄情緒,說了這個事,於是立馬,QQ群裡面炸開鍋了,程式員小李說,對,產品就是狗日的!程式員小王說,對,他媽的項目經理整天高枕無憂,就知道壓榨開發人員!程式員小孫說,是的是的,我上一家公司也是這樣,壓榨程式員,幸好我走了。就這樣,在一片罵聲中,幾個程式員心情舒暢了,小張開心的去玩王者榮耀去了。

我想,有些人可能已經明白我要說什麼,有些人可能還不明白,具體的話我也說不出來,只能用一句話來概括就是:

在編寫代碼的過程中,善於學習、掌握方法、勤加思考、勤奮努力、持之以恆,長此以往,在編程中,你會發現不一樣的自己。

 

以上這些還是比較抽象,那麼

提升自我修養的具體方法有哪些?

程式員具體如何達成“較高的修養”,每個人各有自己的辦法,我無法說到很細,就和如何提高做人修養一樣,一句兩句話是說不清楚的,但是有些說法也通俗易懂,比如一個小孩,有教育良好的父母,父母彬彬有禮,小孩從小開始接受正規教育,小學、初中、高中、大學,然後文化課程和社會實踐良好,那麼這個小孩最終的做人修養,一定比沒有經歷過這個過程的小孩更好一些。

同樣的,寫程式也是如是,下麵我就講一些最基本的、最淺顯易懂的學習方法和道理,我把它叫做:

程式員基礎的基礎

一個好的開發人員,應該能夠全面、高效、嚴謹的去處理任何軟體程式和業務問題,成為一個好的開發,是一個很有意思的話題,不過無論這個話題如何開展,基礎兩個字必不可少,雖然代碼量是衡量開發能力的重要指標,但僅能夠熟練的進行代碼編寫是不夠的,更要能深刻的理解技術原理和業務邏輯,扎實的個人基礎和技術基礎往往會促進代碼的編寫,更游刃有餘的解決問題。

下麵說的一些基礎,可能絕大部分開發人員都不會在意甚至忽略,但恰恰這些才是開發大廈的基石。

1、科學基礎

成為開發人員的過程不盡相同,有的是科班出身,有的是興趣愛好,還有的是專業機構的培訓,在這個過程中,可能全面或者零散甚至沒有學習過電腦基礎學科,但無論是哪一種,想要成為更高層次的開發人員,寫出更高質量的代碼,電腦基礎學科的學習,是非常非常非常(重要的事情說三遍)重要的。具體的來說,基礎學科在實踐應用中,有如下幾門是一定需要的,按照學習順序排列如下

1)數據結構

數據結構課程通俗的說就是告訴你如何用最基本的語言類型、變數,關鍵詞語句等,去處理各式各樣的邏輯問題,我們稱之為演算法,而日常編程中的各種問題,例如排序、文件夾遍歷操作、資料庫查詢等,都可以在數據結構課程中,找到對應的數學原型。數據結構課程的理解能力,也是一個人數學能力的體現,數據結構學習的好壞,是程式員水平差異的一個重要分水嶺,對於這一塊內容的學習,有如下建議:使用VB、C、C++、Pascal等語言,買一本相關語言數據結構與演算法的書,或者在網上下載相關的PDF電子書,完整的學習一邊,並將書本中的所有案例親自編寫運行調試一遍,當能夠領悟到某些日常編程中常見手法源於某些數據結構和演算法時,就基本達到了學習效果。

2)操作系統

所有編程語言的開發以及應用的運行,都基於操作系統,桌面編程中的大部分場景包括記憶體、進程、文件系統、網路通訊、用戶界面等,都源於操作系統的定義和概念,完整的瞭解操作系統的起源和組成以及運行邏輯,對多線程、複雜界面、文件管理以及一些難以正常理解編程思路等開發中遇到的場景,有非常大的幫助,不僅幫助理解,也能掌握更多有效的程式寫法。具體可以買一本操作系統的書或者下載相關PDF電子書,完整的瀏覽一遍,做到能夠結合實際編程場景來看待操作系統原理,就基本達到了學習效果。

3)資料庫

傳統的關係型資料庫,入門簡單,深入卻難,往往開發人員能夠較快的掌握增刪改查、視圖、索引、存儲過程等基本資料庫操作,卻在編寫複雜查詢、設計主外鍵、優化欄位、去除冗餘等時,出現只會依葫蘆畫瓢卻不能自主思考擴展的狀況。究其原因還是沒能瞭解關係資料庫的根本原理,而資料庫這一門課程,系統的闡述了關係型資料庫的來龍去脈,瞭解其中的數學原理或邏輯基礎所在,對提升資料庫編程水平有質的影響。建議也是買一本資料庫的相關書籍或者下載PDF電子書,能夠把熟練的把第一範式、第二範式等資料庫課程的基本知識點與資料庫編程場景建立起關聯,也基本達到了學習效果。

4)編譯原理

編譯原理是編程語言以及各類語言編譯器的科學基礎,可以說編譯原理創造了世界上的幾乎所有的IT應用,學習編譯原理的基礎是數據結構和演算法,因此編譯原理的學習要花費更多的時間和精力,由於現代高級編程語言的編譯器,在代碼優化、資源優化方面已經做的足夠智能,因此,編譯原理的學習對實戰的影響越來越小,但是正所謂本盛末榮,如果認為自己對數據結構和演算法的學習達到了一個較高的水平和狀態,可以在編譯原理學習上進一步深入,最終把自己和普通程式員拉開更大的差距。

 

2、英語能力

英語的天然特性和字母長度還有學科發展的歷史因素,決定了編程語言一定是基於英語的,在編程過程中,從語言的關鍵詞到文檔的內容又或是搜索引擎的搜索結果,都不可避免的會遇到英文。大部分編程人員,都具備英語四級左右的英文基礎,卻由於非專業以及工作環境原因,逐漸疏遠甚至完全淡忘了英語。而實際操作中,大部分編程語言資料都是英文,線上編程問答內容也是英文,因此,很有必要把英語能力重新恢復到一個不用太高但行之有效的水平,達到如下效果:

  1. 對自己所使用語言,每一個關鍵詞都知道具體的英文翻譯、邏輯含義以及讀音。

  2. 對於自己使用語言所涉及到的相關方法、類庫、框架、工具等,能知道其中每一個方法、過程以及參數關鍵詞等的英文翻譯、邏輯含義以及讀音。

  3. 對常見的編程邏輯和核心關鍵詞,能夠用英文組織問題的描述,最簡答的也行,只要能被搜索引擎讀懂就可以。比如如何在C#中把整形轉換為字元串類型這個問題,最簡易的英文描述就是 C# Integer Covert To String。

  4. 在自己技術知識範圍內的任何的英文的技術手冊、文檔、文章或是問題描述,能夠讀懂8成的內容含義,能夠讀懂完整的技術含義。

 

3、搜索方法

任何一個開發人員,都應當具備搜索能力,甚至是一定要具備搜索能力,搜索引擎的寶藏,是無窮無盡的,同樣具備搜索意識的不同程式員,卻因為搜索技巧的差異最終在程式開發質量、項目實施效率、甚至是工程產品質量上出現數倍的差異,因此,掌握高效、先進、靈活的搜索方法和技巧,是非常非常非常(重要的事情說三遍)有用的。其中主要的方法介紹如下:

1)搜索源選擇

  • 雖然英文的編程資料更為準確高效,但中文的編程資料數量上卻占優,因此遇到問題第一搜索選擇還是百度

  • 谷歌對於專業中文辭彙的處理能力有時候甚至比百度還要強,而且谷歌能搜出大量的英文資源,因此谷歌也是首選之一,但是由於谷歌被封鎖,因此需要進行VPN、SSH等FQ操作,或者在百度搜索“谷歌鏡像”關鍵詞,通過谷歌的鏡像網站進行訪問。

  • 除了搜索引擎,專業的技術網站、論壇、社區也是非常直接有效的搜索源,比如國外的StackOverFlow網站,國內的Cnblogs博客園、OSChina開源中國等,都具備搜索功能,將問題關鍵詞輸入其中,也許也會很快的得到相關答案。

  • 對於QQ群,建議不要使用,除非QQ群主或者成員是非常閑或者非常非常熱心的人,否則在QQ群詢問技術問題,是非常低效率的搜索方式。

2)關鍵詞構造

搜索關鍵詞的構造,直接影響搜索效率和正確結果的過濾,沒有什麼特別的技巧,關鍵在於搜索積累,但是總體遵循的原則是,準確和簡潔,比如當出現一個描述,如何用C#對XML進行序列化和反序列化,非常愚蠢的關鍵詞構造就是“如何用C#對XML進行序列化和反序列化”,而正確高效的關鍵詞則是“C# XML 序列化 反序列化”,或者在谷歌裡面搜索則是“C# XML Serialization”。在平時的編程中,一定要註意相關方法和經驗的積累

3)聯想搜索

聯想搜索,不屬於搜索引擎的範疇,卻是在搜索中很有用的高級技巧,舉一個通俗的例子,比如想使用C#,利用某個.NET類處理一種HTTP通訊,但是一直搜索不到完美的結果,不過換個思路,考慮到VB.NET也是.NET體系,和C#完全相通,那麼也可以試著用VB.NET關鍵詞進行搜索,搜索到完美代碼後再臨摹成C#代碼。這樣的聯想搜索,不僅能夠幫助搜索正確結果,也是對大腦思維的訓練,值得多多嘗試。

4)資源搜索

開源的框架、產品、工具、控制項等開發輔助類東西越來越多,穩健性和迭代性越來越強,去尋找一款成熟的工具或者插件,也成為了大量開發者的必備方法和技能,而如何高效的搜索出想要的資源,也成為了一門學問,其核心方法就在於知曉資源網站的地址,常見的例如有開源中國、Github、CSDN下載、pudn等。資源類網站需要平時多積累,到用到的時候會非常關鍵。

 

4、思維模式

開發人員,一定要養成業務思維的模式,所謂的業務思維,就是在做任何一個項目的時候,寫任何代碼前,需要對項目本身的業務概念和業務邏輯甚至業務流程都要有一個全面的學習和理解,這雖然不是一個項目的強制要求,卻是一個很好的開發習慣,無論自己的覺得是開發者還是測試員又或是技術總監,掌握了業務原理,才能夠更好的設計或閱讀項目的數據結構和流程結構。程式員的思維往往和用戶或者客戶是不一致的,擺脫技術思維模式,習慣於用業務思維解決問題的程式員,不一定最優秀,但一定是一個很容易溝通的程式員。

 

5、工作與編程習慣

有的人說愛乾凈浪費時間,所以不修邊幅,但歸根結底這還是習慣問題,當養成清潔衛生的習慣並使之成為生活慣性時,往往就不會耗費更多的時間,反而顯得乾凈幹練。寫程式同樣如是,有一些編程習慣,看似不足為道,看似浪費時間,可是如果堅持下去,最終都能收到意想不到的奇效。下麵列舉一些特別重要的習慣。

1)快捷鍵的使用

無論是使用Windows、Linux操作系統,還是在IDE中,快捷鍵都是系統本身的標配,事實上,Ctrl+C、V這樣的操作,大部分人都能嘗到在節省時間上的甜頭,把這個概念進一步擴散,如果在IDE中編寫代碼,除了代碼本身,將其餘所有的滑鼠操作、鍵盤定位操作,都用快捷鍵來代替的話,在時間上將會有數量級的節省,然而看上去這麼好的事情,真正堅持去執行並形成習慣的人屈指可數,因此,在初期的改變習慣,記住快捷鍵,會是一個長期的過程,需要不斷的堅持。

2)代碼註釋

一個開發人員隨著年齡和經驗的增長,所參與的項目,再也不是靠一個人或者幾個人就能完成的。系統的重構、代碼的重構、工作的交接、對新進人員的培訓等等類似的事情,會越來越多的遇到,這些事情無一例外都會把已經寫過的代碼重新或者重覆閱讀,如果在初始編寫代碼時,就做到完整、清晰明瞭的代碼註釋,對後續工作會有巨大的幫助。不僅提高工作效率,還能增強合作好感。事實上,就算只是自己看自己的代碼,如果有註釋,也能加深印象,縮短代碼查找時間。因此,任何開發人員,都應該養成良好的代碼註釋習慣。

優秀的代碼註釋應該能做到:

  • 每一個函數、每一個屬性甚至是變數的劃分,都可以找到對應的解釋。

  • 多使用越來越被IDE支持的XML註釋方式,不僅有註釋文字,更有詳細的參數描述。

  • 對程式結構、模塊、組成部分劃分等也加以註釋

3)命名規則

具備一定規模的軟體公司,在代碼編寫上都有一套自己的命名規則,涵蓋項目、模塊、函數、變數等等,標準化命名的好處不言而喻,然而被動、被迫去遵守命名規則和主動習慣於使用命名規則是完全不一樣的。一個優秀的開發人員,應當發自內心的希望各種代碼命名都是有規則的,易讀的,而不是糾結於命名規則會增加碼字長度。

4)不將就的編程邏輯

所謂不將就的編程邏輯,其對立面就是不講究的編程邏輯,不講究的編程,不僅是一種很壞的編程習慣,也體現了低下的生活品質,很多開發人員,因為個人習慣、趕工期、客戶要求不高等多種原因,在編程時特別隨意,體現在比如為了實現某個功能,百度出一段代碼,直接套用,10行的代碼只理解8行,有兩行看不懂也放到程式里去使用,很多這樣的小細節,就好比在項目中埋下了無數的定時炸彈,不僅有很大概率形成返工,更是為項目埋下了風險。編程人員,應當有擔當有態度,養成不將就的編程邏輯,不勉強自己,也不輕視程式。

5)數據備份

誤刪、誤操作、電腦斷電、文件遺失等等狀況是每一個開發按人員都可能遇到的問題,如果不希望辛勤的勞作被浪費,不希望偶然的意外影響工作,那做好備份是必不可少的,在較大規模的公司,會有完整的源代碼管理以及信息安全防護,而無論是在大公司工作,還是身處較小公司或者在實現個人代碼價值時,都要做好代碼和文檔的數據備份,備份方式的選擇靈活多樣,有使用線上的CVS、SVN、TFS、Git源代碼管理,也可以手工拷貝文件至雲空間或者本地硬碟,甚至可以在個人電腦上組成RAID磁碟陣列等等,養成周期性、規律性的備份習慣。

6)郵件工作方式

溝通是進步的源泉,如果說開發小組的熱烈討論是性格和激情的體現,那郵件的工作方式也是另一種穩重和高效。無論是公司層面的工作溝通,還是開發小組的問題交流,郵件的作用包括問題正規化描述、工作留檔留痕、工作流程流轉、責任分工明確等等,習慣於將重大問題、重要事項通過郵件的方式與同事、主管等進行溝通,將會非常有助於團隊協作。

以上這些方法,是我這麼多年來的感受和體會,也給了我很大的幫助,希望也能夠幫助到大家,不能說一定可以“提升修養“,但也是”提升修養”的有效方式。

 

最後還想再說一說堅持的力量

分享一個真實的小故事,公司有兩個開發人員,1個做.NET好多年了,但是很油滑,做事能省就省,抓到可以偷懶的機會就偷懶,讓他學點新知識新方法總是自以為是覺得自己都會;還有1個毫無.NET基礎,一直做低級語言開發,從15年才開始學習.NET和Web前端,但是做事很積極,幾乎每天都自己抽空學習,遇到不懂的都琢磨清楚,遇到不會的場景就上網或者找人尋求幫助,項目結束後還反覆思考有什麼地方可以改進。從15年到現在,短短1年,這兩個人的發展已經是天壤之別,工資差距也越來越大,後者已經能夠獨自操盤中小型軟體外包項目,而前者還在混著日子,以後他們各自的發展也完全可以預見。

我想說的是,本篇裡面分享的一些道理和方法,都是通俗易懂的,就和常聽到的例如101%和99%的365次方的故事、1萬小時的道理等等一樣,但真正去認真思考並實踐的屈指可數,也許,堅持才是程式員最大的修養,和各位共勉!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在Spring生態中,JavaConfig 如何優雅的替換 XML ...
  • RabbitMQ基礎教程之使用進階篇 相關博文,推薦查看: I. 背景 前一篇基本使用篇的博文中,介紹了rabbitmq的三種使用姿勢,可以知道如何向RabbitMQ發送消息以及如何消費,但遺留下幾個疑問,本篇則主要希望弄清楚這幾點 Exchange聲明的問題(是否必須聲明,如果不聲明會怎樣) Ex ...
  • 推薦寫法 具體解釋可以往後看。 原理 1. 每一個 執行文件,都自動創建一個 對象,同時, 對象會創建一個叫 的屬性,初始化的值是 。即: 2. 是引用 的值 3. 模塊導出的時候,真正導出的執行是 ,而不是 1與2的demo 3的demo 為了驗證真正導出的是 而不是 ,我們對 修改如下: 的輸出 ...
  • 心血來潮,手機上導出的圖片全部按日期放在不同文件夾,很是麻煩,想放在一起方便瀏覽,手動操作費時費力,想到bat命令,不是很熟,看到python欣喜不已,很是方便 遞歸遍歷文件,剪切出來,刪除空文件夾 不足:未考慮各種異常 ...
  • 通過上篇文章,大家已經能夠清楚的瞭解到treeMap插入結點的過程,那麼本篇文章就來分析下TreeMap刪除一個結點時,內部數據結構發生了怎樣的變化。 TreeMap刪除某個結點的源碼分析 1 /** 2 * 刪除節點,並平衡紅黑樹的操作 3 * 4 * @Param Entry<K,V> p 要刪 ...
  • 要求: 1、創建三個游戲人物,分別是: 蒼井井,女,18,初始戰鬥力1000 東尼木木,男,20,初始戰鬥力1800 波多多,女,19,初始戰鬥力2500 2、游戲場景,分別: 草叢戰鬥,消耗200戰鬥力 自我修煉,增長100戰鬥力 多人游戲,消耗500戰鬥力 ...
  • 在生活中我們時常會遇到同步的問題,而且大多數的實際問題都是線程的同步問題 我這裡以生活中的火車售票來進行舉例: 假設現在我們總共有1000張票要進行出售,共有10個出售點,那麼當售票到最後只有一張票時,每個售票點如何去處理這唯一的一張票?或者對於某一張票而言,假設它正在售票站1售票的程式執行過程中, ...
  • Java的迴圈跳轉語句一:Java迴圈跳轉語句之 break;二:Java迴圈跳轉語句之 continue; ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...