学习编程的加速度
小王聽說測試驅動開發(Test Driven Development,簡稱TDD) 非常火爆,作為一個熱愛新技術的程序員, 肯定得學一下。
他先是找到了TDD的經典書籍, 也就是Kent Beck寫的《測試驅動開發》, 仔細看了一遍,他很快發現這本書雖然闡明了TDD的原理和實踐, 但是舉的例子實在是太簡單了, 和日常的工作相距太遠,很難體會到TDD的精髓。
要是有一本書用TDD的方式講解Web系統開發就好了, ?小王去找師傅求助。?
師傅拿出一本書說: “這本書里講的就是TDD Web網站的例子, 一定要好好看看啊”
小王一看封面:《Python Web開發 --測試驅動方法》 ,?心里立刻涼了半截: “這是Python, 我只會Java編程, 不一定能看懂啊。”
師傅說: ?“不要擔心, 這本書涉及到的技術在我們的Java 項目中也有使用, 只是用另外一種語言描述而已, 你看起來會很熟悉的。”
小王將信將疑,晚上回到家, 翻開書來先看了幾頁,馬上就發現了熟悉的東西: ?嘿, 書中要用Git來管理代碼, 這個我會, 完全沒有壓力。
還有為了使用測試驅動開發 ,要用到Selenium 來做功能測試, 這個小王很早就搞過了, 就是模擬一個人在瀏覽器中的操作, 例如點擊,輸入文字 等來測試,只不過之前小王用的是Javascript 版本的, 現在需要熟悉一下Selenium 在Python中的表示:
Python語法看起來還是挺直觀的, 和之前自己學過的javascript版本的Selenium非常相似。
為了做單元測試, 書里還用到了Python的unittest 模塊, 這長的和Java 的JUnit很像:
公眾號“碼農翻身”注: 這個例子來源于《Python Web開發 測試驅動方法》一書
小王想:這個Python的單元測試的基本結構和Java 的JUnit很像, 都用setUp去做一些初始化工作, 用tearDown去做清除工作。測試也都以testXXXX開頭。
但是這個 self 是什么鬼? 看樣子應該和java 中的 this 類似, 為什么每個方法上都得加上 self 作為參數, 實在是太丑陋了!
小王覺得難于忍受, 但是也沒有辦法,只能硬著頭皮看下去。
既然是開發Web應用, 免不了要用一個Web框架, Python世界就是著名的Django, 小王看了書中的介紹,也是一個MVC框架, 雖然和java世界的Struts, SpringMVC不同, ?但感覺就是熟悉的陌生人。?
書中還用到了Jenkins, 不就是一個持續集成的框架嘛, 在項目中已經用過了,自己還寫過不少腳本呢。
這么簡單了翻了翻, 小王找到了熟悉的感覺,自信也慢慢的來了: ?看起來是一門新語言, 其實很多基本的思想、原理和工具都是相通的。??
所以讀起這本書來也沒什么難的,??只需要把重點放到如何用TDD來做驅動開發就行了。
不光學習了TDD,還能順便學習下Python, 確實不錯。
講這么一個小故事, 主要想說明一個程序員在工作中用到的基本的技術:單元測試, 功能測試 , 源碼管理, 持續集成, MVC框架 等等,剛開始的時候需要認真的一點點的學,確實比較慢, 但是學的越多, 站的就越高,眼界就越寬,在學習編程的道路上好像有了加速度,越跑越快。最后發現即使面對一門新語言,也能輕松應對了。?
這還只是在技能層面, 如果掌握了一些基本的思想和原理, 那對于新出現的技術也能很快理解,迅速的上手。?
例如在Java里搞明白了異步調用的原理和Java 服務器端一個線程對應一個請求的弊端, ?那當Node.js橫空出世的時候,立刻就會明白它的本質了, 如果需要學習, 也會輕松很多。
所以不用羨慕別人用了什么熱門的、時髦的技術,學習編程最忌諱的就是朝三暮四,對每個技術都淺嘗輒止,那樣就像一直坐在驢車上,一直都晃晃悠悠,慢的要死, 相反把基礎打好,就相當于在打造汽車,飛機, 甚至有一天你發現像火箭一般躥升了。?
總結
- 上一篇: 深入浅出Python元编程
- 下一篇: 一文读懂熔断器和重试机制