Web開發在過去20多年時間裡如何改變了我

2016-07-20    分類:程式設計師人生、首頁精華1人評論發表於2016-07-20

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

web在過去20年時間裡改變得相當快。越來越多的邏輯從伺服器端移動到了客戶端。不但需要在客戶端編寫更復雜的JavaScript程式碼,而且最近幾年還發生了一些奇特的事情:JavaScript正在轉移到伺服器,而web技術則往桌面轉移。這已經不是什麼新鮮事了,但20年前誰會想到這種情況?

web改變了,因而我的技術堆疊也變了。貌似我的堆疊變回到了roots。 20年前,我從HTML和JavaScript開始,再到使用VBScript的經典ASP。 2001年,我開始陶醉於ASP.NET和VB.NET,並用到了產品中,直到2006年底才不再這麼幹。2007年年底,我開始使用C#編寫ASP.NET。HTML和JavaScript仍然參與其中,但多多少少被封裝在第三方控制元件中,並且jQuery當時是JavaScript的別名。JavaScript的一切都是jQuery。ASP.NET WebForms感覺巨大又不是很靈活,但它能有效工作。後來——2010年——我用Silverlight、WinForms和WPF做了很多東西。

ASP.NET MVC出現了,web這個東西開始再次比ASP.NET WebForms感受更自然點。從一個ASP.NET開發人員的角度來看,web開始變得更好:更加乾淨、靈活、輕便和自然。

但也出現了一些新的東西。一些來自於ASP.NET世界之外的東西。強大的JavaScript庫,如KnockOut、Backbone,以及後來的Angular和React。第一個單頁應用程式框架(對不起,我不想提蹩腳的ASP.NET AJAX…)出現了,UI邏輯從伺服器轉移到了客戶端。(好吧,我們確實在2005年搞回了一個很酷的SPA,但我們沒有想過如何用它建立一個框架。)

NodeJS通過在伺服器上使用JavaScript再次改變了世界。你只需要兩個不同的語言(HTML和JavaScript),就可以來建立很酷的web應用。我不怎麼對NodeJS感興趣,除了在後端使用它,因為一些工具基於NodeJS。也許這是一個錯誤,誰知道呢;  )

現在我們有了ASP.NET Core,這感覺比傳統的ASP.NET MVC更自然得多。所謂的自然在這種情況下,意味著和編寫傳統ASP的感覺幾乎相同。這也就是說使用無狀態的web工作,而不是試圖修復它。使用Request和Response比傳統的ASP.NET MVC工作起來更直接,比ASP.NET WebForms甚至就更直接得多。自然並不意味著你必須編寫和傳統Asp同樣非結構化的廢話。 ;  )

由於我們已經有了非常酷的客戶端JavaScript框架。和簡化了的、簡約的伺服器端框架,伺服器部分就被減少到僅僅用於在REST服務上提供靜態檔案和資料。

正是這個時候,深入瞭解TypeScript變得有了意義。但是到這個時間點為止,它對我還沒有意義。我用JavaScript編寫程式碼大概有20年時間,但我從來沒有在單個專案中寫過這麼多的JavaScript程式碼。之後,在過去幾年時間裡我開始使用AngularJS。Angular2是應該好好研究TypeScript的一個原因,因為現在的Angular2完全是用TypeScript寫的。

幾個星期前,我啟動了我第一個真正的NodeJS專案:一個使用NodeJS來為使用者提供高度靈活指令碼執行時的桌面應用程式。NodeJS提供功能和UI給使用者,所有都是用TypeScript寫的,而不是普通的JavaScript。為什麼?因為TypeScript有很多意想不到的好處:

  • 仍然可以編寫JavaScript
  • 幫助編寫小的模組和結構化的程式碼
  • 幫助編寫NodeJS相容模組
  • 一般說來,不需要為每個模組寫所有的JavaScript程式碼
  • 只要專注於所需要編寫的功能

這就是為什麼TypeScript對我來說是個大幫手。當然型別化的語言在很多情況下也是有用的,但是——使用JS工作了20年——我喜歡隱式的型別JavaScript語言的靈活性,並且我對它很熟。這意味著,從我的角度來看,有關TypeScript的優點是,我仍然能用TypeScript編寫隱式的型別程式碼,並利用到JavaScript的靈活性。這就是為什麼我說“仍然可以編寫JavaScript”的原因。

Web技術改變了,我的技術堆疊也改變了,工具也是。所有這些東西都變得更為輕巧,連同工具一起。控制檯回來了,IDE變回為它們的root:只不過是一些有著類似語法高亮和智慧感知這些作用的文字編輯器。目前,我更喜歡根據我工作的專案型別使用有著“瑞士軍刀”之稱的Visual Studio Code或Adobe Brackets。兩者都開始變得非常快速,包括一些不錯的功能。

使用輕便的IDE令人愉悅。一切都很快,因為通過我需要開發的app可以使用機器的資源,而不必通過我需要使用來開發app的IDE。這使得發展速度快了很多。

現今啟動一個IDE意味著啟動cmder(Windows上我最喜愛的控制檯),改變專案資料夾,啟動控制檯命令,從而檢視typescript檔案,儲存後編譯。我可以啟動另一個控制檯來使用如NPM、gulp、typings、dotnet CLI、NodeJS等工具;以及啟動我最喜歡的輕量級編輯器來編寫程式碼! :  )

譯文連結:http://www.codeceo.com/article/web-change-me-20-years.html
英文原文:How Web Development Changed for Me Over the Last 20 Years
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章