How to Write Comments
Last edited: 2006 January 16
Should I write comments? What is good comment? Is it possible to write comment for a class in 5 minutes? I would discuss these questions. I would be happy if, after reading, you will be thinking that good comments are an important thing to your project success.
I must admit that I hated to write comments. I was finding them boring and unnecessary. And the worse thing is that I was afraid that during my design some of my methods or classes might go away together with my time spent for writing my good comments. So the first thing I would discuss is
Why?
Here is the first reason for comments. Comments can make your design clearer. You could mark the class with its responsibilities using comments. You can check then how much your class respects its responsibilities, and that it don’t do something which is not its responsibility. Moreover, you can check how much your class respects Single Responsibility Principle and make some decisions to improve the design.
But I think that primary reason which can force you to write comments is to make your code understandable for others. The rule is simple. If you will hide your code for forever - nobody is going to know if it is commented or not. As soon as you are going to share your code with some other person - unless you are not writing it all together from the beginning - he or she will be happy to see your class comments.
Of course you could be happy to explain it to everyone personally. But you want to avoid phone calls asking what your class does while you are on vacation.
Updates are here!
Some person recommends to comment hard things. Absolutely.
Many people write comments for themself. Hire them now.
Do you know any other reasons which make you to start writing comments? If yes - I will be happy to include them here. Personally I find an important reason to have a good rest on vacation. So the next question will be -
How?
What is good comment? Should we judge how good the comment is by its word count? Should we have each method commented? I would say we don’t, or else our comments could end up time-consuming for us and being boring for our readers.
Antipattern
Note that OO design tells our class to respect Single Responsibility Principle. Here is where your comment becomes an important design tool. If you find it impossible to name your class’s responsibility with a single combination of verb and noun – it is a good chance your class is taking too much on itself and should be split. One trick here is - use of manages helps.
Antipattern
Ok! Now we know which kind of comments we are going to write. Now the question is
When?
I dislike doing something which will be thrown away. I dislike writing comments which will be thrown away. During my design, I create new classes, play with them, throw them away and create new instead. I would find a way to save my time and write a comment when I have a decent hope my class will remain within the system.
The point to start writing comments is... when the code is ready to be presented for others. This could be the time before commit to a main source repository, or insert your case here. For this time, I have pretty stable class design, and good chance my comments will live long. I am pretty sure with my class’s responsibilities and what classes it will collaborate with. I can spend as much as 2 minutes writing this information as a class comment. Everybody’s happy!
Should I write comments? What is good comment? Is it possible to write comment for a class in 5 minutes? I would discuss these questions. I would be happy if, after reading, you will be thinking that good comments are an important thing to your project success.
I must admit that I hated to write comments. I was finding them boring and unnecessary. And the worse thing is that I was afraid that during my design some of my methods or classes might go away together with my time spent for writing my good comments. So the first thing I would discuss is
Why?
Here is the first reason for comments. Comments can make your design clearer. You could mark the class with its responsibilities using comments. You can check then how much your class respects its responsibilities, and that it don’t do something which is not its responsibility. Moreover, you can check how much your class respects Single Responsibility Principle and make some decisions to improve the design.
But I think that primary reason which can force you to write comments is to make your code understandable for others. The rule is simple. If you will hide your code for forever - nobody is going to know if it is commented or not. As soon as you are going to share your code with some other person - unless you are not writing it all together from the beginning - he or she will be happy to see your class comments.
Of course you could be happy to explain it to everyone personally. But you want to avoid phone calls asking what your class does while you are on vacation.
Updates are here!
Some person recommends to comment hard things. Absolutely.
Many people write comments for themself. Hire them now.
Do you know any other reasons which make you to start writing comments? If yes - I will be happy to include them here. Personally I find an important reason to have a good rest on vacation. So the next question will be -
How?
What is good comment? Should we judge how good the comment is by its word count? Should we have each method commented? I would say we don’t, or else our comments could end up time-consuming for us and being boring for our readers.
Antipattern
It’s so easy to mark a class with extended description of its name. We end up with class TransactionManager marked as Represents a Transaction Manager. Would this be descriptive enough? No sense to include this in comments at all. I can read a class name by my own. I would be more happy to see TransactionManager marked as Manages (creates, disposes and provides) transactions.Personally I find very useful an old proven approach for class comments. CRC cards was used for a long time (since at least 1989) and hugely adopted with modern techniques like Agile Development (see http://martinfowler.com/articles/designDead.html and http://www.agilemodeling.com/essays/agileModelingXP.htm). We can take two good things from there and supply our comments with: class responsibilities, and class names our class is planned to communicate with.
Note that OO design tells our class to respect Single Responsibility Principle. Here is where your comment becomes an important design tool. If you find it impossible to name your class’s responsibility with a single combination of verb and noun – it is a good chance your class is taking too much on itself and should be split. One trick here is - use of manages helps.
Antipattern
Someone might want to describe here how other classes are going to communicate with our class. I would move this information into corresponding class.We should end up with class comments which are pretty short but descriptive enough. And what about method comments? No clear recommendation for now. I would recommend to name a method as much descriptive as possible. It could make its comment unnecessary. I would mention some exception situations however. For example, I would describe what the method does if no item with given key available. Will it return null? Will it throw an exception?
Ok! Now we know which kind of comments we are going to write. Now the question is
When?
I dislike doing something which will be thrown away. I dislike writing comments which will be thrown away. During my design, I create new classes, play with them, throw them away and create new instead. I would find a way to save my time and write a comment when I have a decent hope my class will remain within the system.
The point to start writing comments is... when the code is ready to be presented for others. This could be the time before commit to a main source repository, or insert your case here. For this time, I have pretty stable class design, and good chance my comments will live long. I am pretty sure with my class’s responsibilities and what classes it will collaborate with. I can spend as much as 2 minutes writing this information as a class comment. Everybody’s happy!

190 Comments:
Interesting entry. Feel free to comment on my blog when you have the time. I would like to get to know you more. Such as schooling, family, age, where you live, religion, etc.
Interesting post. Somehow some developers don't get it. I am old school and the question of commenting your code has been around a long time. As a manager of developers on many large and small projects I would not tolerate undocumented code. The developer is not writing code for himself (assuming he is in the employ of a company,) he is getting paid to do a job. If the developer can not spend time to document his code (instinctively) then I would not expect him to last very long on a project.
Could you imagine in todays "open source" culture that an application's code not be documented? This would set our industry back 30 years.
Open source project will definitely have a good advantage if its code will be well understandable. In this article, I tried to show several problems which stops from writing comments, and how to deal with them.
Beginning coders comment nothing;
Novice coders comment the obvious;
Experienced coders comment the reason for the code;
Master coders comment the reason for the code not used
Good thoughts on comments. As an embedded developer attempting at times to use open source stuff I would plead with the community to please comment your routines. In the embedded world a lot of times we don't have a POSIX environment or sometimes even an OS. Trying to adapt open source stuff becomes a challenge because we cannot just configure make... We have to re-write the code to adapt it to our environment. The greatist help here is comments on each of the routines (methods) so we can see the gazinta's and gosouta's what they do and what the routine does. I've given up on a number of interesting open source tools or libraries because they don't do this and I don't have the time to decode cryptic routine parameters and try to guess what the routine does and what the output might be.
Anyway, document your stuff and your project might just end up in every parking meter on the planet...
You say But I think that primary reason which can force you to write comments is to make your code understandable for others.
Actually I think the primary reason is to make your code understandable to yourself and actually I tend to write comments before I write the code itself...
I would disagree that the primary reason for commenting is to make your code understandable to others . Yes, it is a nice (and necessary) byproduct, but the primary reason Is that the act of documenting will improve the quality of the code you write. This sounds strange, but it's much harder to document poorly written/designed code. Thus, you become much more aware of the inconsistencies and design flaws, and tend to avoid them.
More from me on this subject here
I like milk
I'm an old time assembly language programmer (I do hardware) and comments are extremely important. The first comments are documentation that I gather from elsewhere. Then the steps to do something manually. Then I describe the routine, function, whatever. My 'main' routine usually has few comments as the names are self describing (tend to be high level) such as get_cli_options() or setup_daemon() (for those that use C). The actual comments start in the sub files where I've put together an API. The further down you get the more into the bits you get.
"But I think that primary reason which can force you to write comments is to make your code understandable for others"...I agree with Oscaruzzo...I AM the Other...6 months from now I may have to revisit my own code. No ones mind is perfect and cannot remember everything it ever wrote. Comments are SELF-reminders.
"Comments can make your design more clear." You mean, "clearer"?
ewww... I forgot what I wanna comment :P
Thanks for your comments and grammar fixes everyone. Definitely one of the important things comments can give you is clearer vision of your design! You might even trigger design changes as long as you write comments.
Hi.
Interesting read, but a few comments.
Disclaimer: I am a teacher in embedded systems/robotics/computer architecture/...
When I teach programming, an integral part is spend on how to comment code. It is not only important, as you said, to explain code to others. It is also important to keep remembering what you actually did with the code you wrote several months after you wrote it and after you have moved on to a different project.
Secondly writing your comments before you write code (as some other poster here mentioned) can lead to a clearer/more structured implementation of your routine/method/class whatever. It can help you to think about how to write the code the best way possible (i.e. design code, not 'hack it together'*). A clear overview of the arguments a function will take and what it returns can lead to a cleaner implementation of the code to do the actual work.
If not, write comments as soon as some part is 'finnished', whatever that means.
And by the way, keeping your comments up to date should be a part of the code maintenance process.
In the embedded world especially (as again someone mentioned here) it is very good practise, and luckily very common, to see very good code commenting. To see an excellent example, get your hands on the uC/OS-II source written by Jean J. Labrosse.
Lastly, it is my opinion that well documented/commented code looks better than non-commented code.
* Use of the word 'hack' due to better alternative, but you get the point, no need to point it out to me how wrong it is for me to use the word in this context ;-)
P.S. English is not my native language, so sue me for my spelling/grammar mistakes. I will reply to your allegations in my native Flemish, or even the language of the country where I am now, Finnish :-)
Best regards and happy holidays,
Johan
A programmer doesn't truly learn the importance of comments until he has enough experience under his belt to have been in the horrible situation of staring at code he wrote years ago... and not understanding a thing!
I like writing comments. Kind of the icing on the cake.
I wish my development environment would support fancy typography in the comments: fonts, bold, tables, etc.
The only effective way I have convinced someone to comment their own code is to present them with a lot of code with which they must work that is poorly commented. After an hour or so of using their editors find tool they have been convinced that good comments are the path to nirvana.
I comment before I write the code, the comment describing the contract for what I'm about to write. It's good to comment on preconditions and post conditions.
Within the code I find it good to comment on why some things are done the way they are, or if its complex refer the reader to some reference or design material. A block comment called "Calculate the determinate of the matrix" can be quite nice. Not had much need for that recently as more and more of the complex stuff is done in libraries nowadays.
A lot of code nowadays can be autocreated. If the generator were to pass comments from the source definition into what it creates then it would help with things like intellisense. Unfortunately the one I'm using at the moment doesn't.
Combine this with a tool that complains bitterly if something is missing a comment and you get problems - compiler output with hundreds of warnings that if you tried to fix, your work would be overwritten next time the code generator runs on next compile. All these warnings hide the really important "variable used when not initialised" that you really need to see.
Should you comment a method that implements an interface or and abstract method if the comment on the interface or abstract method's comment is enough?
Javadoc and Eclipse are quite sensible here. Eclipse generates a non-Javadoc comment, and Javadoc uses the interface's comment.
NDoc on the other hand insists on a comment on the implementation which is a real pain as keeping all those identical comments in sync is hard - and typing "Look at interface foo" is pointless.
Ehh... all of that sounds rather complicated and isn't what I've experienced.
Remember, comments are not documentation. Writing a few comments here and there or hundreds of them won't necessarily make your code more understandable.
As a rule of thumb, use comments to excuse or blame. If you're finding other reasons for needing comments, I'd say there's a good chance your documentation isn't sufficient or your code sucks and is too cryptic for another to grasp -- in which case comments probably shouldn't be your largest concern.
Last thing I had to do in my last project was to complete and translate to Spanish all comments/javadoc. I even had to document other's code. During that process I discovered that some comments were a little difficult to write, like the ideas didn't fit quite naturally. Then I realized that the code wasn't as good and simple as it should be.
If I refactored the code in a way that the comments and docs were simpler that would mean that the code would represents the ideas behind it in a more elegant manner. And I think it will represent better code.
If you cannot easily explain what you are doing...something is wrong (either with your doings or you) ;).
Totally agree with neil cherry: Assembler without comments it is worhtless ( or a good trick to keep your job).
The main reason to comment is to understand the reason for writting the code. If you can't come up with clear comment for an API - don't write it. It means you don't understand the task at hand. So - originally write comments that make you better understand design of the API. Add comments latter to expand original so other will understand you.
I agree with most of what you said, but one thing to take into consideration is the time when you should right your comments. I tend to write mine as I code or else sometimes when I come back through a larger class I can not remember the exact reason I did everything I did... this also makes debugging a lot easier.
You forgot the most important reason of all: I write comments so I will understand what I've done (and what the code does).
In one or two months from now, you will have no idea what the code does.
Don't comment your code if you wana keep your job ;).
I have been in the telecom software industry for 16 years designing and maintaining software applications with millions of lines of code and a 10-20 year lifespan. I have worked through the transition from procedural to data abstraction, and have personally struggled through all the challenges. Good comments increase quality of applications and the productivity of developers for applications with long life spans.
One interesting characteristic of OO development is that the design is performed from a static "data" perspective, but diagnosis is done from a dynamic "functional" perspective. In my experience, it is the ability of an individual to translate between the two modes that determines their effectiveness.
While this translation is trivial in some applications like a washing machine or ATM, where the classes implicitly represent functionality(e.g. card reader). It presents a formidable challenge in transaction based systems where classes represent a tiny piece in a heirachy of logical abstractions with no implicit association with external functionality or context within the system.
In conclusion, good comments should mitigate the risks inherent to an OO methodology. This can be achieved by writing comments that provide the reader with what purpose the class serves in terms of the system context as well as assist them on the translation between procedural and data centric analysis.
Generally good advice, thanks. This article does however, point out that most engineers are not good writers. Learn some grammar people!
As an aspiring programmer (C#), I find it is important to get in the habit of commenting code.
I know the importance of this as a reslut of the many aquisitions in which our current code (VB) was ridiculed and scrutinized for lack of comments.
BTW - I am learning programming for fun - I am networking geek by trade! :D
"Don't comment your code if you wana keep your job"....in seven years of professional coding, I've seen a lot of people attempt this strategy, and every one of them eventually got fired.
At some point, management decides that the pain you will continue to inflict in the future exceeds the pain of transition. Also, bear in mind that at some point, your application starts to become obsolete, and nobody will want to give any new projects to you.
Meanwhile, people who write clean, well-commented code keep their jobs because they make everybody happy.
btw, a wonderful example of well-commented code is the source of SQLite.
This is actually 1/3 of a research paper I am finishing now. We compared very successful open source projects to student projects. We found a very strong consistency of both length of comments and how often comments occur across all six open source projects we analyzed. Using this data we looked at student projects and in many respects the student projects comments are much shorter and not as frequent. And as a side note, we analyzed comments, global variables, function calls, and out of everything commenting was definetly the most consistent across all of the projects
For my money the best reason to comment your work is not for others, but for myself. When I look back at something I did more than a month or so ago, it might as well have been done by someone else. My comments are often the only clue to what I was doing or thinking at the time.
As Oscarruzzo said, I comment first, then use the comments to help me with my structure.
Let's cut to the chase - comments should not explain CODE to other, but establish the CODE's structure and define operational stages. Attempting a deeper explaination means spending valuable time in comment management during debug sessions/trial code development. Not spending the time to manage eloquent comments leads to distrust and disuse.
Use block comments for File/Function headers and establish Name, Purpose/Responsibility, Developer, Date. Make some attempt at I/O, but this usually fail over time.
Use code separation comments to document the different stages within a function - limit to 7 but preferably 3 sets per function.
ONLY use inline comments to establish a correlation between data elements. Explaining data elements is also OK but not imperative.
I also like milk
I tend to comment before writing any code: since I mostly write either shell scripts or code for dynamic web pages (PHP is my preferred languate), I generally write out most of the comments as a layout. For instance:
# Section 1 -- check to see if the command line
# arguments make sense.
# Section 2 -- deal with the -h or --help flags.
And so on. In a lot of cases, if I try something and it turns out not to work, I'll comment it out, then add an explanation. ("This turns out not to work because I'm an idiot. I can't insert this value into the DB because it's a string being inserted into a field that has type int! I rewrote this below to do more checking to see whether the data-type is correct").
That way, if I'm trying to do something similar in the future, or if I look at the code and wonder why I wrote that routine in a way that looks more convoluted than it needs to be, I can see my reasoning and why I didn't do it the simple way.
Code says HOW something is being done. Comments say WHAT is being done, and WHY it is being done. Comments and code illuminate the problem space and the solution space, respectively, and obviously their perspectives are different, which provides a huge help during debugging and maintenance.
Some advice from a grizzled systems engineer.
Avoid comments.
If a particular piece of code needs comments, first try to reorganize the code lexically and syntactically: apply proper formatting and whitespace and use sensible variable names. It should be a lot more readable now.
Still not immediately clear what the code is doing? Then reorganize your code structurally: move loops and if/else blocks into separate functions, add descriptively named variables to hold the results from complex expressions, strive to replace complex if/else and switch/case blocks by input->action mappings.
If that still doesn't quite work, reorganize your code architecturally: scrutinize the data flow, design a sane API with sensible objects method names. If necessary, go back to the client and verify that you actually understand the problem.
Finally if the code is still not self-explanatory, take all the reasoning that went into the reorganization effort, and use that as a huge big comment block.
Two things:
First, comments are useful even if you are hiding your code forever. I can't tell you how often I've come back to an old piece of code, intended only for my own use, and been confounded by its obscurity or pleased to see an explanation in a comment. It makes a difference. It's also a good way to force you to think about what you're doing before you do it. (Even better are languages that allow you to express some of these things in the language itself, so that they are additionally checked by the compiler!)
Two: I'm surprised you didn't explicitly mention pre- and post-conditions, since this has been known for years. When documenting a function, it's critical to state precisely the conditions under which it will work, what it does, and what state of the world it guarantees after being executed. Being specific here helps for the person who wants to call your function, but is even more important for blame assignment: when the program goes wrong, it's important to be able to figure out WHY. Is it the caller or callee? Being able to see that a function is called without its preconditions, for instance, would blame the caller. Seeing that the function doesn't meet its stated specification in a corner case would blame the function itself.
I tend to use a lot of comments. Comments not only help you figure out what's going on, but if you are keeping your code organized, then you can use comments to find your way around the code.
Face it - Most IDE/Code editors have syntax highlighting... It goes a lot easier finding a big green comment saying "// interface Drawing starts here" than it does looking through code which is poorly sectioned off. Object Oriented design has done much to alleviate this need, but the need still exists.
Then there's TODO Comments... After you've flow-charted something, or designed something big in UML, etc.... you can place TODO comments to outline the functionality you need to follow in code. Following your design documentation ensures that your code will fit in with everyone else's bit of code.
And, a deleted comment in a deleted code block was still useful. I don't know how many times I've written a comment for what I'm about to do and realized that "This isn't going to work the way it is written". Comments can help you find flaws in your design documentation.
You ask, "Do you know any other reasons which make you to start writing comments? If yes - I will be happy to include them here."
When I code, one thing that always triggers a comment in my code is "did I get stuck?". As an experienced programmer, I don't get stuck on the easy stuff. e.g. I can read API docs and if its in there, I don't get stuck. So no comments. Go read the API.
But if I find a bug in the API docs, or if I have to cross reference some arcane document, then the comment will include enough info to reconstruct the document chain or ideas which are necessary to understand why for example an index starts with -1 instead of 0 (there is a bug in the offset algorithm which we don't own which for now adds one to the start index... who knows why, but it happens)
Anyway. That's it. If you have to spend a lot of time getting past some coding aspect of things, I always document the "aha!" or the insight which would have eliminated the need to spend all the time researching at th time.
I can feel your 'pain' regarding comments. When programming anything (even XHTML, CSS, DHTML) I provide comments to most things.
I tend to discriminate against small comments, and most of the time only comment my functions and what they do.
Sometimes if the mood strikes me I comment where they are called if it seems vague. Great post!
Due to the pace at which we must develop, and our coding style which is very clean and self-descriptive, we rarely document our code. We're dealing with PHP using some high powered libraries I developed (which ARE commented.) Most of the scripts are short and sweet, and their content is enough documentation. This is an issue that we battle over often. I say, for posterity, we must document... and my boss says that's fine, but the deadlines we face make it impossible. We do, however, comment whenever possible... it's just that it usually turns out to be less than 10% of what my professor in college insisted we do.
Honestly, I never have any problems reading code without comments. I read code just like I read English, so most of the time I just skip reading the comments anyways because the code itself gives a more complete description.
Comments are good if not essential for more n00bish people though.
And yes, I've been involved in MASSIVE enterprise projects that have spanned over 5 years of development, upgrades, migration, and maintenance, and I've never struggled because of lacking comments.
Kinda a moot issue. It's all about personal style and employment requirements. Here, it's kinda the opposite of what you'd expect. The developers suggesting more time to do it "right", but the higher ups saying, "too bad, just get it don ASAP and move on." Some companies have a person whose sole purpose is to comment code and document its useage.
I do love looking back in my code from 4-5 years ago and reading a section that says something like, "OMG HACK!" or "Redo this later" -- it never gets fixed when you're an internal solutions developer ;-)
-@
Why another reason is because I need to recall me what the code was written for. So comments are not only util for other people, but also for me self. It's pretty much appreciable to read 1 or 2 lines unlike some lines from the code.
code should evolve from comments, as shown by OOD (object oriented design) specs. read:
http://www.cs.uwc.ac.za/77.1.html
if you have adequate stub code and algorithm descriptions you don't still need to add comments - can simply write the code around the descriptions.
seems "more" logical.
@grizzled: If you are commenting about how a particular routine works, I agree, it's redundant. But a good comment tells how the routine fits into the larger structure, and no amount of code reorganization is going to do that for you. Download the SQLite sourcecode, and ask yourself whether it would really be as easy to understand what's going on without the comments.
Good post. I generally only program in my free time but my professors at college used to require us to have comments or we ran the risk of failing the project.
In lieu of that I usually comment everything to some extent. Functions get commented more, because there is more to explain; while 'calls' usually only get a couple words if that.
I find myself often commenting my CSS,XHTML, and DHTML as well, even though some would say it's not all too necessary.
comments are for the weak minded, a true hacker will just read the source and compile it in his brain. besides its usually more fun to rewrite things after a few years anyway.
My feeling is that the best style for comments is a paragraph at the top of a short block of code (say a page) that clearly describes the functionality of the code. I don't like having comments mixed in with code.
The design (descriptive models etc) and following that, the implementation should "speak" the obvious language to anyone who reads the code. The developer should know exactly what the class does before he/she has a first glance at the source code. If I need to read code and embedded comments to understand what a class' responsibility is, then your design is fairly pedestrian if not entirely pathetic. I apoligise if I sound supercilious, but bad design / architecture is almost entirely the cause for 95% of the used/unused software littering the sidewalks.
This comment has been removed by a blog administrator.
It is possible to write your code without using comments.
I have found that using proper names for variables and methods along with having the each method properly refactored works the best.
This also enables you to see the abstract in your code that allows you to properly move towards using patterns in your code.
My Guidelines
* If you feel the need to write a comment - refactor your code so the comment becomes useless.
* Comments lie over time
Adopting a commenting style like javadoc has other advantages. It works with doxygen and enhances the contextual help in editors like Slick Edit( including hyperlinks and fancy formating ).
Being a lazy programmer I comment only when I see that the time spent writing the comment is less that the time I (or someone else) would spend trying to understand the code.
This is the only rule, and it works for me.
How to write unmaintainable code
Comments are there to tell the reader the intent of the code. All that reading the code itself can tell you is what the code actually does. One generally would have no reason to read the code unless there was some discrepancy between the intent and the action; having the two detailed in the same place is A Good Thing [tm].
Consider this article as code. What lies 'between the lines' is open to interprtation. Note all of the comments on this article/code! I now understand the orginal article better. How a class/function works should NOT have to be inferred. Without comments, inferences are drawn and errors introduced in the main program flow - the first step towards a debugging nightmare. Think of commenting, whether separate and distinct or part of a naming convention, the first line of defense against debugging hell. Unless you like to debug, then I think you need therapy - or you need to become a therapist. The last thing I want to do is re-learn why I wrote a class/function in the first place by having to re-trace the logic through it because there are no comments! Kinda defeats some of the advantages of OO programming. Comments are no less important to the language you are using than it's syntax.
# inherited by class MySanity which extends class LifeSpan
$timeCommenting = $timeDebugging/2;
A QA point...
I seriously want to throttle my developers who don't comment their code. I have the opportunity to look at their code sometimes, and not being an experienced Delphi developer, I need occaisional direction as to where the code is going or what it's supposed to do. The comments come in handy when testing; I know what I'm supposed to be testing, and if commented correctly, what changed without resorting to a diff program. Very handy.
Comments are for your own good and yes, they are needed for others to understand what your code does. Comments should be written before any code is written. Think of it as an outline. First do this... Next do this... Last do this... Writing comments first will allow you to gather your thoughts and convey them clearly through code. Any one that does not believe that spending atleast some of your time to develop sound comments on the front end will save you loads of time on the backend simply has not worked on a large project. Just my 2 cents.
Everyone use comments...
-jmm
Oh man, I sooooo needed this article! I'm putting together the code standard for our department and the main reason for the standard is to get one developer to comment!
I sent this quote on to my fellow developers:
"Richard C Haven said...
Beginning coders comment nothing;
Novice coders comment the obvious;
Experienced coders comment the reason for the code;
Master coders comment the reason for the code not used"
It seems that there may actually be reasons for not commenting (e.g. language, IDE, 133+n355, etc.) and I'd be interested in encountering a situation where commenting didn't help.
I've been employed as a coder for a little while and for me trying to be 133+ has just lost its novelty. I'm not a compiler and the stress of deadlines and the frustration of absolutely retarded code takes all the fun out of being able to read code without comments. Yes, I could read your code, but I don't want to: I want to jump in your code, find out how to fix it, work with it, whatever, then "mark" my territory with a comment and run away, forgetting I ever had to touch your dirty code.
I'd like to add some reasons for commenting that I don't think have been mentioned:
- you can help others program better by telling them why you did what you did (there are always people more junior than you)
- you can make yourself laugh months and years down the road will silly/sarcastic/rude comments (work should be fun! Too bad it's so much work). Throw in some ficticious variable comments in the comment header and see if anyone notices (FurryWoodlandCreature for instance). Adding quotes is fun too. - when working on multiple projects and fixing bugs across projects it saves "task switching" time: the time it takes to "get out" of one project and "get in" another. I hate spending an hour refreshing my memory on what a coworker's complicated uncommented code does. For me, I like to know why the original developer did what they did so that I can glean business rules, gotchas and limitations from the code.
- Finally, some coders just suck. Therefor if I think someone's code sucks then someone else probably thinks the same of me. So if I'm longing for some comments from them (the crappy coders) then they (the better coders) might be wishing for some insight from me.
Two of the easiest to read chunks of code I've ever encountered were essentially uncommented. One, the 1980s BSD version of tar(1) was around 750 lines. Outside of the odd argv parsing, it was very straight forward.
The other was pretty complicated. It included network server code and supported asynchronous I/O to multiple simultaneous channels, in an era when that was a new thing.
My metric on ease of reading these codes was simply time. Reading was quicker because there was less to read.
If the code doesn't match the comments, chances are both are wrong.
All this said, this isn't the style I use. My style hasn't changed significantly since the mid 70s.
I disagree that the comments are not documentation. The entire source code is documentation, comments and all. About half the time, its all I get.
Its annoying to get block comments like:
# Name:
# Description:
# Change Log:
with nothing filled in. If they bothered to paste in the comment block, why didn't they bother to fill it in?
learned discipline on ada? my college forced that too. florida tech in melbourne FL. where was your college?
comments are used to describe the code....
just make sure they describe what the code actually does, not what the code -should be doing-... :-)
Being primarily an OCaml coder (the link is there just in case you've never heard of the language, not as spam...), I find it extraordinarily helpful to read and comment the interfaces to modules before ever coding anything. It makes sure I've thought through my code before I start 'hacking away'.
Also, as it has been pointed out already, comments do not suffice for documentation, contrary to what JavaDoc, Doxygen, OCamlDoc and the rest would like to convince you. Design/Implementation docs and a manual are critical to any serious software.
An very competant and seasoned programming collegue *never* comments his code, the reason he gives is "it was hard to write, it should be hard to read". Strangely, his code is actually quite easy to understand...
Go figure.
I like how when I look at the word "Antipattern" and hit my page down key the next "Antipattern" takes its place ofset by just a few pixels.
I've never coded professionally, so I don't really have anything of substance to say. Informative, though. Great job.
In my last job, I was forced by management (and later became the enforcer, when I became management) to overcomment the hell out of every single element in the source file. When I say "every single element", this includes every single closing brace, to indicate which construct it was intended to close.
Running a source analysis tool, the result often ran about 60% comments, 40% code. I look back on that job now, thinking two things:
1. Whoever invented syntax highlighting has a permanent spot in my "best friends for life" book. [This was the ONLY way to see through the clutter.]
2. How could top management have developed such an unhealthy neurotic obsession with commenting?
When the company offshored to India, the neurotic commenting standard plus software engineers for whom English was a 2nd or 3rd language really became a fiasco.
I agree that comments are a necessity, but the take away is this: Mae West was wrong; too much of a good thing is NOT that great.
Richard C Haven said...
Beginning coders comment nothing;
Novice coders comment the obvious;
Experienced coders comment the reason for the code;
Master coders comment the reason for the code not used
I have to say, this is one of the best summary I have ever read about how code is actually documented, and hereby downgrade myself to "Experienced Coder".
Good code should be self-documenting.
This phrase is so true, yet often misused by novinces to justify not commenting their bad/poor/aweful/terrible/noobish code.
Experienced coders comment the reason for the code;
Master coders comment the reason for the code not used
Comments should not be a walk thru of how the code works and execute, as it should be self-explanatory if WELL WRITTEN. If you comment like this, you need to maintain your comments like your code, which often is not done and pretty much useless and verbose.
This does not mean you don't comment. You still need to comment certain design/architecture decisions that are not immediatly clear, why certain things are not done in the usual accepted way etc.
Thanks for the thoughtful post on comments.
I guess I'm really old school. I can't fathom the amount of discussion in the world about whether or not to comment code. Its like a discussion about whether or not you should put your car keys in the same place each evening when you get home. In some sense it is up to you. Do it if you want, and skip it if you don't. BUT if you don't do it, chances are you're going to waste a lot of time looking for the keys -- you're human. If you share the car with others, even more so (problem goes like N^2 if you share w/ N people). If you drive a car for a living, and toss the keys randomly, your stealing from your company. Same for code. Isn't it obvious?
Now, the use of classes is less obvious to me. Again, I'm really old school.
PS: I kind of enjoy the pun of adding a comment to an entry about commenting.
I agree with the need to comment code.
What people haven't talked about is why so many people hate commenting.
When I was in school, and we had to comment all of the code that we turned in, I'd point to "Hello World" and ask what the hell I should comment.
Of course, when I was an entry level software developer and had to try to decipher a three year old script made on the fly (that was never intended to still be in use), I really wished for comments (even though it was pretty simple to the guy who made it).
The question is what level of complexity requires a comment?
Summary: Write comments on the WHY. Let the code explains the WHAT by itself.
Very good article...
Anywhere you have a class with the name "Manager" it should be a good indication you have an antipattern on your hands.
personally, I think it all comes down the the Single Responsibility Principle.
Comments are needed and most used when SRP is violated. The "how" the "what" and the "why" is all munged together, so its hard to read.
So before you write your comments, go back thru your code, and see if you can describe what each method does with a single verb & noun. if you can't, refactor until you can. Then ask if a comment is needed. Most of the time, you'll find a comment isn't needed. If you do, refactor again.
If you're worried about whether or not the code is doing its job, check your tests (JUnit, NUnit, xUnit, whatever), and make sure its doing what it is supposed to do! If it doesn't have a test, WRITE ONE!
If you're spending time writing comments before code, write the same thing in a test (NUnit, JUnit, etc). Then you can verify the code does exactly what it is supposed to.
I think things such as Javadoc are tedious at best... however essential if working in an IDE with several other dev's.
Ive been coding for over 10 years, and I comment as I code within the function, and then write a function descriptor when Ive finished the function.
Slightly off topic.. but function and variable naming is just as important as commenting
"The point to start writing comments is... when the code is ready to be presented for others."
Shouldn't that be "write the comments before you write the code?"
So we got two extreme opinions here. One is that good code is self-documenting and don't need comments. Another extreme is to comment before coding.
What's best for you?
The reason you write comments is the same reason you should teach your craft at some point in your career--you cannot claim mastery unless you can explain it (and clearly) to another.
The biggest disadvantage of comments in code is that tools can't warn you when they become outdated and incorrect. Misleading comments suck.
I've been using a homebrew system for a while that addresses this issue by making version control software aware of comments. This allows me to gauge the age of a comment when I read it as well as scan later commits for anything that might break it. Check out a brief writeup on this system
here.
There is a load of cobblers written about what is a 'good' comment, and what is worthless.
ANY comment in code is a good comment. I couldn't care less if it is stating the obvious, I'm just pleased to see it. I'm just away from staring at 1400 lines of someone elses code. It's beatifully written, neat and indented correctly, long meaningful variable names, BUT no comments, and I haven't a clue what it is doing or why it is doing it.
It is next to worthless
As far as I'm concerned, comments are part of the code, since they give context to what is being done. Anything that helps reinforce the idea of the item adds to the reality of it. Be concise with your words and suddenly you have code which is easy to maintain. Cheers.
good blog :)
view my blog: my blog
thanks.
Must read blog for a beginner who starts blog commenting like me. Thanks:)
My name is Katrin, me of 12 years. I have a friend my dog. His name is Tobby. He breeds Saint Bernard. We have found him when to me there were 8 years. Who that has thrown out him at road, he did not breathe almost. We left him. And he has remained to live at us, he my friend :-). But recently to him it became bad, Tobby has ceased to eat, drink. The daddy has led him to the doctor. When they have returned the daddy has told to me that at Tobby tumour a brain and it is necessary to us him to lull. The daddy has remained without work and cannot pay operation. Please help to rescue to me my friend. If you can please send 0,50 $ on mine webmoney purse Z100071278687. Please help
My name is Katrin, me of 12 years. I have a friend my dog. His name is Tobby. He breeds Saint Bernard. We have found him when to me there were 8 years. Who that has thrown out him at road, he did not breathe almost. We left him. And he has remained to live at us, he my friend :-). But recently to him it became bad, Tobby has ceased to eat, drink. The daddy has led him to the doctor. When they have returned the daddy has told to me that at Tobby tumour a brain and it is necessary to us him to lull. The daddy has remained without work and cannot pay operation. Please help to rescue to me my friend. If you can please send 0,50 $ on mine webmoney purse Z100071278687. Please help
everyone talks by another sides,really my brain is mixed huh,anybody there to tell me clear all but as easyl?
Dear i like your website very much . Because your are share the knowledge about computer comment. Dear i want ask some thing about comment like if your sharing comment through blog but i want to share comment through my websites. Dear my little description is here:-website design indiaThewebsol is an India based professional Website Designing company.Thewebsol offering Web development, Ecommere, CMS, Graphic Designing, 3D Modeling, Flash Designing, Content Writing, SEO, Link Building and more.
.
Hey guys please help me about this feature. Dear any simple method by which i share comment pages through my website.Dear my email id webmaster.thewebsol@gmail.com.
I am waiting for your positive response.
Thanks and Best Regards
Tauqeer aziz
sesli chatsesli sohbetseslichatseslisohbet
ベッド いびき スプリング 弁慶 バロック カヌー 蝋燭 クリップ 地価 たらこ 和室 機械 ハンバーガー 能面 洗剤 悪魔 風車 タイマー マリモ 帯 中国語 食器 ペット ドライクリーニング 算命学 英語 豆腐 河童 座禅 うちわ カスタムカー ダム マンモス カットソー 演劇 クレーム 弁護士 キャミソール ナイキ デザイン タンクトップ 消費者 ゲームセンター 落花生 リズム 地震 年金 料理 ビザ 瞑想
Forgive that I write it to you!!! I had bad conditions, I live in Russia, at me a problem with bank, should 2 160 EURO, I address to those who can help my family, at me two children, 6 years to the girl and the boy of 10 years. The wife does not work, sits with children. I one work, I get wages 345 EURO, from them I give to bank 130 EURO – 43 % annual for the credit, payment of habitation 90 EURO and journey payment in Moscow 68 EURO, we eat on 57 EURO in a month. If who be, will help, who can render the financial help, help please. Got wages 1000 EURO Earlier, now I receive pennies, crisis here did not think that so me will knock down. To the Russians addressed for the help, but nobody has helped. At me last hope of those who lives in other countries, any more I do not know to whom to address for the help. Our state does not help and spits on us as on cattle. If you think that I can deceive, I can send you on an electronic box a bank extract that you have checked up it. To me to deceive not what for, the help if you think is necessary to me simply that I in vain address, forgive me, but I, do not have other exit. If wish to help me if there is at me a hope that I more low I give requisites of bank for transfer. Once again forgive, if I address to you. But me it is bad, it is not enough money, the bank takes away all that I earn.
Here my extract from bank And the bank account http://net-vixoda.narod.ru/price.html
we world of warcraft gold offer last chaos gold and flyff power leveling and flyff moneyand 2moons power leveling or2moons dil go to cheap aoc gold
If on the other hand, you need a detailed manual, the instructions are there for you to access.
...........................................................
...
you are not our mother. She has a soft, pleasant voice, but your voice is rough, you are the wolf.
...................................................
......
who has started the last 12 games in the absence of Yi Jianlian. "I know I've improved a ton defensively this season."
...................................................
.......
dxlive 素人動画ナビ エロックス アダルト動画 アクアリウムTV エッチ動画エロミックス エロ動画マニア このメス豚がぁぁぁ ジャパビューティー 無修正動画DX のぞきザムライ エロックス ジャパン 天然娘 アダルト無修正 ドラムカン
I could understand each and every point of this article.
Thanks for this piece of well written article.
Thanks
Joshau
http://www.indiaforex.com
http://www.forexsoftware-free.info
http://www.forextradingsystemfree.info
I personally hate to waste a lot of time just only to understand a long piece of code that could be easily commented.
I often have to edit or work on long pieces of code, that should have commented to make extensions (and obviously bug fixing) more easier.
I think the point is that a lot of coders, when doing their job, don't think about who will work on that piece of work later, trying to add some features or improving it. Maybe just for matter of time... well, I usually comment all of my work and I do spend a lot of time doing that...
Get back working... :)
Hotel Parma
I think the opposite than the author... if you don't place comments right from the beginning, you'll probably loose the whole project structure.
I place comments right when I start.
sesli chat
sesli sohbet
Thanks admin your article is very good
Follow this link. this is surprise USD $100 for you ^_^
http://apps.facebook.com/paypalwishlist/?ppref=1808958908&ref=nf
Thanks owner
I comment before I write the code, the comment describing the contract for what I'm about to write. It's good to comment on preconditions and post conditions.
Within the code I find it good to comment on why some things are done the way they are, or if its complex refer the reader to some reference or design material. A block comment called "Calculate the determinate of the matrix" can be quite nice. Not had much need for that recently as more and more of the complex stuff is done in libraries nowadays.
A lot of code nowadays can be autocreated. If the generator were to pass comments from the source definition into what it creates then it would help with things like intellisense. Unfortunately the one I'm using at the moment doesn't.
Combine this with a tool that complains bitterly if something is missing a comment and you get problems - compiler output with hundreds of warnings that if you tried to fix, your work would be overwritten next time the code generator runs on next compile. All these warnings hide the really important "variable used when not initialised" that you really need to see.
Should you comment a method that implements an interface or and abstract method if the comment on the interface or abstract method's comment is enough?
Javadoc and Eclipse are quite sensible here. Eclipse generates a non-Javadoc comment, and Javadoc uses the interface's comment.
NDoc on the other hand insists on a comment on the implementation which is a real pain as keeping all those identical comments in sync is hard - and typing "Look at interface foo" is pointless.
Wed Nov 30, 07:07:00 PM EET
sebastian said...
Ehh... all of that sounds rather complicated and isn't what I've experienced.
Remember, comments are not documentation. Writing a few comments here and there or hundreds of them won't necessarily make your code more understandable.
As a rule of thumb, use comments to excuse or blame. If you're finding other reasons for needing comments, I'd say there's a good chance your documentation isn't sufficient or your code sucks and is too cryptic for another to grasp -- in which case comments probably shouldn't be your largest concern. thankss
Thanks admin your article is very good thanksss
atılım otogaz
gaziantep otogaz
Really enjoyed this post. You have a good point.
thanks admin, nice sharing
sesli chat
sesli sohbet
this inforamtion is great. thanks for the help.
I have been visiting various blogs for my Term Papers Writing research. I have found your blog to be quite useful. Keep updating your blog with valuable information... Regards
Gaziantep Web Tasarım
Gaziantep Web Dizayn
Interesting entry. Feel free to comment on my blog when you have the time. I would like to get to know you more. Such as schooling, family, age, where you live, religion, etc.
Thank you for the information your provide.
sesli chat
SesliSohbet
Sesli Sohbet
Sesli Chat
SesliChat siteleri
sesli
sesli chat
thank you very much admin
porno izle
sesli chat
kirkagacpansiyon
seslichat
seslidun
Thanks admin
sesli chat paneli
sesli sohbet paneli
sesli paneli
sesli sohbet panelci
Thanks so much for this! This is exactly what I was looking for bedava chat - sohbet odaları - sohbet - islami chat - sohbet siteleri - mynet sohbet - garanti arkadaş - islami sohbet - mirc sohbet - sohbet indir - mirc script indir - bedava sohbet - - cinsel muhabbet - dini sohbet - gay sohbet - cinsel sohbet - seviyeli sohbet - porno sohbet - kameralı sohbet - cinsellik sohbet - sex chat - mirc - mirc indir - kamerali mirc - turkce mirc - sohbet siteleri - cet - Video izle - sohbet - Muhabbet - sohbet siteleri - kızlarla sohbet - - kızlarla sohbet - chat kanalı - chat kanalları - sohbet kanalı - sohbet kanalları
fatih bayantemur olarak türkiye'nin seo kategorisinde en büyük ismiyim.sizleride sitelerimde görmekten onur duyarım arkadaşlar.Hepinize sevgi ve saygılarımla. Fatih Bayantemur
Hedefimiz google.com aramalarında mirc indir , mircindir , türkçe mirc indir , mirc indirme , bedava mirc indir , mirc 2010 indir , chat blog chat kanalları sohbet kanalları mirc indir kelebek papatya yüzük kelebek chat kelebek mirc chat sohbet muhabbet mirc sohbet mirc sohbet odaları mirc chat odaları mirc sohbet odaları çhat mirc chat sohbet chat chat sohbet mırç mirç mırc chat odaları mirc odaları mirc chat sohbet hakkarim hakkarim okey hakkarim indir facebook türkçe facebook türkçe giriş hakkarim net hakkarim net indir hakkarim okey oyunu hakkarim 101 mynet maynet my net mircindirme.blogspot.com mirc indir gezginler aramalarında lider olmaktır. sibersahne.com - sohbet chat mirc sohbet odaları
thank you very much perfect sharing i am coming everday
sesli chat
sesli chat
gaziantep direksiyoncu
gaziantep direksiyongaziantep oto servis
The most important thing that you need to be aware if you want your computer work without any inconvenient is the quality of the software which is incorporated in your pc. once i was looking information about new software and i found a site called costa rica investment opportunities it was very interesting.
Wow this is a great resource.. I’m enjoying it.. ,a good news for all of you,we are retired nfl player who now owes a replica jerseyswebsite,especially we do wholesale replica nfl jerseys,please check out our website.
Wow this is a great resource.. I’m enjoying it.. ,a good news for all of you,we are retired nfl player who now owes a replica jerseyswebsite,especially we do wholesale replica nfl jerseys,please check out our website.
Very good post! Finally someone who knows the achievements information about and can provide exellent articles to us viewers.Really getting excited about your next updates publish.Lisa
Jeux pas cher
birth records online
free background checks
this very useful tips that really encourage to comment the right way
Your blog is really helps for my search and i really like it.. Thanks a lot..:)
Term Papers Writing Services
thanks good
www.aleyram.com
SohbetArkadaslik
Thanks for sharing your post and it was superb .I would like to hear more from you in future too.
Thanks for sharing your post and it was superb .I would like to hear more from you in future too.
thank you for sharing
This is the world's largest poker jokes
and stories collection.
Hire you can find many jokes about
Holdem, Omaha, Razz and other poker,cards
and casino games.
Source:
http://toto2.rtabg.eu/
Paylaşım ve yazılarınız için teşekkür ettim. sohbet arkadaşlık
Site çok Güzel olmuş Teşekkürler.
Brilliant work! The information provided was very helpful. I am hoping you continue the good work executed.
locksmith fort worth texas
Bayonne Locksmiths
Locksmith Richmond CA
Locksmith Milpitas
Locksmith Mountain View CA
Locksmith Santa Clara CA
Locksmith Mesquite
Hialeah FL Locksmith
Locksmith Mesquite tx
locksmith Aventura FL
aventura locksmiths
mesquite locksmith
locksmith miami beach
locksmith miami beach fl
locksmith miami fl
irvine locksmiths
irvine ca locksmith
miami beach locksmith
Locksmith Mesquite
mesquite locksmiths
hialeah locksmith
locksmith miami
Can i change the network software on my lg shine since its unlocked?
turkiye de en buyuk sohbet sunucus olanMynet Sohbet | sunucuyu bu adrese kurarak Sohbet Siteleri kelimesinde de siteyi yukseltmeye calışmak için| Sohbet odaları bir çok siteyi bir arada tutup kullanıcı sayısını yukseltmektedir.| Mynet Sohbet | başlangıcta iyi bir yerde olmasın aragemn toparlayamadık :)Mynet Sohbet bizde yeni adreslerle destek cıkmak çin bu yola baş koydukçetbide sey var mynet sohbet istanbul chat Sohbet Odaları Chat Siteleri
Thank you admin..
I like it very much! -[url=http://www.replicaitbags.ru/hermes-replicas-94.html]discount Hermes bags[/url]It is very good!
Most women would love to own an authentic cheap christian louboutin shoes The problem comes when people try to match that goal up with finding a Christian Louboutin Outletthat fits their budget. We have heard stories that it is possible to find discounted designer shoes, but it is easy to get frustrated when the cheapest shoes you are able to find are priced well into the hundreds of dollars. Christian Louboutin DiscountLet's cut right to the chase. However desirable all but the wealthiest women may find designer label shoes, Louboutin Outletmost of us are going to have at best one or two cheap christian louboutin clearance shoes if we insist on buying new at retail.Christian Louboutin 2011 Christian Louboutin Ankle Shoes if we want to have an assortment of such treasures, we're going to have to make our purchases of lower-priced, Christian Louboutin Heelsdare I say cheap shoes, while not sacrificing original designer heritage for them.Christian Louboutin Peep ToeOf course, when shopping for cheap cheap louis vuitton bags one can put oneself at the mercy of charlatans.Sad to say, there are those among us who have no qualms about passing off a counterfeit designer bag as the real deal, and perhaps having a good laugh at our expense.Recognizing that,Christian Louboutin Pumpsunless one has grown up in a family of purse collectors or had some kind of similar experience of being around genuine articles of quality, Christian Louboutin Sandalssome education is in order. Some people suggest going to christian louboutin outlet stores and examining the goods found there.Christian Louboutin Tall ShoesSuch a plan can be an advantage, as the sales staff may be willing to reveal tiny flaws that landed particular items in the outlet store.
Five Fingers Shoes
Happy to see this article as it is just what I have looking for and I am looking forward to another great article from you. You may be interested in CHI us
Your space is really pretty, have no interest in to my chi for sale space to share it? thank you Oh.Buy Nike Shoes
nike air maxes have been issued and on the basis air max by better improvement It will be the most popular shoes of the world. discount nike air max are created a visual landmark and has greatly enhanced cushioning and stability. Nike Air max sale has been a big hit this spring with its neutral colorway a suitable match to a variety of fits.nike air max shoes have excellent materials and production.Cheap Nike Air max is made of multiple materials fused together for incredibly lightweight, breathable durability.Nike Air Griffey Max is very popular as Nike Air Max 2010 ,We sell nike air max 2011 and nike air zoom kobe, also sellnike air max tn, nike air max bwand cheap air max
.Buy cheap discount nike air max ltd and nike shoes us online with 40-70% off and Free shipping!We also sell for nike air max skyline ,nike air max shoes, nike collection,nike air max 1, nike air max 95, nike air max 180 and so on.High quality, incredible comfort and fashion are nike air max 24 7 and nike air max 87, It is worth to own nike air max 90 and nike air max 91.Welcome and happy purchasing online in nike air maxes.
agendas
calendarios 2012
agendas 2012
Hydroxycut
calendarios
calendarios personalizados
Nitro-Tech
dipticos
buzoneo
mailing
flyers
folletos
imprenta online
impresion
mailing
tripticos
hoteles en el pais vasco
Animal Cuts
centro especial de empleo
NO Xplode
imprenta
Bienvenue a www.wowgolds.fr, Nous fournissons le service de [url=http://www.wowgolds.fr/][b]WOW Gold[/b][/url] rapide et moins cher
Leader Européen dans la vente de WOW Gold
Wow, awesome blog structure! How long have you ever been running a blog for? you make blogging glance easy. The entire look of your web site is wonderful, well the content!
Thanks you admin very good.
Thansk you admin very good. http://www.sesliekip.com
aşk şiirleri
omegle
omegle chat
sohbet
canlı okey oyna
aşk şiirleri
online film izle
sohbet
chat kanalları
almanya chat
omegle
muhabbet
turkchat
face
good articl thanks a lot omegle
The low-pitched luxurious style of cheap louboutin shoes on hot sale!The clean design lines and the signature red sole become a classic.Wear christian louboutin shoes with any basic outfit to add a little bit of fun and flirtiness to your outfit.Don't hesitate to buy cheap louboutin shoes with free shipping and no tax at Christian Louboutin sale.
Sesli
Seslisohbet
Seslichat
Seslikameralıchat
Sesliarkadaşlık
Sesligörüntülü
Sesli eğlence
Sesli kzı site adresleri
SesliChat siteleri
Sesli
Seslisohbet
Seslichat
Sesli kameralı
Chat
webcam show
Sesli arkadaşlık siteleri
Sesli SİTELER
yangın
yangın dolabı
yangın tüpü
yangın ekipman
yangın malzemeleri
yangın dolabı imalatcıları
yangın güvenlik
yangın
yangın dolabı
yangın dolabı imalatcıları
yangın tüpü
yangınshop
yangınekipmaları
yangın alarım
yangın
yangın söndürücüler
yangın dolabı
yangıntüpü
yangınekipmanları
yangınalarım
yangın güvenlik
Cheap louboutin shoes and Yves Saint Laurent are two brands synonymous with luxury.
Both are fabulous in their own right and very coveted by women all over the world including the most famous of celebrities.
So why would YSL blatantly take Christian Louboutin shoes‘s signature red sole and put it on their shoes?
In my opinion, if YSL was trying to take on the genious of the red sole and apply it to their line, maybe a good suggestion could be a different color?
Yves Saint Laurent has already dabbled with this idea using the very vibrant color yellow and I like it!
It definitely gives the Christian Louboutin sale a certain trendy style that resembles that of Christian Louboutin’s signature look.
Like the best Emst Lubitsch film, the nineteenth century Passage Vero-Dodat has had its share of romance, humour and intrigue (with many smoke signals emanating from the Galerie du Passage!!) And joining the cozy throng 7's Cordonnerie. Run by Fred Rolland, it fits in with the passage's rich and long history with superb artisans and enviable craftsmanship, by offering the very best in Christian louboutin sale shoe care, repairs and being the only cobbler in the world to replace battered cheap louboutin shoes red soles with spanking new ones! Should you worship, destroy or just relish slurping bubbly from your Christian louboutin shoes - the Cordonneris is for you. Slip in, soak up the pale pistachio painted walls,1930s silver lamos, Acacia shoe bar and either splurge on the special edition creams, horse hair brushed and non-gas sprays or sink onto a stool and watch Minuit Moins 7's elves perform their magic.
Aren't you just a teensy bit 'jelly bean' envious that girls can flash red cheap louboutin shoes but not you? Well, no longer!With so many Red Sole Christian louboutin shoes sisters out there, the good news is that the Red Sole brothers are beginning to beef up the brethren. Their shoe of choice? Why the 'Rollerboy,' 'Rantus' and the 'Nono.' As you might have guessed, the intense color and design are up there. As is the ' intense ' comfort.
Is it possible you don't have the ideal hair brush for your style? A Babyliss Hair Straightener give your cut that hairstyle you've been longing for.
Create a real warming trend. Contoured silhouette make cheap moncler coats winter essential. For generations, world-class competitive skiers and mountaineers have turned to moncler uk for premium, performance-oriented apparel.Stay warm—and look cool—in this cozy quilted puffer,it's everything you could ever want out of cold-weather cheap moncler coats.
thank admin
your article is very good
antep fıstığı
toptan antep fıstığı
Said was wonderful, really the best site! Liked by the way best described 2011 Nike soccer cleats . Prefer the Nike mercurial soccer cleats
Create a real warming trend. Contoured silhouette make cheap moncler coats winter essential. For generations, world-class competitive skiers and mountaineers have turned to moncler uk for premium, performance-oriented apparel.Stay warm—and look cool—in this cozy quilted puffer,it's everything you could ever want out of cold-weather cheap moncler coats.
Is it possible you don't have the ideal hair brush for your style? A Babyliss Hair Straightener give your cut that hairstyle you've been longing for.
Here are the discount Christian louboutin shoes.
Thank you for taking the time to write this blog post. Much appreciated, very valuable information. I now have a clear idea on what this matter is all about. Thank you so much.
şömine mp3 bilgisayar,anakart,2.el film izle,sinema izle
colorful quilted 'moncler uk ' short puffer down cheap moncler coats. Streamline your cold weather wardrobe with contemporary designs. Premium cheap moncler coats down fill provides lightweight warmth, enabling a figure-flattering silhouette. Is it possible you don't have the ideal hair brush for your style? A Babyliss Hair Straightener give your cut that hairstyle you've been longing for.
Here are the discount Christian louboutin shoes.
I think that your perspective is deep, its just well thought out and really fantastic to see someone who knows how to put these thoughts down so well. Great job on this.
Home Security Monitoring
şömine mp3,mp3 dinle film izle,sinema izle bilgisayar,anakart,2.el oemdiyarbakır web tasarımgaziantep evden eve taşımacılık,gaziantep evden eve nakliyat firmaları web tasarım,web dizayn,web site tasarımı,orhangazi web tasarım
Here are the discount Christian louboutin shoes.
everybody talks about <moncler uk , cheap moncler coatsthat are sold out everywhere. Wear cheap moncler jackets with any basic outfit to add a little bit of fun and flirtiness to your outfit.
A Babyliss Hair Straightener give your cut that hairstyle you've been longing for.
Good info. I really like your writing. Thanks so much, finally a decent website with good information in it.Thanks!
Houston Alarm
borsa borsa forumuhaber,sondakika,ajans haber,yerel haber
Thank's admin, your article is very good.I hope you are successful.
gaziantep web dizayn
gaziantep web tasarım
Great post. All readers will definitely like this post. Thanks for sharing your information. Keep it up!
This splendid wristwatch is powered by a quartz movement to assure the accurate timing and the normal functions. For those modern women, such a timepiece can work as a chic accessory for decoration as well as a timekeeper for daily work. It is finished with a classy black alligator leather strap for cool interpretation. The retail price for this wristwatch is about $2,000.
This splendid wristwatch is powered by a quartz movement to assure the accurate timing and the normal functions. For those modern women, such a timepiece can work as a chic accessory for decoration as well as a timekeeper for daily work. It is finished with a classy black alligator leather strap for cool interpretation. The retail price for this wristwatch is about $2,000.
Mavi bilgisayar - Teknolojide doğru adres,bilgisayar,masaüstü bilgisayar,laptop ,dizüstü bilgisayar,oem malzeme satışı Mavi Bilgisayar'da ucuz bilgisayar bulunur.
uggs clearance 2011 SmartFortwo Even small cars popular in Europe, Smart fortwo is also called heterogeneous.Ugg Bailey Button It is too small, length only is the Audi A6L (picture quotation parameters Forum) half of the multi-point, Uggs Outlet and allowed only two seats. In terms of ride, this AMT transmission can not always be compared with the Mercedes-Benz brand, each shift is hard not to be car noticed Ugg Classic Cardy boots.No. 2 is the American reality show gold Qatar Queen Alexandra, married 72 days and flash flash off, money, marriage, divorce, pocketed the money, but also broke the news of two fundamentally false marriage; No. 3 Jennifer Lopez and Mark Anthony's seven-year marriage comes to an end, so the media dumbfounded, ugg boots clearance because they have been openly show affection, do not see signs like divorce.
Oyunlokali.com da okey oyna , 101 oyna , batak ve ihale oyunları sizleri bekliyor.oyunlokali ücretsizdir üye olarak online oyunlar oynayabilirsiniz.Oyunlokali.com okey oyna tavla oyna batak oyna 101 oyna
sesli-sohbet-chat-esesli-seslisohbet-seslichat-sesli sohbet-sesli chat-sesliesesli-Seslieses-Seslieses-Seslieses
-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses
-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-seslieses-Seslieses-Seslieses-Seslieses
-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses
sesli-sohbet-chat-esesli-seslisohbet-seslichat-sesli sohbet-sesli chat-sesliesesli-Seslieses-Seslieses-Seslieses
-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses
-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-seslieses-Seslieses-Seslieses-Seslieses
-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses-Seslieses
You have an interesting point of view regarding comments.
Great Blog!! That was amazing. Your thought processing is wonderful. The way you tell the thing is awesome. You are really a master.
Best Deals in India
Great Blog!! That was amazing. Your thought processing is wonderful. The way you tell the thing is awesome. You are really a master.
Best Deals
Nice blog i have an idea on a new set of articles on software development. What if I ask everyone on what the next killer web app will be, and start implementing it with publishing daily articles on how to actually write software from scratch.
eb5 visa
uzeikite cia www.apzeldinimastau.com
Wonderful site and I wanted to post a note to let you know, ""Good job""! I’m glad I found this blog. Brilliant and wonderful job ! Your blog site has presented me most of the strategies which I like. Thanks for sharing this.
Well, I think you are right when saying about how to work with this idea and things for.
adult izle
konulu porno
porno izle
porno
porno izle
porno seyret
porno izle
pornolar
amator pornolar
rus porno
sikiş izle
porno izle
porno izle
adult izle
youporn
you porn
xhamster
adult izle
I like to find words that end with ate. "Create" is a good action verb to use in a comment (so are construct and build, etc). "Evaluate" is a good action verb to use in a comment (so is test). . . . Make yourself a little index.
LRC
These are an identical authoritative content, I'm beaming to interpret your articles.Hera all over I call back your internet site dash are and so avid, identical adept at authorship also real world by abstract adept!cheers a good deal!nfl jerseys free shipping
cheap jerseys free shipping
I won't comment on the agreed to the main reason is that the code can understand others. Yes, this is a good (and necessary) by-product, but the main reason is that the bill of the records will have to improve your writing code quality. It sounds strange, but it is difficult to document writing well/design code. Therefore, you become more aware of inconsistency and design flaws, and tend to cheap jerseys usa
nfl jerseys usa avoid them.
interesting! although I have no expert, but I want have to know more and more, on your blog just interesting and useful information. Keep it up!teddy bears for babies
wery nice thanks askin
Good thoughts on comments. As an embedded developer attempting at times to use open source stuff I would plead with the community to please comment your routines. In the embedded world a lot of times we don't have a POSIX environment or sometimes even an OS. Trying to adapt open source stuff becomes a challenge because we cannot just configure make... We have to re-write the code to adapt it to our environment. The greatist help here is comments on each of the routines (methods) so we can see the gazinta's and gosouta's what they do and what the routine does. I've given up on a number of interesting open source tools or libraries because they don't do this and I don't have the time to decode cryptic routine parameters and try to guess what the routine does and what the output might be.
Hello! I simply would really like to present large thumbs up for the nice information you’ve got here on this post. i’ll be coming to your journal for a lot of before long
Our furnace is finally hooked up and running! It is very cold today so it was great to have the entire house
heated. We can actually be in the basement without freezing.
air conditionin
air conditioner
ac air conditioning
furnace
hvac
Post a Comment
Links to this post:
Create a Link
<< Home