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 ...
随机推荐
- Java读写配置文件prop.properties
Java读写配置文件prop.properties @Test public void fun() throws IOException{ Properties prop=new Properties ...
- lower_bound下确界
//lower_bound用于找到首个大于等于某个值的元素 #include<algorithm> #include<iostream> using namespace std ...
- 【bzoj4869】[Shoi2017]相逢是问候 线段树+扩展欧拉定理
Description Informatikverbindetdichundmich. 信息将你我连结.B君希望以维护一个长度为n的数组,这个数组的下标为从1到n的正整数.一共有m个操作,可以 分为两 ...
- 洛谷P4015 运输问题(费用流)
传送门 源点向仓库连费用$0$,流量为储量的边,商店向汇点连费用$0$,流量为需求的边,然后仓库向商店连流量$inf$,费用对应的边,跑个费用流即可 //minamoto #include<io ...
- HDU6318-2018ACM暑假多校联合训练2-1010-Swaps and Inversions-树状数组
本题题意是,给你一个长度为n的序列,使用最少的操作把序列转换为从小到大的顺序,并输出操作数*min(x,y) 实质上是算出该序列中有多少逆序对,有归并排序和树状数组两种算法,由于数据之间的差值有点大, ...
- javaweb面试一
1.forward与redirect区别,说一下你知道的状态码,redirect的状态码是多少? 状态码 说明 200 客户端请求成功 302 请求重定向,也是临时跳转,跳转的地址通过Location ...
- 【重要的css属性学习】看了乙醇的文章,统计了几个高star前端框架下,Css属性出现最多的,这里学习记录一下
color background-color display margin-left border-color padding max-width margin-bottom width flex 待 ...
- ubuntu16.04 chromium浏览器无法启动
点击浏览器不能启动,在终端输入: chromium -browser %U 错误如下: [/)] NSS_VersionCheck("3.26") failed. NSS > ...
- CentOS 7 安装中网络设置111
如果在安装过程中需要使用网络,需要启动网卡,默认是DHCP 点击configure进入设置 General 常规设置 Automatically connect to this network whe ...
- I/O设备
I/O(Input/Output)设备是指与计算机进行数据传输的硬件,具体分为字符设备.块设备.网络设备. 字符设备 字符设备(character device),又叫做人机交互设备.用户通过这些设备 ...