Hola, ante todo me presento este es mi primer post en este foro, soy un fanático de la programación de todo tipo, me gusta aprender cosas nuevas y trabajo en una empresa de desarrollo de software para bancos y financieras en la que se desarrolla principalmente en java.
Hace tiempo tengo ganas de trabajar por mi cuenta ,como un ingreso extra, al principio pensé en hacerlo con las mismas herramientas que utilizo en mi trabajo (java/spring/hibernate/swing). Pero tras haber leído un libro de python 3 me interesé mucho por este lenguaje y pensé en utilizar python con django para mis proyectos propios. El problema es que el 95% de los tutoriales o cursos que encuentro en internet explican django con ejemplos de sitios públicos como redes sociales, blogs, foros..
¿Es bueno django para hacer un sistema intermo de control ventas y finanzas por ejemplo?
y de hacer algo de ese tipo.. ¿lo debería desarrollar modificando el sitio de admin de django para aprobechar sus ventajas o es mejor hacerlo por separado?
¿Conocen librerías para django o python que me sirvan para hacer aplicaciones de este tipo? un ejemplo sería alguna librería de componentes mas completos que los genéricos de html, como datatables con sort y paginación o componentes de fecha (en java por ejemplo existe primefaces que exitende la funcionalidad de faces)
Si conocen algo mejor que django para utilizar con python, para este tipo de aplicaciones también me serviría, en lo posible que sea web. Gracias!
Python es un estupendo lenguaje para el propósito que comentas y django el framework ideal. Encontrarás amplia documentación sobre el lenguaje y el framework, así como gran cantidad de módulos programados por la comunidad que podrás usar en tu aplicación.
Si es tu proyecto personal, no te lo pienses más, si construyes sobre open source irás lento pero llegarás más lejos. Si quieres fast food considera otras opciones.
Yo trabajo a ambos lados, el open source enriquece en lo personal, el fast food en lo económico (de algo hay que vivir) :-)
¿Es bueno django para hacer un sistema intermo de control ventas y finanzas por ejemplo? ¡Muy buena pregunta! La versión corta de la respuesta es: "NO! No uses Django para eso!".
La respuesta mas larga: Hay una razón por la cual encuentras ejemplos sencillos del tipo blog>author>post>comment, etc. Django, tal como Rails y otros frameworks basados en el patrón active record, no escalan bien con respecto a la complejidad y tamaño de una aplicación de negocios ('enterprise' según la definicion de M. Fowler y otros). Django te invitará a tomar muchas malas decisiones de diseño de las que dificilmente puedas volver atrás. Los Modelos acoplan fuertemente el mecanismo de persistencia con la lógica de negocio, y si bien la presentación queda en principio separada por un sistema de plantillas bastante potente, el lazy-loading de las relaciones hace que tu presentación ( {{ post.author.name }} en la plantilla ) también esté realizando operaciones de lectura, accediendo por arte de magia a una instancia global para traer datos. Tu aplicación estará dominada por las relaciones en tu base de datos en lugar de por la lógica que dicta tu dominio, usando Hibernate en Java es probable que también suceda si tus entidades no respetan capas, pero en este caso está prescrito por el mismo framework. Las pruebas unitarias son realmente problemáticas y lentas ya que no es fácil inyectar un mecanismo de persistencia... Podría seguir y seguir todo el día.
Mi consejo es que no te apoyes en un framework grande para una aplicación que es potencialmente grande. Utiliza bibliotecas y microframworks que te resuelvan -bien- una necesidad a la vez, sistema de plantillas, routing, acceso a datos, etc. Busca sobre patrones que te guíen para escribir software de negocio mantenible. Construye tu lógica de dominio utlizando OOP y Python puro (piensa POJO en Java), busca sobre Hexagonal Architecture, Ports & Adapters, Domain Driven Design, etc. y define tu estrategia de testing desde el comienzo.
Hola que tal... para cosas serias... ya que vienes de Java, te recomiendo revises a fondo OpenXava.... te vas a sorprender.... y si no.. opta mejor por ASP.NET MVC que ademas hay muchos componentes de pago para hacer muchisimas cosas mas profesionales... ahora existen alternativas como XOJO que puede compilar para windows, linux, os x, raspberry, iOS, WEB, el proximo año compilara para Android.... y todo usando sintaxis tipo VB pero orientada a objetos.. y si diseñas bien tu aplicacion puedes reutilizar tus clases para manejar los datos.. eso si.. necesitaras hechar mano de plugins de pago para hacer cosas serias...
Hace tiempo tengo ganas de trabajar por mi cuenta ,como un ingreso extra, al principio pensé en hacerlo con las mismas herramientas que utilizo en mi trabajo (java/spring/hibernate/swing). Pero tras haber leído un libro de python 3 me interesé mucho por este lenguaje y pensé en utilizar python con django para mis proyectos propios. El problema es que el 95% de los tutoriales o cursos que encuentro en internet explican django con ejemplos de sitios públicos como redes sociales, blogs, foros..
¿Es bueno django para hacer un sistema intermo de control ventas y finanzas por ejemplo?
y de hacer algo de ese tipo.. ¿lo debería desarrollar modificando el sitio de admin de django para aprobechar sus ventajas o es mejor hacerlo por separado?
¿Conocen librerías para django o python que me sirvan para hacer aplicaciones de este tipo? un ejemplo sería alguna librería de componentes mas completos que los genéricos de html, como datatables con sort y paginación o componentes de fecha (en java por ejemplo existe primefaces que exitende la funcionalidad de faces)
Si conocen algo mejor que django para utilizar con python, para este tipo de aplicaciones también me serviría, en lo posible que sea web. Gracias!
20/04/2016 15:41
Si es tu proyecto personal, no te lo pienses más, si construyes sobre open source irás lento pero llegarás más lejos. Si quieres fast food considera otras opciones.
Yo trabajo a ambos lados, el open source enriquece en lo personal, el fast food en lo económico (de algo hay que vivir) :-)
08/07/2015 16:40
La respuesta mas larga: Hay una razón por la cual encuentras ejemplos sencillos del tipo blog>author>post>comment, etc. Django, tal como Rails y otros frameworks basados en el patrón active record, no escalan bien con respecto a la complejidad y tamaño de una aplicación de negocios ('enterprise' según la definicion de M. Fowler y otros). Django te invitará a tomar muchas malas decisiones de diseño de las que dificilmente puedas volver atrás. Los Modelos acoplan fuertemente el mecanismo de persistencia con la lógica de negocio, y si bien la presentación queda en principio separada por un sistema de plantillas bastante potente, el lazy-loading de las relaciones hace que tu presentación ( {{ post.author.name }} en la plantilla ) también esté realizando operaciones de lectura, accediendo por arte de magia a una instancia global para traer datos. Tu aplicación estará dominada por las relaciones en tu base de datos en lugar de por la lógica que dicta tu dominio, usando Hibernate en Java es probable que también suceda si tus entidades no respetan capas, pero en este caso está prescrito por el mismo framework. Las pruebas unitarias son realmente problemáticas y lentas ya que no es fácil inyectar un mecanismo de persistencia... Podría seguir y seguir todo el día.
Mi consejo es que no te apoyes en un framework grande para una aplicación que es potencialmente grande. Utiliza bibliotecas y microframworks que te resuelvan -bien- una necesidad a la vez, sistema de plantillas, routing, acceso a datos, etc. Busca sobre patrones que te guíen para escribir software de negocio mantenible. Construye tu lógica de dominio utlizando OOP y Python puro (piensa POJO en Java), busca sobre Hexagonal Architecture, Ports & Adapters, Domain Driven Design, etc. y define tu estrategia de testing desde el comienzo.
07/10/2016 05:14
21/12/2016 11:55