Cher's Programming Pages
Introduction
Though this is named programming pages, it's more than just that. Topics covered in this section also include software engineering, tools, processes, quality and metrics.
Miscellaneous
- Brace Styles and Code Conventions
- Due to a recent discussion at my job I've set down and revised and extended my former German wikipedia article on brace styles. Read More...
- Singletons are Evil
- The Singleton design pattern is nowadays seen as an anti pattern. While in the past it has served the nice purpose of making sure that something exists only once, the sole purpose of a singleton has become a show stopper for proper (unit) testing and thus is being declared evil by many architects these days. Read More...
- Cher's Tips and Tricks
- Cher's Quotes from Bad Programmers
Tools
- IntelliJ IDEA
- IntelliJ IDEA probably is the best and most powerful Java IDE. I've compared it to Eclipse and NetBeans. Unlike Eclipse and NetBeans, IntelliJ IDEA is not free but costs some money, e.g. 499 USD. Having used the three of them, Eclipse, NetBeans and IntelliJ IDEA, for more than 2 years now and myself being a downright vi user, I must say that IntelliJ IDEA is definitely worth its money. If you don't want to pay for IntelliJ IDEA because you're working in an open source environment, you should think about applying for an open source license of IntelliJ IDEA. JetBrains, the vendor of IntelliJ IDEA, offer a special free license of IntelliJ IDEA for popular open source projects with a reasonable community. Read More...
- Vim — Programmer's Editor
- Vim is an extremely advanced clone of the popular UNIX editor "vi". Vim provides all features you'd seek for a powerful text editor, especially for programmers. Some features include:
- Syntax highlighting for most languages and text file formats
- Folding
- Keyword search (tags with ctags)
- Regional shell processing (e.g. mark a section of a file, like a list of defines, and pipe it through sort)
- Automatic indention and source formatting
- Extensive completion (keyword, same word, line, filename etc.)