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

我為什么對(duì)后端編程情有獨(dú)鐘?

開發(fā) 開發(fā)工具
雖然這些桌面應(yīng)用程序不像Web頁(yè)面那樣美輪美奐, 但對(duì)于我這個(gè)缺乏藝術(shù)細(xì)胞的人來(lái)說(shuō), 這是GUI編程的黃金時(shí)代。

這幾年前端很熱鬧,發(fā)展也很快, Angular, React, Vue ... 等各種各樣的新技術(shù)層出不窮, 并且不斷地?fù)尯蠖说娘埻搿? 比如說(shuō)著名的Model - View -Controller , 原來(lái)前端只負(fù)責(zé)View層,展示數(shù)據(jù),現(xiàn)在前后端分離, 前端把控制層Controller 也給搶走了, 可憐的后端程序猿只剩下RESTful服務(wù)提供的數(shù)據(jù)了, 再加上Node.js趁火打劫,入侵服務(wù)器端, 有木有危機(jī)感?

但我還是對(duì)后端編程情有獨(dú)鐘, 原因很簡(jiǎn)單, 相比GUI編程, 我更喜歡API編程, 有點(diǎn)費(fèi)解? 聽我慢慢道來(lái)。

1 單機(jī)時(shí)代的GUI

最早的時(shí)候我其實(shí)也是挺喜歡GUI編程的, 誰(shuí)愿意只在命令行下折騰呢?

作為“初戀”的C語(yǔ)言,雖然功能強(qiáng)大、效率高, 但是只能在命令行窗口寫點(diǎn)小程序, 很無(wú)趣。

后來(lái)遇到VB, 不由的眼前一亮: 哇塞, 還能這么寫程序! 創(chuàng)建一個(gè)窗體,把各種各樣的控件拖動(dòng)上去, 擺好位置, 設(shè)好屬性,然后雙擊,在onClick方法中寫下代碼就ok了。

號(hào)稱VB殺手的Delphi 也類似, 都是所謂的RAD(Rapid Application Development) 。

當(dāng)時(shí)的控件多如牛毛,上了年紀(jì)的程序員應(yīng)該還記得CSDN出的《程序員大本營(yíng)》, 里邊有張光盤,全是程序猿們開發(fā)的VB控件, 你想發(fā)送郵件, 拖動(dòng)一個(gè)不可見的SMTP控件過(guò)來(lái), 設(shè)定郵箱服務(wù)器和端口, 直接就可以發(fā)信, 非常簡(jiǎn)單。 你想用一個(gè)定時(shí)器功能, 沒問題,那里有個(gè)定時(shí)器控件,可以直接使用 , 這才是真正的組件化開發(fā)。

由于開發(fā)出來(lái)的應(yīng)用只能在PC上, 在Windows上運(yùn)行, 不會(huì)出現(xiàn)如今手機(jī)端各種各樣的適配問題,壟斷在某些時(shí)候也是好處啊。

雖然這些桌面應(yīng)用程序不像Web頁(yè)面那樣美輪美奐, 但對(duì)于我這個(gè)缺乏藝術(shù)細(xì)胞的人來(lái)說(shuō), 這是GUI編程的黃金時(shí)代。

2 Web GUI

好景不長(zhǎng), 技術(shù)變遷很快, Web時(shí)代來(lái)臨了。

于是開始學(xué)HTML, CSS, Javascript, 忙著折騰個(gè)人主頁(yè), 做了沒多久就意識(shí)到, 用HTML產(chǎn)生頁(yè)面布局怎么這么麻煩,當(dāng)時(shí)CSS還不普及 , 頁(yè)面布局全靠一個(gè)表格套一個(gè)表格來(lái)做, 如果沒有Dreamweaver, Frontpage 這樣的軟件幫忙, 這些<tr><td>標(biāo)簽絕對(duì)會(huì)把人淹死。

光有布局還不行,還得弄圖片, 調(diào)顏色, 我在大學(xué)還學(xué)了photoshop , 想著自己設(shè)計(jì)。后來(lái)看到一本書上的例子, 在photoshop中不使用任何外界圖片, 從零開始做出一個(gè)可口可樂易拉罐出來(lái), 那光影效果當(dāng)時(shí)就把我震撼了, 立刻意識(shí)到自己不是搞藝術(shù)的這塊料, 還是老老實(shí)實(shí)的回去寫程序去吧。

個(gè)人主頁(yè)怎么辦? 我就Copy了一個(gè)別人的網(wǎng)站, 改了改,變成了這個(gè)樣子(圖片沒有顯示):

忘了Copy誰(shuí)的網(wǎng)站了, 向原作者表示歉意,當(dāng)時(shí)是學(xué)生,知識(shí)產(chǎn)權(quán)意識(shí)不夠,擱現(xiàn)在肯定得掏錢去買。

現(xiàn)在一般的開發(fā)團(tuán)隊(duì)都配有美工, 可以設(shè)計(jì)界面,設(shè)計(jì)完還能“切圖”,形成漂亮的html+css的靜態(tài)頁(yè)面, 接下來(lái)的問題就是怎么把靜態(tài)的網(wǎng)頁(yè)變成動(dòng)態(tài)的網(wǎng)頁(yè), 這就八仙過(guò)海,各顯神通了。

傳統(tǒng)的方式就是在服務(wù)器端完成, 利用各種各樣的模板技術(shù), 在靜態(tài)頁(yè)面中加上動(dòng)態(tài)內(nèi)容, 直接生成HTML UI元素。

