国产强伦姧在线观看无码,中文字幕99久久亚洲精品,国产精品乱码在线观看,色桃花亚洲天堂视频久久,日韩精品无码观看视频免费

      您現(xiàn)在的位置:智能制造網(wǎng)>技術(shù)中心>軟件工程師不可不知的10個概念

      直播推薦

      更多>

      企業(yè)動態(tài)

      更多>

      推薦展會

      更多>

      軟件工程師不可不知的10個概念

      2011年04月08日 11:05:42人氣:1458來源:

        出色的軟件工程師善用設(shè)計模式,勤于代碼重構(gòu),編寫單元測試,并對簡單有宗教般的追求。除了這些,的軟件工程師還要通曉10個概念,這10個概念超越了編程語言與設(shè)計模式,軟件工程師應(yīng)當(dāng)從更廣的范圍內(nèi)明白這些道理。
        
        關(guān)系數(shù)據(jù)庫(RelationalDatabases)
        
        關(guān)系數(shù)據(jù)庫因為在大規(guī)模Web服務(wù)上缺乏可擴充性而頗受微詞,然而,關(guān)系數(shù)據(jù)庫仍然是近20年來計算機技術(shù)中zui偉大的成就。關(guān)系數(shù)據(jù)庫對處理訂單,公司數(shù)據(jù)方面有著出色的表現(xiàn)。
        
        關(guān)系數(shù)據(jù)庫的核心是以記錄表示數(shù)據(jù),記錄存放在數(shù)據(jù)庫表,數(shù)據(jù)庫使用查詢語言(SQL)對數(shù)據(jù)進行搜索與查詢,同時,數(shù)據(jù)庫對各個數(shù)據(jù)表進行關(guān)聯(lián)。
        
        數(shù)據(jù)庫的標準化技術(shù)(normalization)講的是使用正確的方式對數(shù)據(jù)進行分存以降低冗余,并加快存取速度。
        
        安全(Security)
        
        隨著黑客的崛起與數(shù)據(jù)敏感性的上升,安全變得非常重要。安全是個廣義的概念,涉及驗證,*與信息傳輸。
        
        驗證是對用戶的身份進行檢查,如要求用戶輸入密碼。驗證通常需要結(jié)合SSL(securesocketlayer)進行;*在公司業(yè)務(wù)系統(tǒng)中非常重要,尤其是一些工作流系統(tǒng)。zui近開發(fā)的OAuth協(xié)議可以幫助Web服務(wù)將相應(yīng)信息向相應(yīng)用戶開放。Flickr便使用這種方式管理私人照片和數(shù)據(jù)的訪問權(quán)限。
        
        另外一個安全領(lǐng)域是網(wǎng)絡(luò)設(shè)防,這關(guān)系到操作系統(tǒng),配置與監(jiān)控。不僅網(wǎng)絡(luò)危險重重,任何軟件都是。Firefox被稱為zui安全的瀏覽器,仍然需要頻頻發(fā)布安全補丁。要為你的系統(tǒng)編寫安全代碼就需要明白各種潛在的問題。
        
        云計算(CloudComputing)
        
        RWWzui近的關(guān)于云計算的文章ReachingForTheSkyThroughComputeClouds講到了云計算如何改變大規(guī)模Web應(yīng)用的發(fā)布。大規(guī)模的并行,低成本,與快速投入市場。
        
        并行算法發(fā)明以來,首先迎來的是網(wǎng)格計算,網(wǎng)格計算是借助空閑的桌面計算機資源進行并行計算。zui的例子是Berkley大學(xué)的SETI@home計劃,該計劃使用空閑的CPU資源分析太空數(shù)據(jù)。金融機構(gòu)也大規(guī)模實施網(wǎng)格計算進行風(fēng)險分析??臻e的資源,加上J2EE平臺的崛起,迎來了云計算的概念:應(yīng)用服務(wù)虛擬化。就是應(yīng)用按需運行,并可以隨著時間和用戶規(guī)模而實時改變。
        
        云計算zui生動的例子是Amazon的Web服務(wù),一組可以通過API進行調(diào)用的應(yīng)用,如云服務(wù)(EC2),一個用來存儲大型媒體文件的數(shù)據(jù)庫(S3),索引服務(wù)(SimpleDB),序列服務(wù)(SQS)。
        
        并發(fā)(Concurrency)
        
        并發(fā)是軟件工程師zui容易犯錯的地方,這可以理解,因為我們一直遵從線形思維,然而并發(fā)在現(xiàn)代系統(tǒng)中非常重要。
        
        并發(fā)是程序中的并行處理,多數(shù)現(xiàn)代編程語言包含內(nèi)置的并發(fā)能力,在Java,指的是線程。關(guān)于并發(fā),zui經(jīng)典的例子是“生產(chǎn)/消費”模式,生產(chǎn)方生產(chǎn)數(shù)據(jù)和任務(wù),并放入工作線程消費或執(zhí)行。并發(fā)的復(fù)雜性在于,線程需要經(jīng)常訪問共同數(shù)據(jù),每個線程都有自己的執(zhí)行順序,但需要訪問共同數(shù)據(jù)。DougLea曾寫過一個zui復(fù)雜的并發(fā)類,現(xiàn)在是coreJava的一部分。
        
        緩存(Caching)
        
        緩存對現(xiàn)代Web程序*,緩存是從數(shù)據(jù)庫取回,并存放在內(nèi)存中的數(shù)據(jù)。因為數(shù)據(jù)庫直接存取的代價非常高,將數(shù)據(jù)從數(shù)據(jù)庫取回并放在緩存中訪問就變得十分必要。比如,你有一個,要顯示上周的書,你可以從數(shù)據(jù)將書榜一次性取回放在緩存中,而不必在每次訪問時都去數(shù)據(jù)庫讀數(shù)據(jù)。
        
        緩存需要代價,只有zui常用的內(nèi)容才可以放入緩存。很多現(xiàn)代程序,包括Facebook,依靠一種叫做Memcached的分布式緩存系統(tǒng),該系統(tǒng)是BradFirzpatrick在工作于LiveJournal項目時開發(fā)的,Memcached使用網(wǎng)絡(luò)中空閑的內(nèi)存資源建立緩存機制,Memcached類庫在很多流行編程語言,包括Java和PHP中都有。
        
        散列法(Hashing)
        
        Hashing的目的是加速訪問速度。如果數(shù)據(jù)是序列存儲的,從中查詢一個項的時間取決于數(shù)據(jù)列的大小。而散列法對每一個項計算一個數(shù)字作為索引,在一個好的Hashing算法下,數(shù)據(jù)查找的速度是一樣的。
        
        除了存儲數(shù)據(jù),散列法對分布式系統(tǒng)也很重要。統(tǒng)一散列法(uniformhash)用來在云數(shù)據(jù)庫環(huán)境下,在不同計算機之間分存數(shù)據(jù)。Google的索引服務(wù)就是這種方法的體現(xiàn),每一個URL都被散列分布到特定計算機。
        
        散列函數(shù)非常復(fù)雜,但現(xiàn)代類庫中都有現(xiàn)成的類,重要的是,如何對散列法進行細調(diào)以獲得的性能。
        
        算法的復(fù)雜性(AlgorithmicComplexity)
        
        關(guān)于算法的復(fù)雜性,軟件工程師需要理解這樣幾件事。*,大O標記法(bigOnotation);第二,你永遠都不應(yīng)該使用嵌套式循環(huán)(循環(huán)里面套循環(huán)),你應(yīng)該使用Hash表,數(shù)組或單一循環(huán);第三,如今類庫比比皆是,我們不必過分糾纏于這些庫的效能的差別,我們以后還有機會進行細調(diào);zui后,不要忽視算法的優(yōu)雅及性能,編寫緊湊的,可讀的代碼可以讓你的算法更簡單,更干凈。
        
        分層(Layering)
        
        用分層來討論軟件架構(gòu)是zui容易的。JohnLakos曾出版過一本關(guān)于大型C++系統(tǒng)的書。Lakos認為軟件包含了層,書中介紹了層的概念,方法是,對每個軟件組件,數(shù)一下它所依賴的組件數(shù)目就可以知道它的復(fù)雜程度。
        
        Lakos認為,一個好的軟件擁有金字塔結(jié)構(gòu),就是說,軟件組件擁有層層積累的復(fù)雜度,但每個組件本身必須簡單,一個的軟件包含很多小的,可重復(fù)使用的模塊,每個模塊有自己的職責(zé)。一個好的系統(tǒng)中,組件之間的依賴性不可交叉,整個系統(tǒng)是各種各樣的組件堆積起來,形成一個金字塔。
        
        Lakos在軟件工程的很多方面都是,zui的是Refactoring(代碼重構(gòu))。代碼重構(gòu)指的是,在編程過程中需要不斷地對代碼進行改造以保證其結(jié)構(gòu)的健壯與靈活。
        
        慣例與模板(ConventionsandTemplates)
        
        命名慣例和基礎(chǔ)模板在編程模式中常被忽視,然而它可能是zui強大的方法。命名慣例使軟件自動化成為可能,如,JavaBeans框架在getter和setter方法中,使用簡單的命名慣例。del.icio.us的URL命名也使用統(tǒng)一的格式,如http://del.icio.us/tag/software會將用戶帶到所有標簽為software的頁。
        
        很多社會網(wǎng)絡(luò)均使用簡單命名,如,你的名字是johnsmith,那你的頭像可能命名為johnsmith.jpg,而你的rss聚合文件的命名很可能是johnsmith.xml。
        
        命名慣例還用于單元測試,如,JUnit單元測試工具會辨認所有以test開頭的類。
        
        我們這里說的模板(templates)指的并不是C++或Java語言中的constructs,我們說的是一些包含變量的模板文件,用戶可以替換變量并輸出zui終結(jié)果。
        
        ColdFusion是zui先使用模板的程序之一,后來,Java使用JSP實現(xiàn)模板功能。Apache近來為Java開發(fā)了非常好用的通用模板,Velocity。PHP本身就是基于模板的,因為它支持eval函數(shù)。
        
        界面(Interfaces)
        
        軟件工程中zui重要的概念是界面。任何軟件都是一個真實系統(tǒng)的模型。
        
        如何使用簡單的用戶界面進行模型化至關(guān)重要。很多軟件系統(tǒng)走這樣的,缺乏抽象的冗長代碼,或者過分設(shè)計而導(dǎo)致無謂的復(fù)雜。
        
        在眾多軟件工程書籍中,RobertMartin寫的《敏捷編程》值得一讀。
        
        關(guān)于模型化,以下方法對你會有幫助。首先,去掉那些只有在將來才可能用得著的方法,代碼越精練越好。第二,不要總認為以前的東西是對的,要善于改變。第三,要有耐心并享受過程。
      關(guān)鍵詞:操作系統(tǒng)
      全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

      免責(zé)聲明

      • 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
      • 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
      • 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負版權(quán)等法律責(zé)任。
      • 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

      <
      更多 >

      工控網(wǎng)機器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機械包裝機械印刷機械農(nóng)業(yè)機械食品加工設(shè)備制藥設(shè)備倉儲物流環(huán)保設(shè)備造紙機械工程機械紡織機械化工設(shè)備電子加工設(shè)備水泥設(shè)備海洋水利裝備礦冶設(shè)備新能源設(shè)備服裝機械印染機械制鞋機械玻璃機械陶瓷設(shè)備橡塑設(shè)備船舶設(shè)備電子元器件電氣設(shè)備


      我要投稿
      • 投稿請發(fā)送郵件至:(郵件標題請備注“投稿”)1271141964.qq.com
      • 聯(lián)系電話0571-89719789
      工業(yè)4.0時代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺
      智能制造網(wǎng)APP

      功能豐富 實時交流

      智能制造網(wǎng)小程序

      訂閱獲取更多服務(wù)

      微信公眾號

      關(guān)注我們

      抖音

      智能制造網(wǎng)

      抖音號:gkzhan

      打開抖音 搜索頁掃一掃

      視頻號

      智能制造網(wǎng)

      公眾號:智能制造網(wǎng)

      打開微信掃碼關(guān)注視頻號

      快手

      智能制造網(wǎng)

      快手ID:gkzhan2006

      打開快手 掃一掃關(guān)注
      意見反饋
      關(guān)閉
      企業(yè)未開通此功能
      詳詢客服 : 0571-87858618