官术网_书友最值得收藏!

  • 你真的會寫代碼嗎
  • (意)馬爾科·法埃拉
  • 1009字
  • 2021-07-28 17:52:10

前言

我本人起的書名是《Java:風格練習》。不過在Manning出版社的智者們教導我如何吸引讀者之后,這個書名和它的文學范兒就僅存于此前言中了。的確,在經典的現代文學著作《風格練習》中,法國作家Raymond Queneau用99種方式寫出了同一個故事。那本書的重點不在于故事本身(刻意弱化了故事),而在于異想天開地探索自然語言幾乎無窮無盡的表達能力。

編程當然不是文學,盡管像高德納這樣的名人曾努力拉近兩者的距離。如果初學編程的人認為每個編程任務都有最優解,就像簡單的數學問題有單一解一樣,還是可以理解的。實際上,現代編程更像文學,而不是更像數學。程序設計語言在發展過程中包含了越來越多的抽象結構,使得實現某一目標的方法成倍增加。一門語言即使在出現之后,也會不斷演進,這往往是通過不斷引入新的問題解決方法來達成的。如Java之類的流行語言一直在加速發展,以跟上試圖取代其位置的新一代語言。

本書嘗試介紹在執行任何編程任務中都應考慮或至少要意識到的各種問題和解決方案。我提出的任務相當普通:用一個類表示水容器,你可以用管道與之連接并注入水;而客戶端不斷地與容器交互,隨時都可以加水、放水或放置新的管道。針對此任務,我提出并討論了18種實現。每一種實現都力求最大限度地實現不同的目標,無論是性能、代碼清晰度,還是其他軟件質量。本書并不是一串串干巴巴的代碼片段。每當上下文需要的時候,我都會借機討論一些與計算機科學(各種數據結構、復雜度理論和攤銷復雜度)、Java編程(線程同步和Java內存模型)以及軟件工程(契約式設計方法論和測試技術)相關的專業話題。我的目的是告訴你:無論案例多簡單,只要進行深入分析,就會串起一個龐大的知識網絡,而所有這些知識都有助于寫出更好的代碼。

擴展閱讀

本書的目的之一是激發你對軟件開發的各個相關學科的好奇心。這就是為什么每一章的結尾都有“擴展閱讀”一節,我在其中簡要介紹了我能找到的關于該章主題的最佳資源。我想,前言應該也不例外。

Raymond Queneau的《風格練習》

最原始的“風格練習”書。(原著是用法語在1947年寫成的。)
 

Cristina Videira Lopes的《編程風格:好代碼的邏輯》1

作者使用Python語言,用33種不同的風格解決了一個簡單的編程任務。每種風格不是為了優化各種代碼質量,而是為了遵守特定的約束。此外,它還講到了許多編程語言的歷史。
 

Matt Madden的99 Ways to Tell a Story: Exercises in Style

當你寫代碼累了想休息的時候,可以看看這本漫畫書,里面有一個用99種不同的風格繪制的簡單故事。

1該書已由人民郵電出版社出版,詳見圖靈社區?!幷咦?/p>

主站蜘蛛池模板: 资源县| 清苑县| 清徐县| 翼城县| 东港市| 昌宁县| 屏南县| SHOW| 安多县| 辽源市| 黔西县| 衡阳县| 手游| 桦川县| 巫溪县| 保山市| 吴堡县| 府谷县| 西盟| 阿鲁科尔沁旗| 施甸县| 浦北县| 泾阳县| 剑川县| 尼勒克县| 赤峰市| 明水县| 固阳县| 新龙县| 耒阳市| 宜章县| 安岳县| 正镶白旗| 庆阳市| 余庆县| 灵川县| 肥乡县| 新源县| 长武县| 建宁县| 琼中|