Hello,

The following is quite long but reflects a non developper point of view. I'll expose briefly that business analysis already splits logic and why I think you should follow previous recommandations. I'll finish "out of subject" commenting your documentation request.

> Split business logic

When you have to describe business logic to a dev, seperating business responsabilities is a good start. I think it's a thought orientation shared by "business analysts" (I'm not sure this is the right term in english) and developpers. The process often shows that a same object can be approached from different perspectives (for exemple, sales, comptability, logictic both work with orders but with different perspectives). You'd better keep this object as generic as possible and let each perspective set its own attributes at its very level. This mailing list shows multiple practical examples with the User notion.

In the process, you have to be consistent and a direct extra benefit is polishing each application interface. From a non developper point of view, I find far most easier to write applications when the semantic and the interfaces are clean. It helps your application's usability and it's documentation too.

As most developpers complain, business logic tends to change and it's implementation has to follow. Both at business and application levels, these changes should be kept at their perpective level (for example, a change in accounting should not compromise other fields and not be a revolution in actual business if possible).

My point is that it is a normal business analysis process to split responsabilities as far as possible and Django allows you to write multiple apps to implement that. Implementation problems are about the same that those brought while debatting applications reusability. If your project may have multiple dependencies, your app should keep them minimal at their level: this process is already part of business analysis when modeling "packages".

In business, a task can be reassigned: if you want something done, you must ask somewhere else. Putting that in Django, if you want to reach a ressource, you use an url and the url mapper will call the ressource for you. Django allows you to name your urls and you can implement get_absolute_url easily. I see the way Django handles urls as a great strength. I take the opportunity to state that url are part of a web application interface (browsers are only a part of available clients).

To rephrase all of that, splitting your project in multiple parts is already a business analysis requierement before reaching the developpement process.

> Documentation and guidelines

When speaking about Django's pro, the admin and the documentation come often. They reflect both a practical approach. Django's documentation show it's developpers philosophy and puts emphasis on good practices. Django's original design history and the framework's multiple actual fields of application tend to proove that team's member are not totally subject to delusion ;).

I found that adding guidelines on a subject to applications' documentation helps greatly: it summarise the concepts, reinforce consistency and puts the recent knowledge on another perspective, acting as a seal. It draws practical schemas and are good entry points to the "practical cases to concepts" learners and can bring "step by step" learners to a more self-implying approach. It reinforce pattern recognition during the analysis. They are often used for feedback. Writing them is time consumming, that's the bad part.

Ensuring that applications are designed to properly integrate into the framework helps to reinforce the framework. Extensions / plugins / adapters are considered when chosing a solution and for Django, they are the apps. Django is a practical solution by its extension ability. A pro often advanced in favor of frameworks usage is the standardisation of the developpement process.

Explicitly tell the direction is the most simple way to garanty that, as far I can tell.

While speaking of designing applications, I think that testing should be shown since the tutorial, at least in a minimal form. (by the way, testing advocates again a rationnal spread of responsabilities into the project).

> Thanks

Sorry, I lied in the begining. I was quite long so if you reach this point, you'll don't mind if I thank both Django's team to brought me into the enjoyment of developpement and the community for its participation and its enthousiasm.

Regards,

--
You received this message because you are subscribed to the Google Groups "Django 
users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to