Reinvent the Wheel Often
来源:互联网 发布:正交矩阵的充要条件 编辑:程序博客网 时间:2024/05/18 12:43
"Just use something that exists — it's silly to reinvent the wheel..."
Have you ever heard this or some variation thereof? Sure you have! Every developer and student probably hears comments like this frequently. Why though? Why is reinventing the wheel so frowned upon? Because, more often than not, existing code is working code. It has already gone through some sort of quality control, rigorous testing, and is being used successfully. Additionally, the time and effort invested in reinvention are unlikely to pay off as well as using an existing product or code base. Should you bother reinventing the wheel? Why? When?
Perhaps you have seen publications about patterns in software development, or books on software design. These books can be sleepers regardless of how wonderful the information contained in them is. The same way watching a movie about sailing is very different to going sailing, so too is using existing code versus designing your own software from the ground up, testing it, breaking it, repairing it, and improving it along the way.
Reinventing the wheel is not just an exercise in where to place code constructs: It is how to get an intimate knowledge of the inner workings of various components that already exist. Do you know how memory managers work? Virtual paging? Could you implement these yourself? How about double-linked lists? Dynamic array classes? ODBC clients? Could you write a graphical user interface that works like a popular one you know and like? Can you create your own web-browser widgets? Do you know when to write a multiplexed system versus a multi-threaded one? How to decide between a file- or a memory-based database? Most developers simply have never created these types of core software implementations themselves and therefore do not have an intimate knowledge of how they work. The consequence is all these kinds of software are viewed as mysterious black boxes that just work. Understanding only the surface of the water is not enough to reveal the hidden dangers beneath. Not knowing the deeper things in software development will limit your ability to create stellar work.
Reinventing the wheel and getting it wrong is more valuable than nailing it first time. There are lessons learned from trial and error that have an emotional component to them that reading a technical book alone just cannot deliver!
Learned facts and book smarts are crucial, but becoming a great programmer is as much about acquiring experience as it is about collecting facts. Reinventing the wheel is as important to a developer's education and skill as weight lifting is to a body builder.
By Jason P Sage
This work is licensed under a Creative Commons Attribution 3
- Reinvent the Wheel Often
- Reinvent the Wheel Often
- The teachers often s
- The Often Misunderstood GEP Instruction
- Got the wheel for free
- Win32 Series - The Mouse Wheel
- wheel
- Often the free spirited typelouis vuitton Handbags sale
- The social media frequency guide: How often should you post?
- Multilib version problems found. This often means that the root...
- Repeat the Wheel of Deep Neural Networks
- Repeat the Wheel of Deep Neural Networks
- Repeat the Wheel of Deep Neural Networks
- Too often.things you want have the most is the one thing you can't have
- I don't want to be the third wheel.
- 368. Put your shoulder to the wheel. 鼎力相助
- 368. Put your shoulder to the wheel. 鼎力相助
- How to Use the Mouse Wheel Event in HTML5 Pages
- Session处理——Session同步
- Springmvc数据校验返回Json格式
- Read the Humanities
- 减少.net应用程序内存占用的一则实践
- 【ci框架】cookie登陆
- Reinvent the Wheel Often
- 线索二叉树的生成和遍历
- oracle 与 开机启动
- Win7远程桌面连接设置关键点
- Resist the Temptation of the Singleton Pattern
- aop切入点表达式
- php中防止SQL注入的最好方法是什么?
- The Road to Performance Is Littered with Dirty Code Bombs
- Simplicity Comes from Reduction