精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

千萬不要和一種編程語言廝守終生

開發 前端 移動開發
我們程序員在著手一個項目時,需要做的關鍵決定之一就是選擇一種語言,或一組語言,用于實施該系統。這一決定不僅會影響系統的實現,也會影響設計。例如,我們應該使用面向對象的語言還是過程語言?

[[222139]]

我們程序員在著手一個項目時,需要做的關鍵決定之一就是選擇一種語言,或一組語言,用于實施該系統。這一決定不僅會影響系統的實現,也會影響設計。例如,我們應該使用面向對象的語言還是過程語言?選擇什么語言對項目以及作為項目一部分的程序的生命周期有著深遠的影響,很多次,我們基于一些非常善變的因素,沒有思考太多就去選語言:這語言是我慣常用來實現這類系統的;這語言我了解得最透徹;這是我最喜歡的語言,我很享受于用這種語言編程;等等。

既然這個決定會導致深刻而長遠的結果,那么我們是不是在做這個抉擇時應該更加務實?很多時候,我們會盲目地偏頗于我們選擇的語言。而且,有時候我們之所以不喜歡選擇這種語言的原因可能正是為什么我們要選擇那種語言的原因。

如果我們能夠放開胸懷,坦誠地對待自己持有的偏見,那么我們就可以減輕一些類似在裝修時硬要將方釘釘進圓形孔的痛苦。雖然我們沒有什么秘訣來為項目選擇***語言,但還是可以遵循一些原則,幫助我們做出一個更好,更合適的語言選擇。

沒有***的語言

這一點對任何人,甚至是新手而言,都是在意料之中的,并且我們很多人都愿意承認,“當然,這種語言并不是***的語言,”但與此同時,我們很多人還是會說,“這語言是***的編程語言”。說一種語言是項目的***語言的關鍵是項目的背景,也就是說,***的語言只存在于一定的范圍內。這就是我們的***條原則:

沒有***的語言:每一種語言都有它的優點和缺點。

例如,許多通常使用運行時語言,如Java或Python的開發人員,聲稱C或C ++令人透不過氣來,會因為關注例如內存管理這類低層次的細節,或關心編譯時類型檢查的嚴格粒度,而扼殺分置于開發人員的職責。這是事實,只要我們正在開發的項目不關注看似瑣碎的任務,如內存管理或發生在單一循環中的copy-assignment的數量。

相反,如果我們工作在一個項目,或項目的一部分,那么對于代碼應該如何高效以及程序的關鍵性安全的偏見需求是自然而然的,這些看似繁瑣的細節可能正是我們正在尋找的粒度水平。在這種新的背景下,Java或Python的運行時性質似乎過于漠不關心或過于心不在焉。相反,我們希望當內存分配和釋放的時候,能夠嚴格控制有多少move-assignment和copy-assignment被執行,并在編譯時捕捉盡可能多的錯誤,而不是讓錯誤滲入運行時(表現為運行時異常)。

雖然在理論上“沒有***的語言”這一點聽起來是顯而易見的,但是我們作為開發人員的行為通常會背離這個概念:我們說我們知道我們最喜歡的語言是不***的,但我們還是繼續對我們開發的項目使用這種語言,不管它是否適合。此外,當其他的開發人員質疑我們選擇的語言時,我們會堅決捍衛我們的選擇,而不愿意從他或她的反駁中看見事實的真相。請記住:每一種語言都有它的優點和缺點。了解你掌握的語言的優點和缺點,然后根據實際情況做出選擇。

你不喜歡一種語言的原因可能就是你應該使用它的原因

這似乎違反直覺,但有的時候,我們之所以不喜歡一門語言可能正是使用某種語言的原因。還是上面的例子,在我作為一個C ++開發人員的經驗中,很多時候因為有那么多不同的概念要跟蹤(內存管理和對象壽命時間,C ++編程三原則等),以致于完成項目的一個簡單功能都會變得繁瑣不堪。在用C ++開發幾周之后,使用Python,Java或另一種“更高級”的語言,簡直就像上天的恩賜:但真的是這樣的嗎?

有時候,可能我們不喜歡一門語言的原因正是我們要使用該語言的原因。如果我正在開發一個驅動程序或一些關鍵性安全,實時的系統,上面表述的繁瑣不堪的原因可能正是這個語言的***優勢。例如,C ++提供了一種機制用于表達當對象被復制時被執行的邏輯,這在效率和嚴謹性井然有序的時候是非常寶貴的。

這可能看上去都很好都很棒,因此我們很難確切指出在某個背景下,某種你看不順眼的語言可能反而更有幫助。那么,我們該怎么知道哪些你不喜歡的語言是有幫助的呢?這就引出了我們的第二條原則:

對自己要誠實:知道自己為什么不喜歡一門語言,不要教條化自己的憎惡。

例如,在上面那個C ++的例子中,我之所以不喜歡長時間地用C ++編程,是因為這語言要求思想嚴謹,否則很容易犯錯,就像是被困于叢林中(過多地關注樹木,而不是樹林這個整體)。這種嚴謹會妨礙開發人員去質疑,如,“我要在堆棧上或堆上創建對象嗎,或者部分在堆棧上,另一部分在堆上?”或“要讓這個類可擴展,應該通過模板參數還是通過繼承?”等決定。在其他語言中,開發人員只需分別創建一個對象以及使用面向對象的繼承就可以完成這些任務,然后進入到下一個功能,因為語言(或者,更準確地說,編譯器或解釋器)關注這些細節。

但是,如果我對自己誠實的話,我會承認,我之所以不喜歡C ++的這些功能,是因為它將表達這些細節的責任歸咎于我。在其他語言中,我不僅不需要負責這些細節,而且我也沒有責任表達這些細節:它們被抽象遠離開發人員。在一個這些細節是必不可少的上下文中,我不喜歡C ++的原因正是我應該使用這種語言的原因。

這是否意味著,我們應該愁眉苦臉地使用這些會讓我們對這語言惱怒的功能?也沒有必要。或許你可以換個角度:不要將這些功能當作缺點,也許我們應該擁抱它們,將它們當作完成任務的必需品。我們不應該說“這真是一個悲劇,”而應該說,“謝天謝地,我居然能用這種語言做到這一點。”請記住:在某些背景下,這些功能將是上天的恩賜,而在其他情況下,它們 才是累贅。至于為什么不喜歡某一門語言的功能,請誠實地告訴自己。

越熟悉其他語言,越好

對于這一點,就是我們要說的第三個原則:

如果你擁有的唯一工具是一個錘子,那么你看每一個問題都像是釘子。

這條規則并不適用于軟件工程,但它尖銳地表現了許多軟件開發的情況。很多時候,我們選擇一種語言,或一種語言支持的工具(如Java的JMS,Python的ASYNCIO,Rails的Ruby等),是因為我們知道它們存在。如果我們唯一熟悉的語言是Java,那么我們會將我們碰到的所有問題都適應到Java的上下文中。例如,“我需要為一個通信應用創建一個路由框架。在Java中我該怎么做呢?”這就限制了可供我們使用的工具,并人為地限制我們為完成工作選擇合適工具的余地。

解決這個問題的方法是擴大你的視野,了解其他語言的的功能和錯綜復雜之處。正如Andrew Hunt和David Thomas在《The Pragmatic Programmer》中給出的建議,一個好的做法就是,每年學習一門新的語言。這可不沒有聽上去那么容易,學習一門語言對不同的人將意味著不同的事情。還有一個衍生問題是,我們對正在進行中的項目往往只會使用這一種語言,從而使得學習的另一種語言顯得毫無用處。例如,假設我是一個Android開發人員,基本上每天只用Java,那么學習C#可能就會顯得不合時宜地浪費時間。

不要被假象所蒙蔽。學習其他語言的優勢體現在我們能從不同的角度去看問題,并且使用最適合該問題的工具。為了做到這一點,我們必須學習其他語言的相關警告,以及開發人員使用這些語言解決問題的方式。例如,如果一個開發人員想用C ++執行元編程,那么他或她可以使用C ++中的Template Metaprogrammming(TMP),但他或她也可以使用Java中的反射。理解其他語言是如何解決類似問題的,可以減少我們認為它毫無用處的風險。

再說一個例子,如果我們需要能夠改變一個類的運行時特征,那么一個深入熟悉C ++錯綜復雜性的C ++開發人員,可能會試圖編造一個延伸這個編譯時語言的界限的解決方案。而另一個C ++開發人員,由于對Java也有一定的了解,就能夠說,“我喜歡C ++,但Java的運行時反射更適合解決這個問題。”

因為有如此之多的編程語言任開發人員擇選,因此,優先安排學習什么語言很重要。不妨從當今***的語言入手(可參考《most popular languages on Github》,《Language Trends on Github》,《The 9 most popular computer languages》,《according to the Facebook for programmers》等)。

語言是手段而不是目的

這是第四條,也是***一條原則,聽上去可能最哲學,但也可以說是最重要的:

編程語言是一種手段,而不是目的。

除非你是一個語言標準的作者或是一個編譯器的作者,否則你就應該將編程語言當作是一種手段而不是目的,目的是完成項目:最終的目標是要完成項目,而不是使用特定的語言。這并不意味著每個開發人員就無權要求他或她喜歡或不喜歡的語言(實際上,如果我們對自己誠實的話,這些好惡反而能夠讓我們受惠;參見上面的第二條原則),但我們不應該自欺欺人作出這樣的決定,如,“這對我來說是使用該語言這一功能的一個很好的機會”,除非該語言的功能真正適合項目的需求。

重要的是要記住,語言只是表達如何解決手頭問題的一種方法:請確保你選擇了最能表達解決問題域的語言。

其他需要考慮的地方

下面是一些我們在選擇語言的時候,需要補充考慮的地方:

  1. 考慮語言如何與其他語言的交互。例如,如果你認定Python是完成大部分項目的***語言,但在你的項目中有一個定義良好的組件,需要極高水平的粒度或效率(更適合用C或C++ ),這并不意味著你不能在這個項目上使用Python。相反,考慮使用Python,特定組件用C或C ++寫,然后使用Python C API接口此組件。請注意,要制定這樣的解決方案,我們需要知道Python有一個C API;因此,了解***語言的這些功能是很有幫助的。
  2. 中間件可以允許使用多種語言。例如,如果有兩個必須進行通信的應用程序,如移動設備和一個服務器應用程序,但這并不意味著它們必須使用相同的語言(當然也可以相同,如果你判斷認為這是***決定的話)。如果這個移動設備是一款Android手機,而服務器應用程序非常適合作為一個Python應用程序的話,那么使用一個消息代理,如RabbitMQ,可以讓你在通信的同時使用這兩種語言:Android應用程序可以使用Java RabbitMQ API,而服務器應用程序可以使用Python RabbitMQ API。
  3. 擁抱其他語言的古怪之處。如果你是一個Java開發人員,那么你會使用包來分隔源代碼的邏輯單元;如果你是一個Python開發人員,那么你會使用Python的包結構做相同的事情;如果你是一個C ++開發人員,那么你會使用命名空間或前綴的類名(即“DZone_MyClassName”)。了解你正在使用的語言的特別之處,并擁抱它們:在羅馬,就入鄉隨俗。否則的話就像是因為你更喜歡單詞用意大利語發音,而用意大利口音說德語,這樣就顯得不倫不類了。當然也有可能一種語言的一個功能長期存在,但是這樣的話,其中必有其原因:確保自己明白其中的道理。
責任編輯:未麗燕 來源: 代碼灣
相關推薦

2016-01-06 10:06:17

編程語言工作選擇

2012-11-01 13:41:25

編程語言BasicPerl

2010-01-25 15:09:17

C++語言

2023-07-18 18:10:04

2019-08-08 17:58:00

七夕程序員戀愛

2018-03-15 09:23:24

編程語言程序員Java

2010-11-04 10:55:24

編程語言

2015-08-31 09:27:21

語言界面UI

2015-08-03 09:36:01

賽迪翻譯

2020-04-21 09:20:43

JavaGo語言

2018-08-21 13:50:05

編程語言JavaPython

2020-07-10 10:48:51

編程語言JavaPython

2012-03-14 11:46:30

ibmdw

2012-03-19 10:45:44

ibmdw

2013-03-12 14:07:06

Java編程

2010-01-21 16:24:02

C++語言

2015-03-13 11:23:21

編程編程超能力編程能力

2012-07-30 09:58:53

2011-07-21 14:17:15

Ceylon

