程序員寫程序的邏輯思維,和外行人想當然的思維,到底有什麼不同

你是不是經常遇到一個產品或老闆給你改需求,或者臨時加需求,尤其是一個你需要改底層的架構甚至重做的需求,這篇文章分析下,外行人想當然認為程序的樣子,與程序員眼裡的區別。

程序員寫程序的邏輯思維,和外行人想當然的思維,到底有什麼不同

廢話不多說,舉個例子,來說明一下程序員的思考模式:

程序員的工作,不是把一個籃子裡現有的東西拿到另一個籃子裡就完事了,還要在這個籃子裡把未來客戶能放入的所有東西,都要提前做好相對應的盒子,等待客戶裝進去。

比如,你要做個登錄功能,使用郵箱和密碼登錄。

外行人會這麼認為:輸入郵箱和密碼,點確定,哎?進來了。如果輸錯了,哎?密碼不正確。

不是不可以哈,當你給的錢少了,或者程序員偷懶,一般會這麼做。

程序員一般會做這樣的驗證:郵箱和密碼為空的情況,兩者有一個為空的情況,郵箱格式不對,包含缺少@和.,並且這兩個符號前後都要有字母,當然,這個用正則表達式來驗證就可以了,說的是這種思維方式

不僅僅如此,你還需要在客戶端一層、服務器一層、數據庫一層做驗證,一般只在客戶端和服務器做兩層驗證就可以了,為的是防止有人繞過客戶端直接給服務器發請求,能在客戶端攔下的,就不用讓他去服務器端,節省資源。


所以,上面的驗證方式來兩套,這是一個簡簡單單的登錄功能所要做的功課。

當然,現在的插件很多都集成了這種功能,說的是這樣一個思考方式,其它更復雜的業務,也需要這樣去思考,把所有能到達目的地的路都想一遍,客戶想到的,我們要做,客戶沒有想到的,我們要提前想到,提前把路鋪好。

程序員寫程序的邏輯思維,和外行人想當然的思維,到底有什麼不同

你以為這樣就結束了?

你以為這樣就中以結束了麼?too young too simple, 還要考慮各種安全帶來的隱患和性能,從頁面到controller端,到數據查詢,各種調。

最最關鍵的是,敲黑板了哈,程序員們經常會面臨你們改需求的問題,意味著之前做的工作很可能白做了,而剩餘的時間不變,就是工作量變相加倍。

中小規模的系統,能用硬件解決,就別用軟件,尤其是現在雲服務器這麼流行的情況下,增加一臺服務器的成本已經大大縮減。

當然如果你的程序改一點點,加個緩存就能大幅提升性能的,還是改改代碼吧。

程序員寫程序的邏輯思維,和外行人想當然的思維,到底有什麼不同


分享到:


相關文章: