原创 【乾貨】萬字長文教你對抗邪惡的爬蟲

或許是競爭對手在窺探商業機密。 或許是某個學生爲了論文而做的數據採集。 又或許只是碼農的一個惡作劇。 無論如何,一個行爲不受控制的爬蟲都會對我們的數據安全有着或多或少的威脅,它迫使着我們行動起來對抗這種威脅。 1 初級篇 知己知彼,

原创 一個網課開發者復工後的一個月

0x01—參與歷史    2020年3月2日,週一,早上7點,天已經亮了有一會兒了,我關掉了檯燈。又是熬了一夜,好在終於上線完成了安徽省第一天的網課,我癱在椅子上,打算刷會兒手機緩一下再去睡。    刷到上面這條微博的時候,突然心裏一暖

原创 刨析HTTP

是什麼讓HTTP成爲互聯網的流量擔當?簡單高效!是什麼讓HTTP/1.1二十多年依舊活力四射?簡單高效!但恰恰是因爲HTTP簡單高效,導致很多開發者對其視而不見。老張之所以把HTTP報文放在《Web開發進階》的第二篇,正是因爲“千里之行

原创 常見則不疑:URL

要是說哪個Web開發者不知道URL,可以說是天方夜譚了。但是要是問哪位詳細的瞭解過URL,可能真就剩下寥寥數人了。 老張實際工作中發現有些同事真的從來沒有去主動了解過URL。URL歷史悠久,URL應用廣泛,URL形式多樣且標準寬泛,URL

原创 nohup · VS · screen

  說到在Linux系統上後臺運行任務,可能很多人的第一反應是 nohup命令,可能還會有人提到 screen 命令。今天老張就給大家介紹這兩個命令,相信看完老張的介紹,大家可以根據實際情況靈活選擇使用二者。   01 nohup   先

原创 經驗之談:後端問題如何快速定位?

定位問題沒有銀彈! 定位問題沒有銀彈! 定位問題沒有銀彈!   老張結合自己的工作經驗,談談問題爲什麼會產生,已經定位後端問題的一些經驗總結。   01、Bug是如何產生的?   計算機是精確的,而人是非理性的。這是Bug之所以會產生,且

原创 【譯】Python3.8官方Logging文檔(完整版)

注:文章很長,約一萬字左右,可以先收藏慢慢看喲 01、基礎部分 日誌是用來的記錄程序運行事件的工具。當程序員可以通過添加日誌打印的代碼來記錄程序運行過程中發生的某些事件時。這些事件包含了諸如變量數據在內的描述信息,當然也包括開發人員認爲

原创 業務越來越複雜,組件越來越多,技術人該何去何從?

公告:文章會第一時間發在微信公衆號《魔笛手CTO》,歡迎關注  可能很多開發人員都遇到過類似的場景:隨着業務的發現,越來越多的技術組件被引入到系統架構中來。開發人員要去了解每個組件的功能和特性,解決組件之間交互產生的問題,最關鍵的是每

原创 ICMP是個啥?一分鐘介紹ICMP協議

提起TCP/IP,好像大家都能說上幾句。從OSI七層模型到TCP三次握手,如果不知道這些面試都不好意跟人打招呼,甚至最近幾天老張在開發者頭條看到有人在爭論TCP到底會不會走向滅亡。 但是,如果問到ICMP是啥又有多少人知道呢?今天老張帶大

原创 吃透FTP

FTP,即文件傳輸協議(File Transfer Protocol),作爲仍然活躍的客戶端--服務端之間的傳輸協議,其歷史可以追溯到上世紀70年代。 今天老張給大家全方位的講講FTP,如果你之前很少接觸FTP或者對FTP一知半解,老

原创 200行代碼實現玩具版FTP服務

上個周,老張寫了一篇文章《吃透FTP》(沒看過的同學可以先點擊瀏覽一下)。文章主要介紹了FTP的工作原理,寫完之後覺得不過癮,自己動手實現了一個玩具版的FTP服務。   當然,如果實現一個完整穩定的FTP服務,工作量還是相當龐大的。所以老

原创 面試官:如何用redis實現全局鎖

公告:文章會第一時間發在微信公衆號《魔笛手CTO》,歡迎關注  WEB服務,尤其是分佈式的WEB服務,通常會面臨需要實現安全高效的全局鎖的服務場景。而redis的諸多特性,使得藉助其實現的全局鎖顯得如此簡單。本篇文章藉助小明應聘魔笛手研

原创 窺探FTP通信細節

前幾天,老張寫了兩篇關於FTP的文章: 《吃透FTP》 《200行代碼實現玩具版FTP服務》 給大家介紹了FTP的通信機制,然後又帶大家寫了一個玩具版的FTP服務端代碼。 今天繼續給大家帶來FTP系列的第三篇《窺探FTP通信細節》

原创 生命遊戲

公告:文章會第一時間發在微信公衆號《魔笛手CTO》,歡迎關注  生命遊戲,很有《三體》那種宏觀但是冷酷的哲學風格,就像《道德經》裏的那句“天地不仁,以萬物爲芻狗”。 脈衝星:圖形變換有着固定的週期   第一次聽過這個遊戲我就被他吸引

原创 同時在寫四門編程語言是怎樣一種體驗?

公告:文章會第一時間發在微信公衆號《魔笛手CTO》,歡迎關注  魔笛手在發展初期並沒有具體限制程序員使用哪一種編程語言,除了主流的Python,還有Node.JS、Go、Lua、C#、PHP等,加之目前公司正在使用Java重構原服務,