Stephen;

The same way someone can drive a car into a tree, so can someone take a
perfectly good framework and use it to make sh*t. 

The problem with the application you described sounds very atypical to me,
and I would be very concerned about my own skills as a developer if I was
unable to track down some code for a home page within an hour after being
given access to the files.

I look at a fuseaction to determine the circuit and the fuseaction. I look
in the fbx_circuits.cfm file to determine the physical location of the code,
and then in the fbx_switch.cfm file within the circuit directory to find the
specfic fuseaction containing the code. If the problem is not there, I go to
the fbx_settings.cfm or the application.cfm file to find it.

As for the readability of a fusebox application looking like spaghetti,
included below is a sample fusedoc I wrote in June. It explains the code
coming into the page more than adequately and, coupled with the other 600 or
so Fusedocs contained within the system, gives me an almost complete
understanding of how the system works. It seems fairly clear to me, with or
without a sauce.

If you want the specification, download the core files from www.fusebox.org
along with the documents for FB2 (which outline the core concepts) and Hal
Helms' paper on the differences between FB2 and FB3. If you are asking that
the developers explain the function of each and every line of code contained
within the core files, you will have to refer to the comments contained
within each core file.

How much else are you asking for?

M

<!---
<fusedoc fuse="act_update_feature.cfm" language="ColdFusion" version="2.0">
  <responsibilities>
        I generate a structure containing information about the bug the user
is reviewing.
  </responsibilities>
  <properties>
    <history author="Michael Haggerty" date="28Jun02" role="Architect"
type="Create" />
  </properties>
  <io>
   <in>
        <structure name="form_fields" scope="attributes" comments="Form
fields submitted via CFMODULE Tag" optional="FALSE">
                <string name="reviewedBy" scope="variables" optional="FALSE"
/>
                <string name="comment" scope="variables" optional="FALSE" />
                <string name="bugID" scope="variables" optional="FALSE" />
                <string name="completed" scope="variables" optional="TRUE"
/>
                <string name="archived" scope="variables" optional="TRUE" />
        </structure>    
        <string name="user_data.userid" scope="session" optional="FALSE" />
        <string name="user_data.fullName" scope="session" optional="FALSE"
/>
   </in>
  </io>
</fusedoc>
//--->



-----Original Message-----
From: Stephen Moretti [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, July 16, 2002 10:37 AM
To: CF-Community
Subject: Re: Throwing the baby back


Mike,

> Don't let Hal Helms hear you say that.
> 
> The Fusebox specification is a set of core files which are distributed
with
> a demo to help you learn how to work. 
>
I hate to be a pedant, but I have to agree with Jeffry on this :
spec·i·fi·ca·tion (sps-f-kshn)
n. 
  1.. The act of specifying. 
  2.. 
    1.. specifications A detailed, exact statement of particulars,
especially a statement prescribing materials, dimensions, and quality of
work for something to be built, installed, or manufactured. 
    2.. A single item or article that has been specified. 
  3.. An exact written description of an invention by an applicant for a
patent. 
Therefore a bunch of files and a couple of demos, do not a specification
make....  And before anyone mentions them, a couple of books interpreting a
deluge of emails with no written word to base them on are not specifications
either.

This is one of my pet peeves with FB3.  There is no written word on how it
should be used or should work.  At least with FB2 there were the couple of
white papers and Steve Nelson's book was a pretty good go at specifying the
Fusebox methodology.

Another pet peeve with FB3 is it is virtually unreadable!  One of the
original tenets of Fusebox was that the code that was generated by a
developer using FB code be given to another developer with no knowledge of
Fusebox and they would be able to easily see what is happening in the code,
what is being called where etc. etc. It was supposed to be and was self
documenting to some extent.    FB3 is a biggest pile of unreadable spaghetti
you could possibly have the misfortune to come across.

For instance....  I've been coding with FB for about 4 years now, probably a
bit longer.  I've had various conversations with Steve Nelson, Craig Girard
et al, back when the FB list was on Michael's mail server and it wasn't so
insane.  So you'd think I have a pretty good grasp of the Fusebox
method.....  Well it would seem not...  I went to a client to talk about
server performance tuning and an element of code performance tuning.  They
asked me if I would have a look at a real example and give them my thoughts.
They told me it was a FB application, so I said, yeah sure no problem.  
I opened up the code.........  I tried to work out what the files were being
included to display the home page....  I treked back and forth through the
various core files, step by step, line by line, with the client looking over
my shoulder.  

We never managed to find what was actually displaying the home page in the
hour that we had allocated to look at the code.  Admittedly, we were looking
at other aspects of the code as well, but we still should have been able to
get to the templates for the home page within a few moments......

Arrgghhh!  Now I'm on a rant too!   

Another thing that annoys me about FB3 is that people think that it makes
good code automatically.  It doesn't!  Even making use of some of the
undocumented techniques does not make good code.  FB3 is only good in the
right situation and if you use all parts of the method, right from analysis
right through to coding.  It is no longer a coding standard, but an analysis
and design methodology.  So many many people fail to see this and try to
just use their own interpretation undocumented coding standards to write
their applications and make a lovely paste dish!  

At least FB2 was documented, was only a suggestion for a coding standard and
was readable. It had the advantage of having tools to help you with
additional documentation (the original fusedocs) and for developing the
application (DevNotes and wireframes)


> Maybe the Fusebox council needs to do a little more to promote awareness
of
> their product.
> 
/expletive deleted/ What they need to do is write the document that explains
Fusebox from start to finish, make it freely available and create multiple
core files for each possible installation of CF (why do I need code that
handles Linux file paths and Apache CGI variables, when I'm running on IIS5
on Windows 2000???)  I believe someone out there started writing their own
coding practice white paper called KISS (Keep It Simple Specificiation or
something like that).  This is something that has been forgotten with FB3
and maybe thats what the Fusebox Council need to be doing.....  Getting back
to basics and keeping it simple!

~takes deep breath and quits ranting~

Going back to what Michael started on...

> Yes, I'm ranting a bit. I'm helping out a friend with a project and
modifying 
> a commercial product (one he paid money for). Now you'd expect that a
commercial 
> product would have good code, right? You'd expect that a product that
supposedly 
> followed a methodology would have good code, right? That the code would be
written 
> intelligently, that it would not repeat itself or fall over itself, right?
Well, this code is poorly 
> written, does not use any best practices (I see CFSETs with pound signs
around everything), 
> uses one of the Fusebox methodologies (one of as the methodology has
splintered) and is just 
> not good code. And I have to make it good code. 
>
Heh heh... Yeah right... Commercial code that is good code.... 
~snigger~ isn't that why commercial code is always encrypted??

> I'm going to start CF classes. If you write bad code, you get hit with a
shock prod. If 
> you release bad code, you get abused by a large bull (let your imagination
run free here). 
> It'll be learn it right and tight or wish you were in a Turkish jail being
interrogated by Abdul.
>
I've got a pressure washer here that you could use for water torture, if you
like.... :o)

I'll shut up now and get on with some work..... ;o)

Stephen


______________________________________________________________________
Structure your ColdFusion code with Fusebox. Get the official book at 
http://www.fusionauthority.com/bkinfo.cfm

Archives: http://www.mail-archive.com/cf-community@houseoffusion.com/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to