Hola, me llamo Alexander. Hace poco instalé Discourse a través de WSL y comencé a aprenderlo.
Dos semanas después, descubrí un gran problema: Discourse no tiene buenas guías para el desarrollo de plugins, solo un par de artículos. Se da por hecho que todo el aprendizaje se reduce a leer el código, que ha acumulado mucho.
Estudio todos los días y cada día tengo muchas preguntas. Quiero encontrar un mentor que pueda responder a estas dudas y ayudarme a aprender Discourse.
Por supuesto, estoy dispuesto a pagar por un servicio tan valioso. Hablo inglés, ruso y tailandés. Estaré muy agradecido si me das alguna sugerencia.
Sí, lo leí todo. Y aún tengo preguntas.
Desafortunadamente, esta guía no cubre la inyección de hooks en archivos .rb.
Por ejemplo, los usuarios a veces suben PUPs (programas potencialmente no deseados), por lo que quiero proteger mi dominio principal de ser bloqueado por Google y los antivirus.
Por ejemplo, necesito reemplazar los enlaces de descarga compilados en mi plugin:
“https://discourse.example.com/uploads/short-url/...exe” => “https://download.proxy.com/uploads/short-url/....exe”.
¿Qué debo hacer? Creo que primero necesito encontrar algún método, ¿pero cuál? ¿Cómo encontrar el que necesito? ¿Cómo inyectar un hook en el plugin? ¿Debo reemplazar o extender el método? ¿Cómo hacer ambas cosas? Y muchas más cosas.
La mejor manera de averiguar cómo se hacen las cosas es observar ejemplos existentes.
Tuve el privilegio de tener una vez una lección con uno de mis ídolos. Él me dijo que escuchara realmente los discos; ¡todo estaba ahí!
En el caso de los complementos de Discourse, busca un caso de uso funcional idéntico en un complemento existente bien escrito o en el propio código fuente de Discourse y sigue los mismos patrones. Llevo desarrollando complementos desde hace más de dos años y aún sigo haciendo esto.
@ramjke Una cosa más, si no queda claro en el enlace que proporcioné: ofrecemos mentoría gratuita si te conviertes en miembro de nuestra comunidad y contribuyes a nuestros plugins de código abierto. Por lo general, esto consistiría en que desarrolles una PR (por ejemplo, para agregar una función o resolver un error molesto) en uno de nuestros plugins, y nosotros te guiaríamos para mejorarla hasta que esté lista para producción. En gran medida, así es como yo aprendí: contribuyendo de verdad a funcionalidades útiles del mundo real. Las PR son un mecanismo perfecto para un flujo de trabajo de aprendizaje. Esto nos ayuda a mantener estos plugins populares y, al mismo tiempo, constituye una experiencia de aprendizaje increíble. Ya hay una gran lista de características pendientes en las que podrías estar trabajando :).