6 Tools To Be An Effective Web Developer
Over the last few years Rails has helped Ruby’s popularity explode. One of the biggest reasons for this is the time that Rails can save you. By working within a well defined framework a lot of development decisions are simplified and it is easier to be more organized. Throw in some great tools like ORM, Unit Testing, Mocking, and more and you have a powerhouse of developer efficiency and quality.
There has always been and probably always will be feuds over what is the best platform but what I want to show you is that those arguments are mostly irrelevant. Regardless of what platform you choose to develop on there are most of the same tools available in one form or another. The common components, for me anyway, that help me produce high quality code faster and is easier to maintain are a good IDE, easy to use unit testing and mocking frameworks, an ORM, a MVC framework, and a good JavaScript library.
I am a .Net developer by trade and a PHP developer sometimes by choice. I enjoy both environments for different reasons. I am going to talk about each of these components in a bit of detail and explain why I think they are important and then at the end of the article I will provide a list of each of these components for various languages (.Net, Java, PHP, Python, and Ruby). I have decided to only list free or open source tools because they are easy for someone to try out and we all like to save a few bucks.
The Integrated Development Environment (IDE)
To me this is the prime essential. Sure you can program in Notepad and compile with the command line but it will likely take longer and it will require more discipline to stay organized. With a good IDE you have easy project management (all you files grouped together with tabbed browsing), syntax highlighting, compilation (if applicable), and auto complete.
IDE are continuously getting more and more sophisticated and plugins allow for lots more functionality like svn and git management in the IDE.
For me my favorite IDE is Visual Studio. There are some other great programs out there like NetBeans and Eclipse but for whatever reason I have become partial to Visual Studio.
Unit Testing And Mocking
These two items go hand in hand. No application is complete without proper testing. There are plenty of people on both sides of the fence when it comes to testing. I know, I was a skeptic for a along time. It just felt weird to spend time writing code to test the real code I was going to write. Finally I just decided to give it a try and it has changed the way I program. When you are focusing on how to test your code you just write cleaner code and it’s nice to have a quick way to know if the change you just made broke anything.
Object Relational Mapper
If you have ever used an ORM you know that it can save you a huge amount of time. One of the concerns I had before jumping to an ORM was performance. I wanted to know if using an ORM would make my application slower but I was asking the wrong question. I should have been asking whether or not the small performance hit was worth the huge time savings. The answer to that is a definite YES! Rarely in an application will the ORM be the source of poor performance and if it is it can be refactored to improve or you can use straight SQL if need be.
It all comes down to not worrying about performance issues before you have any. Yes it is important to keep performance in mind but using an ORM shouldn’t be anything to worry about.
MVC Framework
MVC has become very popular thanks in part to Rails and it’s revolution in the way we do Web Development. The key component to it’s popularity is that it separates the different concerns of your application into seperate pieces. This separation allows easier testing, better design, and makes your application more maintainable overall.
JavaScript Library
It seems there is a JavaScript library for just about everything these days. I remember not too long ago there were that many and JavaScript use hadn’t exploded yet. A JavaScript library is important to your productivity. The library shouldn’t compensate for poor JavaScript skills, you need a solid foundation, but should compliment a good understanding of it. The library will take care of browser compatibility issues and low level operations letting you focus on getting the job done.
ASP.Net
IDE: Visual Studio 2008 Express
Unit Testing: NUnit
Mocking: Rhino Mocks
ORM: NHibernate
MVC: ASP.NET MVC
JavaScript: jQuery
Java
IDE: NetBeans
Unit Testing: JUnit
Mocking: EasyMock
ORM: Hibernate
MVC: Struts
JavaScript: jQuery
PHP
IDE: PHPEclipse
Unit Testing: PHPUnit
Mocking: PHPMock
ORM: Propel
MVC: Symfony
JavaScript: jQuery
Python
IDE: PyDev
Unit Testing: PyUnit
Mocking: PythonMock
ORM: SQLObject
MVC: Django
JavaScript: jQuery
Ruby
IDE: RadRails
Unit Testing: Test::Unit
Mocking: Mocha
ORM: Sequel
MVC: Rails
JavaScript: jQuery
Be sure to grab the RSS feed, get updates by email, or follow me on Twitter to stay up to date and not miss any posts.
Ruby Programmers Beware
If you are a ruby programmer or a sys admin that maintains ruby programs on your network you should be aware, if you are not already, of some serious vulnerbilities that have been found in ruby.
Drew Yao of Apple has reported 5 exploits that allow an attacker to execute arbitrary code.
ruby-lang.org
Multiple vulnerabilities in Ruby may lead to a denial of service (DoS) condition or allow execution of arbitrary code.
The Ruby team have released patches for the 1.8 series (1.8.5 >) and the 1.9 series which should be implemented immediately.
The following issues are not likely to affect loyalty among the Ruby community, as expressed in the following comment on a blog covering this issue.
For the record… I love Ruby. I blame Drew!
Now the comment is obviously meant to be funny but most likely shows the true feelings of the community. They won’t let this deter them. They will just keep working to make Ruby better.
This may, however, have negative results on the preception of Enterprise level companies who, for the most part, haven’t embraced Ruby yet. Hopefuly this isn’t a setup back to furthering adoption outside the freelance community.
On another not Ruby may get a bit more exposure from an unlikely source. Microsoft is working on it’s implementation of Ruby, IronRuby, for the .Net CLR and making it compatible with their upcoming MVC framework. Could give Ruby some limelight in Enterprise companies that use .Net and give Ruby programmers a “foot in the door” so to speak.
Friday Roundup for June 6, 2008
Here is what I found interesting this week.Exception handling best practices in ASP.NET web applicationsException handling plays an important part of application management and user experience. If implemented correctly it can make maintenance easier and bring the user experience to a higher level. lawn mowing . If not, it can be a disaster.How many times have you seen the error message that doesn’t make any sense or at least provides some valuable information, or even better – how many times have you seen the famous error screen with exception message and a complete stack trace on yellow background? Too many times, I would say. This is why, among other things, some of my colleagues were very interested in exception handling techniques and best practices.Did Rails Sink Twitter?Twitter is arguably the most heavily used Ruby on Rails application in the world. Almost since its inception, Twitter has fostered a wildly passionate cult following. Also from the beginning, Twitter has suffered from chronic outages under that load.In the past month, record downtime has prompted fresh outcry within its ever-growing user base. This, along with increased attention from mainstream media has forced Twitter to publicly acknowledge these issues, and to reveal a few details about the source of these problems.
ASP.Net MVC Framework and Rails December 11 2007
ASP.NET MVC Design Philosophy
This week the first preview of the ASP.NET MVC framework was released to the web as part of the ASP.NET 3.5 Extensions CTP Preview. It’s been a few months since we started coding and as the lead developer on the project I’d like to share my thoughts on the design of this framework. This isn’t a post about why MVC is great. Instead, it’s a post about what we did to make MVC happen in ASP.NET.
Using ASP.NET MVC With Visual Web Developer Express
Some developers who downloaded the ASP.NET Extensions CTP specifically for ASP.NET MVC and then opened up Visual Web Developer like it was Christmas morning instead got a lump of coal.
We currently only include Web Application Projects for ASP.NET MVC, which Visual Web Developer does not support. I was planning to write up a post on this, but Scott Koon beat me to it.
And thank goodness! I’m busy enough as it is already. It’s all part of my master plan to have members of the community doing my job for me so we can finally take that trip to Tahiti and sip margaritas while I tell my bosses I’m “telecommuting”.
Seriously though, I appreciate it.
Rails 2.0.1 Released!
While the SitePoint crew were busy sunning themselves by the pool on our annual Xmas trip, the Rails core team packaged up version 2.0 of the Ruby on Rails framework and released it on the world. I expect the team probably had a fairly stressful weekend putting out a few fires (understandable given this is a major release). The result of their hard work is that, after only a couple of days, version 2.0.1 is already upon us.
If you’re using Ruby Gems, update your Rails install by typing:
gem install rails --include-dependencies
Links for November 19 2007 – ASP.Net MVC Framework, Tamarin in IE
Why MVC Has Me Concerned
Everyone is talking about the new MVC framework that will be released in the coming weeks as a CTP, and so far everyone is very pumped about the way it will revolutionize web application development…how it will allow us to utilize testing tools, TDD, etc. It’s always mentioned with reverence and joy.
Well, hello: my name is Killjoy…
ASP.NET MVC Framework is almost here
Tutorials and previous are already posted on the web, As always Scott Guthrie is the first person to provide with an complete overlook of the new framework.
Mozilla Announces Screaming, Iron, Action Monkeys – Tamarin in IE
Brendan Eich always delivers on a great keynote, and to conclude the opening day of the show, he had some announcements up his sleeve.
Mozilla has three monkey’s up their sleeve:
Links for November 13, 2007
IronRuby in WinForms
The Ruby in Steel guys seem to be applying the knowledge of Ruby and .NET gained through building a Ruby editor for Visual Studio and their Ruby connector project to bring IronRuby to WinForms development…
MVC, REST, and the Alternative ASP.NET Framework
You can read about REST in a PhD thesis, but I think Tonic captures the essence of a RESTful architectural style from the perspective of a web application developer:
* Everything useful is a resource, not a file, not a CGI script, a resource, an abstract concept of something useful that the client wants to grab hold of.
* Resources are located by URLs, URLs are cheap and form the universal addressing system of the Web.
* Clients can issue a standard number of HTTP methods upon an infinite number of resources and receive something useful in return.
* Representations of resources are sent back to the client, a representation is just a way of turning the abstract concept of a resource into something more concrete, like a HTML page or a XML file. One resource can have many different representations.
ASP.Net MVC Framework an early look
As many of you already know Microsoft is working on a MVC Framework for ASP.Net. MVC stands for “Model View Controller”. The Model View Controller is a design pattern and the idea is to separate business logic from the View (The View is the page that will display content, for example an .aspx page). The MVC in general maintain a clean separation of concerns, it will be easier to test business logic because it’s separated from the View and the View will not have any knowledge of the underlying model. Today when we build ASP.Net applications we have a code-behind which is a partial class of the “View”. With the code-behind model we can’t easy use Test Driven Development (TDD) or unit-test, at least is not easy. We can use the MVP (Model View Presenter), but that require us to write some extra code. With the MVC Framework it will be much easier to apply TDD…
Ensure that JavaScript files or CSS files are refreshed for each new version
raleigh home improvement . I found a nice article explaining how to ensure that the newest version of your javascript or css is always loaded and not using old cached versions. send flowers gifts . The example shows how to accomplish this in ASP.Net but this technique can easily be applied to any server side code.
<script type=”text/JavaScript ” src=”FileName.js?v=<%=AssemblyVersionNumber()%>”>The attribute does nothing other than trick the browser into thinking that the .js file must be retrieved from server for new version instead of cached .
First Look at IronRuby
ScottGu’s blog announced the “pre-alpha” release of IronRuby, a .Net implementation of the popular RUby language. IronRuby appears, although early on and no benchmarks have yet been done, to address some of the speed concerns that plague Ruby and have been a growing concern for sites such as Twitter.
Today we are making available the first public drop of our IronRuby implementation. You can learn more about how to download the source, build it, and try it out from John Lam’s blog post here.
Today’s IronRuby drop is still a very early version, and several language features and most libraries aren’t implemented yet (that is why we are calling it a “pre-alpha” release). It does, though, have much of the core language support implemented, and can also now use standard .NET types and APIs.
Today we are making available the first public drop of our IronRuby implementation. You can learn more about how to download the source, build it, and try it out from John Lam’s blog post here.
Today’s IronRuby drop is still a very early version, and several language features and most libraries aren’t implemented yet (that is why we are calling it a “pre-alpha” release). It does, though, have much of the core language support implemented, and can also now use standard .NET types and APIs.
IronRuby has been architected to take advantage of a new DLR feature we call “Dynamic Sites” – which delivers a fast adaptive call-site method caching implementation. It also uses the lightweight-code generation features of the CLR. Lightweight code generation enables dynamic language implementations to create in-memory IL that is then JIT’d into native code at runtime (without ever having to save anything to disk). This can yield much better runtime performance than interpreted code, and the lightweight codegen feature ensures that once we are finished with the JIT’d code we can optionally garbage collect it to avoid leaking.
We are releasing today’s drop mainly for developers interested in language implementations to start looking at the IronRuby source code, and learn how it was implemented. Developers interested in playing with an early version of Ruby for .NET can also download it and give it a spin.
RSS ?
