国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

軟件工程師必知的十個概念

開發 項目管理
本文向您介紹作為一個軟件工程師應該知道的十個概念,這些概念集中在設計模式、測試、代碼重構等方面,希望對您有所幫助。

出色的軟件工程師善用設計模式,勤于代碼重構,編寫單元測試,并對簡單有宗教般的追求。除了這些,優秀的軟件工程師還要通曉10個概念,這10個概念超越了編程語言與設計模式,軟件工程師應當從更廣的范圍內明白這些道理。

1.接口(Interfaces)

軟件工程中最重要的概念是接口。任何軟件都是一個真實系統的模型。如何使用簡單的用戶接口進行模型化至關重要。很多軟件系統走這樣的極端,缺乏抽象的冗長代碼,或者過分設計而導致無謂的復雜。

在眾多軟件工程師書籍中,RobertMartin寫的《敏捷編程》值得一讀。

關于模型化,以下方法對你會有幫助。首先,去掉那些只有在將來才可能用得著的方法,代碼越精練越好。第二,不要總認為以前的東西是對的,要善于改變。第三,要有耐心并享受過程。

2.慣例與模板(ConventionsandTemplates)

命名慣例和基礎模板在編程模式中常被忽視,然而它可能是最強大的方法。命名慣例使軟件自動化成為可能,如,JavaBeans框架在getter和setter方法中,使用簡單的命名慣例。del.icio.us網站的URL命名也使用統一的格式,如http://del.icio.us/tag/software會將用戶帶到所有標簽為software的頁。

很多社會網絡均使用簡單命名,如,你的名字是johnsmith,那你的頭像可能命名為johnsmith.jpg,而你的rss聚合文件的命名很可能是johnsmith.xml。

命名慣例還用于單元測試,如,JUnit單元測試工具會辨認所有以test開頭的類。

我們這里說的模板(templates)指的并不是C++或Java語言中的constructs,我們說的是一些包含變量的模板文件,用戶可以替換變量并輸出最終結果。

ColdFusion是最先使用模板的程序之一,后來,Java使用JSP實現模板功能。Apache近來為Java開發了非常好用的通用模板,Velocity。PHP本身就是基于模板的,因為它支持eval函數。

