I recently wrote a Quick Start tutorial for ColdMVC, my convention-based MVC framework for ColdFusion 9. Check it out and let me know what you think.
http://www.coldmvc.com/quickstart
Tuesday, April 19, 2011
Sunday, February 27, 2011
Code Formatting and New Lines
Last week I had a healthy debate with some co-workers about code formatting, which to a lot of developers can be a pretty religious subject. While you could argue that coding style should be a personal preference, I believe it's more important to use consistent coding practices when working in a team environment.
One formatting style we discussed was the use of new lines in code blocks. Here are three common formatting styles for the same code:
Style 1
Style 2
Style 3
When I first starting coding, I preferred Style 3, since it provides more visual separation. Currently I prefer Style 2, although it's not even a formatting option at http://jsbeautifier.org/, which makes me question my choice a little. Douglas Crockford seems to prefer Style 1, so maybe I should consider making the switch.
Which do you prefer?
One formatting style we discussed was the use of new lines in code blocks. Here are three common formatting styles for the same code:
Style 1
if (true) {
console.log('yay!');
} else {
console.log('boo!');
}
Style 2
if (true) {
console.log('yay!');
}
else {
console.log('boo!');
}
Style 3
if (true)
{
console.log('yay!');
}
else
{
console.log('boo!');
}
When I first starting coding, I preferred Style 3, since it provides more visual separation. Currently I prefer Style 2, although it's not even a formatting option at http://jsbeautifier.org/, which makes me question my choice a little. Douglas Crockford seems to prefer Style 1, so maybe I should consider making the switch.
Which do you prefer?
Monday, February 7, 2011
Don't Mix Tags and Script in the Same Component
Every now and then, I'll see some code in an open source ColdFusion project that mixes tag syntax and script syntax in the same component. Personally, I find it really annoying when people jump in and out of cfscript blocks. If the component isn't written entirely in script, then don't use any script - stick with tags.
Some people think that since writing in script is cleaner, it's cleaner to write part of the function in script than write it using tags. However, if you're declaring your component and functions in tags, switching to script inside the function actually decreases your code readability in my opinion. Take the following hypothetical example, which is sadly all-too-common in certain open source projects:
I find this style of coding ridiculous.
Some people think that since writing in script is cleaner, it's cleaner to write part of the function in script than write it using tags. However, if you're declaring your component and functions in tags, switching to script inside the function actually decreases your code readability in my opinion. Take the following hypothetical example, which is sadly all-too-common in certain open source projects:
<cffunction name="setFoo" access="public" output="false" returntype="void">
<cfargument name="foo" required="true" type="string" />
<cfscript>
variables.foo = arguments.foo;
</cfscript>
</cffunction>
<cffunction name="getFoo" access="public" output="false" returntype="string">
<cfscript>
return variables.foo;
</cfscript>
</cffunction>
I find this style of coding ridiculous.
Tuesday, January 11, 2011
Saturday, January 8, 2011
Using Markdown in ColdFusion
Markdown is "a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML)."
Here's a quick post describing how you can use Markdown in ColdFusion.
First, download MarkdownJ, a Java port of the Markdown conversion utility originally written in Perl. Here's a direct link to the download site: http://code.google.com/p/markdownj/.
Next, either put the markdownj.jar file in the ColdFusion classpath or download JavaLoader. I prefer using JavaLoader, so that's what my example will show.
Finally, some code:
The above code will produce the following HTML output:
OK. So if that's the simple example, what about a more complex example?
And that's the basics of Markdown. Here's a full set of syntax rules: http://daringfireball.net/projects/markdown/syntax. Pretty sweet if you ask me.
Here's a quick post describing how you can use Markdown in ColdFusion.
First, download MarkdownJ, a Java port of the Markdown conversion utility originally written in Perl. Here's a direct link to the download site: http://code.google.com/p/markdownj/.
Next, either put the markdownj.jar file in the ColdFusion classpath or download JavaLoader. I prefer using JavaLoader, so that's what my example will show.
Finally, some code:
<cfset paths = [ expandPath("markdownj-1.0.2b4-0.3.0.jar") ] />
<cfset javaLoader = new javaloader.JavaLoader(paths, true) />
<cfset markdownProcessor = javaLoader.create("com.petebevin.markdown.MarkdownProcessor").init() />
<cfset html = markdownProcessor.markdown("This is a *simple* example") />
<cfoutput>
#html#
</cfoutput>
The above code will produce the following HTML output:
<p>This is a <em>simple</em> example</p>
OK. So if that's the simple example, what about a more complex example?
# This is an h1
## This is an h2
This is a normal paragraph. Lorem ipsum dolor sit amet,
consectetur adipisicing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
* This is a unordered list. Hanging indents allow
you to wrap a list item onto multiple lines
* List item 2
* List item 3
---
These are horizontal rules
***
This is how to *italicize* something. This is _another way_ to italicize something.
This is how to **bold** something. This is __another way__ to bold something.
1. This is an ordered list
2. List item 2
3. List item 3
This is [an example](http://example.com/ "Title") inline link.
[This link](http://example.net/) has no title attribute.
> This is a block quote. Lorem ipsum dolor sit amet,
> consectetur adipisicing elit, sed do eiusmod tempor
> incididunt ut labore et dolore magna aliqua.
This is a code block.
To produce a code block in Markdown, simply
indent every line of the block by at least
4 spaces or 1 tab
And that's the basics of Markdown. Here's a full set of syntax rules: http://daringfireball.net/projects/markdown/syntax. Pretty sweet if you ask me.
Subscribe to:
Posts (Atom)
