返回介绍

学习编程的加速度

发布于 2025-01-22 00:38:50 字数 2151 浏览 0 评论 0 收藏 0

小王听说测试驱动开发(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 横空出世的时候,立刻就会明白它的本质了, 如果需要学习, 也会轻松很多。

所以不用羡慕别人用了什么热门的、时髦的技术, 学习编程最忌讳的就是朝三暮四,对每个技术都浅尝辄止,那样就像一直坐在驴车上,一直都晃晃悠悠,慢的要死, 相反把基础打好,就相当于在打造汽车,飞机, 甚至有一天你发现像火箭一般蹿升了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文