自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我發(fā)現(xiàn),我一直是站在巔峰啊!

開發(fā) 后端
張大胖學(xué)了Java語言,學(xué)了Web基礎(chǔ)知識,又學(xué)了SpringBoot, MyBatis,Vue等框架, 他成了一個"全沾"程序員。

張大胖學(xué)了Java語言,學(xué)了Web基礎(chǔ)知識,又學(xué)了SpringBoot, MyBatis,Vue等框架, 他成了一個"全沾"程序員。

[[334243]]

他覺得這樣也挺好,前后端通吃,可以在編碼的天地中自由地飛翔了。

可是他在網(wǎng)上、群里經(jīng)常聽到大家說計算機基礎(chǔ)很重要,尤其以碼農(nóng)翻身為甚, 像什么:

勿以浮沙筑高臺

基礎(chǔ)不牢,地動山搖

沉下去有多深,彈起來就有多高

......

張大胖不以為然嗤之以鼻,他認為除了在面試時會用到計算機底層的基礎(chǔ)知識,別的地方根本用不到,工作中主要是實現(xiàn)業(yè)務(wù),連個稍微復(fù)雜一點兒的算法都用不到。

他決定去請教一下軟件大師,問問到底是怎么回事。

張大胖:大師,我覺得現(xiàn)在的編程已經(jīng)變得非常輕松了,利用現(xiàn)有的框架和類庫開發(fā)軟件非常容易,高中生編程都沒有任何問題。

大師:你覺得為什么會這樣?

張大胖:就是不用接觸底層的那些細節(jié)了,直接就可以面向業(yè)務(wù)開發(fā)了。

大師:你算是說到點子上了,這就是抽象帶來的好處啊。

張大胖:抽象?我似乎聽說過一句話,說計算機行業(yè)的任何問題,都可以通過一個抽象層來解決。

大師:是啊,就說計算機編程語言吧,就是不斷抽象,逐漸遠離計算機硬件的一個過程,想當(dāng)年我用匯編編程, 想在屏幕上輸出一個Hello World都累得要死,寫個大程序更是要累得吐血了。



 

張大胖:嗯,我現(xiàn)在用的就是最高層的Java,根本不用考慮什么匯編語言,機器語言,連指針都用不上!

大師:再比如說,Web編程,我用CGI那會兒真是痛不欲生。



 

張大胖:哈哈,我還是站在最高層。

大師:網(wǎng)絡(luò)編程也是如此。



 

張大胖:哈哈, 我只用HTTP,根本不管底層的東西。

大師:還有對數(shù)據(jù)的操作,也是一層層地抽象。



 

張大胖:大師,我發(fā)現(xiàn)我一直是站在巔峰啊!

大師:這有什么好得瑟的,你站得越高,越容易出現(xiàn)難以解決的抽象泄露的問題。

張大胖:抽象的泄露?

大師:對, 這是Stack Overflow的創(chuàng)始人Joel Spolsky提出來的一個理論:所有重大的抽象機制在某種程度上都是有泄露的!

張大胖: 不對吧! 這種分層的抽象,好處不就是每一層都可以屏蔽下層的變化嘛,我站在高層編程,根本不用理會底層, 為什么會泄露?

大師:我來給你舉幾個例子,你就明白了。外國有個程序員,她使用Ruby語言通過HTTP向本地的一個消息隊列發(fā)送消息, 這抽象層次很高吧! 但是每次發(fā)送消息都得耗費40ms,這是不應(yīng)該的, 時間太長了。 她查來查去,發(fā)現(xiàn)Ruby的類庫沒有設(shè)置TCP_NODELAY, 但是本地的HAProxy卻使用了TCP delayed acknowledgement,于是雙方互相等待,出現(xiàn)了延時。

張大胖:我聽不懂!

大師:你站在抽象的巔峰,這些TCP的細節(jié)怎么能聽懂呢?我給你舉個簡單例子吧, 比如你用了Hibernate這個ORM工具,它是一個抽象層,隱藏了SQL, 但是當(dāng)出現(xiàn)Hibernate性能問題的時候,你怎么辦?

張大胖:那我得去看Hibernate 是怎么把對象變成SQL語句的,然后慢慢調(diào)優(yōu)。

大師:對啊,你看Hibernate這個抽象層沒法完美地隱藏底層的信息,發(fā)生泄露了。 SQL 也是個抽象層,隱藏了讀數(shù)據(jù)庫表查詢處理的細節(jié),如果SQL語句出現(xiàn)性能問題,你怎么辦?

張大胖:那...... 我只好去分析SQL的查詢計劃,如何利用索引,還得慢慢調(diào)優(yōu)。

大師:你看SQL這個看似完美的抽象層也泄露了不是?

張大胖:有道理,哎呀,這抽象層泄露的代價很高啊,我得學(xué)習(xí)這么多底層的東西。

大師:所以Joel Spolsky說“抽象只能節(jié)省你的工作時間,不能節(jié)省你的學(xué)習(xí)時間”, 用高層的抽象來工作,會比較快,但是你還得學(xué)習(xí)底層的東西,那是跑不掉的。

張大胖:明白明白了,為了能繼續(xù)好好地搬磚,我得趕緊去學(xué)學(xué)計算機的底層基礎(chǔ)知識了。

(完)

如需轉(zhuǎn)載,請通過作者微信公眾號coderising獲取授權(quán)。

 

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2020-06-22 13:48:08

SQL查詢SELECT

2014-12-29 12:15:56

Gmail

2024-12-02 00:00:02

Svelte 5effect?數(shù)據(jù)

2015-01-04 15:36:52

XSS漏洞XSS

2022-03-01 21:05:39

TCP網(wǎng)絡(luò)協(xié)議

2015-01-28 13:10:55

2009-05-21 09:28:05

阿里巴巴馬云忽悠

2020-01-06 18:11:00

雪花科學(xué)人工智能

2013-05-21 09:32:11

ChromebookChrome OS

2013-07-24 14:17:10

2013-12-06 10:47:22

宜家天貓雅座

2019-02-12 15:24:50

C語言JavaPython

2018-03-28 14:58:42

虛擬機內(nèi)核系統(tǒng)

2022-03-07 05:53:41

線程CPU代碼

2022-02-16 15:00:35

Python開發(fā)語言

2022-04-26 06:43:12

文檔TCPLinux

2024-11-11 14:57:56

JWTSession微服務(wù)

2022-06-15 08:02:53

testlive前端

2023-03-21 17:06:24

樹莓派路由器

2019-01-21 15:17:59

Java微軟JCP
點贊
收藏

51CTO技術(shù)棧公眾號