错误调试方法
- 分析项目的整个运行流程,梳理各个环节,找到可能出错的地方加以修改
- 根据错误提示找到错误根源, 删一段再执行一段
- 小黄鸭调试法:强迫本身把遇到的问题说出来,详细说出每一行代码的做用以及实现的功能,必定要说出来,对人对物均可以。
高效能程序员的修炼
- 锻炼写做能力
- 绕开绊脚石,直达目的地(重要)
- 专一于一项工做
- 学会阅读源代码
- 避免写没必要要的注释:规范化类名与方法名
- 没必要从头开始复习,专一于当下
- 不要写死代码
卓越程序员密码
早起先测试jquery
别在卧室里工做:程序员
- 别让每周40小时的工做变成168小时的工做+睡觉+吃喝玩乐
写代码是不得已而为之:编程
对休闲项目坚定说不单元测试
- 每周花几天,天天花几个小时在这个项目上(可持续的工做量,坚持)
- 何时能把一个基本成型的产品展现给别人(可供测试的软件)
- 哪一天向公众发布(够用的软件)
- 哪一天发布第一个主要的更新版本
仿造软件:测试
- 找一个你喜欢的网站或游戏,把它仿造出来。在你真正的想作一件项目前,先作完这个。这个能促使你学到前沿的编程技术,并且能让你更容易的被招聘公司选中。作3-5个这样的仿制项目后,你就能实现任意的你想要的东西了。
每一个项目都要学到新东西:网站
- 每次项目都努力使用一些听到过但从未使用过的新东西。没有使用过jquery,那下次项目中就使用它
- 没有试过测试驱动开发,下次项目就是你的实验品
天天改进产品的两个方面,即使是很是小的改进翻译
CleanCode
童子军军规:离开时要比来时更整洁。
设计
若是每段代码都让你感到深合己意,那就是整洁代码。调试
整洁的代码只作好一件事日志
一以贯之的命名法。统一命名方式
类名名词、方法名动词
整洁代码是重构出来的,而非一开始就写出来的,没人能作到这种事情。
别给糟糕的代码加注释---从新写吧。可是因为咱们并不是英语国家,仍是须要多写注释的,不过是代码的英文翻译。
TDD(Test-Driven Development):测试驱动开发,就比如数据抽取的公式,一开始不知道如何下手,换个角度想一想看怎么测试,先设计个简单的界面,思考须要传递什么参数,一步步测试,一步步开发。测试能帮咱们想到开始开发时想不到的点,帮咱们确认需求。
测试代码的简洁度反映了业务代码
TDD三大定律:
- You must write a failing unit test before you write production code.(在编写不能经过的单元测试前,不可编写生产代码)
- You must stop writing that unit test as soon as it fails; and not compiling is failing.(只可编写恰好没法经过的单元测试,不能编译也算不经过)
- You must stop writing production code as soon as the currently failing test passes.(只可编写恰好足以经过当前失败测试的生产代码。)
使用但尽可能少使用断言语句。(保持测试的可重用性,每一个测试只测试一个功能,比如每一个方法只作一件事)
整洁的测试规则:FIRST
- Fast,快速,才能频繁进行测试
- Independent,独立,多个测试之间应该相互独立,不能有任何关系
- Repeatable,可重复,测试应可在任何环境下经过
- Self-Validating,自足验证,测试应该有布尔值输出(或断言),不管经过或者失败都不该该查询控制台或者日志确认测试是否经过。
- Timely,及时,测试应该及时编写,刚好在使其经过的生产代码以前编写
单一权责原则:(Single Responsibility Principle)
系统应该由许多短小的类而不是少许巨大的类组成。每一个小类封装一个权责,只有一个修改的缘由,并与少数其余类一块儿协同工做达成指望的系统行为。
重构通常都须要大动代码,为了保证程序的可正常运行,最好编写一套测试用例,保证重构先后系统的正确性,在一步一步的重构时执行测试用例。