TIP: Use Markdown or, <pre> for multi line code blocks / <code> for inline code.
These forums are read-only and for archival purposes only!
Please join our new forums at discourse.kohanaframework.org
Which comes first Design or Code?
  • The idea of a KF based CMS (Hanami) rocks!!! So I have been following its progress from the get go and while there seems to be a lot going on none of seems to address " DESIGN ". This is something that has puzzled me forever, how are these applications (joomla, oscommence, wordpress) designed what is the design process that takes place @ concept stage of a web application.

    Look I am not talking about just the pretty graphics here, those who study "DESIGN" understands that it is a more about process and function than aesthetics wikipedia has a pretty good summation of it here http://en.wikipedia.org/wiki/Design


    Design, usually considered in the context of applied arts, engineering, architecture, and other creative endeavors, is used both as a noun and a verb. As a verb, "to design" refers to the process of originating and developing a plan for a product, structure, system, or component. As a noun, "a design" is used for either the final (solution) plan (e.g. proposal, drawing, model, description) or the result of implementing that plan (e.g. object produced, result of the process). More recently, processes (in general) have also been treated as products of design, giving new meaning to the term "process design".

    Designing normally requires a designer to consider the aesthetic, functional, and many other aspects of an object or a process, which usually requires considerable research, thought, modeling, interactive adjustment, and re-design.


    While there has been a great deal of discussions on code and structure, I am still cannot seem to get a visual of the application in my head, what does the admin do how does it process and manage content, how is information finally displayed how does it engage, are these questions relevant right now?

    For me the visual "HOW" establishes the process which in turn drives the code, conventions etc.. What I feel drive most OS applications is the code, lets add ACL, ORM will be most useful, what about UTF8? definetly add it, everything is thrown in with no seeming regard for cohesive design process or visual outcome!

    So my question is which comes first design or code?
  • You have to have something in your head first. I think this is true both when opening Photoshop or your PHP editor. Usually I sketch out a lot: interfaces, code structure, boxes and arrows, random ideas. Then keep on sketching until you see some line and unity in the mess. Finally take a red pen and scratch out at least 50% of the features you plan.

  • I agree!

    Yet I still get the fleeing that this is rarely done, seems to me that this should be one of the places that an emphasis on usability should be placed within the "CODE" the core of the application decisions on whats get put in and left out should not just be based on conventions but on the overall design requirements of the application?

    Not trying to step on toes here, just wondering out loud!
  • Is this a trick question? :P

    In ideal case when 90% of a project is done, the only thing missing is code.. maybe a bit aggravated, but still. A real life example: we're rewriting and refactoring a huge portion of a website at work, to be made into multiple other similar localized sites. Now after a better part of a year later we finally have been able to have some quiet time to actually DESIGN what we should be CODING, and boy do we feel stupid. A classic case.

    Unfortunately real life isn't ideal, there's rarely time to spec things enough, let alone document it. Most often things are done using the first possible solution that comes to mind, which usually is the worst.

    Geert had a good point - simplification. It's like packing for a holiday, put everything you've decided to carry with you on floor and leave half of them home. And hey, we're living web 2.0, less is more! ;)
  • To visualize interfaces, you could use pencil. It's an always free, recently-gone-v1.0 firefox extension.
  • I think the first thing is to think about it the application design, followed by the database, interface design and sample scenarios.

    I'm comfortable with knowing, what functionality i need/expect and how it's look like. Maybe the other Hanami members servers a bit clearer design draft (besides flower.jpg and background.jpg). This makes me work a bit faster and i can focus on the real work.
  • Think about the size of your target website audience.
    If it's a small site and you don't anticipate much growth the design isn't as important and you can probably just get away with making it up as you go along. If it's not small then fail to plan, and you plan to fail.
    With a large site you must anticipate traffic and the design is more important. You should take time to learn best practices in terms of your code, code-reuse, database design and so on. A good guide to what you should aim for in a site is http://www.youtube.com/watch?v=BTHvs3V8DBA
    If you use a good framework, most of the tools and code you need to achieve this will be there, for example CI, Horde and even Kohaha :) Don't try to reinvent the wheel with your design and code. If something good is already out there and can easily be adapted, e.g. classes from PEAR and Zend Application Framework, then suck those into your design to handle various aspects.
    Once you've decided on your framework of choice (or your own one), which reusable code components to use, and which things you'll need to write, sketch it out on paper and take a good look. It will become clear to you how your design must fit together, and the amount of work involved to make it a reality.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion