Tecnología, Internet y juegos
19 meneos
349 clics
Este envío tiene varios votos negativos. Asegúrate antes de menear

Algo huele mal en la aplicación de ejemplo para Android del DNI electrónico [ENG]

Una aplicación de ejemplo para Android ha sido publicada por el Ministerio de Interior y la Policía Nacional para explicar cómo interactuar con la nueva versión del DNIe 3.0 (DNI español). Sin embargo, el código publicado no se ajusta a lo que podemos considerar "mejores prácticas" en el desarrollo de software.

| etiquetas: tecnología , programación , dni electrónico
  1. #0 Traduce la entradilla o te la van a tumbar.
  2. Gracias, tomo nota.
  3. Vaya basura de código. Estaría bien saber lo que ha costado este proyecto a los contribuyentes, la verdad.
  4. A mí no me sorprende NADA, la verdad, tras pasar por dos cárnicas hace años que desarrollaban software para ministerios y varias oficinas públicas (desarrollaron parte del DNIe original, por ejemplo).

    Los conceptos explicados ahí arriba no son compatibles con la programación que se realiza en las cárnicas, no por falta de interés de los programadores (aunque a veces sí), sino porque si contratas lo más bajo del mercado en sueldos, lo que consigues en calidad y tecnología va en la misma línea. ¡Ya, que funcione, es en sí mismo un milagro!
  5. Cumple su función, que es que lo enrevesado del código y la falta de tests hagan que ninguna otra consultora pueda tratar de llevarse el mantenimiento.
  6. si pagas con cacahuetes...
  7. Resumiendo, una nueva mierda proporcionada por la marca España.
  8. Que cracks xD xD xD

    Me quedo con las 100 lineas dentro de un try, y que en el catch no haga nada y con el último algoritmo :

    public long getTLV( int [] iTagLen, byte [] tlv){
     Long tag;
     int idxByte = 0;

     tag = (long) tlv[idxByte++];
     if( (tag & 0x1f) == 0x1f )
      tag = (tag<<8) | tlv[idxByte++];
      
     if( (tlv[idxByte] != (byte)0x81 ) && (tlv[idxByte] != (byte)0x82 ) ){
      iTagLen[0] = idxByte + 1;
      return tlv[idxByte];
     }else if( tlv[idxByte] == (byte)0x81 ){
      iTagLen[0] = idxByte + 2;
      return (tlv[idxByte+1])& 0x00ff;
     }else if( tlv[idxByte] == (byte)0x82 ){
      iTagLen[0] = idxByte + 3;
      return (0x100 + tlv[idxByte+=2])& 0xffff;
     }else
      return 0;
    }


    I am still wondering why tag is computed and never used.o_o o_o
  9. No se yo, he visto códigos peores. La mayoría de los problemas se deben a la prisa de implementar algo a tiempo. Me gustaría ver las "preciosidades" totalmente normalizadas, con pruebas unitarias completas, sin código comentado y con descripciones de cada algoritmo que suele programar el chaval este... Y eso que debe tener a paladas, al ser el "mejor ingeniero informático de su promoción"... Lo malo es que no he visto código suyo por ningún sitio. Incluso se permite tener una cuenta de github sin una línea de código (¡¡!!) ¿Vamos a empezar a seguir a tertulianos del código?
  10. Lo del método para calcular el número más pequeño me ha matado. xD
comentarios cerrados

menéame