成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我的技術心病

開發 后端 開發工具
我發現,對我來說,使用一種新語 言,新技術,新框架,最讓我有壓力的事情是,我在使用它們時不能完全明白它們的實現原理。

AzureConfMobileServicesSash

上圖為本文的作者Sasha Goldshtein,他是SELA Group公司的***技術官,他是Microsoft C# MVP(最有價值技術人員),是《Introducing Windows 7 for Developers》 (Microsoft Press出版, 2009) 和 《Pro .NET Performance》 (Apress出版, 2012)兩書的作者。他是一位多產的博客作家,是大量的培訓教程的作者,內容包括并行編程、Windows Internals, .NET Debugging, 和 .NET 性能等。他的顧問工作主要圍繞分布式架構和高性能系統。

我發現,對我來說,使用一種新語 言,新技術,新框架,最讓我有壓力的事情是,我在使用它們時不能完全明白它們的實現原理。我每周都要閱讀數百篇關于討論諸如各種JavaScript擴 展、新的iOS應用框架,新的基于Windows Azure的SaaS等的博客文章。很顯然,如果只是使用一些技術或采用一種框架來滿足需求,這對于我通常不是很難的事情。問題是,如果我并不理解一個東 西的工作原理或實現方法,我不能把它歸入我已經掌握的知識。這也是“Not Invented Here(非我造不用)”毛病的一種表現吧,不同的是我并不是想真正的寫出我自己的框架;我只是想做到我有能力寫出它們。下面是我最近的一些例子。

2011 年末,我開始學習Node.js,2012年間,我基于Node、Express以及其它很多Node模塊,實現了數個私人或商業產品。我開始使用 Node時非常猶豫,直到我完全掌握了它的基本原理——事件循環,異步無處不在的屬性——這使我掌握了如何實現“類似Node”之類東西的知識。有一段時 間我甚至想寫利用新的C#提供的async/await實現一個Node類似的HTTP框架,但***放棄了,因為網上像這樣的東西很多,比如 ASP.NET MVC控制器等,只是不通用。

還有一個事情就是,某種程度是,我仍然有點“恐懼”WPF(Windows用戶界面框架)。 我談不上是特別喜歡客戶端開發,但從感受層面上,從各種表現上,WPF是一種比XAML更有吸引力的框架。并不是說WPF很復雜難用:我理解它的一些基本 實現原理,比如數據綁定,風格,資源,以及數據模板,這些足夠讓我實現簡單的桌面應用或簡單的Windows8和Window Phone應用。是WPF的深度和廣度讓我困惑:我現在的做法是否是***的做法?這些XAML表達式究竟是如何在這樣的數據環境和屬性依賴條件下工作的? 是否我應該把這段代碼放到一個單獨的動作或控制里?…我不是沒努力過:我至少讀了3本關于WPF的書,總頁數超過1500頁,但它們并沒有給我多大幫助。 結果是,在潛意識里,我盡量避免基于XAML的框架,因為我不知道如何實現它。而可笑的是,我對一些“輕量級”的客戶端技術,包括MFC,Windows Forms,Android,以及iOS,都非常有信心,而對于XAML,對于它的那些相對高級的東西,已經在我的心里留下了畏懼的條件反射。

說 一些我感到非常有自信的東西,我對那些利用反射技術的東西,從序列化校驗到代碼生成,我都感覺很輕松。這些屬性,這些反射,10年前當我做一個大.NET 項目時就根深于我的腦子里,從那時起它們對于我就是一個非常強大的工具。我想這歸功于我能理解它們這些對象如何存放在內存里,知道.NET的原信息是如何 組織的。事實上,我差不多同時也就對其他語言和框架里的反射機制很清楚了:例如,當我在開發非官方的Adnroid SDK時,***直覺就是想寫自己的JSON序列化工具,而不是利用第三方類庫。之后雖然證明這并不是***的做法,但我能夠在2小時內讓我的程序支持所有類 型的WAMS要求。

