Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ~ Yoya ~

#1
Yo llevo alrededor 8 años programando y 4 de manera profesional. He trabajado en empresas de menos de 50 empleados hasta multi nacionales con miles de empleados.

El libro me lo lei hace alrededor de 3 años y te ayudara en lo siguiente:

  • Sabras que partes del codigo deben ser re-diseñada y como hacerlo
  • Te ayuda mucho a tomar desiciones de diseño del codigo
  • Programaras de forma que cualquier ajuste pueda causarte la menor cantidad de bug
  • Se facilita mucho introducir cambios en un codigo bien diseñado
  • Sabras decidir cuando un nombre de una clase, variable, metodo es correcto
  • Sabras decidir cuando debes dividir una clase o metodo en varias clases o varios metodos
  • Sabras decidir si un codigo pertenece a una clase o no, de la misma forma que las funciones
  • Sabras utilizar de forma efectiva las excepciones

Con el indice del libro sabras de que trata y lo bueno es que podras aplicar los principios a cualquier lenguaje.

La forma en que diseñas un software, muestra la calidad de desarollador que eres.

Lo mas curioso es que mas del 70% de las personas violan mas del 70% de los principios del libro.
#2
Uno de los principios de la programacion orientada objeto se llama encasulamiento que tiene que ver con tu duda.

Cita de: http://es.ccm.net/contents/410-poo-encapsulacion-de-datos
El concepto de encapsulación

La encapsulación es un mecanismo que consiste en organizar datos y métodos de una estructura, conciliando el modo en que el objeto se implementa, es decir, evitando el acceso a datos por cualquier otro medio distinto a los especificados. Por lo tanto, la encapsulación garantiza la integridad de los datos que contiene un objeto.
#3
Java / Re: junit
17 Septiembre 2015, 00:47 AM
No he visto el código fuente compa, y veo muy difícil de que alguien se siente a revisar el codigo fuente. Ahora, si escribes una pequenia porción de algo que te interese entonces si.

Cita de: Yoya
1 - Debes programar de una forma que tu código sea testeable.

Eso que cite es lo primero que debes entender, se programa pensando en como se programaran pruebas contra el código, de lo contrario la efectividad de los test va a ser baja y en algunos no se le podrá programar test.

Puede que alguien programe sin tener en mente programar pruebas contra el código. Y por lo tanto pueda que lo que programes no sea testeable.

En el caso del void o un método que retorne un objeto, si alguien no realizo el método pensando en realizar pruebas al codigo, entonces se dificultara sus pruebas.

Ahora, a un método void se le podría hacer unit test, ya sea verificando que este lance o no lance una excepción. Tambien se le podria hacer functional testing, ya que el metodo debe realizar algun cambio no, ya sea en la DB o en algun recurso, y se podria verificar que el cambio se haya realizado correctamente. Pero programar, y luego pensar en como se podria implementar las pruebas dificulta la creacion de test y su efectividad.

#4
Java / Re: junit
14 Septiembre 2015, 05:56 AM
1 - Debes programar de una forma que tu código sea testeable.
2 - Si el método se comportara igual independientemente el tamanio de la MATRIX, entonces no tienes que hacer un test por cada nivel. Pero si se comporta diferente dependiendo del tamanio de la matrix, entonces tienes un problema de diseno, ya que tienes un método que hace muchas cosas, por lo tanto se dificulta desarrollar unit testing y tampoco el método puede llegar a ser reusable sin tener que hacerle modificaciones.
#5
Yo llevo casi un año pagando Spotify y no me arrepiento. Tengo toda mi música en mis dispositivos, no tengo que estar descargando la música para luego pasarla a los demás dispositivos, y cuando salgo con los amigos o con alguna chica, hago streaming de alguna lista de reproducción de alguien xD.

Te dan un mes de prueba creo, podrías probar haber que tal.

Netflix me parece muy bueno pero el catalogo de latinoamericano no me convence.
#6
Cita de: peib0l en  7 Abril 2015, 22:12 PM
Alguien tiene algún manual o documento de AngularJS pero que este bien escrito, actualizado, ordenado, que no sea de iniciación y en español?


Podría pedir más..

Quizas mi comentario no ayude pero lo hago igual  ;D.

Actualizado, intermedio-avanzado y bien escrito dudo que lo encuentres en español y siempre sera un problema hasta que no te acostumbres a leer en ingles. Los materiales de programacion se suelen sacar en ingles porque la mayoria de los programadores dominan ese lenguaje.
#7
Todavía sigue el mito que Java es lento...

Java es un lenguaje compilado, al igual que C. Eso si, los objetos en Java tienen un overhead y esto causara que java utilice mucho mas memoria comparado con la misma version en C.

Java - Build anything; Run anywhere; Faster than lightning
#8
Eclipse para Java EE/SE. Para cambios rápido utilizo Notepad++. Y nano cuando necesito editar archivos en servidores remotos o hacer cambios rapido en Linux.
#9
Cita de: daryo en 31 Enero 2015, 18:28 PM
siendo asi ¿por que esta tan generalizado ese problema? entonces el problema es que como dije el ¿lenguaje enseña malas practicas de programacion?

solo pregunto por curiosidad no es mi intencion atacar ni nada xD.


Cita de: wikipediaJava memory usage is much heavier than C++'s memory usage because:


  • There is an 8-byte overhead for each object and 12-byte for each array in Java. If the size of an object is not a multiple of 8 bytes, it is rounded up to next multiple of 8. This means an object containing a single byte field occupies 16 bytes and requires a 4-byte reference. Note that C++ also allocates a pointer (usually 4 or 8 bytes) for every object that declares virtual functions.
  • Parts of the Java Library must be loaded prior to the program execution (at least the classes that are used "under the hood" by the program). This leads to a significant memory overhead for small applications.
  • Both the Java binary and native recompilations will typically be in memory.
  • The virtual machine itself consumes a significant amount of memory.
  • In Java, a composite object (class A which uses instances of B and C) is created using references to allocated instances of B and C. In C++ the memory and performance cost of these types of references can be avoided when the instance of B and/or C exists within A.
  • Lack of address arithmetic makes creating memory-efficient containers, such as tightly spaced structures and XOR linked lists, impossible.

In most cases a C++ application will consume less memory than the equivalent Java application due to the large overhead of Java's virtual machine, class loading and automatic memory resizing. For applications in which memory is a critical factor for choosing between languages and runtime environments, a cost/benefit analysis is required.

El compilador java compila código fuente a un código llamado Java ByteCode y este código puede ser leído por la maquina virtual de java. Luego este código se compila a un código nativo, de la misma manera que cuando compilas un código en C++. Pero también hay algo mas, la transición del Java bytecode a código nativo se puede tunear de forma que desde que se ejecute cada porción de código este se compile pero también se puede tunear para en vez de compilar todo el código a código nativo, la JVM examine la aplicación durante su ejecución (el código java se interpreta, durante este tipo de ejecución se ejecutara mas lento) de esta forma analiza que partes de la app se suelen ejecutar mas, optimizarlo y luego compilar a código nativo pero esta vez compilaría un código mucho mas optimizado.

Igual Java es muy verbose, y esperemos que en el futuro mejoren este aspecto.

Y mi favorito es Java, fue el mejor error en mi vida y de lo único que me arrepiento es de no conocerlo mucho antes.

Saludos.
#10
Buen aporte.