原创 架構師案例分析

        架構的本質是管理複雜性,抽象、分層、分治和演化思維是我們工程師 / 架構師應對和管理複雜性的四種最基本武器。         在我之前寫的文章 《優秀架構師必須掌握的架構思維》 中,我先介紹了抽象、分層、分治和演化這四種應

原创 13. 如何打破白天加班、晚上開會的節奏

        說到開會,是很多人心中的痛,每天白天忙於參加各種會議,壓縮了本來就少的可憐的工作時間。最可氣的,有的人開完會工作就算完成了,而像我們寫程序的,還得下班後加班加點趕進度!所以一說到開會,程序員們往往如遇洪水猛獸一般,避之不及

原创 設計秒殺系統筆記

設計原因: 爲什麼要針對秒殺設計一個完善的方案?因爲系統可能會因爲1%的秒殺業務影響其餘99%正常業務的運行,所以需要將秒殺系統獨立出來。 待解決問題: 主要解決兩個問題:併發讀、併發寫。 整體架構要求: 概括爲:"穩、準、快",即對應"

原创 版本發佈上線只是新的開始

    我們今天從版本發佈聊起,也就是運行維護篇的討論學些。     對於版本發佈,很多程序員可能覺得是很簡單的事情,就是將程序編譯打包部署,但是實際發佈的時候,卻經常出現版本發不錯、或者發佈前倉促修改合入了代碼導致線上新問題的出現。  

原创 瀑布模型,像工廠流水線一樣把軟件開發分層化

    瀑布模型是現代軟件工程的起源,軟件工程的發展,很大部分都是構建於瀑布模型的基礎之上的。起源是1970年,Winston Royce博士借鑑了建築工程領域的思想,提出了瀑布開發模型,指出軟件開發應有完整週期,把軟件開發過程分成了若干

原创 從軟件工程角度看微服務、雲計算和人工智能

        從軟件工程角度看這些年來,新技術新概念層出不窮,比如說微服務、雲計算、人工智能等。你有沒有去學習和了解這些新技術呢?又是怎麼去理解這些新技術的呢?         也許你會從技術的角度,去學習和理解這些新技術,去看如何把服

原创 如何預防賬號密碼泄露等安全問題

    我個人對黑客和網絡安全比較感興趣,時常關注這方面的新聞。我們知道這些安全問題都是軟件程序有Bug導致的,例如CSDN的數據庫泄露事件、攜程泄露用戶銀行卡信息事件、電商網站被用戶篡改購買支付金額等等。     在軟件項目開發時,安全

原创 程序員爲什麼都不喜歡寫文檔

        我們一直針對項目文檔有一種矛盾的疑惑,自己不喜歡寫文檔和不喜歡別人沒有寫文檔。我們都知道項目文檔很重要,但是我們總是在項目中短期高估文檔的重要性,長期低估文檔的重要性;結果口號喊得很響,要重視文檔,要寫好文檔,要多些文檔,

原创 大廠的敏捷開發方法上

 大廠是如何開發軟件項目的呢?其實大廠做項目也無特別之處,也就是工程中常見的“分而治之”策略:大項目拆成小項目,大服務拆成小服務,大團隊拆成小團隊。     服務之間通過約定好的標準協議進行通信,架構上將大服務拆分隔離成微服務,大團隊按照

原创 Android 4G上網流程分析

       手機一般會提供兩種上網方式:Wifi或者3G/4G上網,Wifi上網其實就是利用網卡通過以太網上網;3G/4G則是通過基帶,利用蜂窩網絡進行上網,之前已經簡單的闡述了Wifi上網跟3G上網的區別,本文主要簡述Android

原创 微軟、谷歌、阿里等大廠是如何應用軟件工程的

    我們無論是否在大廠工作,都有很多途徑瞭解到大廠是如何應用軟件工程的,網上已經有很多分享,我們可能更像知道:從大廠應用軟件工程的實踐中,我們能學習到什麼,又該如何學習借鑑。     每個公司都有自己的歷史和文化,他們的文化又影響了各

原创 Unix 網絡 IO 模型及 Linux 的 IO 多路複用模型

本文主要探討的問題有以下兩個: Unix 中的五種網絡 IO 模型; Linux 中 IO 多路複用的實現。 基本概念 在介紹網絡模型之前,先簡單介紹一些基本概念。 文件描述符 fd 文件描述符(file descriptor,簡稱 fd

原创 程序員應該有點產品意識

    最近電視劇《都挺好》熱播,劇中吳菲對蘇明哲的臺詞引起了我們這些大齡程序員的焦慮“作爲一個程序員,你的年齡已經很大了!我問你,你學新東西有年輕人快嗎?”。     最近筆者也正處在35歲的檔口,面對職業走向也焦慮萬分,IT新技術層出

原创 日誌管理:快速發現和定位問題

    開始本文之前,我們先提問幾個問題: 如果你的網站或者服務出現故障,是誰第一時間發現問題的?用戶還是運維人員? 如果我們的服務架構是由若干微服務組成的,其中一個微服務的異常導致了你的某個API請求異常了,你是否能快速定位到時哪個微服

原创 測試工具爲啥不能用即時通訊工具彙報Bug

    五年前,我們公司開始做NFV,請了外面公司的幾個人做一些協議接入,我們之間溝通Bug都是通過QQ或者郵件,這種方式是比較快捷但是後續不好進行跟蹤。我們今天就來展開討論如何更好地發現、報告和跟蹤軟件中的Bug。     Bug跟蹤工