Básicamente, desea que su proyecto funcione "de fábrica". Cuando las personas eligen el proyecto de código abierto adecuado para una tarea, descargan un grupo de proyectos que dicen que respaldan la tarea y usan la mejor. Si un proyecto necesita mucho trabajo para su instalación (por ejemplo, la descarga de 20 dependencias JAR de 20 sitios diferentes), la mayoría de las personas solo lo probará como último recurso o simplemente lo ignorará.
Repositorio: Usted puede tratar de algún motor de repositorio de nuevo - como Mercurial o Git. Facilitan el desarrollo y facilitan la fusión de sucursales. Sin embargo, y lo que es más importante, elija un motor compatible con su IDE de forma nativa.
Dependencias: Debe utilizar un readme a dependencias estatales, pero esto no es suficiente, ya sea para uso Maven para administrar dependencias, en cuyo caso sólo tiene que incluir pom.xml
archivo, o incluir JAR que eres depende de tu distribución. En el segundo caso, divida las dependencias en mandatory
, optional
, compiletime
y test
. Un ejemplo de dependencia opcional son las herramientas de generación de códigos de bytes para Hibernate.
Sitio: Maven puede create a site que está asociado con una versión particular de su software (aunque nunca lo usó).
Documenation - JavaDoc: Documentar todo, y tratar de hacer cumplir una política que garantice javadocs de alta calidad:
/**
* Sets the cost
* @param decimal cost
*/
public void setCost(BigDecimal decimal){
es inútil. Mejor es:
/**
* Sets the cost, cost is in currency setted by #setCurrency.
* @param decimal cost, precision shoule be at least three places
*/
public void setCost(BigDecimal decimal){
Documentación: Javadoc no es suficiente. Da un punto de partida: es preferible un tutorial (y no me refiero al tipo de tutorial con muchas capturas de pantalla de los diálogos de eclipse;)). El código de ejemplo también está bien, o al menos escriba en alguna parte: "Leer el javadoc de la clase EntryPoint
es una buena manera de empezar a usar esta biblioteca". Si solo tiene javadocs, cualquier persona que esté considerando usar su biblioteca recibirá una lista de todas las clases y paquetes, y no sabrá por dónde empezar.
Bugtracking Software: No recordará más de tres errores a la vez (y olvidará cosas) - también lo ayudará a administrar tareas y nuevas funciones deseadas. Es posible que desee probar:
- FogBugz - es agradable, pero cuesta dinero. (Gratis para hasta dos desarrolladores).
- Bugzilla - agradable, popular y gratuita
software gestión de proyectos: Esto le ayudará a calcular las fechas de lanzamiento, tareas divididas entre los desarrolladores etc.
tratan de pasar Joel test
proceso de construcción: hacer que la construcción de un proceso de un solo clic. Por ejemplo, un script ant que incrementa el número de versión, inicia maven compilaciones, implementa el sitio, etc. ¡Vale la pena el esfuerzo!
Forum: Una buena idea, ayudará a apoyar.
Wiki: En muchos proyectos (incluso bastante desarrollados) tales wikis son bastante vacíos, lo que es malo (ya que hace que la gente piense '¿cómo puede ser un gran software si nadie escribe en este wiki?').
changelogs de los comentarios del desarrollador son inútiles. No tienen sentido si no eres el desarrollador. Si lo es, entonces el sistema SCM debería decirle la información. –