JavaRush /Java Blog /Random-TW /每個程式設計師都應該閱讀的 10 篇文章
Shoggy
等級 32
Санкт-Петербург

每個程式設計師都應該閱讀的 10 篇文章

在 Random-TW 群組發布
作為一名 Java 程式設計師和軟體開發人員,我從許多標題為What Every Programmer Should Know About..... 的文章中學到了很多東西,它們往往會提供有關特定主題的大量有用且全面的信息,而這些資訊是很難透過其他方式獲得的。發現。在我尋求知識的過程中,我遇到了一些非常有用的文章,我已將它們添加為書籤以供重新閱讀的參考資訊。許多程式設計師可以從閱讀本集合中受益的想法促使我寫了這篇文章並與您分享所有這些「每個程式設計師應該知道的內容」文章。 每個程式設計師都應該閱讀的 10 篇文章 - 1在本文中,您將熟悉每個程式設計師都需要的經典知識集,主題包括記憶體Unicode浮點算術網路物件導向設計時間URL 編碼字串等。這份清單對於初學者和新人來說非常重要,因為他們往往缺乏實踐知識。由於大多數文章都是基於現實生活中的例子,入門級和中級程式設計師可以從中學到很多東西。此外,在職業生涯早期學習基礎知識將幫助您避免其他程式設計師和軟體開發人員在學習過程中已經犯過的錯誤。不幸的是,並不是所描述的文章中的所有資訊都能在第一次閱讀時輕鬆消化。很可能,您可能無法立即理解有關浮點數的一些細節,或者您可能會對錯綜複雜的內存感到困惑,但重要的是將此集合放在手邊並時不時地參考它以進行澄清。所以我祝你好運並享受閱讀這些精彩的文章。順便說一句,如果我們的清單中沒有任何其他「每個程式設計師應該知道的內容」文章,請不要忘記分享。

每個程式設計師都應該了解的記憶體知識

這是一篇經典 文章,將引導您了解記憶的特徵,其中有些是舊的,有些是新的,有些是著名的,有些則不太出名。儘管擔任管理角色並且無處不在,但並不是每個程式設計師都對記憶體有足夠的了解。如果您從事編寫高效能應用程式的業務,那麼熟悉現代系統中的記憶體就變得更加重要。硬體設計人員正在提出更複雜的記憶體管理模型和加速技術,例如 CPU 緩存,但如果沒有程式設計師的幫助,這些技術就無法發揮最佳效能。我仍在閱讀這篇文章,我無法告訴你我從中學到了多少關於 RAM、CPU 快取(例如 L1 和 L2 快取)、不同類型的記憶體、直接記憶體存取、記憶體控制器設計和一般記憶體的知識。簡而言之,任何級別的程式設計師都必須閱讀。

每個科學家都應該了解的浮點運算知識

浮點運算的主題很棘手,不容易掌握。許多Java程式設計師甚至不知道用類型float/double運算子比較值時會出現什麼問題==float我們中的許多人在執行類型和的貨幣計算時經常犯錯double。本文是本系列的另一篇文章,是所有軟體開發人員和程式設計師的必讀之作。隨著經驗的積累,您應該深入了解一般主題的複雜性,浮點運算就是其中之一。身為資深 Java 開發人員,您應該知道如何進行貨幣計算、何時使用float或如何對浮點數進行捨去等等doubleBigDecimal即使您對此主題有紮實的知識,閱讀本文後您也可能會發現有關浮點運算的新知識。

每個開發人員都應該了解 Unicode 的知識

字元編碼是許多程式設計師苦苦掙扎的另一個領域,「每個軟體開發人員應該絕對了解 Unicode 和字元集的絕對最低限度(沒有藉口!)」旨在填補這一空白。鄭重聲明,是的,這就是本文的完整標題。它的作者是 Joel Spolsky, https://stackoverflow.com的創始人之一。喬爾大約 10 年前在他的部落格上寫了這篇文章,但它在現代世界中並沒有失去意義。本文解釋了什麼是 Unicode、什麼是編碼、如何使用位元組表示字元等等。這篇文章最好的地方之一就是語言和呈現方法,即使你對 Unicode 一無所知,理解它也不會有任何問題。簡而言之,這是所有程式設計師、編碼員和軟體工程師必讀的一本書。

每個程式設計師都應該了解的關於時間的知識

除了字元編碼之外,時間和日期(TimeDate)是許多程式設計師(包括我自己)遇到困難的另一個領域。即使是高級開發人員也會迷失在 GMT、UTC、夏令時和閏秒中。老實說,處理時區而不犯一些錯誤並不容易,而使用夏令時則更困難。如果你使用反覆試驗,問題會變得更糟,因為你永遠無法透過這樣做來解決你的問題。有很多事情可能會出錯,也有同樣數量的誤解。日期是否包含時區之類的事情可能會讓您感到困惑,將 UNIX 時間轉換為其他時區可能會激怒您,並且您很容易忘記同步時鐘和延遲。我希望在閱讀這篇文章後,您對時間的許多誤解會消失,並對時間有完整的理解。

每個 Web 開發人員都應該了解 URL 編碼的知識

本文介紹了有關統一資源定位器 (URL) 編碼的常見誤解,然後嘗試澄清 HTTP 的 URL 編碼,然後示範常見問題和解決方案。儘管本文並不特定於任何程式語言,但它說明了 Java 中的問題,並以在多個層級上修復 Java 和 Web 應用程式中的 URL 編碼問題的說明結束。您將學習基本的 URL 語法、HTTP 和其他協定中的通用 URL 語法。本文也介紹了常見的 URL 陷阱,例如字元編碼、URL 不同部分中的特殊字元以及 URL 編碼/解碼問題。如果您是 Java 程式設計師,那麼您還將學習如何在 Java 應用程式中正確管理 URL。如何建立 URL 並使用 Apache Commons HTTP 用戶端程式庫。最後,它還提供了使用 URL 的最佳實踐和建議,例如在建立 URL 時應如何編碼、確保 URL 重寫過濾器正確處理 URL 等等。簡而言之,這是所有 Web 開發人員和程式設計師的必讀之作。

每個程式設計師都了解哪些 Web 開發知識?

這篇來自程式設計師StackExchange 的有趣文章介紹了每個實作 Web 應用程式技術細節的程式設計師在向公眾開放網站之前應考慮的內容。它包括介面設計和用戶體驗、安全性、Web 標準、效能、搜尋引擎優化 (SEO)、所使用的技術和一些重要資源等領域的內容。當今世界在很大程度上依賴互聯網,程式設計師擁有個人網站或部落格是很常見的。從本文中獲得的經驗不僅對您的專業活動有用,而且對您自己的專案也有用。您將了解所有關鍵技術,如 HTTP、HTML、XML、CSS、JavaScript、瀏覽器相容性、減少網站載入時間的技巧、XML 網站地圖、W3C 規格和其他幾個關鍵點。

每個程式設計師都應該了解 SEO 的知識

這是另一篇對 Web 開發人員、程式設計師和部落客非常有用的文章。SEO 太大了,不容忽視,對於許多程式設計師和部落客來說,了解搜尋引擎優化的基礎知識非常重要,以幫助 Google 找到他們的內容並將其展示給其他程式設計師。在當今的互聯世界中,沒有一家公司能夠在沒有網路的情況下生存,因此 SEO 變得更加重要。如果您有一家銷售任何產品的新創公司,那麼搜尋引擎優化是您應該關注的事情。所有程式設計師,尤其是 Web 開發人員,都可以從本文中受益匪淺。請記住,搜尋引擎優化範圍廣泛且非常動態,並且因不同的搜尋引擎(例如 Google、雅虎等)而異。因此,要掌握這個主題,您必須不斷更新您的知識。

每個 C 程式設計師都應該了解關於未定義行為的知識 #1/3

