|
Posted by Rob on 11/08/07 16:33
On Nov 8, 2:29 pm, firewood...@yahoo.com wrote:
> Let me start by apologizing for the length of this note. I believe it
> is worth reading, however, because it must epitomize the situations of
> a lot of people who try to become serious programmers. I hope it
> helps more people than myself.
>
> Also, thank you all for the feedback. The generosity of the people
> who post here is clear. You want to help others. It is much
> appreciated.
>
> After reading many of the responses, it seemed beneficial that I be
> more specific in describing the system I've developed and the
> situation (quagmire?) in which I currently find myself. Also, from a
> purely intellectual point of view, it would be good to get some advice
> on how best to achieve elegance, both in my programming and in
> charting the course of my future education.
>
> About 3 years ago I had a dramatic change in career (a failed
> non-cumputer-related business), and I decided to make a new career of
> my hobby - website development. At that time, I had a first-course
> knowledge of C, C++, Java, Assembly, and I had developed some trivial
> sites in a Linux/Apache/MySQL/PHP environment. It was fun, and I had
> some savings, so I threw myself into developing an idea that I'd been
> playing with for some time.
>
> Now after three years, I find myself in possession of a feature-rich
> PHP system that, as an end product, provides a website-owner with a
> site they can modify in the following ways:
> 1. Add/delete/modify categories in a multi-level menu system (several
> menu layouts available).
> 2. Add/delete/modify several "elements" which constitute the content
> of the website pages. An element is a title+text+image combo, along
> with formatting options (position, colors, sizes, etc.).
> 3. Drag and drop absolute placement of elements.
> 4. Drag-based resizing of images, text boxes and titles within
> elements, as well as the overall elements themselves.
> 5. Combinations of parent elements and child elements that enable
> multi-element sets, each subelement independently formattable.
> 6. "Components", which are product-like, independent pages, branching
> off the category pages. These provide the facility to implement any
> number of independent pages from thumbnail links off a parent category
> page.
> 7. A feature-rich highest-level admin system, where I create the
> original, empty website for a customer and provide the formatting and
> other features that the customer wants for his/her site. This
> includes a storage facility for each website's design that can provide
> a template for new sites when the client wishes to duplicate the
> features of a previously designed site.
> 8. more, more, more... the list grows
>
> However, all that has come at a cost. I am now semi-paralyzed when I
> start to create a new feature. I have to trace through miles of code
> that is not quite "spaghetti-code", but does remind me of that phrase.
> I know the system well enough to do what I need to do, but it
> sometimes takes me days to do what I know should take me hours.
>
> For version 2, I need to rewrite the code from the ground up and I
> want to get started on the right track. That is the purpose of my
> original post. Can anyone give feedback on that?
Although formal qualifications and training are not to be sniffed at,
it sounds like you need to do some heavy reading on 'best coding
practices' and the like.
There are dozens of books out there describing different models,
practices and methods.
Perhaps you could do some searches for those, or are there any
specific recommendations from anyone else listening?
Navigation:
[Reply to this message]
|