碼農翻身2 ( 簡體 字) |
作者:劉欣(@碼農翻身) | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 56382 詢問書籍請說出此書號!【有庫存】 NT售價: 590 元 |
出版日:2/1/2024 |
頁數:280 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121466977 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:轉眼間,距離《碼農翻身》的出版已經過了5 年時間,很多讀者催問:“什么時候出《碼農翻身2》?我已經等不及了!”“疫情都結束了,《碼農翻身2》在哪兒?”……現在《碼農翻身2》終于來了,之所以拖了這么長的時間,主要是因為中間“插播”了另外一本書——《半小時漫畫計算機》,該書使用純漫畫的方式來講解計算機基礎知識,這對我來說是一個全新的嘗試,花費了我不少的時間和精力。
近幾年來,我一直在微信公眾號“碼農翻身”上堅持輸出原創技術文章,慢慢地,竟然積累了近1000篇,可見堅持的力量是非常驚人的。
有一次,我參加一個同學組織的聚會,并在聚會上無意中提起了自己正在運營的微信公眾號“碼農翻身”,有幾個我并不認識的朋友搜索并關注了該公眾號以后就驚呼:“哇,這么多我的好友都在關注啊!”可見公眾號的讀者越來越多,影響力也越來越大。
熟悉我的朋友應該知道,我不太喜歡追熱點寫文章,因為熱點過后很快就“煙消云散”了,我更喜歡寫那些穩定的、不容易過時的知識。
《碼農翻身》主要關注的是計算機的底層,比如進程、線程、硬盤、鍵盤、TCP/IP、Socket、HTTPS、數據庫原理、Web服務器原理等。
本書則把焦點稍微向上移了一點兒,關注了一些中間層及以上的內容,比如負載均衡、雙機熱備、數據復制、緩存、分布式ID等。但是我在選擇相關技術的時候,依然會把穩定的、不容易過時的技術作為重要標準。
我也不喜歡那種上來就講解技術細節、安裝步驟、配置方法的枯燥文章,因為讀者看了之后往往一頭霧水,也不知道為什么有這個東西,解決了什么問題。所以,本書會盡量避免講解技術細節,而是會采用故事的方式來講解技術本質。
還是那句話,Why有時候比How重要得多,懂得Why以后,再去看How,就猶如開啟了“上帝視角”,一切都變得簡單起來。
本書特色
我記得自己在高中暑假時閱讀金庸的武俠小說,被曲折的故事情節吸引,沉迷其中,閱讀速度極快,只要三四天就能讀完一部,雖然主要是走馬觀花,但足見故事的魅力。
所以,我在寫文章的時候也有意把枯燥乏味的技術包裝一下,變成好玩有趣的故事,在故事中讓主人公不斷遇到問題,不斷制造懸念,吸引大家看下去,不知不覺就把技術掌握了。
從《碼農翻身》到《碼農翻身2》,這種采用故事的方式講解技術的風格一直延續下來,也受到了大量讀者的熱烈歡迎。
本書和《碼農翻身》一樣,每個章節都是獨立的,讀者不用從頭到尾閱讀,完全可以查看目錄,挑選自己喜歡的章節去閱讀。
讀者對象
這不是一本編程的入門書,剛開始學習編程的“純小白”讀起來會比較吃力,讀后可能會失望,但是稍有編程基礎的讀者讀起來會非常過癮,讀后會產生一種“原來如此”的感覺。
比如,對于“C語言:春節回老家過年,我發現只有我沒有對象”這一節,如果你沒有學過面向對象的相關知識,就可能無法透徹理解其中的一些“梗”,但是有一定基礎的讀者就能心領神會。再比如,對于“編程語言的巔峰”這一節,如果你對基本的數組、條件分支、函數都不了解,就無法領略匯編語言的厲害之處。
雖然本書側重于服務器端的知識,偏向后端編程,似乎更適合后端程序員,但是它并沒有講解技術細節,而是主要講解技術原理,所以對前端程序員來說,也是一個了解后端編程的好機會。
另外,本書也不是一本參考書,它的目的不是希望大家看完以后照搬,而是希望幫助大家理解一些技術的本質。 |
內容簡介:本書采用故事的方式講解了軟件編程,尤其是后端編程的重要領域,側重原理性知識。本書分為7章,第1章介紹了負載均衡和雙機熱備的原理,以及系統調用、阻塞、異步等重要概念;第2章介紹了session、token、緩存、數據復制、分布式ID、NoSQL 等后端編程必備的知識;第3章介紹了后端編程常用軟件的原理;第4章介紹了各種編程語言的特性;第5章介紹了各種編程語言的本質;第6章介紹了網絡安全相關知識;第7章則總結了作者多年的工作經驗。這不是一本編程的入門書,剛開始學習編程的“純小白”讀起來會比較吃力,讀后可能會失望,但是稍有編程基礎的讀者讀起來會非常過癮,讀后會產生一種“原來如此”的感覺。 |
目錄:第1章 基礎知識
1.1 負載均衡的原理
1.1.1 隱藏真實服務器
1.1.2 偷天換日
1.1.3 四層還是七層
1.1.4 責任分離
1.1.5 后記
1.2 雙機熱備的原理
1.2.1 夜半驚魂
1.2.2 詳細設計
1.2.3 匯報工作
1.2.4 充分利用資源
1.3 “軟件巨頭”臥談會
1.4 操作系統和Web服務器那點事兒
1.4.1 操作系統老大
1.4.2 系統調用
1.4.3 read和write
1.4.4 sendfile
1.5 我是一條內存
1.5.1 次序問題
1.5.2 編譯器
1.5.3 信息=位+上下文
1.5.4 指針
1.5.5 第二天
第2章 后端風云
2.1 “干掉”狀態,從session到token
2.1.1 美好的舊時光
2.1.2 session
2.1.3 沉重的負擔
2.1.4 時間換空間
2.1.5 如何退出
2.2 MySQL:緩存算什么
2.2.1 從進程內到進程外
2.2.2 數據不一致
2.3 Redis:MySQL算什么
2.3.1 黑客攻擊
2.3.2 緩存空值
2.3.3 布隆過濾器
2.3.4 數據失效
2.4 MySQL:硬盤罷工了,我該怎么辦
2.4.1 讀寫分離
2.4.2 基于SQL語句的復制
2.4.3 基于行的復制
2.4.4 數據延遲
2.5 分布式ID
2.5.1 重復執行
2.5.2 遺漏執行
2.5.3 各顯神通
2.5.4 拋棄數據庫
2.6 我建議你了解一點兒Serverless
2.6.1 局域網時代
2.6.2 數據中心
2.6.3 虛擬化
2.6.4 理想模式
2.6.5 Serverless的特點
2.7 NoSQL:一個帝國的崛起
2.7.1 關系數據庫帝國
2.7.2 危機
2.7.3 新希望
2.7.4 反抗
2.7.5 新的帝國
第3章 著名軟件是怎么煉成的
3.1 搜索之路
3.1.1 引子
3.1.2 倒排索引
3.1.3 更進一步
3.1.4 架構
3.1.5 抽象
3.1.6 互聯網應用的新需求
3.1.7 從Java API 到 Web API
3.1.8 分布式
3.1.9 集群
3.1.10 Elasticsearch的真正傳奇
3.2 HDFS的誕生
3.2.1 牛刀小試
3.2.2 分布式
3.2.3 元數據
3.2.4 讀取文件
3.2.5 寫入文件
3.2.6 結束還是開始
3.2.7 并行計算
3.2.8 深入討論
3.2.9 MapReduce
3.3 一個著名的任務調度系統是怎么設計的
3.3.1 實習生張大胖
3.3.2 crontab達人的煩惱
3.3.3 另起爐灶
3.3.4 持久化
3.3.5 高可用
3.3.6 開源
3.4 咖啡館的故事
3.4.1 兩個古怪老頭兒
3.4.2 RPC
3.4.3 XML-RPC
3.4.4 SOAP
3.4.5 幾年以后
3.4.6 RESTful的硬傷
3.4.7 中間層
3.4.8 靈活查詢
3.4.9 古怪的查詢
3.5 ZooKeeper到底是什么
3.5.1 小梁的郵件
3.5.2 小王的Master選舉
3.5.3 小蔡的分布式鎖
3.5.4 ZooKeeper
3.6 一件程序員必備武器的誕生
3.6.1 調試的基礎
3.6.2 JVM接口
3.6.3 通信
3.6.4 調試器
3.6.5 早朝
第4章 編程語言帝國爭斗
4.1 Java帝國對Python的滲透能成功嗎
4.1.1 引子
4.1.2 泛型
4.1.3 反射
4.1.4 動態代理
4.1.5 錦囊妙計
4.1.6 真相大白
4.2 為什么Python不用設計模式
4.2.1 Python沒有接口
4.2.2 Adapter模式
4.2.3 單例模式
4.2.4 Visitor模式
4.2.5 尾聲
4.3 Java小王子歷險記
4.3.1 JavaScript帝國
4.3.2 再次出發
4.3.3 Go帝國
4.4 Java能抵擋住JavaScript的進攻嗎
4.4.1 JavaScript的進攻
4.4.2 非阻塞異步I/O
4.4.3 京城酒樓
4.4.4 I/O府邸
4.4.5 異步操作
4.4.6 為什么是Vert.x
4.5 JVM和Python解釋器的硬盤夜話
4.5.1 JVM先生
4.5.2 垃圾回收
4.5.3 GIL
4.5.4 尾聲
4.6 Java國王:這才是真正的封裝
4.6.1 把類隱藏起來
4.6.2 類的朋友
4.6.3 模塊化
4.6.4 ServiceLoader
第5章 編程語言的本質
5.1 C語言這么厲害,它自身又是用什么語言寫的.
5.2 為什么面向對象糟透了
5.3 C語言:春節回老家過年,我發現只有我沒有對象
5.3.1 聚會
5.3.2 串門
5.3.3 封裝
5.3.4 繼承
5.3.5 多態
5.4 什么是元編程
5.4.1 臨下班的緊急任務
5.4.2 模板:用程序來生成程序
5.4.3 元編程
5.5 為什么“無人問津”的Lisp可以這么硬氣
5.5.1 Lisp
5.5.2 程序就是數據
5.5.3 開發語言的語言
5.5.4 最后的反擊
5.6 JavaScript打工記
5.6.1 棧
5.6.2 唯一的員工:單線程
5.6.3 異步函數怎么辦
5.6.4 隊列
5.6.5 事件隊列
5.7 簡單的this,復雜的this
5.8 編程語言的巔峰
5.8.1 數組
5.8.2 條件分支
5.8.3 函數調用
5.8.4 一切都歸于匯編
第6章 網絡安全
6.1 瀏覽器家族的安全反擊戰
6.1.1 前言
6.1.2 Cookie失竊
6.1.3 密碼失竊
6.1.4 家族會議
6.1.5 凡事都有例外
6.2 黑客三兄弟
6.2.1 代碼注入
6.2.2 偽造請求
6.2.3 另辟蹊徑
6.2.4 牛刀小試
6.2.5 瘋狂注入SQL
6.2.6 破解密碼
6.2.7 后記
6.3 黑客攻防日記
6.3.1 小黑的日記2010-6-22 晴
6.3.2 張大胖的日記2010-6-23陰
6.3.3 小黑的日記2010-6-24多云
6.3.4 張大胖的日記2010-6-25陰
6.3.5 小黑的日記2010-6-26晴
6.3.6 張大胖的日記2010-6-27小雨
6.3.7 小黑的日記2010-6-28晴
6.3.8 張大胖的日記2010-6-29中雨
6.3.9 小黑的日記2010-6-30陰天
6.3.10 張大胖的日記2010-6-30暴雨
6.3.11 小黑的日記2010-7-1多云
6.4 緩沖區溢出攻擊
第7章 “老司機”經驗
7.1 用費曼技巧自學編程
7.1.1 費曼技巧
7.1.2 實戰演練
7.1.3 小結
7.2 曾經廢寢忘食學到的技術,現在都沒用了
7.3 程序員七問
7.4 用你的技術賺更多的錢
7.5 閱讀源碼的三種境界
7.5.1 昨夜西風凋碧樹,獨上高樓,望盡天涯路
7.5.2 衣帶漸寬終不悔,為伊消得人憔悴
7.5.3 眾里尋他千百度,驀然回首,那人卻在燈火闌珊處
7.6 Code Review的巔峰
7.6.1 Checkstyle和“連坐”
7.6.2 Check List
7.6.3 代碼量控制
7.6.4 結對編程
7.7 看問題要看到本質:從Web服務器說起
7.7.1 動態內容
7.7.2 Servlet
7.7.3 WSGI |
序: |