7 Tips Para Ser un Programador Más PRO

Поделиться
HTML-код
  • Опубликовано: 27 окт 2024

Комментарии • 330

  • @AntonioSarosi
    @AntonioSarosi  2 года назад +82

    Algunas notas que estáis mencionado:
    - Se puede rellenar una tabla con un CSV directamente desde consola. Efectivamente, pero no siempre es tan fácil, a veces tienes que convertir los datos a otro formato (rediseño de la BD) o sacar los datos de otra API o de otro sito. El tip es agrupar los inserts, no tanto el CSV, el CSV era solo un ejemplo.
    - En compiladores más antiguos no se puede cambiar un if dentro de otro por un and porque no garantizan que la evaluación del and sea de izquierda a derecha. En estos casos lo que se puede hacer es poner uno después de otro, si es que vas a retornar nulo u otro valor.
    - No es el lenguaje como tal el que tiene un "estándar" para la nomenclatura de variables/funciones/clases. Existen varios estándares para cada lenguaje. A lo o que me refería es a usar el estándar mayoritario, que usa la mayoría de gente.

    • @fernandomoran3163
      @fernandomoran3163 2 года назад

      Cual es tu lenguaje favorito

    • @fullpeliculafhdhdsd9242
      @fullpeliculafhdhdsd9242 2 года назад

      Buena aclaración.

    • @alexestrada9588
      @alexestrada9588 2 года назад

      @@no-name1.612 khee

    • @revytech1001
      @revytech1001 2 года назад

      Si, en la práctica antes de cada registro se requieren validaciones que no dependen del tipo de dato si no del modelo de negocio. A medida que estas se cumplan se pueden ir agregando al query.

    • @flavioe.salasm.9922
      @flavioe.salasm.9922 2 года назад

      the Art of postgresql... te enseña a no ser tan pendejo....

  • @jinjanwarrior5912
    @jinjanwarrior5912 2 года назад +139

    Me molarian más videos de este estilo

  • @mihailion2468
    @mihailion2468 Год назад +28

    Para el primer tip, puedes mejorarlo aún más usando el LOAD DATA INFILE de mySQL, que lo que hace es básicamente leer directamente el fichero y lo vuelca a base de datos, ya te imaginas lo rápido que puede llegar a ser

    • @jsanca
      @jsanca Год назад +1

      Eso mismo iba a decir, sin embargo el uso del script es muy valido cuando se necesita procesamiento de la linea, escapar, componer, agregar, remover, etc

    • @arielcg_
      @arielcg_ Год назад +4

      El tema con eso es que necesitas acceso al propio servidor, porque el INFILE es un archivo en el disco del servidor. Como estés en una base de datos administrada por otros (como puede ser Amazon RDS), ya no puedes hacer eso. Y aún si tienes acceso, tienes que saber en qué directorio colocar el archivo, ya que MySQL no puede leer de cualquier lugar del sistema.

  • @VirusZyrus
    @VirusZyrus 2 года назад +28

    Crea mas videos asi... nos ayudan mucho a mejorar el rendimiento de nuestros proyectos

  • @Mariomm_marti
    @Mariomm_marti 2 года назад +29

    Una cosa, en el primer tip es tan extremadamente lento porque haces una query por insert, pero lo habitual (cuando no los importas sino que rellenas desde una API o algo así) es hacer INSERT INTO [... ]VALUES([...]),([...]),([...])... En PostgreSQL al menos, los datos se almacenan paginados de 8KB en 8KB. Si no recuerdo mal, usan LSMTrees para optimizar la inserción. Al pasar todos los VALUES en una sola query, es capaz de analizar cómo guardar mejor la información y es mucho más rápido (si mandas los values de uno en uno, no sabe cuál es el siguiente y no puede optimizar el espacio para el anterior).
    El comentario va con la intención de explicar el motivo, que no es solo el interrupt del sistema operativo.
    Muchos ORM aprovechan esto y te obligan a hacer el #commit() o algo así para generar una sola query. Espero que te resulte de utilidad (quizá ya lo sabías), y que leas esto :)

  • @lautarochaparro1332
    @lautarochaparro1332 2 года назад +5

    2 videos en menos de una semana gracias por todo antonio, te queremos. con mucho amor tu comunidad.

  • @unlugartrufado
    @unlugartrufado 2 года назад +10

    En cuanto a la nomenclatura..... no depende del lenguaje, depende de los estándares de naming. Por ejemplo en python se suele usar PEP8, pero hay otros. Y en C ocurre igual. Hay varios estándares. Cada uno usa el que quiere. De hecho suele ser habitual indicárselo a linter para que te advierta cuando lo incumples. Pero no es cosa propia del lenguaje en la mayoría de los casos. De hecho si así fuera, estaría implementado en el lexer.

  • @darkcomtech
    @darkcomtech Год назад +1

    Me gustan estos videos que te ayudan a mejorar la refactorización y el estilo del código.

  • @ignacioigig
    @ignacioigig Год назад

    Me gustarian mas videos de este estilo, muy bueno, grandee

  • @maqarg
    @maqarg 2 года назад

    Excelente!!! Gracias por el video. Saludos desde Buenos Aires Argentina!

  • @dos2ratosmas
    @dos2ratosmas Год назад

    Muy bueno lo del Early return, lo vi varias veces usado y no entendia porque lo hacian, gracias!

  • @danielmesa5722
    @danielmesa5722 2 года назад +2

    Cada día más crack 💥💥, sería bueno más videos de estos con ejemplos con código como buenas prácticas, principios solid, refactoring o patrones. (me gustó mucho que cada topic tenía su ejemplo práctico)

  • @03zet
    @03zet 2 года назад +1

    Muchas gracias por los tips Antonio, yo recientemente he conseguido mi primer trabajo como desarrollador y estos tips me van a servir bastante y desde luego que los aplicaré, espero que de vez en cuando subas videos de este estilo.

  • @jonathan8406
    @jonathan8406 2 года назад +1

    Que buenos pro tips Antonio, El pattern matching fue mi favorito junto con los objetos y diccionarios y también sobre los DocStrings, Rust rules!

  • @David-iv4eq
    @David-iv4eq 2 года назад +1

    Muchas Gracias, justamente empezaré un proyecto de la Uni, aplicaré lo que dijiste :3
    Me gustan este tipo de videos jajaja

  • @leo_perez_2023
    @leo_perez_2023 Год назад

    muy bueno, muchas gracias! bien venidos los consejos!

  • @unlimited_code
    @unlimited_code 2 года назад

    ¡Excelente! - ¡Buen trabajo Tony!

  • @agustinvega7746
    @agustinvega7746 Год назад

    Que buen video bro! saludos desde las tierras caribeñas de Colombia!

  • @mikeldiaz3249
    @mikeldiaz3249 2 года назад

    Excelente vídeo!!! Tus explicaciones son bastante detalladas y claras.
    Apoyo para que hagas más vídeos de estos, siendo jr. me ayuda muchísimo.

  • @brunomontd
    @brunomontd 2 года назад

    Que buen vidio! Antoniooo

  • @jufran_87
    @jufran_87 2 года назад

    Excelentes consejos, muchas gracias por compartir

  • @cokeDeToro
    @cokeDeToro 2 года назад

    Mola este vídeo! dale con más tips!!

  • @josedanielmendoza2305
    @josedanielmendoza2305 2 года назад

    Ufff bellísimo... nada de esto métodos lo habia visto antes ... están buenisimos

  • @davidromaniuk
    @davidromaniuk 2 года назад

    Tu amor por la perfeccion es fantastica

  • @josewilhelm2717
    @josewilhelm2717 2 года назад

    Buen video! Sí me gustarían más videos así!

  • @CodeWithDesign
    @CodeWithDesign 2 года назад

    Vamoss por mas... falta esto en youtube.. te sigo crack..

  • @GROOVETECHSETS
    @GROOVETECHSETS 2 года назад

    Mas videos como este, en serio... Buenísimo!

  • @jmrodev
    @jmrodev 2 года назад

    Muy buen video con grandes concejos !!!

  • @johanx22x
    @johanx22x 2 года назад +4

    Acerca del tip 4, tambien se puede aplicar lo mismo a la hora de llamar a una función, es mucho mejor que esta se encuentre en un diccionario o un mapa que hacer un montón de condiciones para cada caso, solo hay que investigar un poco el lenguaje con el cual se esta trabajando para encontrar la manera de hacerlo, en caso de ser posible te ahorras varias lineas de codigo y ganas un codigo mas limpio y legible.

  • @MuStevenPlay
    @MuStevenPlay 2 года назад

    Grande Sarosi, nice video

  • @lazaroaltedill
    @lazaroaltedill 2 года назад

    10/10 super el video tome nota de todos los consejos , los aplique en un proyecto y la verdad que se nota la diferencia. Sigue con videos asi. Slaudos

  • @michaelrivera1070
    @michaelrivera1070 2 года назад

    Muchas gracias por tu consejos, han sido de gran ayuda

  • @AliHamza-en8cn
    @AliHamza-en8cn 2 года назад +1

    Video increíble de mucha ayuda para los que están empezando espero que haya segunda parte. Eres un crack.

  • @hiscariotex
    @hiscariotex 2 года назад

    Vamos papi. Otro video

  • @edgaralejandrogonzalez6689
    @edgaralejandrogonzalez6689 2 года назад

    Me he tardado en verlo (lo tenía pendiente) pero me encantó, estaría genial una segunda parte

  • @josevicente632
    @josevicente632 2 года назад

    Excelente video!! Saludos desde colombia

  • @anomfb
    @anomfb 2 года назад

    buen consejos amigo. bien explicado. y con ejemplos. no solo habla. sino que tambien muestra como usarse. que bueno.

  • @dariorodrigotorrejon4004
    @dariorodrigotorrejon4004 2 года назад

    Genio me sirvió mucho el vídeo para el día a día 😁 saludos desde Argentina y seguí así!

  • @PedroGonzalez-su8wv
    @PedroGonzalez-su8wv Год назад +2

    Al ver que duraba 27 minutos pensé en que se me iba a hacer eterno, pero se pasó de volada, haces muy interesantes tus videos incluso para explicar cosas técnicas bro (:

  • @tekunramirez
    @tekunramirez 2 года назад

    hey muchas gracias por tus aportes

  • @alexiscastillo9889
    @alexiscastillo9889 2 года назад +8

    Sobre el tip 4 en C/C++ existen los enums con valores por defecto, que sería lo mismo que un diccionario, muy utiles. Grande Antonio.

    • @duvandiaz2627
      @duvandiaz2627 2 года назад +1

      en java tambien estan!!!

    • @formax07
      @formax07 2 года назад +1

      En typescript también!

  • @newentu
    @newentu 2 года назад

    Excelente datos!!

  • @_chris_6786
    @_chris_6786 Год назад

    Antes de pasar a mi comentario, felicitarte por este enorme esfuerzo que haces. Está súper.
    Con respecto al último tip sobre nomenclaturas, es cierto, pero...
    En el "corpus" de todos los lenguajes de programación existen elementos comunes, esos son:
    * variables
    * constantes
    * funciones
    * clases
    * keywords
    etc...
    Lo bueno sería poder diferenciar estos elementos, y en el caso de variables y funciones, ambas escritas en snake_case, no se pueden distinguir cuál es cuál. Por ello, estaría bueno que, para nombres de variables y propiedades de una clase usemos siempre snake_case en minúsculas, y para nombres de funciones usemos camelCase (esto también aplica para métodos).
    En general lo usaríamos asi:
    * variables o propiedades (snake_case)
    * constantes (MAYÚSCULAS)
    * funciones y métodos (camelCase)
    * clases (UpperCamelCase)
    * parámetros (snake_case) ya que los parámetros son variables
    En mi mejor entender, con esta forma sí ya podemos distinguir a los elementos.
    Un fuerte abrazo y más videos así.

    • @AntonioSarosi
      @AntonioSarosi  Год назад

      Hace años podría ser interesante hacer eso, pero hoy en día como tienes coloreado de sintaxis sabes cuál es cuál. Yo al menos me baso más en el color que el formato del nombre para saber si es función/clase/variable, etc

  • @saidneder41
    @saidneder41 2 года назад

    Tremendo Antonio!

  • @soycmramos
    @soycmramos 2 года назад

    No puedo creer que en serio me quedé 1/2h viendo este video. Estuvo buenísimo. Like y suscrito ¡Muchas gracias!

  • @azraelaxel3124
    @azraelaxel3124 2 года назад +1

    he programado por dos años (por hobby) en proyectos propios... pero todos los consejos me sirvieron mucho!.... por ahí no tanto el de CSV a SQL, pero si piensas en la teoría de lo que has dicho igual se aplica a muchas cosas más (simplificar el código para que todo entre, de ser posible, en una sola línea de código)... espero que saques nuevos videos así!

    • @alister_
      @alister_ 2 года назад +1

      Simplificar no significa reducir la cantidad de líneas de código. Lo importante es que sea fácil de entender, fácil de mantener y fácil de modificar.

  • @brandonlopez6328
    @brandonlopez6328 Год назад

    Bárbaro! Buen video bro

  • @noelserdna
    @noelserdna 2 года назад

    un video muy chulo.... aunque muchos los conocía volverlos a escuchar siempre es bueno

  • @migueljurado6783
    @migueljurado6783 2 года назад

    Muy bueno Don Antonio! jej

  • @sispemspe8662
    @sispemspe8662 2 года назад +5

    En Oracle, si yo quiero hacer eso, tengo varias alternativas, 1) generar un archivo CTL para levantarlo con un loader, 2) crear una tabla externa con el archivo y usarlo como parte de la base de datos, 3) correr los inserts dentro del servidor desde una interfaz sql abierta directamente en la base, 4) crear un proceso de base que levante todo eso en memoria y luego lo inserte utilizando una sentencia forall. Todas esas alternativas eliminan el tráfico de red que generan los lenguajes no nativos a la base de datos, o lo minimizan, como él caso de la 4ta alternativa. Esa sentencia tiene como propiedad el aprovechar los paquetes del tráfico de red en toda su capacidad.

    • @secundariab.2741
      @secundariab.2741 Год назад

      Bro, y si tienes multibles tablas como 5 que estan relacionadas con la informacion que vas a procesar, cual seria la solucion? crear un store procedure para insertar las 5 a la vez?

    • @sispemspe8662
      @sispemspe8662 Год назад +2

      @@secundariab.2741 primero tenes que determinar el orden en el que vas a insertar, si tenes múltiples tablas con datos relacionados, por lo general, unas son transaccionales y otras son tablas base que alimentan a las primeras. Para que los inserts no fallen, tenes que empezar por las tablas base, y luego ir a insertar en las transaccionales. Una vez que determinaste el orden en que deben ser insertados los registros, elegís alguno de los métodos, dependiendo de cómo estes trabajando los datos.

  • @edwinroman30
    @edwinroman30 2 года назад

    ¡Qué tal Antonio 👊🏼. Muy interesante la serie!

  • @danielroa9618
    @danielroa9618 2 года назад

    Muchas gracias, me gustan este tipo de videos, haz mas de este tipo, saludos desde Colombia

  • @aluissp
    @aluissp 2 года назад

    Algunas me las sabía otras no, buen video Antonio

  • @juanorozco5298
    @juanorozco5298 2 года назад

    Muchas gracias por este video, nos ayudas a muchos ❤❤

  • @Magistrado1914
    @Magistrado1914 2 года назад

    Excelente vídeo y explicación
    Visto en 04/11/2022

  • @pavelramos
    @pavelramos 2 года назад +2

    Me has animado a darle una revisada a javascript y node, yo es que no soy desarrollador, pero si cargo mi arsenal en pendrives para ahorrarme varias horas manuales en la oficina. Habrás encontrado alguna herramienta que se asemeje a pillow de python en js? Felicidades por como ha crecido el canal y sobre todo el contenido!

  • @julianromero6114
    @julianromero6114 Год назад

    Que buen video amigo, toma tu like

  • @alberto3028
    @alberto3028 2 года назад +1

    24:02 No solo sirve para que te aparezca en el IDE, el jsdoc en js sirve como validador de tipos tal y como hace typescript si añades un checkJS: true al tsconfig, además podrás ejecutar el tsc solo como validador en la línea de comandos, sin tener que transpilar a JS. Ese es el valor fundamental del jsdoc, tener validación de tipos sin necesidad de typescript, ya que al final es solo sugar.

  • @eacardenase
    @eacardenase 2 года назад

    Tremendo contenido! Justo he estado pensando en cómo hacer una query con un archivo .csv a una base de datos y has dado justo en el clavo!

  • @diegogutierrez8473
    @diegogutierrez8473 2 года назад

    muy bueno, esperamos parte 2

  • @irvagui
    @irvagui 2 года назад

    Buenísimos tips 👌👌

  • @bernardoabel4136
    @bernardoabel4136 Год назад

    muy buen video, aprendi mucho

  • @asdas9
    @asdas9 2 года назад

    no me sabia el de continue bastante util tu video :D

  • @christianosorio7473
    @christianosorio7473 2 года назад

    El Early Return lo conocia como Guard Clauses, excelente vídeo

  • @boludoz1
    @boludoz1 10 дней назад

    10:14 no en todos los lenguajes el 'if' de esta manera es optimizado o propenso a no tener errores. Lo mejor es crear funciones separadas y poner if separados con returns en algunos casos y quedara un código mas legible y reutilizable.

  • @lucabarraud6484
    @lucabarraud6484 2 года назад

    Muy bueno tu video, nuevo suscriptor.

  • @pacofernandez2863
    @pacofernandez2863 2 года назад

    Muy buen video💪🏼

  • @kcireorenom8430
    @kcireorenom8430 2 года назад

    sigue así, esos temas están guapos.

  • @donbuche
    @donbuche 2 года назад

    Guapo el vídeo, Antoñeteeee

  • @daumienebi
    @daumienebi Год назад

    Justo podía llegar a necesitar algo así para una aplicación que estoy creando, pero en mi caso tengo los datos en un JSON. Muchas gracias!

  • @fullpeliculafhdhdsd9242
    @fullpeliculafhdhdsd9242 2 года назад

    Buen video 👍 😉 👌, me gusto.

  • @TheJFMR
    @TheJFMR 2 года назад

    Buenos trucos, el del early return me gustó. Me lo habían contado, pero ahora lo entendí.

  • @christianquispe4017
    @christianquispe4017 2 года назад

    tambien puedes crear chunks de N registros y ejecutas por bloques los querys de INSERT

  • @latinmu
    @latinmu 2 года назад

    muy buenos tips, soy nuevo en el mundo del desarrollo y me van a servir bastante en mi carrera profesional.

  • @kriollo_dev
    @kriollo_dev 2 года назад +1

    Hola Antonio, como siempre buenos videos, sólo un alcance; para hacer un insert de un csv más y más pro, puedes usar el load data de mysql, con php se puede y mucho más rápido y eficiente, yo lo ocupo para cargar archivos de miles de registros cada hora y la base ninse inmuta... eso no más, gracias por los videos

  • @ProfeDuilio
    @ProfeDuilio 2 года назад

    Bravo Antonio 👏

  • @ofaaoficial
    @ofaaoficial 2 года назад

    Gran vídeo!

  • @densohc2223
    @densohc2223 2 года назад +1

    llevo mas de 2 meses tratando de aprender progrmacion y siento que no aprendo nada con este video me has echo entender varias cosas y seguire intentado aprender js mas a profundo que es lo que me interese ay html y css

  • @ciwic
    @ciwic 2 года назад

    Buenos tips!

  • @marcosMartinez-wm7bd
    @marcosMartinez-wm7bd 2 года назад

    mas de estos videos!

  • @licdavidob11
    @licdavidob11 2 года назад

    Me gusta como en el min. 15:30 ya te anticipas a los comentarios y preguntas, y de una vez muestras la extensión jajajaja, se me hizo gracioso. Pero si, ya lo instale igual 😆

  • @dairoparra
    @dairoparra 2 года назад

    Me gustó bastante el video.

  • @pandaren0830
    @pandaren0830 Год назад

    Discúlpame si me equivoco, pero en el primer ejemplo no seria mejor manejarlo dentro de una transacción, porque el tema de conexiones a la DB se puede mitigar configurando un pool de conexiones. No es lo mismo realizar miles de registros uno por uno que hacer miles de registros dentro de una transacción usando únicamente un solo commit.

  • @calapp
    @calapp 2 года назад

    Muy buen video, otra cosa que veo hacer a mucha gente, incluso con experiencia, es poner condicionales ante boleanos en vez de devolver la expresion boleana directamente. Un saludo!

  • @adriangranado3622
    @adriangranado3622 Год назад

    “Parsear visualmente” jajajaja que bueno, lo mejor es que te he entendido perfectamente

  • @nightwingx0747
    @nightwingx0747 2 года назад

    me gusta tu canal saludos y exitos!!!

  • @Devxcuba
    @Devxcuba 21 день назад

    elegante papu gracias

  • @johanpalaciose
    @johanpalaciose 2 года назад

    Grande Antonio

  • @retrogameplaysgordis
    @retrogameplaysgordis 2 года назад +3

    25:20, he trabajado en proyectos medio grandes de Python y eso se lo pasan por el forro.
    En este ultimo discrepo bastante, para mí no harás el "ridiculo" solo tienes que adaptarte al proyecto y con las personas con las que estés trabajando, ya que hay bastante mierdisenior que obligan a los juniors a trabajar con la nomenclatura que ellos digan xd

    • @AntonioSarosi
      @AntonioSarosi  2 года назад +1

      Si está hecho está hecho, no vas a cambiar todas las variables de un code base gigante solo para seguir un estándar. Si empiezas un proyecto nuevo en 2022 y pones camel case en Python pues hombre, será porque quieres porque otra razón no hay jaja. Pero yo he visto de todo gente que mezcla las dos cosas en el mismo proyecto por ejemplo.

    • @retrogameplaysgordis
      @retrogameplaysgordis 2 года назад

      @@AntonioSarosi Tienes toda la razón, por cierto, para cuando creando mi propia distro de Linux? Saludos crack

  • @jesuopin1612
    @jesuopin1612 2 года назад

    VIDEAZOO!

  • @1desgerasl
    @1desgerasl Год назад

    Muy acertado todo.

  • @Centorios
    @Centorios Год назад

    Por temas de atomicidad, esta manera de encararlo es mas rapido pero en caso de haber un error en el proceso se ROLLBACKEA toda la transaccion, al hacerlo de manera poco optima estarias asegurando la atomicidad de todos los datos (solamente no se insertaria el o los valores erroneos, no se descartarian todos los datos)

  • @chrrissoft2404
    @chrrissoft2404 2 года назад

    Hola Antonio, me gustan muchos tus videos, se ve realmente que eres muy pro y tines mucho conocimiento, seguro que es el resultado de muchas horas de estudio y de experiencia programado.
    Se que a programar se aprende programado, pero ¿Tines algún truco para aprender?. Saludos crack.

  • @dmz3010
    @dmz3010 2 года назад

    Thanks Maquina!

  • @neo-clon
    @neo-clon 2 года назад +1

    La verdadera razón del tiempo que toma el insert, es que en cada uno se ejecuta de forma implicita un begin transaction con su respectivo commit

    • @UnDarkVader
      @UnDarkVader 2 года назад +1

      ... además del tiempo de validación de sintaxis por parte del motor de BD para cada instrucción recibida

  • @zeusjean
    @zeusjean Год назад

    vamos por la parte 2 :)

  • @josereyess1583
    @josereyess1583 2 года назад

    Grande Antonio.
    Deberías hacer un vídeo explicando mejor sobre como refactorizar refactorizar código 👍

  • @mdelama
    @mdelama 2 года назад

    Excelente video

  • @gustavodiaz9732
    @gustavodiaz9732 2 года назад

    Gracias maestro

  • @santiagohn6784
    @santiagohn6784 2 года назад +1

    Cuidado con quitar los if dentro de if.
    Hay lenguajes que no garantizan que se evaluen de izquierda a derecha como c++ hasta hace un par de estándares, y como la expresión de la derecha únicamente se pueda evaluar si la primera es verdadera vas a tener buenos errores.
    De hecho me pasó en una práctica de implementar protocolos de nivel de enlace en c++ que no le funcionaba a la profesora porque usaba una version de gcc anterior y en una parte que comprobaba si un puntero no es null y luego consultaba un valor lo hacía al revés dando un index out of bounds.

    • @AntonioSarosi
      @AntonioSarosi  2 года назад

      Sí en esos casos te la puede liar. Si tienes que retornar se puede poner en ifs distintos uno después de otro, no hace falta que este uno "dentro" de otro.