最近流行的就是讓瀏覽器來(lái)負(fù)責(zé), 通過(guò)js 調(diào)用后端API,把數(shù)據(jù)變成HTML UI元素后展示出來(lái)。

不管是那種方式, CSS都是不可或缺的。因?yàn)樗刂屏隧?yè)面的布局結(jié)構(gòu), 又是布局,快逃!

3 Java GUI

上了Java的賊船以后, 也做了一些GUI的工作, 相比于VB/Delphi拖放控件的便捷, 用Java寫界面簡(jiǎn)直就是地獄!

雖然也有圖形化的界面編輯器, 也可以拖放控件, 但是自動(dòng)生成的代碼那叫一個(gè)慘不忍睹。 更悲催的是,稍微手工改動(dòng)一下, 那個(gè)界面編輯器就可能不認(rèn)了。 絕大多數(shù)情況下還是直接寫代碼來(lái)生成界面。 (再次大聲疾呼:不要再Swing和AWT上浪費(fèi)精力,用的極少。 )

這里必須說(shuō)一下Java和VB在界面編程的區(qū)別, Java 的界面全是用代碼來(lái)生成的,就是說(shuō)你需要寫代碼創(chuàng)建一個(gè)按鈕, 寫代碼把這個(gè)按鈕放到什么地方去, 所以即使是GUI程序, 最終的表現(xiàn)形式也只是Java 文件而已。

VB則不同,它專門有個(gè).frm文件, 里邊存儲(chǔ)所有界面控件和布局的信息, 最終也需要把.frm打包發(fā)布。 所以在編輯界面這一點(diǎn), VB和Dephi 是非常方便的。

程序員們這么痛苦, 那些大牛肯定會(huì)來(lái)解救我們的, 比方說(shuō)能不能用XML來(lái)描述界面啊, 在XML中把各個(gè)控件及其布局關(guān)系都給描述好, 由系統(tǒng)讀取,創(chuàng)建界面,就像原來(lái)的.frm文件一樣。 Android 不就是這么干的嗎?

但是XML文件讀起來(lái)也夠痛苦的, 為了靈活性, 這個(gè)XML文件還不能隱藏起來(lái),有時(shí)候還要手工去改, 改完還不容易看到真正的效果, 唉,想想就頭大。

更不用說(shuō)Android的適配問題了, 不同屏幕尺寸,不同的分辨率, 不同的像素密度給程序員帶來(lái)了極大的工作量。

(每個(gè)矩形代表一種設(shè)備)

4 后端編程

啰嗦了這么多, 其實(shí)就想表達(dá)一個(gè)中心思想: 我是有點(diǎn)害怕GUI編程。 而Web 前端和App前端都是在和GUI打交道。

我甚至想,這可能和內(nèi)向的性格有關(guān)系, 擅長(zhǎng)和機(jī)器打交道, 不擅長(zhǎng)和人打交道。 前端需要琢磨用戶的心理、使用習(xí)慣、用戶體驗(yàn), 這不是我的優(yōu)勢(shì)。

在軟件編程領(lǐng)域, 與其費(fèi)力不討好的補(bǔ)上短板, 不如把自己的長(zhǎng)處發(fā)揮到極致。

既然如此,那就呆在后端編程吧, 這里沒有GUI, 只有API。 悄悄地躲在電腦的背后, 給Web前端和App前端提供服務(wù), 讓他們調(diào)用。

有人會(huì)說(shuō): 前端把Controller和View都拿走了, 后端就是個(gè)API的提供者,能折騰啥啊。

別小看后端編程,后端是非常有技術(shù)含量的,像什么高并發(fā)、緩存、負(fù)載均衡、分布式、消息隊(duì)列、安全、搜索、數(shù)據(jù)復(fù)制.... 每個(gè)方向都值得靜下心來(lái)去深挖。

不管前端技術(shù)怎么變化, 作為提供服務(wù)的后端總是要存在的,這是一大優(yōu)勢(shì)。

后端編程還有一個(gè)優(yōu)勢(shì)就是相對(duì)穩(wěn)定, 比起大爆炸的前端,后端技術(shù)的變化要緩慢一些, 心思不會(huì)那么浮躁, 有很多知識(shí)可以慢慢的沉淀。

對(duì)于那些不喜歡做GUI的同學(xué),不妨考慮下后端編程。

【本文為51CTO專欄作者“劉欣”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)作者微信公眾號(hào)coderising獲取授權(quán)】

戳這里,看該作者更多好文

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

2013-10-31 12:36:02

Windows XP商務(wù)PCWindows 8

2023-05-15 07:43:43

2010-06-11 09:58:22

中小企業(yè)混合云

2015-07-08 11:22:31

2020-12-11 11:25:30

Kafka傳輸開發(fā)

2013-05-27 10:49:08

2025-04-21 04:00:00

2015-02-27 09:26:10

2013-02-20 17:19:57

Linux系統(tǒng)誤區(qū)

2009-12-08 13:46:16

Silverlight

2012-07-11 11:05:16

編程

2009-05-19 09:58:41

MyISAMInnoDB存儲(chǔ)引擎

2012-08-28 14:20:34

藍(lán)汛

2021-03-03 13:54:31

TypeScript編譯器Chirag

2011-01-05 15:46:25

2025-03-26 09:29:12

ChatGPT4o 圖像圖像

2023-01-10 08:17:41

WebAPI框架

2015-08-06 10:19:19

編程腦子

2017-07-13 08:31:26

公有云服務(wù)器機(jī)房開源軟件

2020-04-03 15:09:54

iPhone SE蘋果手機(jī)
點(diǎn)贊
收藏

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