Web開發在過去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
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- AI在遊戲裡碾壓了我們之後,又準備去開發遊戲了AI開發遊戲
- 在過去兩個月時間裡,糖豆人是如何用運營騷操作保持了自己的存在感的?
- 《我的世界》十歲了:它如何改變了遊戲和現實?遊戲
- 你在業餘時間都開發過什麼?
- 請問如何用java程式改變系統時間Java
- 【2024.11.05】所謂照片,不過是在時間長河裡刻舟求劍罷了
- 我在 MWC 體驗雲遊戲時突然想起,原來我 20 年前就玩過了遊戲
- 我勒個去,程式設計師在開發時遇到的靈異現象程式設計師
- Docker四種方式改變了軟體工程師過去五年的工作方式Docker軟體工程工程師
- 幹了SAP開發這麼多年,我都積累了哪些程式除錯技巧除錯
- Linux 在過去幾年發生的六種變化Linux
- 蘋果在40年前的今天如何改變了我們的世界蘋果
- Flash 如何改變了網際網路?
- 資料分析的三大時間軸:過去、現在和未來
- 如何縮短開發直播間原始碼的時間,看懂這些就OK了原始碼
- 在程式裡面,時間真的發生了343秒的倒流。
- Android開發進階1 思維改變 如何知道我需要學什麼(上)Android
- 我兒時的“清北夢”,竟然在這款遊戲裡實現了!遊戲
- 我在阿里工作的這段時間裡,都學到了哪些東西阿里
- 我是如何從Web開發轉向移動開發的?Web移動開發
- 過去10年,開放世界遊戲發生了哪些變化?(上)遊戲
- 過去10年,開放世界遊戲發生了哪些變化?(下)遊戲
- 現代DevOps如何改變軟體開發格局dev
- 日益發展的物聯網將如何改變我們的生活?
- 考證之後如何知道oracle是否把oca和ocp在什麼時間給我們發到哪兒了Oracle
- Apache DolphinScheduler PMC:我在社群裡如何玩轉開源?Apache
- 談Web應用開發時我們談什麼Web
- 改變CRUD認知:Web3去中心化的底層邏輯Web中心化
- 谷歌開源總監迪博納專訪:開源如何改變了谷歌谷歌
- domino 發郵件時,透過修改 Principal 中的值改變發件人地址
- 李彥宏:過去一年人工智慧發生了方向性改變人工智慧
- web前端開發前景何去何從Web前端
- 精讀《Suspense 改變開發方式》
- 實時渲染將如何改變工作方式
- Christopher Steiner:演算法如何改變了世界演算法
- jQuery|開發了這麼多年終於懂了“鏈(Chaining)”jQueryAI
- 在製作遊戲的過程中,我都解決和改進了哪些問題遊戲
- Lambda將從根本上改變我們開發Java程式的方式Java