Turnleaf Design Ramblings of a junior developer

26Oct/090

The start of a long journey

A couple of weeks ago I posted about my ideas for the future of this site. Well today I start making good on those lofty promises. I will be posting my first tutorial, which will cover test driven development, shortly. Before I do that I want to give a bit of an explanation of this project, why I am doing it, what I hope to accomplish, a few other thoughts, and finally some technical notes.

The what

As I said in my previous post, this project's main goal is to check to see how accurate meteorologists really are with their predictions. NOAA offers a web service for checking forecast information and I will be using that to gather my data. Just following the exact requirements of those project will give plenty of opportunities to learn new things, but I also intend to meander around a bit so we can learn a lot more. So when I start adding user sign in and other seemingly odd/unnecessary features, now you know why.

The why

I intend for this project to serve a duo purpose, to teach others and to learn a thing or two myself. One of my main goals with this site is to help teach other developers. There where many important subjects that I did not fully grasp in my early career and it really held me back. Luckily I was given the opportunity to learn from my mistakes as well as those around me. I hope to repay some of this debt by helping others.

There is a lot to software development, a lot. Sometimes it is hard to know where to begin, but it is said necessity is the mother of invention and I hope both intentionally and unintentionally this project forces me to learn things as it is the only way to (effectively) solve a problem.

A few words on practices

Occasionally there will be bad practices in this project. It will be a mixture of both intentional and unintentional. I plan on making example of why those practices are so bad, and sometimes the only effective way to do so is by actually showing the technical debt taken on by those practices. When I do intentionally make a bad design choice, I plan on explicitly stating so and I will also show how to fix the issues resulting from those practices.

That said, I am both human and a junior developer. I am going to make mistakes, lots of them. You don't need to burn me at the stake. If you see a problem in my code, please leave a comment and if possible offer a solution. If I think you are correct I will make amendments to my articles to correct any problems.

There will be philosophical differences. When I am cognizant of differing views points on a subject, I will state my design choice is philosophical. If you are of an opposing view please speak up and say why your choice is better, but it has to be something more substantive than “you are wrong.”

Lastly all practices are guidelines. For every good, great, or best practice, there is going to be a few examples out there that contradict the practice. Thus they are practices and not rules. Understand that there is no possible way I could be familiar with every person's business domain or systems the you work on or use. I have to write with a certain degree of generality.

I need you

I can only fix what I know to be broken. If you see a problem, want me to cover something in more detail, or anything else, please let me know. Your feedback is absolutely vital in the process of making this site and the content I publish here better. I will do the best I can to self correct, but I can only do so much alone.

Technical notes

All coding work will be done utilizing Eclipse 3.5 (Galileo), you can download it here. I will be using subclipse as my primary version control client. If you need help using subclipse check out my subclipse primer. I will be utilizing several other technologies as this project because more advanced. As I do I'll let you know what I am using and where to get it. Hopefully in the future I will be able to do this all automatically, though network/financial issues may prevent this.

I'm still contemplating on how to get a live version of this project hosted. I think I may be able to use Google's app engine, but I am still unsure if it will fully mesh with the goals of this project. If you know of free or cheap Java hosting let me know.

This project is published under the MIT license. Which as far as my understanding goes allows you to do pretty much anything with the source code. Rather that be the case or not you do have my permission to use the source code in this project, at least the code I personally write, to whatever purposes you see fit (I'd prefer good). Attribute me if you want, I don't really care.

Well anyways I hope you like this series of tutorials. It's going to be a long, but I hope a very fun and enlightening, journey.

Bookmark and Share

No related posts.

Comments (0) Trackbacks (0)

No comments yet.


Leave a comment


No trackbacks yet.