C 程式語言有「未定義行為」的概念。未定義行為是一個廣泛的話題,有許多細微差別,這也是我喜歡 Java 的原因之一:更少的未定義行為、更少的混亂、更多的穩定性和更多的和平。C 中許多看似合理的事物實際上具有未定義的行為,這是程式中錯誤的常見來源。此外,C 中任何未定義的行為都會允許(編譯器和運行時)實作產生格式化硬碟的程式碼,從而執行完全意想不到的事情,甚至更糟。閱讀這篇精彩的文章,深入了解不可預測的行為。

每個程式設計師都需要了解的網路知識

從文章本身來看,「你是一名程式設計師。你有沒有想過多人遊戲是如何運作的?從表面上看,這似乎很神奇:兩個或更多玩家在線上共享協作體驗,就好像他們實際上一起存在於同一個虛擬世界中一樣。但是“程式設計師們,我們知道真相,實際發生的事情與您所看到的完全不同。事實證明,這都是幻覺。” 這是一篇為遊戲程式設計師編寫的關於網路的非常有趣的文章,但我認為每個程式設計師和開發人員都可以從中受益。

每個 Java 開發人員都應該了解的關於字串的知識

這是我的文章java.lang.String,我個人認為每個 Java 程式設計師都應該了解它。字串在日常 Java 程式設計中非常重要,這就是為什麼任何 Java 開發人員都必須具備良好的知識。本文涵蓋了字串的許多重要方面,包括字串池、字串文字、與==vs比較equals()字串、將位元組轉換為字串、為什麼字串是不可變的、正確的字串連接等等。高級程式設計師可能已經了解所有這些功能,但即便如此,回顧一下也是一個好主意。

每個程式設計師都應該了解哪些安全知識?

這個問題是 StackOverflow 上的學生程式設計師提出的。正如我們了解許多通用程式設計概念(例如作業系統、演算法、資料結構、電腦體系結構等)一樣,了解安全性也很重要。儘管安全主題相當廣泛,涵蓋加密/解密、SSL、網路安全、混淆、身份驗證、授權等領域,但每個程式設計師都需要具備最基本的知識。就我個人而言,在我職業生涯的初期,我對安全性了解不多,當我開始編寫基於Servlet/JSP 的Java Web 應用程式時,我了解了Web 安全性和許多安全性威脅,例如SQL 注入、拒絕服務、XML注入、跨站點腳本編寫等。身為 Java 開發人員,我現在遵循 Fortify、PMP 和其他靜態程式碼分析器提供者提供的安全 Java 程式設計實務。本文包含精選的安全主題和鏈接,無論您是否編碼,您都一定會從該資源中受益。

每個程式設計師都應該知道的延遲數字

這篇文章是一個額外的收穫,但無論如何,它是任何程式設計師的必讀之作。要使用任何程式語言(無論是 Java 還是 C++)編寫高效能應用程序,您必須了解基本的延遲值,例如,從記憶體、L1 快取、L2 快取讀取變數需要多長時間,對於一個從SSD 和磁碟隨機讀取。鎖定/解鎖互斥鎖以將資料包從一個城市發送到另一個城市或在一個資料中心內進行往返需要多長時間。這些延遲值與程式語言無關,是開發人員編寫高負載、低延遲應用程式必須具備的基礎知識的一部分。這個連結的積極之處在於,它提供了這些價值觀多年來如何演變的比較分析。你可以看到2006年的數值和現在的數值。這就是每個程式設計師都應該閱讀的文章清單的全部內容。透過閱讀「每個程式設計師或開發人員應該知道什麼」等文章,您可以加深對特定主題的了解。老實說,程式設計師需要學習的東西太多了,學習Java這樣的程式語言只是冰山一角,但我們大多數人不是都有學習的熱情嗎?程式設計是一項需要不斷發展的工作,對任何程式設計師在整個職業生涯中唯一有用的就是內存Unicode浮點數時間安全(security)等基礎知識。有些內容是特定於語言的,例如我關於 Java 中的字串和每個 C 程式設計師應該了解的未定義行為的文章,但對於許多初學者和開發人員來說,學習它們是很好的。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION