elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [59]
581  Programación / Java / Re: [Aporte] Mejores practicas en Java en: 21 Enero 2015, 18:33 pm
Gracias, no sabia lo de camelCaes y PascalCase, lo agregare luego, y como bien dices en es solo convención de nombres, pero lo que intentare hacer es hacer una guía completa, si te das cuenta Nombres es solo el numero 1, el tema es que era mucho texto para escribirlo del tirón u.u.

Gracias por leer mi biblia.

edito:
Teniendo en cuenta que por lo visto ya no puedo modificarlo, intentare recopilar todo lo que encuentre para hacer un nuevo tema, esta vez completo del todo.
582  Foros Generales / Foro Libre / Re: Cuanto tiempo pasas en la computadora? en: 21 Enero 2015, 12:15 pm
u.u, estoy de vacaciones, y mi novia salio de la ciudad.... a si que si por asi decirlo, duermo 8 horas al dia, y entre ducharme, ir al baño, e ir a ver si hay algo de comer en mi cocina me demoro en total 1 hora (como frente la computadora como dios manda)... pues... yo diría que 15 horas al día... creo que estoy mal.
 :(
583  Programación / Java / Re: [Ayuda] [Duda] Programando un Robot en Java en: 21 Enero 2015, 07:47 am
Ni idea, me quedo con la duda, espero que alguien que sepa mas del tema te pueda ayudar
584  Programación / Java / Re: [Ayuda] [Duda] Programando un Robot en Java en: 21 Enero 2015, 07:35 am
Pues nada, ya no se me ocurre xD!, lo lamento.

Si tienes skype, mándame tu username por mensaje y compartes pantalla, a ver si se me ocurre algo viéndolo. Pero lo mas seguro es que no.
585  Programación / Java / Re: numero hexadecimal grande en: 21 Enero 2015, 07:14 am
Se que esto no responde a tu pregunta de porque da un error, pero... no puedes utilizar:
Código:
Integer.toHexString(numero);
?

Por ultimo si no quieres tener líos con el tema del signo:
Código:
(a>=0)? Integer.toHexString(numero) : "-"+Integer.toHexString(numero*-1);

 :xD
586  Programación / Java / Re: [Ayuda] [Duda] Programando un Robot en Java en: 21 Enero 2015, 06:56 am
El problema recae en esto, java es un lenguaje que corre sobre una maquina virtual como sabrás, entonces este lenguaje no es el mas indicado para utilizar datos propios del sistema por el simple hecho de que java no corre directamente sobre el sistema.

Por esta razón veo difícil que puedas obtener datos íntegros de otro programa que corre sobre el sistema.

Pero me llama mucho la atención que suceda eso que te pasa, podrías intentar algo por mi?, intenta utilizar Robot para sacar una especie de foto de la pantalla, si mal no me equivoco el método era "createScreenCapture"... quiero ver si efectivamente al menos visualiza el videojuego.
587  Programación / Java / Re: [Ayuda] [Duda] Programando un Robot en Java en: 21 Enero 2015, 06:25 am
Ok, vere que sucede.

Anda tu.. xD!, lo lamento pero por un segundo pensé que seria uno de esos juegos que descargo y ya esta a jugar.

Veras no me animo a hacer pruebas, pero me llamo mucho la atención, al menos te toma datos del teclado, no se, si intentas escribir algo?
588  Programación / Java / [Aporte] Mejores practicas en Java en: 21 Enero 2015, 06:23 am
Hace unos días atrás tuve un problema con el ordenador, de lo aburrido y enojado que estaba borre por error todo sin guardar absolutamente nada. Entre todo ese conjuntos de archivos inútiles se encontraba uno que otro interesante, como es el caso de mis apuntes sobre las mejores practicas en java. No recuerdo todo lo que ahí contenía, pero para evitar que esto me suceda otra vez he decidido publicar lo que recuerdo en este foro, y quizás con su ayuda complementarlo y mejorarlo. Agradecería mucho sus aportes.

(Si un tema similar ya existe por favor no duden en eliminarlo)

Introducción:

Se conocen como buenas practicas la acción de realizar algo preocupándote de que esto este bien hecho, siguiendo patrones, convenciones y estándares adecuados para lograr un buen producto, el tema es que la programación no se queda fuera de este concepto y cada lenguaje tiene sus "buenas practicas". En lo personal concluyo que en Java las "Buenas practicas" no están muy bien definidas y en muchos casos existen variaciones entre lo que uno cree que es bueno y lo que otros creen que lo es. Por esta razón espero que participen y me ayuden a encontrar un punto medio que nos ayude a evitar el temible código espagueti entre otras cosas.

Desarrollo:

1. Nombres:

En java como en muchos otros lenguajes existen variables, paquetes, clases y métodos. Los nombres que identifican a cada uno de estos aun cuando pueden ser prácticamente cualquiera, se establecieron convenciones para que nuestro código fuera mas prolijo y por lo tanto su lectura fuera mas sencilla. Por otro lado aplicando estas practicas se evitaran conflictos tales como que una clase tenga el mismo nombre que un paquete. A continuación listare cada uno de estos acuerdos y mas abajo procederé a detallarlos y adjuntare ejemplos.


1.1. Se recomienda que tanto paquetes, clases, métodos, variables y constantes tengan un nombre significativo que apunte a su utilidad.
1.2. Todas las variables se escriben en minúscula, en caso de tener mas de una palabra se pondrá la inicial de cada una de estas en mayúscula exceptuando la primera.
1.3. El nombre de las constantes sera únicamente en mayúsculas, si existe mas de una palabra estas son separadas por un guion bajo.
1.4. Se recomienda que todos los métodos a lo igual que las variables tengan nombres en minúscula y en caso de existir mas de una palabra, escribir la inicial de cada una de estas con mayúscula exceptuando la primera.
1.5. Se recomienda que los nombres de los métodos siempre sean verbos.
1.6. Utilizar prefijos significativos para métodos comunes.
1.7. Los nombres de las clases siempre empezaran con mayúscula y el resto sera en minúscula, en caso de existir mas de una palabra se pondrá la inicial de cada una de estas con mayúscula.
1.8. Los nombres de paquetes siempre serán totalmente en minúsculas.
1.9. Se recomienda utilizar prefijos tales como "com", "name", "org" para los paquetes dependiendo de quien es su creador.


1.1. Se recomienda que tanto paquetes, clases, métodos, variables y constantes tengan un nombre significativo que apunte a su utilidad:

Hace un tiempo atrás los programadores acostumbraban a utilizar nombres cortos para poder ahorrar memoria, aparte de que muchos editores de texto no aceptaban mas de 80 caracteres por linea, pero actualmente las limitaciones de memoria en disco y memorias portátiles ya se han desvanecido, y prácticamente todo editor de texto soporta con creces mas de 80 caracteres por linea, es por esto que en la actualidad se recomienda siempre dar nombres característicos a cada elemento y de esta manera poder identificar fácilmente cual es su funcionalidad en el programa.

Código
  1. // Esto no es recomendado
  2. int w = 640;
  3. int h = 480;
  4.  
  5. // Esto es recomendado
  6. int width = 640;
  7. int height = 480;

1.2. Todas las variables se escriben en minúscula, en caso de tener mas de una palabra se pondrá la inicial de cada una de estas en mayúscula exceptuando la primera:
Una forma muy simple de identificar una variable de otro tipo de elemento es su nombre, y en java una convención muy conocida es que toda variable empieza en minúscula y en caso de que su nombre se vea compuesto por dos o mas palabras se pondrá la inicial de cada una de estas en mayúscula exceptuando la primera. En el caso de existir una abreviatura tal como FPS se recomienda colocar su nombre en minúsculas de todas maneras.

Código
  1. // Esto esta mal
  2. String Saludo = "Hola Mundo";
  3. String MensajeDespedida = "Chao Mundo";
  4. int FPS = 30;
  5.  
  6.  
  7. // Esto esta bien
  8. String saludo = "Hola Mundo";
  9. String mensajeDespedida = "Chao Mundo";
  10. int fps = 60;

1.3. El nombre de las constantes sera únicamente en mayúsculas, si existe mas de una palabra estas son separadas por un guion bajo:
Para identificar fácilmente una constante y no tener que buscar su procedencia es muy recomendable poner su nombre completamente en mayúscula y si esta se conforma por mas de una palabra, se separaran con un guion bajo

Código
  1. // Esto esta mal
  2. final float pi = 3.14;
  3. final int ESCALAVENTANA = 2;
  4.  
  5. // Esto esta bien
  6. final float PI = 3.14;
  7. final float ESCALA_VENTANA = 2;

1.4. Se recomienda que todos los métodos a lo igual que las variables tengan nombres en minúscula y en caso de existir mas de una palabra, escribir la inicial de cada una de estas con mayúscula exceptuando la primera:

Código
  1. // Esto esta mal
  2.  
  3. public void PintarPerro(){
  4.  
  5. }
  6.  
  7. public void pintar_gato(){
  8.  
  9. }
  10.  
  11. // Esto esta bien
  12.  
  13. public void pintarPerro(){
  14.  
  15. }
  16.  
  17. public void pintarGato(){
  18.  
  19. }


1.5. Se recomienda que los nombres de los métodos siempre sean verbos:
Los métodos usualmente son para realizar acciones, tales como calcular un problema matemático o asignar un nuevo valor a un atributo, es por esta razón que se aconseja que los nombres de los métodos siempre sean verbos tales como pintar, dibujar, calcular, eliminar...

Código
  1. // Esto esta mal
  2. public int suma(int x, int y){
  3. return x+y;
  4. }
  5.  
  6. // Esto esta bien
  7. public int sumar(int x, int y){
  8. return x+y;
  9. }

1.6. Utilizar prefijos significativos para métodos comunes:
Por principio de encapsulación los objetos deberían tener todos sus atributos como privados o protegidos y la única manera de acceder a ellos desde el exterior es por métodos "get" o "set". Se recomienda que siempre que se cree un método con estas características se indique el prefijo "get" o "set" dependiendo de su utilidad.

También existe el prefijo "is" utilizado en métodos que retornan un booleano (true o false) entre otros tales como "compute" para métodos que realicen algún calculo, "find" para métodos destinados a buscar algo, o "initialize" para métodos utilizados para inicializar algo. Estos últimos tres "compute", "find" e "initialize" no son muy utilizados.

Código
  1. // Esto esta mal
  2.  
  3. public void edad(int edad){
  4. this.edad = edad;
  5. }
  6.  
  7. public int decirEdad(){
  8. return edad;
  9. }
  10.  
  11. // Esto esta bien
  12. public void setEdad(int edad){
  13. this.edad = edad;
  14. }
  15.  
  16. public int getEdad(){
  17. return edad;
  18. }
  19.  
  20. public boolean isFocusable(){
  21. return focusable;
  22. }


1.7. Los nombres de las clases siempre empezaran con mayúscula y el resto sera en minúscula, en caso de existir mas de una palabra se pondrá la inicial de cada una de estas con mayúscula:

Como dije anteriormente una buena manera de identificar ciertos elementos es mediante su nombre y al respetar esta convención nunca tendrás un problema a la hora de identificar una clase de una variable o método.

Código
  1. // Esto esta mal
  2. public class juego{
  3.  
  4. }
  5.  
  6. public class Ventana_Principal{
  7.  
  8. }
  9.  
  10. //Esto esta bien
  11.  
  12. public class Juego{
  13.  
  14. }
  15.  
  16. public class VentanaPrincipal{
  17.  
  18. }

1.8. Los nombres de paquetes siempre serán totalmente en minúsculas:

los nombres de paquetes serán completamente en minúscula sin importar que exista mas de una palabra, en caso de ser así algunos optan por agregar un "." en mi caso opto por evitar utilizar nombres compuestos, ya que el punto se entiende como un paquete anidado en otro.

Código
  1. // Esto esta mal
  2.  
  3. package Juego;
  4.  
  5. // Esto esta bien
  6.  
  7. package juego;


1.9. Se recomienda utilizar prefijos tales como "com", "name", "org" para los paquetes dependiendo de quien es su creador:

Bueno, en este momento me esta costando mucho recordar esto, así que no ahondare mucho en este tema, quizás mas adelante lo complete, el hecho es que existen distintos tipos de prefijos que se acomodan a nosotros como lo son por ejemplos com y name:

com = compañia
name = nombre

En caso de ser un solo programador el que esta programando se utiliza el prefijo name seguido por el nombre del programador y si el programa es por parte de una compañía se utilizaría el prefijo com seguido por el nombre de la compañía, de esta manera se puede identificar quien es su creador y a quien le pertenece los derechos de su creación, un ejemplo para que quede mas claro

Código
  1. package name.nacho.components;
  2. package com.polloshermanos.components;

En este caso no pondré una sección "esto esta mal" ya que yo sinceramente no hago mucho uso de esto y no estoy muy familiarizado con su importancia.

Continuare con esto mañana, que ya me estoy cansando de escribir  :xD
589  Programación / Java / Re: [Ayuda] [Duda] Programando un Robot en Java en: 21 Enero 2015, 03:52 am
Como estas haciendo el robot?
Con la clase robot supongo... me podrías decir el nombre del juego para hacer pruebas, no entiendo realmente tu error, hasta donde yo se no importa de que ventana se trate ni nada, la clase robot controla el teclado y el mouse no el juego en si.

No se si pueda ayudarte, pero me llamo la atención en error u.u
590  Programación / Java / Re: ¿Canvas o JPanel? en: 21 Enero 2015, 03:39 am
Los dos te funcionan. Tienen distintos métodos para pintar, en este momento no recuerdo Canvas, pero JPanel es paintComponent(Graphics g) (no confundir con paintComponents)

Otros dos temas a tener en cuenta son los siguientes:

1) Canvas es de awt y por lo tanto se encuentras mas apegado a la clase Object, por lo que tiene menos funcionalidades, lo cual representa una menor carga para el programa (tampoco te preocupes, no es que haga mucho cambio)

2) JPanel tiene la tecnología de doble buffer, fácilmente lo puedes programar en Canvas, pero eso que te ahorras.

<A todo esto, según recuerdo si quieres puedes hasta pintar en un Component>

Nunca he hecho un juego grande, ni nada muy complejo, pero últimamente y casi siempre he utilizado JPanel y no he tenido problema alguno.
Páginas: 1 ... 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [59]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines