On Thursday 09 March 2017 14:07:45 Charles Thayer wrote:

> * Examples: is there a canonical example app that covers enough ground
> to be _the_ "best practices" example?

An "app" is a very loosely defined term. There has been work to come to a 
"reusable 
app standard[1]". But since there's no certification, stickers, prestige, 
increased 
revenue or princess in a tower incentive - in practice a good ammount of 
developers 
don't know about it let alone adhere to it.
So, there's not really a solid standard to reference your "best practices" 
against.

> * Examples templates: I include a eg_urls.py and
>   templates/eg/index.html so that people could bring it up and try it
>   out under a standalone test project. Is there a common way to do
>   this?

If I have to download an example project for an app, the documentation is 
lacking. If I 
want to see if it does it's job, I prefer a working demo (and my goal is then 
to see if I 
can break it).

> * Ajax: Turns out that I only ever implemented ajax methods in this
>   app, and they're all in views.py. I see other projects sometimes use
> ajax.py or api.py, would that be better?

Ajax.py is common, but in itself has no benefit. Api.py is a bad choice. It's 
used by 
some apps for providing the API for the app.

> * Implementation: For the app, I wanted to be able to like / bookmark
>   any object in the system. Some folks use an abstract model mixin
>   which creates a new table for every model that needs "like" support.
> I just create a single UserLink Model with a generic foreign field
> (and ContentType) instead.  Is there a best practice around this?

Yes, the contenttype approach. Apps who alter the database schema at runtime 
should be shot.

> * Dependencies: I have a small amount of JS which depends on JQuery,
>   animateCss, and Font Awesome. Is there a standard way to express
>   these dependencies or should this be somehow simplified / ripped
>   out.

Whatever you do, do not auto-inject JQuery. Use two settings instead:
- include_jquery: boolean
- jquery_url: string

Example: Django Bootstrap3[2]. I also like the dictionary approach to settings 
(another example of that: Django CKEditor[3] ).

You could use Django FontAwesome[4] as a requirement and let it handle the 
icons. 
Projects already using it, will appreciate it.

> * JS.html: I have some templates which generate javascript which
>   include some {% url %} lookups. Is this acceptable, or is generated
>   js from templates a bad idea.

It's fine. It's how you handle breakage that matters. One of the most annoying 
things 
about reusable apps is that quite a few don't namespace their lookups. So in a 
project 
I cannot re-namespace them to resolve conflicts.

> * Using apps: I found the workflow quite painful because I'm putting
>   the app in github but my project is actually in a different repo
>   (public vs private). To manage this I have 3 directories --is there
>   a better way?

Yes, git submodules.

-- 
Melvyn Sopacua

--------
[1] http://django-reusable-app-docs.readthedocs.io/en/latest/
[2] http://django-bootstrap3.readthedocs.io/en/latest/settings.html
[3] 
https://github.com/django-ckeditor/django-ckeditor#optional-customizing-ckeditor-editor
[4] https://pypi.python.org/pypi/django-fontawesome

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/12564123.Wd3hS0BBDz%40devstation.
For more options, visit https://groups.google.com/d/optout.

Reply via email to