3.分層(Layering

用分層來討論軟件架構是最容易的。JohnLakos曾出版過一本關于大型C++系統的書。Lakos認為軟件包含了層,書中介紹了層的概念,方法是,對每個軟件組件,數一下它所依賴的組件數目就可以知道它的復雜程度。

Lakos認為,一個好的軟件擁有金字塔結構,就是說,軟件組件擁有層層積累的復雜度,但每個組件本身必須簡單,一個優秀的軟件包含很多小的,可重復使用的模塊,每個模塊有自己的職責。一個好的系統中,組件之間的依賴性不可交叉,整個系統是各種各樣的組件堆積起來,形成一個金字塔。

Lakos在軟件工程師的很多方面都是先驅,最著名的是Refactoring(代碼重構)。代碼重構指的是,在編程過程中需要不斷地對代碼進行改造以保證其結構的健壯與靈活。

4.算法的復雜性(AlgorithmicComplexity

關于算法的復雜性,軟件工程師需要理解這樣幾件事。第一,大O標記法(bigOnotation);第二,你永遠都不應該使用嵌套式循環(循環里面套循環),你應該使用Hash表,數組或單一循環;第三,如今優秀類庫比比皆是,我們不必過分糾纏于這些庫的效能的差別,我們以后還有機會進行細調;最后,不要忽視算法的優雅及性能,編寫緊湊的,可讀的代碼可以讓你的算法更簡單,更干凈。

5.散列法(Hashing)

Hashing的目的是加速訪問速度。如果數據是序列存儲的,從中查詢一個項的時間取決于數據列的大小。而散列法對每一個項計算一個數字作為索引,在一個好的Hashing算法下,數據查找的速度是一樣的。

除了存儲數據,散列法對分布式系統也很重要。統一散列法(uniformhash)用來在云數據庫環境下,在不同計算機之間分存數據。Google的索引服務就是這種方法的體現,每一個URL都被散列分布到特定計算機。

散列函數非常復雜,但現代類庫中都有現成的類,重要的是,如何對散列法進行細調以獲得最好的性能。

6.緩存(Caching)

緩存對現代Web程序不可或缺,緩存是從數據庫取回,并存放在內存中的數據。因為數據庫直接存取的代價非常高,將數據從數據庫取回并放在緩存中訪問就變得十分必要。比如,你有一個網站,要顯示上周的暢銷書,你可以從數據將暢銷書榜一次性取回放在緩存中,而不必在每次訪問時都去數據庫讀數據。

緩存需要代價,只有最常用的內容才可以放入緩存。很多現代程序,包括Facebook,依靠一種叫做Memcached的分布式緩存系統,該系統是BradFirzpatrick在工作于LiveJournal項目時開發的,Memcached使用網絡中空閑的內存資源建立緩存機制,Memcached類庫在很多流行編程語言,包括Java和PHP中都有。

7.并發(Concurrency)

并發是軟件工程師最容易犯錯的地方,這可以理解,因為我們一直遵從線形思維,然而并發在現代系統中非常重要。

并發是程序中的并行處理,多數現代編程語言包含內置的并發能力,在Java,指的是線程。關于并發,最經典的例子是“生產/消費”模式,生產方生產數據和任務,并放入工作線程消費或執行。并發的復雜性在于,線程需要經常訪問共同數據,每個線程都有自己的執行順序,但需要訪問共同數據。DougLea曾寫過一個最復雜的并發類,現在是coreJava的一部分。

8.云計算(CloudComputing)

RWW最近的關于云計算的文章ReachingForTheSkyThroughComputeClouds講到了云計算如何改變大規模Web應用的發布。大規模的并行,低成本,與快速投入市場。

并行算法發明以來,首先迎來的是網格計算,網格計算是借助空閑的桌面計算機資源進行并行計算。最著名的例子是Berkley大學的SETI@home計劃,該計劃使用空閑的CPU資源分析太空數據。金融機構也大規模實施網格計算進行風險分析。空閑的資源,加上J2EE平臺的崛起,迎來了云計算的概念:應用服務虛擬化。就是應用按需運行,并可以隨著時間和用戶規模而實時改變。

云計算最生動的例子是Amazon的Web服務,一組可以通過API進行調用的應用,如云服務(EC2),一個用來存儲大型媒體文件的數據庫(S3),索引服務(SimpleDB),序列服務(SQS)。

9.安全(Security)

隨著黑客的崛起與數據敏感性的上升,安全變得非常重要。安全是個廣義的概念,涉及驗證,授權與信息傳輸。

驗證是對用戶的身份進行檢查,如要求用戶輸入密碼。驗證通常需要結合SSL(securesocketlayer)進行;授權在公司業務系統中非常重要,尤其是一些工作流系統。最近開發的OAuth協議可以幫助Web服務將相應信息向相應用戶開放。Flickr便使用這種方式管理私人照片和數據的訪問權限。

另外一個安全領域是網絡設防,這關系到操作系統,配置與監控。不僅網絡危險重重,任何軟件都是。Firefox被稱為最安全的瀏覽器,仍然需要頻頻發布安全補丁。要為你的系統編寫安全代碼就需要明白各種潛在的問題。

10.關系數據庫(RelationalDatabases)

關系數據庫因為在大規模Web服務上缺乏可擴充性而頗受微詞,然而,關系數據庫仍然是近20年來計算機技術中最偉大的成就。關系數據庫對處理訂單,公司數據方面有著出色的表現。

關系數據庫的核心是以記錄表示數據,記錄存放在數據庫表,數據庫使用查詢語言(SQL)對數據進行搜索與查詢,同時,數據庫對各個數據表進行關聯。

數據庫的標準化技術(normalization)講的是使用正確的方式對數據進行分存以降低冗余,并加快存取速度,這也是軟件工程師必知的技術。

 

【編輯推薦】

  1. 軟件工程師必知的12個單元測試技巧
  2. 軟件工程之需求分析過程介紹
  3. 軟件工程中質量保證體系的監理
責任編輯:佚名 來源: 博客園
相關推薦

2011-07-08 16:37:20

2009-11-04 10:57:35

2010-08-10 13:22:41

2023-10-23 11:49:59

2017-04-18 09:46:31

機器學習工程師算法

2024-01-23 18:49:38

SQL聚合函數數據分析

2009-07-02 14:05:55

2023-09-20 22:52:12

Kubernetes快捷方式

2011-02-28 16:43:55

2019-07-05 07:49:19

TCPIP網絡協議

2023-11-08 18:01:53

硬重置Git命令

2019-05-15 11:14:22

監控工具運維

2014-02-12 09:31:53

2020-06-03 15:25:27

運維架構技術

2013-09-03 09:30:44

軟件工程師軟件工程師頭銜

2022-09-16 08:00:00

軟件工程師求職薪酬

2022-07-29 09:12:44

軟件硬件開發

2023-12-01 18:06:35

2014-09-22 09:47:14

2009-02-11 13:15:54

軟件工程師女工程師google
點贊
收藏

51CTO技術棧公眾號

91麻豆精品激情在线观看最新 | 成人午夜在线影院| 卡一卡二国产精品| av成人手机在线| 成人夜晚看av| 午夜精品久久一牛影视| 欧美视频精品全部免费观看| 天堂在线资源视频| 久久久久国色av免费观看性色| 国产精品99久久久久久久女警| 1024在线看片你懂得| 国产大尺度在线观看| 日韩在线观看免费高清完整版| 国产天堂亚洲国产碰碰| 亚洲91精品| aa视频在线观看| 91美女在线| gogogo免费高清日本写真| 欧美专区在线观看| 精品播放一区二区| 免费一区视频| 天堂а√在线8种子蜜桃视频| 国产91色在线|| 欧美日韩在线另类| 午夜亚洲视频| 成人三级高清视频在线看| 在线观看欧美亚洲| 久久视频国产精品免费视频在线 | 91破解版在线观看| 伊人久久精品视频| 久久久三级国产网站| 日韩美脚连裤袜丝袜在线| 亚洲欧洲成人| 国产精品伦一区二区| 国产高清不卡av| 欧美丰满一区二区免费视频| 一区二区三区毛片免费| av二区在线| koreanbj精品视频一区| 国产午夜精品久久久| 国产欧美日韩亚州综合| 国产成人短视频在线观看| 欧美三级一区二区| 91免费国产在线观看| 久久精品97| 黄色手机在线视频| 国产精品视频免费在线| 欧美视频精品在线观看| 久久66热re国产| 亚洲精品v亚洲精品v日韩精品| 大黄网站在线观看| 国模精品视频| www 日韩| 岛国一区二区| 国产一区二区丝袜| 在线免费观看视频黄| 六月丁香综合在线视频| 日韩欧美国产精品一区二区三区| 欧美日韩美少妇| 久久亚洲黄色| 日本道在线视频| 欧美日韩午夜在线视频| 国产精品视屏| 福利视频免费在线观看| 欧美一区二区在线不卡| 欧美伦理影院| 欧美日韩不卡在线视频| 欧美不卡在线视频| 欧美日本久久| 宅男午夜在线| 97超级碰碰碰久久久| 成人激情免费网站| av丝袜在线| 久久久久久久久一区二区| 亚洲午夜精品在线| 思热99re视热频这里只精品| 免费无码毛片一区二三区| 亚洲乱码国产乱码精品精天堂| 欧美视频久久| 精品电影在线| 成人av在线网址| 亚洲宅男天堂在线观看无病毒| 免费观看成人www动漫视频| 免费看又黄又无码的网站| 亚洲精品小视频| 日本视频在线一区| 伊人在我在线看导航| 国产尤物91| 欧美日韩国产经典色站一区二区三区| 99久久九九| 亚洲精品男人| 91网站在线看| 精品国产福利视频| 国产精品91一区二区三区| 秋霞在线观看av| 日本视频久久久| 亚洲一级二级三级| 久久在线电影| 成人在线免费观看| 免费观看成人高| 精品免费国产一区二区三区四区| 青青青爽久久午夜综合久久午夜| 狠狠躁少妇一区二区三区| 50度灰在线观看| 久久精品国产成人精品| 中文字幕欧美国产| 竹菊久久久久久久| 日韩a在线看| 蜜桃在线一区二区三区精品| 日韩欧美高清一区| 国产精品一色哟哟哟| 成人国产精品久久| 91人人网站| 成人18视频| 亚洲第一综合天堂另类专| 成人蜜臀av电影| 欧美男男freegayvideosroom| 日本搞黄视频| 国外成人免费视频| 亚洲精品综合精品自拍| 久久久九九九九| 日韩欧美伦理| av片在线观看免费| 蜜臀av性久久久久蜜臀av| 超碰日本道色综合久久综合| 一卡二卡欧美日韩| 亚洲在线成人| 欧美黄色成人| 性网站在线免费观看| 裸模一区二区三区免费| 国产香蕉97碰碰久久人人| 国产精品国产自产拍高清av| 欧美不卡一区| 日本在线视频一区二区| 亚欧精品一区| 色涩成人影视在线播放| 超薄丝袜一区二区| 一本色道久久综合亚洲精品按摩| 欧美aaaaa成人免费观看视频| 国产一区2区在线观看| 一级片在线免费看| 亚洲自拍偷拍二区| 91高清在线免费观看| 欧美日韩国产首页在线观看| 国产91精品欧美| 久久国产成人精品| 欧美18—19sex性hd| 国产超碰在线观看| 自拍亚洲欧美老师丝袜| 国产精品久久77777| 亚洲精品电影在线观看| 尤物视频一区二区| 国产精品综合久久| 国产精品黑丝在线播放| 精品三区视频| 成人动漫在线免费观看| 国产综合免费视频| 蜜桃在线一区二区三区精品| 久久久久成人网| 日韩欧美一区二区视频| 亚洲四区在线观看| 蜜桃视频一区二区三区| 精品国产乱码久久久| 久九九久频精品短视频| 深夜福利视频一区| 亚洲人成无码www久久久| 蜜桃网站成人| 日韩免费在线免费观看| 日韩精品在线看| 欧美日韩国产综合新一区| 国产精品亚洲一区二区三区在线| 日韩系列欧美系列| 成人国产精品一区二区免费麻豆| 免费资源在线观看| 国产一区二区在线免费播放| 一区二区三区四区五区视频 | 欧美午夜片在线看| 久久免费视频色| 玖玖在线精品| 日韩精品看片| 久久视频社区| 美女视频在线免费| 国产精品久久久久一区二区国产 | 九九国产精品视频| 午夜精品毛片| 成人资源在线| 欧美日韩在线观看首页| 懂色一区二区三区| 色老板视频在线观看| 成人观看免费完整观看| 亚洲在线不卡| 国产欧美日韩综合一区在线观看| 国产www精品| 欧美精品www| www.99久久热国产日韩欧美.com| 亚洲成人黄色网址| 91精品国产aⅴ一区二区| 一本大道久久a久久综合| 亚洲高清免费视频| 成人欧美一区二区三区在线播放|