2019-07-19 15:21:00

SQL編程語言NOSQL
點贊
收藏

51CTO技術棧公眾號

国产亚洲精品美女久久久m| 日韩在线播放一区| 国产男女无遮挡| 精品欧美不卡一区二区在线观看| 日韩专区在线视频| 日韩在线视频中文字幕| 又色又爽又黄18网站| 欧美裸体视频| 亚洲国产精品激情在线观看| 91网站在线看| 色网站在线播放| 北条麻妃国产九九九精品小说| 884aa四虎影成人精品一区| 女人帮男人橹视频播放| 精品视频一二三| 国产一区二区三区在线观看精品| 国色天香2019中文字幕在线观看| 这里只有久久精品| 麻豆国产一区| 色综合久久天天综合网| 一区二区三区四区欧美| 熟妇人妻一区二区三区四区 | 亚洲图色在线| www.色播.com| 日韩av中文字幕一区二区三区 | 久久精品欧美| 91亚洲国产成人久久精品麻豆| 国产精品v日韩精品v欧美精品网站| 亚洲人成五月天| 成年人看片网站| 高清av一区二区三区| 亚洲aaa精品| 欧美一级免费在线观看| 国产高清一区在线观看| 成年人国产精品| 成人黄色生活片| 波多野结衣电车痴汉| 极品裸体白嫩激情啪啪国产精品| 色偷偷亚洲男人天堂| 亚洲精品视频大全| www.久久东京| 日韩一级片在线播放| 网站一区二区三区| 神马久久午夜| 午夜精品福利在线| 99久久免费观看| 欧美jizzhd69巨大| 国产精品高潮呻吟| 日韩国产欧美精品| 亚洲国产成人一区二区| 国产一区二区精品久久91| 国产精品日韩专区| 国产乱码77777777| 久久av一区| 国产91精品久久久| 日干夜干天天干| 亚洲私人影院| 国外成人在线视频| 丰满少妇乱子伦精品看片| 国产一区视频在线观看免费| 欧美高清电影在线看| 国产三级国产精品国产国在线观看| 日产精品一区二区| 在线视频精品一| 黄色片网站免费| 欧美一站二站| 中文字幕日韩有码| 亚洲一级理论片| 日韩在线视频精品| xxxxx成人.com| 免费精品在线视频| 亚洲影视一区| 欧美精品激情视频| xxxxxx国产| 亚洲精品123区| 欧美亚洲国产成人精品| 成人免费毛片视频| 秋霞午夜鲁丝一区二区老狼| 国产精品日韩av| 国产精品人人妻人人爽| 国精产品一区一区三区mba视频| 国产主播欧美精品| 国产成人精品一区二区无码呦 | 欧美黄色aaaa| 午夜欧美大片免费观看| 特级西西444www大精品视频免费看| 一本色道久久综合一区| 日韩av快播网址| 在线观看免费黄色小视频| 国产又黄又大久久| 国产在线一区二| 韩国精品视频| 1024成人网| 欧美一级免费播放| 日本免费一区二区三区四区| 欧美日韩日本视频| 在线播放国产视频| 视频一区欧美| 久久久av亚洲男天堂| 日本特黄特色aaa大片免费| 麻豆成人在线| 91视频免费在线| 天堂成人在线观看| 中文一区一区三区高中清不卡| 中文字幕不卡每日更新1区2区| 色黄网站在线观看| 日韩欧美在线观看视频| 激情在线观看视频| 欧美顶级毛片在线播放| 色婷婷久久一区二区| 久久免费视频播放| 免费观看在线色综合| 国产精品免费观看高清| 自拍视频在线网| 亚洲图片欧美视频| 亚洲视频第二页| 美女呻吟一区| 久久国产精品电影| 日韩电影在线观看一区二区| 国产福利电影一区二区三区| 日本在线高清视频一区| heyzo高清在线| 欧美日韩精品专区| 久久无码人妻精品一区二区三区 | av中文在线播放| 国内精品免费**视频| 免费精品视频一区二区三区| 午夜激情在线| 欧美日韩久久不卡| 国产特黄级aaaaa片免| 欧美特黄a级高清免费大片a级| 国产精品免费久久久| 人妻妺妺窝人体色www聚色窝 | 九九视频在线免费观看| 美女高潮久久久| 久久伊人一区二区| 国产区美女在线| 日韩一级免费观看| 亚洲精品自拍视频在线观看| 免费一区视频| 精品一区久久久久久| 免费观看的毛片| 久久99高清| 久久男人av资源网站| 91精品人妻一区二区三区果冻| 久久嫩草精品久久久久| 日韩中字在线观看| 视频精品一区| 久久国产精品影片| 国产又粗又猛又爽又黄视频 | 在线观看日韩精品视频| 亚洲大胆av| 国产嫩草一区二区三区在线观看| 在线免费观看黄色| 欧美中文一区二区三区| www.99热| 日韩av电影一区| 日本一区二区三区精品视频| 欧美亚洲韩国| 亚洲欧美日韩中文在线| 亚洲欧美一区二区三区在线观看| 91在线丨porny丨国产| 欧美激情视频免费看| 精品国内亚洲2022精品成人| 羞羞色国产精品| 四虎在线免费观看| 91福利精品第一导航| 免费网站在线高清观看| 轻轻草成人在线| 一区二区三区四区五区精品| 日韩五码电影| 欧美精品在线观看91| 午夜精品一二三区| 午夜一区二区三区在线观看| 在线免费看黄视频| 青青草国产成人av片免费| 亚洲三级一区| 日本在线视频一区二区三区| 九色91av视频| 亚洲av电影一区| 欧洲国内综合视频| 天天看天天摸天天操| 国产不卡视频一区| 成年人视频网站免费观看| 精品理论电影| 亚洲va男人天堂| www.九色在线| 在线观看国产欧美| av中文字幕观看| 狠狠爱在线视频一区| 91资源在线播放| 国产精品自拍毛片| 免费一级特黄特色毛片久久看| 国产不卡av一区二区| 成人综合国产精品| 欧美男人天堂| 久久视频精品在线| 天天干视频在线观看| 欧美日韩一二区| 精品一区免费观看| 久久久久久毛片| 佐山爱在线视频| 久久aⅴ国产紧身牛仔裤| 国产又黄又爽免费视频| 日本妇女一区| 91免费看国产| 三级成人黄色影院| 久久999免费视频| 国产精品免费播放| 亚洲第一免费网站| 亚洲在线免费观看视频| 亚洲电影一级黄| 亚洲a∨无码无在线观看| 成人黄色一级视频| 无尽裸体动漫2d在线观看| 一本色道精品久久一区二区三区| 欧美日韩视频免费在线观看| 日韩欧美黄色| 99视频在线免费观看| 亚洲综合av一区二区三区| 久久免费视频在线观看| 国产福利视频在线观看| 国产一区二区三区网站| 欧美 日韩 中文字幕| 欧美顶级少妇做爰| 亚洲另类欧美日韩| 一区二区久久久久| 国精品人伦一区二区三区蜜桃| 久久综合九色欧美综合狠狠| 熟女人妻一区二区三区免费看| 美洲天堂一区二卡三卡四卡视频| 噜噜噜久久亚洲精品国产品麻豆 | 综合网日日天干夜夜久久| 人妻一区二区三区四区| 日韩一区二区免费视频| 亚洲无码精品在线观看| 色欧美日韩亚洲| 91在线看视频| 亚洲成av人片| 久久香蕉精品视频| 亚洲另类色综合网站| 手机在线中文字幕| 国产精品不卡在线观看| 免费黄在线观看| 国产日韩欧美综合一区| av中文字幕免费观看| 久久久三级国产网站| 性欧美丰满熟妇xxxx性仙踪林| 成人av中文字幕| 国产精品一区二区人妻喷水| 成人午夜av在线| 亚洲视频 中文字幕| 国产成人自拍网| 国产人妻精品久久久久野外| 国内精品伊人久久久久av影院| 中文字幕第22页| 国产自产高清不卡| 欧美视频亚洲图片| 国产精品一区二区久久不卡| 久久精品国产露脸对白| 韩国欧美一区二区| 6080国产精品| 国产成人精品免费视频网站| 农村末发育av片一区二区| 成人夜色视频网站在线观看| 日韩www视频| 91在线观看高清| 男人操女人动态图| 国产精品美女久久久久av爽李琼 | 欧美黑人做爰爽爽爽| 国内视频一区二区| 妖精视频一区二区三区免费观看| 日本视频一区二区不卡| 日韩电影在线视频| www.亚洲一区二区| 激情婷婷久久| 亚洲国产精品久久久久爰色欲| 麻豆成人精品| 亚洲欧美手机在线| 成人黄色在线视频| 国产成人无码精品久久二区三| 国产精品你懂的在线| 麻豆疯狂做受xxxx高潮视频| 精品女厕一区二区三区| 怡红院av久久久久久久| 在线成人午夜影院| 亚洲va欧美va| 日韩高清av一区二区三区| 国产小视频在线播放| 日韩亚洲在线观看| segui88久久综合| 国产精品18久久久久久麻辣| 91麻豆精品| 激情伦成人综合小说| 清纯唯美日韩| 99热亚洲精品| 麻豆极品一区二区三区| 亚洲v在线观看| 国产精品毛片久久久久久| 免费网站看av| 欧美三区免费完整视频在线观看| 亚洲精品911| 亚洲图片欧洲图片av| 国内高清免费在线视频| 国产精品国产福利国产秒拍| 超碰精品在线| 中文字幕欧美日韩一区二区| 国产情侣久久| 日本成人在线免费观看| 欧美激情一区三区| 久久狠狠高潮亚洲精品| 91.麻豆视频| 搞黄视频在线观看| 91国语精品自产拍在线观看性色 | 国产精品婷婷| 无码人妻一区二区三区在线视频| 国产网站一区二区| 国产午夜精品无码| 欧美一区二区三区男人的天堂| 男人的天堂在线| 97在线视频观看| 日韩中文字幕一区二区高清99| 一区二区在线免费视频| 五月婷婷之婷婷| 国产精品一区一区三区| 天天干天天舔天天操| 欧美日韩精品二区| 欧美一区,二区| 麻豆国产va免费精品高清在线| 国产经典一区| 日本不卡久久| 西西裸体人体做爰大胆久久久| 国产精品久久久久野外| 国产精品乱码一区二三区小蝌蚪| 五月天激情国产综合婷婷婷| 欧美一区二区三区日韩视频| 在线看的av网站| 日韩女优人人人人射在线视频| 欧美精品国产白浆久久久久| 亚洲免费视频播放| 精品在线播放午夜| 精品国产成人亚洲午夜福利| 亚洲欧洲精品一区二区三区不卡 | 亚洲综合小说图片| 又大又硬又爽免费视频| 国产福利91精品| 成人免费毛片xxx| 777色狠狠一区二区三区| 国产原创av在线| 97视频在线观看视频免费视频| 99亚洲乱人伦aⅴ精品| 懂色av粉嫩av蜜臀av| 国内精品伊人久久久久av影院 | 中文字幕欧美激情| 五月婷婷色丁香| 精品呦交小u女在线| 草美女在线观看| 精品免费一区二区三区蜜桃| 一区在线观看| 日韩av影视大全| 亚洲摸摸操操av| 国产美女自慰在线观看| 欧美美最猛性xxxxxx| **精品中文字幕一区二区三区| 免费成人深夜夜行网站视频| 激情综合色综合久久| 乱老熟女一区二区三区| 欧美一级xxx| 高清精品在线| 久久影院理伦片| 久热re这里精品视频在线6| 亚洲精品91在线| 欧美性受xxxx| 在线免费观看a视频| av资源站久久亚洲| 99综合在线| 亚洲av综合一区二区| 欧美午夜一区二区三区免费大片| av在线电影观看| 国产精品丝袜久久久久久不卡| 久久久久久美女精品| 在线一区二区不卡| 亚洲大型综合色站| 国产乱码精品一区二区三区不卡| 欧美丝袜一区| 日本三级黄色网址| 一区二区三区不卡视频在线观看 | 亚洲伊人久久综合| 国产综合欧美| 丰满少妇一区二区三区| 欧美性高清videossexo| 久草免费在线| 国产66精品久久久久999小说| 久久先锋资源| 99精品中文字幕| 亚洲国产精品成人精品| 国产综合色区在线观看| 免费观看亚洲视频| 97aⅴ精品视频一二三区| 国产片在线播放|