***一個例子,我對新語言有很大的心理壓力,尤其是當這種語言不只是從一種語言編譯成另外一種語言。換言之,我對像 TypeScript或CoffeeScript這類語言沒壓力,我可以清楚了理解這種原代碼如何編譯成JavaScript,如何一種新語法變成同種功 能語法的一種簡寫。但是,對于一些“新物種”語言,例如Objective C,引起我腦海里一大堆問號。并不是它的括弧語義給我造成麻煩,而是這種語言的原理,“how”。Objective C語言的對象是如何分配內存的?方法是如何調度的?如果方法可以被過載,還能通過名稱進行動態調度嗎?編譯器是如何動態管理內存的?(沒錯,引用數計數 ——但問題遠比這幾個字復雜)。同樣的事情也發生在Python這樣的語言上:我可以使用Python開發腳本,編寫模塊,甚至和C語法風格的DLL交 互,但我對這種動態語言里如何存放一個屬性,如何類型化,沒有一個清晰的畫面。

作為總結,我希望所有的教材都提供一個“工作原理”的章節, 來告訴我我如何能實現這種語言、技術和框架——我自己。至此,我希望這篇文章解釋清楚了我為什么喜歡對技術原理刨根問底、喜歡自己去實現它們。歸根結底的 原因是,我喜歡對系統、框架、語言做全面的理解;也許我只需要對某個系統修改一個bug或做性能調優,但最終結果是,我要去知道它是如何運行的,否則,它 會變成我的一個心病,拖得越久我會越痛苦。

原文鏈接:http://architects.dzone.com/articles/using-something-you-cant

譯文鏈接:http://www.oschina.net/news/41512/using-something-you-cant-implement-yourself

責任編輯:陳四芳 來源: dzone.com
相關推薦

2013-06-18 09:28:12

程序員技術病

2015-12-08 11:30:01

WiFiWiFi技術過敏

2013-03-21 13:42:55

JSjQYUI

2016-05-18 10:04:17

技術面試

2020-11-21 19:04:33

技術開發指標

2020-10-19 08:20:44

技術管理轉型

2020-06-12 09:07:03

技術總監數據庫

2020-04-26 14:40:19

戴爾

2010-08-13 17:45:54

2021-09-24 14:45:01

A15蘋果手機芯片

2018-01-03 11:05:58

AngularJSPython代碼

2013-08-26 09:31:47

技術面試

2024-09-21 10:43:15

數據技術信息

2021-01-26 10:29:06

前端開發技術

2020-07-27 09:09:53

技術阿里套路

2021-03-10 09:33:51

技術研發管理

2019-06-24 08:32:09

技術總監JavaC++

2020-06-08 11:28:22

場景索引設計

2019-02-18 08:24:09

技術應用架構

2015-08-27 09:01:17

網絡規劃網絡優化博文推薦
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产男女视频 | 欧美一级在线 | 久久精品视频免费观看 | 欧美精品成人一区二区三区四区 | 久久精品在线播放 | 黄网站免费入口 | 久久免费精品 | 日韩aⅴ视频 | 中文字幕在线一区 | 精品日韩一区二区三区av动图 | 一区中文字幕 | 在线免费观看一区二区 | 97精品超碰一区二区三区 | 一区二区三区免费在线观看 | 九九av| 久久高清 | 亚洲免费久久久 | 亚洲网址在线观看 | 国产午夜精品理论片a大结局 | 日韩亚洲视频 | 性色av网站 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | 成人精品一区亚洲午夜久久久 | 欧美性生活一区二区三区 | 日韩电影一区 | 欧美一区二区二区 | 在线免费观看黄色网址 | 亚洲视频免费一区 | 天天干干| 91天堂 | 一区二区在线不卡 | 久久精品无码一区二区三区 | www.四虎.com| 久久久久久久久毛片 | 成人av一区二区三区 | 在线观看视频亚洲 | 三级在线观看 | 久久蜜桃精品 | 亚洲图片视频一区 | 天天综合91| 九九在线视频 |