讀 《JavaScript: The Good Parts》 有感

來源:互聯網
上載者:User


                                         


        

        提煉出一門語言或技術的 Good Parts, 使用該子集去構造健壯穩固的應用。


        我們總是傾向於去學習和使用所有的語言特性,好像凡是新的,凡是提供了的, 就有必要去使用; 這本書告訴我們, 要有選擇性地學習和使用。

        不是所有的語言特性都需要學習和使用。 學習和使用那些設計不良的特性,不僅耗費大量時間和精力,而且有損項目的可維護性,得不償失;反之,學習那些優良的部分,不僅可以節省時間,騰出更多時間和精力去做更重要的事情,而且有助於將事情做好,提高收益/學習比。

        富有技巧性的HACKER可以欣賞其精巧的構思和利用漏洞的能力,但不適宜用在實際開發中。

        

        Javascript 的優良子集:

           1.   簡單鬆散的類型系統,主要是 布爾、字串和數值 三種類型,undefined, null 兩個特殊值;

           2.   函數是Javascript 的樞紐對象, 函數型編程範式; 值得重點學習和探討;

           3.   基於原型繼承的動態對象機制,值得重點學習和探討;

           4.   容易建立和操作對象和數組, JSON 資料交換格式, 便於使用; 



         引申一下, 同樣可以定義自己的開發子集, 依靠這些元素實現高效可靠的開發活動。

          1.   程式設計語言: 至少熟悉六種程式設計語言,掌握兩種程式設計語言。 “熟悉”是指大量學習和使用過,“掌握”是指能夠使用該語言 構建大型可靠的軟體系統。 

                  一種過程式,一種對象式,一種函數式, 一種聲明式, 一種用戶端語言,一種指令碼語言。 例如, C / Java / Clisp / SQL / JavaScript / Python 

          2.   編程工具: 至少一種編輯器,一種IDE, 一種項目構建工具, 一種版本控制工具, 一種控制台。 例如 Vim / Eclipse / Maven / Svn / Shell (cygwin)

          3.   編程方法: 自頂向下,意圖導引,自底向上; First Right, then Good ; 預先設計, 及早動手; 迭代式開發、發布、反饋和改進 ; 預估時間; 

          4.   編程風格: K&R C ,  Java 編程規範, 排版整潔,代碼簡潔無冗餘, 一致, 使用地道表達範式

          5.   編程模型: 串列, 並發, 多進程, 多線程, MapReduce , B/S , 非同步, 回調,阻塞, 非阻塞

          6    編程思想: 過程式, 對象式, 函數式,聲明式, 原語, 集合, 組合, 抽象, 分治, 

          7.   常用演算法: 分治, 遞迴,動態規劃, 時空權衡; 優先順序演算法;問題轉化;  

          8.   排序: 插入排序, 快速排序, 堆排序, 歸併排序;

          9.   搜尋:  順序搜尋, 二分搜尋, 雜湊搜尋, 分段並行搜尋;

         10.   資料結構:  【一維或二維】數組, 鏈表,棧,隊列, 樹, 字串, 雜湊表;  mysql 

         11.   文本處理: find , grep,  awk,  sed, Regex;

         12.   設計模式: Factory 方法, 單例,原型, 模板方法,策略,  觀察者,  責任鏈, 組合, 命令, 代理,外觀,適配器,裝飾器,迭代器

         13.   進程與網路: ps,  top,  工作管理員 ;  netstat, ssh, scp, socket , http, 

         14.   開發架構: Servlet, Spring, Struts, ibatis ,  Jquery , Extjs,  等

         15.   常用組件: 日誌(common-logging) ,  工具 + 生產力庫 (字串、日期函數或工具類) ,  

         16.   運行容器: apacheHttp ,  tomcat,  jetty,  nginx ,  瀏覽器, 

         17.   軟體架構: MVC ; view-controller- service - dao (api) - db ;工廠、管道與過濾器 ;  事件驅動;  

         18.   單元測試: 參數組合自動產生, 等價劃分類, 邊界測試, 空測試, 交叉檢驗, 逆向檢驗,

         19.   程式碼群組織: 標頭檔, 類檔案,包機制,名字空間,

         20.   軟體工程: 模組化, 對象, 封裝,實現隱藏, 約定介面,   

         21.   測量技術: 效能測量,time 

         22.   學習網站: Csdn ,  iteye,  infoq,  stackoverflow , 開源專案網站,個人部落格, google ,  baidu,    

         23.   經典書籍: 電腦程式設計藝術, 編程珠璣, SICP , 深入理解電腦系統, 程式設計實踐 , Linux/Unix設計思想, 設計模式等

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.