Become a Better Programmer: 5 Essential Methods at a Glance--reference
http://www.git-tower.com/blog/become-a-better-programmer-5-essentials/
Become a Better Programmer: 5 Essential Methods at a Glance
We've compiled an overview of 5 tools and methods that are timeless classics by now.
1. Unit Testing
Why? Every programmer has experienced something like this: you change a bit of code in one corner, and in a (seemingly) unrelated corner, something breaks! The bitter truth is: both new and changed code will inevitably contain bugs. Use automated tests that help you keep old code stable.
Keep in mind: You can also go one step further and write tests before your actual code. This can give you a whole new perspective on how to approach problems!
Read more: XP on Unit Tests and Test-Driven Development
2. Code Review
Why? Code that is ever only seen by a single programmer in your team is dangerous code: if that person gets sick or leaves your team, no one knows how this piece of your software really works. Additionally, no matter how great and experienced that developer is: it might be that he overlooked something, implementing only the second best solution.
These problems can easily be avoided by always having team members approve each other’s code. It’s both a quality control as well as a means to create collective ownership of your project’s code.
Keep in mind: If pair programming (see below) is already an integral part of your workflow, you might not need additional code reviews!
Read more: Code Review on the blogs of IBM, Jeff Atwood and on StackOverflow
3. Pair Programming
Why? Pair programming is an ideal tool to share knowledge in a team. Having a junior and a senior developer sitting side-by-side is the best way for the junior to learn. And since teaching is a great way to sharpen your own skills, even the senior can benefit.
Keep in mind: Make sure that each person gets in front of the keyboard on a rotating basis. It shouldn’t become a “I teach, you listen” event.
Read more: XP about Pair Programming, Martin Fowler on "Pair Programming Misconceptions", WikiHow on Pair Programming
4. Keep it Simple
Why? Planning for the unlikely makes code unnecessarily complex. Don’t try to foresee your project’s requirements in two years from now - too many things can (andwill) change! You would waste time on an overly complex solution for a problem that proves to be different than you thought.
Keep in mind: Keeping it simple shouldn’t be confused with “quick and dirty”. You still have to work thoroughly and carefully!
Read more: KISS on apache.org
5. Design Patterns
Why? At its core, most programming problems belong to one of only a few general categories. These general problems have already been solved thousands of times - and are well-documented in a couple of “design patterns”. Step back from the problem in front of you. And you’ll be able to apply a proven best practice instead of reinventing the wheel.
Keep in mind: Applying design patterns shouldn’t become a religion. Sometimes, all that’s really necessary are a few lines of simple code…
Read more: A classic design patterns book, A beginner's guide to design patterns on net.tutsplus.com
Become a Better Programmer: 5 Essential Methods at a Glance--reference的更多相关文章
- 5.Primitive, Reference, and Value Types
1.Programming Language Primitive Types primitive types:Any data types the compiler directly supports ...
- 译:Spring框架参考文档之IoC容器(未完成)
6. IoC容器 6.1 Spring IoC容器和bean介绍 这一章节介绍了Spring框架的控制反转(IoC)实现的原理.IoC也被称作依赖注入(DI).It is a process wher ...
- 编程概念--使用async和await的异步编程
Asynchronous Programming with Async and Await You can avoid performance bottlenecks and enhance the ...
- stall and flow separation on airfoil or blade
stall stall and flow separation Table of Contents 1. Stall and flow separation 1.1. Separation of Bo ...
- 8 Mistakes to Avoid while Using RxSwift. Part 1
Part 1: not disposing a subscription Judging by the number of talks, articles and discussions relate ...
- PatentTips - Object-oriented processor architecture and operating method
BACKGROUND OF THE INVENTION The present invention relates to processors and computer systems. More s ...
- Apple官文中的KVO 与 FBKVOController
前言 本文将主要介绍以下内容: 详细列出Apple官文中KVO的注意事项(Apple KVO相关的引用皆摘自Apple官文). 介绍FBKVOController,以及它如何避免系统提供的KVO坑点. ...
- Using the Repository and Unit Of Work Pattern in .net core
A typical software application will invariably need to access some kind of data store in order to ca ...
- (转载)spring mvc DispatcherServlet详解之一---处理请求深入解析
要深入理解spring mvc的工作流程,就需要先了解spring mvc的架构: 从上图可以看到 前端控制器DispatcherServlet在其中起着主导作用,理解了DispatcherServl ...
随机推荐
- c# 将json转换为DataTable
/// <summary> /// 将json转换为DataTable /// </summary> /// <param name="strJson" ...
- .Net Core 项目区域请求设置
.net core 和asp.net MVC区域请求有个区别,这里重点记录一下 asp.net MVC 区域请求直接是/区域名称/控制名称/方法名称,其他不需要设置任何东西,而Core 项目这样请求路 ...
- Persistent and Transient Data Structures in Clojure
此文已由作者张佃鹏授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近在项目中用到了Transient数据结构,使用该数据结构对程序执行效率会有一定的提高.刚刚接触Trans ...
- Android手机中怎么样在没root的情况下 修改 hosts 文件
工具 链接:https://pan.baidu.com/s/1AENluDCQ-2qYDPcE5K6l8g 密码:t7eu http://bbs.360.cn/forum.php?mod=view ...
- CF1137E. Train Car Selection(可删堆)
题面 三个操作 1.在当前数列最左端加入\(k\)个初始为\(0\)的数 2.在当前数列最右端加入\(k\)个初始为\(0\)的数 3.将当前数列从左到右第\(i\)个数加上\(b+(i-1)k(b& ...
- JavaWeb应用中初始化Log4j的两种方式
本文主要介绍了普通JavaWeb应用(基于Tomcat)中初始化Log4j的两种方式: 1.通过增加 InitServlet ,设置令其自启动来初始化 Log4j . 2.通过监听器 ServletC ...
- P2561 [AHOI2002]黑白瓷砖
$ \color{#0066ff}{ 题目描述 }$ \(\color{#0066ff}{输入格式}\) 文件中以一行的形式存放一个正整数 n , n ≤ 20 . \(\color{#0066ff} ...
- 谈谈php中抽象类和接口的区别
php中抽象类和接口的区别 1) 概念 面向对象的三大概念:封装,继承,多态 把属性和方法封装起来就是类. 一个类的属性和方法被另外的类复制就是继承,PHP里面的任何类都可以被继承,被继 ...
- 对于Discuz 及PHP的一点个人感受
首先我知道PHP是一种编程语言,PHP这玩意灵活性够了,但总是让人感觉写出来的代码让人如坠五里雾中,一会一个变量,$什么,一会又一个$.对于它是什么类型我有时候结合上下文件,还能找得到,但是有的时候最 ...
- UESTC - 1724 GCD区间求和
依然是神奇的欧拉函数 若GCD(n,i)=k 则GCD(n/k,i/k)=1, 令i/k=x,有GCD(n/k,x)=1, →k*GCD(n/k,x)=1中x的个数 = GCD(n,i)=k的和 范围 ...