Discusión sobre el artículo "Consejos de un programador profesional (parte I): guardado, depuración y compilación de códigos. Trabajando con proyectos y logs"

 

Artículo publicado Consejos de un programador profesional (parte I): guardado, depuración y compilación de códigos. Trabajando con proyectos y logs:

Consejos de un programador profesional sobre métodos, técnicas y herramientas auxiliares para facilitar la programación.

Los archivos de programa del terminal se encuentran en el directorio MQL5. Este directorio es el llamado «sandbox». El acceso desde el exterior está cerrado. Y eso es lo correcto. Aunque, si conectamos nuestra propia DLL, seguramente podremos entrar donde queramos.

Por ejemplo, aquí tenemos la estructura del proyecto Cayman:

  • /Experts/Cayman/ - asesor experto
  • /Files/Cayman/ - archivos de datos (ajustes, parámetros)
  • /Include/Cayman/ - biblioteca de clases (funciones)
  • /Scripts/Cayman/ - scripts operativos principales
  • /Scripts/CaymanDev/ - scripts de desarrollador (para la depuración)

Principales ventajas de esta distribución:

  • Búsqueda contextual solo en los archivos del proyecto con la ayuda de TotalCommander
  • Control de versiones con la ayuda de Git (controlar solo los archivos del proyecto, ignorando el resto)
  • Se simplifica el proceso de copiado a otro terminal (demo -> real – inicio)

Autor: Malik Arykov

 

Gracias. Un artículo bueno y útil.

 
Interesante ) He adjuntado mi biblioteca con un enlace. Tengo seis terminales diferentes y es muy incómodo cuando cada terminal tiene su propia copia de la biblioteca. Pero aquí es siempre la misma para todos los terminales. ¿Utilizas el archivo .gitattributes? Y si es así, ¿en qué forma?
 
Buen artículo. Yo solía arrastrar siempre mis documentos a un disco que no fuera del sistema, así, por si acaso).
 

Bitbucket tiene su propio bug tracker bastante normal por defecto, no necesitas iniciar uno externo.

Los enlaces son para aficionados, es más fácil trabajar a través de un repositorio, entonces la cuestión sobre el número de copias simplemente no se plantea

Interesante opinión sobre los editores externos, especialmente teniendo en cuenta el amor del autor por los scripts

 
Andrei Novichkov:
¿Utiliza el archivo .gitattributes? Y en caso afirmativo, ¿de qué forma?

No lo uso, ya que no es necesario. No me interesan los archivos binarios (incluidos image, docx) y sus deltas. Sólo me importan los textos de mis programas y su historial.

 
Andrei Trukhanovich:

Bitbucket tiene su propio bug tracker bastante normal por defecto, no necesitas iniciar uno externo.

Los enlaces son para aficionados, es más fácil trabajar a través de un repositorio, entonces la cuestión sobre el número de copias no se plantea.

Interesante opinión sobre los editores externos, especialmente teniendo en cuenta el amor del autor por los scripts

1) Un tablero kanban no es un bug tracker. Puedo gestionar tareas de varios repositorios (MQL4, MQL5, WebSite) del proyecto Cayman en un tablero.

2) He entendido bien que si tengo dos terminales con el mismo contenido MQL5 , entonces cada MQL5 tiene un repositorio local y un repositorio común en la nube. Si es así, imaginemos la situación. Haces cambios en un MQL5 y quieres aplicarlos al segundo MQL5. Tus acciones:

  • push el primer MQL5 - confirmar la versión en la nube
  • pull el segundo MQL5 - actualizar la versión.

¿Por qué tantos pasos?

3) Me gusta la comodidad - hacer mucho trabajo con un solo clic en un script. NPP me da la comodidad de resaltar los registros. Por ejemplo, aquí he resaltado mi registro en NPP para un ejemplo. Y resaltado de líneas con tokens //, Error, todo es automático, porque está escrito en la sintaxis de archivos con extensiones *.txt, *.log

resaltado de registros

 

También hay plugins gratuitos con kanban en bitbucket.

Malik Arykov:

    ¿Por qué tomarse tantas molestias?

    Porque es lo correcto.

    Diferentes terminales - diferentes instancias, por no hablar de que en un terminal puede estar trabajando en la segunda depuración y que los terminales pueden diferir radicalmente en la configuración del instrumento y las condiciones de negociación.

    Además hay matices con el terminal recogiendo nuevas versiones compiladas (tldr es mejor no compilar el código en absoluto si se está ejecutando en el terminal ahora).

    Es extraño empezar a hablar de repositorios y luego sugerir el uso de enlaces simbólicos, aunque, por supuesto, pueden ser útiles en ciertas situaciones.

     
    Andrei Trukhanovich:

    Es extraño empezar a hablar de repositorios y luego sugerir el uso de enlaces simbólicos, aunque por supuesto también pueden ser útiles en determinadas situaciones.

    Pues bien, los enlaces buscan en el mismo repositorio local (un MQL5 (*.mq?, *.ex?) para todos los terminales).

    Al mismo tiempo, cada terminal tiene sus propias peculiaridades. Por ejemplo, tengo AppSettings.txt, los parámetros de los analizadores, la configuración del terminal, etc. (especificados en .gitignore)

    Desde cada (cualquier) terminal puedes llamar a "Editar" y estar seguro de que estás corrigiendo el mismo código.

     
    Malik Arykov:

    Desde cada (cualquier) terminal puedes llamar a "Editar" y estar seguro de que estás corrigiendo el mismo código.

    Eso es exactamente lo que da miedo).

    pero el jefe es el jefe.

     

    Git ahora tiene repositorios privados.

    El escritorio nativo de Git reconoce los archivos mq4/mqh como binarios. Aunque especifique diff en los atributos, no está claro cómo ver los cambios en la aplicación. ¿Cuáles son algunas soluciones para comparar versiones de archivos convenientemente?

    ----

    Si guardas los archivos en MTEditor en codificación UTF-8, puedes ver las comparaciones a través de Git Desktop