專訪AngularJS框架創始人Misko Hevery:讓Web開發更便捷
AngularJS是一款開源的JavaScript MV*(MVW、MVVM、MVC)框架,目前由Google維護。AngularJS彌補了HTML在構建應用方面的不足,其通過使用識別符號(directives)結構,來擴充套件Web應用中的HTML詞彙,使開發者可以使用HTML來宣告動態內容,從而使得Web開發和測試工作變得更加容易。
AngularJS最初由Miško Hevery和Adam Abrons於2009年開發,後來成為了Google公司的專案。
CSDN記者採訪了AngularJS的創始人之一Misko Hevery,請他來為我們介紹一下AngularJS專案開發背後的故事。
CSDN:請先介紹一下您的經歷!
Misko:加入Google公司之前,我曾在Intel、Xerox(施樂)、Sun和Adobe公司工作過,主要從事資料庫/後端方面的工作。加入Google公司後,我開始轉向自動化測試,這個工作的主要目的是改進Google的開發者工作效率,從而改善程式碼庫。
我之前並不太熱衷於JavaScript,直到我的老闆讓我涉足這一領域,並讓我研究關於JavaScript的所有知識。
CSDN:講講AngularJS開發背後的故事,當初為什麼發起這個專案?
Misko:AngularJS最初是作為一個編外專案(side project),當時我想去看看是否有可能讓Web設計師(非開發者)只使用HTML標籤來建立簡單的應用程式。隨著時間的推移,AngularJS演變成了一個全面的開發框架。
2010年是一個轉折點,當時我正參與Google Feedback的開發。我們使用GWT進行開發,比較鬱悶的是,開發速度和專案的進展比較緩慢。我意識到,我的這個編外專案也許可以讓這個產品的構建過程快一些。隨後,我將17K大小的基於GWT的應用程式使用JavaScript進行了重寫,且程式碼只有1500行。這引起了很多人的重視,公司也開始資助我們全職開發AngularJS。
CSDN:AngularJS的設計理念是什麼?靈感來自於什麼?
Misko:AngularJS遵循的設計理念是——構建UI應該是宣告式的。
靈感來自於我之前在Adobe公司所從事的FLEX方面的工作。但是我還想要有大量的宣告式UI,這也是AngularJS中識別符號(directives)想法的靈感來源。
CSDN:AngularJS是如何實現這一理念的?
Misko:我發現大多數人開始一個新東西時,往往會從他想到的有可能實現的方面入手,然後圍繞它建立一個框架。而我更傾向於從我想要的東西入手,我認為某個想法很棒,就會朝著這個目標不斷努力,直到實現它。起初,一些想法看似無法實現,但是隨著時間的推移,你的一些技能也許可以讓它變成可能。
例如:我想要實現不那麼突兀的資料繫結,也就是說任何物件都可以進行資料繫結。但是當一個物件發生變化時,無法使用JS來獲取通知。這樣一來,大多數人就會認為這是無法實現的,他們會讓你使用getter/setters來代替欄位訪問。
CSDN:AngularJS的設計目標是什麼?
Misko:首要目標是,使Web應用開發更容易,並在這個過程中使Web變得更強。
第二個目標是,向人們展示以這種方式來構建Web應用程式也是可能的。此外,還希望向人們傳達一些關於測試、宣告式UI和依賴注入方面的知識。
CSDN:AngularJS專案的開發人員有幾名?
Misko:最初AngularJS專案團隊只有Adam Abrons和我兩個人。但自從Google公司接管了這個專案後,目前團隊人數已經達到了15人。
CSDN:你們是如何解決AngularJS開發過程中遇到的困難的?
Misko:考慮你想要實現的東西,然後朝著這個目標努力。你或許不會得到一個非常理想的結果,但是這樣會比你一開始就以能夠實現作為目標的結果要更好。
CSDN:AngularJS限定不能超過2000個繫結物件,有人將它視為編寫大型應用的限制,對此您怎麼看?
Misko:這不是一個硬性限制。要知道,Angular應用程式的效能與物件繫結數量呈線性關係。繫結的物件越多,應用程式的速度會變得越慢。
對於2000個的限制,我的看法是,這是你能夠在一個頁面上展示給使用者的所有東西的數量限制。通過這個限制,重新整理頁面的時間可以減少到5ms以下。因此,效能的主要限制因素是人,而不是計算機。
CSDN:介紹一下AngularJS的dirty-checking機制?其效能如何?
Misko:Dirty-checking是我們用來檢測物件的變化的。我們僅在模型可能發生變化時執行它。這是一個事件驅動系統。
效能方面,如果物件的比較過程相對簡單,那麼進行1000次比較,在現代瀏覽器上可能只需要一兩毫秒,所以效能真的不是一個問題。正如前面所提到的,效能的限制因素是人。
此外,這樣做的好處是,你能夠為你的模型使用純老式的JavaScript物件。
CSDN:哪些應用適合使用AngularJS?哪些不適合使用?
Misko:AngularJS可以很好地用來開發表單/報表類的應用程式,而這類應用程式在Web中所佔比例高達90%。而如果你想構建一個照片編輯類的應用,你可能不會想去使用AngularJS。
CSDN:Angular的未來會如何發展?
Misko:我們希望未來AngularJS能夠更好地與Web標準看齊。我們還打算將AngularJS分解成大量的小型庫,你可以將這些庫集合起來使用,也可以單獨使用某些庫。
CSDN:對於前端開發者,你有什麼建議?
Misko:嘗試去開發一些偉大的網站,讓Web變得更美好。
相關文章
- 專訪ThinkPHP創始人劉晨PHP
- 專訪Elasticsearch創始人ShayBanon:讓資料自己說話Elasticsearch
- Wikipedia創始人訪談
- 5款讓Web前端開發人員更輕鬆的實用工具!Web前端
- 專訪CiGA創始人Simon,“獨立遊戲”向前一步遊戲
- GitHub創始人 Preston-Werner專訪:GitHub如何成為主流GithubREST
- 專訪旦恩創投凌代鴻:創業10年讓我更懂創業者創投創業
- 力軟(.NET)敏捷開發框架,讓開發變的更簡單敏捷框架
- “科技貓”聯合創始人古茜:懂科技的女生更性感(圖靈訪談)圖靈
- 專訪安全容器 Kata 專案創始人王旭:開源是一件向死而生的事情
- AngularJS快速開始AngularJS
- 框架讓開發人員變得愚鈍嗎?框架
- 專訪谷歌NLP技術專家:我們負責讓谷歌更懂人類語言谷歌
- 解密機器人大模型RFM-1:Covariant創始人陳曦專訪解密機器人大模型
- 專訪集智俱樂部創始人張江:衝破藩籬,敢想敢為(圖靈訪談)圖靈
- Google創始人的公開信Go
- 離開育碧,放置手遊《採礦大亨》開發團隊創始人再創業創業
- Telltale 聯合創始人專訪:工作室倒閉背後的原因(上)
- Telltale 聯合創始人專訪:工作室倒閉背後的原因(下)
- axon框架創始人談微服務與事件驅動框架微服務事件
- 專訪美滿科技CEO:用技術和創新讓客戶服務更簡單
- web專案快速開發使用UI框架優勢WebUI框架
- 為什麼IE6讓Web開發人員抓狂Web
- Elasticsearch 創始人 Shay Banon:讓資料自己說話Elasticsearch
- So Easy!讓開發人員更輕鬆的工具和資源
- 元宇宙7個開源工具和框架讓開發不用從零開始元宇宙開源工具框架
- [Angularjs] 第一步開始一個專案AngularJS
- AngularJS教程一——快速開始AngularJS
- 使用虛擬化來做PHP開發讓你更專業PHP
- ChatGPT:讓程式開發更輕鬆ChatGPT
- AngularJS 1.3.7 釋出,HTML 的 Web 框架AngularJSHTMLWeb框架
- AngularJS 1.3.2 釋出,HTML 的 Web 框架AngularJSHTMLWeb框架
- web.py創始人Aaron Swartz自殺身亡,享年26歲Web
- Git 10 週年之際,創始人 Linus Torvalds 訪談Git
- 25個超有用的 AngularJS Web 開發工具AngularJSWeb
- Web開發框架推導Web框架
- node express web開發框架ExpressWeb框架
- Web開發框架趨勢Web框架