Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3 Errores Comunes de Los Programadores - Nebaris
3 Errores Comunes de Los Programadores - Nebaris
3errorescomunesdelosprogramadoresNebaris
Profesional(/blog/1/tag/11/profesional)
Tips(/blog/1/tag/33/tips)
3errorescomunesdelosprogramadores
GabrielKaplan(/blog/1/autor/5/gabrielkaplan) 21/05/2014
Aprendprogramacinydiseowebconnuestroscursos!(/cursos)
Enesteartculovoyahacerunrepasodelos3problemasmsrepetitivosdelosprogramadores
sinimportarellenguajeenquetrabajen.
Cdigomuylargo
Esteesunerrorqueadquirimosencuantoempezamosaprogramaryperduradeporvidaen
muchosprogramadores.Noestantounproblemadeprogramadoresinexpertos,sinode
programadoresdesprolijos.
Unadelasmximasquemegustaseguires:
ElcdigosedebepoderleeraPoderleerelcdigodeformasimpleselogramediante2cosas:
1. Elcdigonodebeextendersehacialaderecha
2. Elcdigonodebeextendersehaciaabajo
http://www.nebaris.com/post/147/3errorescomunesdelosprogramadores
1/8
24/4/2015
3errorescomunesdelosprogramadoresNebaris
Uncdigoqueesmuylargohacialaderechanosobligaahacerscrollhorizontal,conloque
rompemoselflujodelectura.
Uncdigoqueesmuylargohaciaabajonosobligaahacerscrollvertical,loquenosocultael
cdigoyavisto.
Lareglageneralesqueelcdigonodebesuperareltamaodelapantallaenningunadesus
formas.Estoesfcildelograr,yaquelamayoradeloslenguajespermite:
indicarcomentariosenvariaslneas
insertarsaltosdelneaenelcdigo
concatenarstringsendiferenteslneas
etc.
Variosaosatrslosprogramaseranengeneralmonolticos:pocosarchivosconmilesymilesde
lneasdecdigo.Esohizoquelosprogramadoresseacostumbraranavivirconcdigoquetena
variaspginasdelargo.
Enlaactualidadlosnuevoslenguajesposeenmuchaseparacinensusmetodologasdeuso,por
loquenoocurretantoelproblemaanterior.Perolosmonitoressoncadavezmsgrandesy
muchasveceslostiposdedatosposeennombresenormes(alindicarsupackageonamespace),
conloquelaslneassetornaninterminableshacialaderecha.
Elevitaresteerrornosbeneficiatantoanosotroscomoatodaslaspersonasquetenganque
mantenerelcdigoenelfuturo.
Cmoevitoqueelcdigoseamuylargo?
Lamejorformadeevitaresteproblemaesrefactorizando,osea,reestructurarelcdigo,alterando
laestructurainternasinmodificarsucomportamientoexterno.Alrefactorizarcreamossubmdulos
mspequeosquemejoranlaclaridadyconsistenciadelcdigo.
Existeunaespeciedereglaquedicequetodoarchivoqueposeamsde1000lneasdecdigo
debeserrefactorizado.Estopuedeonoserciertoyenciertoscasospuedeserimpracticable,pero
estbuenotenerloenmenteeintentarseguirlo.
Cuntocdigoesmuylargo?
Yonoescribocdigoqueocupemsdeunapantalla(13pulgadasengeneral).
Cdigodifcildemantener
Unacosaquenotomuchasvecesesquelosprogramadoressuelenprogramarparaelcompilador
msqueparalaspersonas.Porejemplo:
Noexistenloscomentarios:aunquemuchospuedendecirqueuncdigoconcomentarioesuncdigo
malescritoavecesloscomentariossonrealmenteimportantes.Ciertasdecisionesempresariales
http://www.nebaris.com/post/147/3errorescomunesdelosprogramadores
2/8
24/4/2015
3errorescomunesdelosprogramadoresNebaris
puedenhacerqueelcdigotomecaminosextraos.Encasodenodejarconstanciadeestas
decisiones,esmuydifcilqueelprximoprogramadorentiendaelporqudedichodesarrollo.
Nombresnodescriptivos:Unapesadilla.Unodebeadivinarparaquseutilizalavariable x .Otro
ejemploclsicosonlasfuncionesquecomienzancon"No".Nadiepuederesponderrpidamente"qu
devuelvelafuncin NoEsUnDiaDeSemana(string dia) cuandolepaso"jueves"? true o false ?
Omitirllaves:queanadieseleocurraagregarunanuevainstruccin...
Variasinstruccionesenlamismalnea:"Ah...unpuntoycomayelcdigosigue..."
Siempreestbuenorecordarelviejoproverbio:
Codificacomosielquefueraamantenertucdigofueseunmanacoasesinoquesabedondevives.
Tucdigodebepasarlasdospruebas:
Siotroprogramadorleeelcdigo,lovaaentender?
Sivosleselcdigodentrodeunaolovasaentender?
Estmuybienteneruncdigosperoptimizadoparaqueelcompiladorutilicemenosrecursos
peroesmuchomejorteneruncdigooptimizadoparaotrosprogramadores.
Optimizacinprematura
Losprogramadoresquenocometenningunodeloserroresanteriores,puedencometeresteerror.
Eltrmino"Optimizacinprematura"fueacuadoporDonaldKnuthen1974yhacereferenciaa
laspersonasquepiensanenoptimizarcadapartedeunsistemasinhacerunanlisisdel
rendimientoglobaldelaaplicacin.
EstetrminovadelamanoconelprincipiodePareto(oregladel8020):
El80%delosdefectosradicanenel20%delosprocesos
Haciendounanlisisgeneralsepuedenobtenerculessonloselementosqueparticipandentrode
unfalloeidentificanlosproblemasrealmenterelevantes.
Enbaseaesto,podemosobservarquenoesinteligentelargarseaoptimizarunaaplicacindela
culnoposeemosconocimientosglobalesdelrendimiento.Sinembargo,nohayqueconfundirla
nooptimizacinprematuraconescribircdigodeficiente,yaqueesonosllevaraalerroranterior.
Enlavidarealnoeslgicoperdermuchotiempooptimizandoprocesosquenohemosmedido,
cuandotenemosunafechadeentregadeltrabajo.Lomejorescrearcdigoqueseafcildeleer,
fcildeentenderyfuncione.Elsiguientepasoseranalizarlaaplicacinensuconjuntoparaver
qupartesnecesitanseroptimizadas.
Resumen
http://www.nebaris.com/post/147/3errorescomunesdelosprogramadores
3/8
24/4/2015
3errorescomunesdelosprogramadoresNebaris
Estossonalgunosdeloserroresquenossuelensurgirennuestravidacomoprogramadores,es
importanteconocerlosparaevitarlos.
Paraleermssobrecmomejorartucdigoterecomiendoesteartculo
(http://www.nebaris.com/post/65/8consejosparaescribirmejorcodigo).
Quopinsdeesteartculo?
GraciasporpasarporNebaris,cualquierconsultasobreesteartculolapodshacerenlos
comentariosoescribiendoahola@nebaris.com(mailto:hola@nebaris.com).
AutorGabrielKaplan
Programador,msicoyfundadordeNebaris.
ViveenCapitalFederalArgentina.
(https://www.facebook.com/gabrielfkaplan)
(https://twitter.com/gabriel_kaplan)
(https://plus.google.com/109747649621400754615)
(http://ar.linkedin.com/in/gabrielfkaplan)
Artculosrelacionados
6consideracionesantesdeconvertirseenfreelancer(/post/118/6consideracionesantesde
convertirseenfreelancer)
8consejosparaescribirmejorcdigo(/post/65/8consejosparaescribirmejorcodigo)
Los5mejoresIDEsparadesarrollarenlanube(/post/170/los5mejoresidesparadesarrollaren
lanube)
ControldeversionesconGITparte2(/post/42/controldeversionescongitparte2)
QuesKanban?(/post/258/queeskanban)
http://www.nebaris.com/post/147/3errorescomunesdelosprogramadores
4/8
24/4/2015
3errorescomunesdelosprogramadoresNebaris
//RECURSOSGRATISTODASLASSEMANAS
+1700personasyasesuscribieron.SuscribitevostambinalnewsletterTOOLBOXyrecibentuemail
unarecopilacinsemanaldelasherramientasmsimportantesparadiseoyprogramacin.Todoslos
mircoles.Fcildedesuscribirse.Nospam.Cuidamostudireccindeemailynolacompartimos.
VERIFICQUEELFILTRODESPAMNOBLOQUEENUESTROSEMAILS.
Direccindeemail
Nombre
SUSCRIBITE
9Comentarios
Recomendar
Nebaris
Compartir
Acceder
Ordenarporlosmsantigos
netealadiscusin...
Az haceunao
Comolehacesparaacortartucodigo,porqueelnumerodelineasesproporcionalalacomplejidad
delafuncion.
Responder Compartir
GabrielKaplan
Moderador >Az
haceunao
Laformamssimpleesrefactorizandolafuncin,enlugardetenerunafuncingrande,
tenemosvariaspequeas.
Cadafuncindebehacernicamenteloquedicesuttuloyelmismodebesercorto.Siuna
deesasdoscosasnosecumple,hayquemejorarelcdigo.
1
Responder Compartir
guillermohernandez haceunao
Estoydeacuerdoconcasitodoaexcepcindeloscomentarios,envisualstudiosiemprees
bastantetilcrearunsumaryquedespejecompletamentelasdudas,siempreparamiesagradable
usarunafuncinqueestabiencomentada,tepermitesaberoreafirmarparaquesirvecada
parametro,yaqueavecescuandonoconocesbienelcontextodelaaplicacinpuedesmalenteder
unparametro.
http://www.nebaris.com/post/147/3errorescomunesdelosprogramadores
5/8
24/4/2015
3errorescomunesdelosprogramadoresNebaris
unparametro.
Portodolodemsbastantebuenoelrticulo,ahunaltimocomentario,nodeberasponerde
referenciaeltamaodelmonitorsinolaresolucindeeste,oalmenosesocreo.
Saludos.
1
Responder Compartir
GabrielKaplan
Moderador >guillermohernandez
haceunao
Yoestoyafavordeloscomentarios.Eltextolodice"Elcdigoesdifcildemantener...sino
existenloscomentarios".
Esciertoqueseramejorhablardelaresolucindepantalla...peroesunpocoms
complicadodeentender.
1
Responder Compartir
guillermohernandez>GabrielKaplan haceunao
Yarevisebien,malentendelpuntoalverelcomentario"aunquemuchospueden
decirqueuncdigoconcomentarioesuncdigomalescrito".
Responder Compartir
ReneMorales hace10meses
Queaplicacionesrecomendarasparaevaluarelcodigoyelrendimientodeestastantoprocesos
comousodememoriaCPUytodoloqueinvolucranuestraaplicacinderecursos.
Responder Compartir
GabrielKaplan
Moderador >ReneMorales
hace10meses
EnVisualStudioutilizomuchoReSharper
Responder Compartir
will hace10meses
Nadamasciertoqueeso,mehatocadotrbajarconsolucionesen.NETconmasde13proyectos
todosenormesysincomentariosdequehaceoporquelohace,realmentedificildeentendera
primeravistaynisedigadeseguirundebugparaverquehaceunmetodopuedellevartehoras
comprenderloquehaceyporquelohace
Responder Compartir
GabrielKaplan
Moderador >will
hace10meses
Estuveenlamismasituacin...unasolucin.NETconmuchosproyectosyuna
arquitecturaconfusaydifcildeseguir...sinohaycomentarios...almenosdeberanhaber
testsparaentenderunpocoelcdigo
Suscrbete
Responder Compartir
AadeDisqusatusitioweb
http://www.nebaris.com/post/147/3errorescomunesdelosprogramadores
Privacidad
6/8
24/4/2015
3errorescomunesdelosprogramadoresNebaris
SEGUIR
(http://www.facebook.com/Nebaris)
(https://plus.google.com/108107755178419878328)
(https://twitter.com/nebarisweb)
(http://www.youtube.com/user/nebarisvideos)
(http://www.linkedin.com/company/nebaris)
(http://feeds.feedburner.com/Nebaris)
CATEGORAS
BackEnd(/blog/1/tag/8/backend)
Basesdedatos(/blog/1/tag/9/basesdedatos)
FrontEnd(/blog/1/tag/7/frontend)
Mvil(/blog/1/tag/10/movil)
Nebaris(/blog/1/tag/43/nebaris)
Profesional(/blog/1/tag/11/profesional)
BUSCADOR
+Visto
+Nuevo
CargarcombosencascadaconjQuery,PHPyMySQL(/post/38/cargarcombosencascadaconjqueryphp
ymysql)
WebServicesenC#(/post/40/webservicesencsharp)
TiposdeJOINenSQL(/post/77/tiposdejoinensql)
10erroresquecometcomonovatoenPHP/MySQL(/post/17/10erroresquecometicomonovatoenphp
mysql)
CmoimplementarpaginacinenPHP?(/post/41/comoimplementarpaginacionenphp)
TAGS
AJAX(/blog/1/tag/22/ajax)
ASP.NET(/blog/1/tag/20/aspnet)
Android(/blog/1/tag/27/android)
Apache(/blog/1/tag/29/apache)
ASP.NETMVC(/blog/1/tag/24/aspnetmvc)
http://www.nebaris.com/post/147/3errorescomunesdelosprogramadores
BackEnd(/blog/1/tag/8/backend)
7/8
24/4/2015
3errorescomunesdelosprogramadoresNebaris
Basesdedatos(/blog/1/tag/9/basesdedatos)
CodeIgniter(/blog/1/tag/32/codeigniter)
Cursos(/blog/1/tag/67/cursos)
Bootstrap(/blog/1/tag/51/bootstrap)
Codingdojo(/blog/1/tag/62/codingdojo)
Ebook(/blog/1/tag/48/ebook)
Eventos(/blog/1/tag/35/eventos)
EntityFramework(/blog/1/tag/42/entityframework)
FrontEnd(/blog/1/tag/7/frontend)
GoogleChrome(/blog/1/tag/30/googlechrome)
InternetExplorer(/blog/1/tag/55/internetexplorer)
JavaScript(/blog/1/tag/3/javascript)
ObjectiveC(/blog/1/tag/39/objectivec)
PHP(/blog/1/tag/17/php)
Python(/blog/1/tag/52/python)
Markdown(/blog/1/tag/47/markdown)
Mvil(/blog/1/tag/10/movil)
Opinin(/blog/1/tag/60/opinion)
MySQL(/blog/1/tag/14/mysql)
NUnit(/blog/1/tag/65/nunit)
PhoneGap(/blog/1/tag/36/phonegap)
Profesional(/blog/1/tag/11/profesional)
Seguridad(/blog/1/tag/45/seguridad)
SoftwareLibre(/blog/1/tag/64/softwarelibre)
SQL(/blog/1/tag/15/sql)
TDD(/blog/1/tag/54/tdd)
Twitter(/blog/1/tag/44/twitter)
Java(/blog/1/tag/5/java)
JSON(/blog/1/tag/21/json)
RaspberryPi(/blog/1/tag/63/raspberrypi)
Scrum(/blog/1/tag/40/scrum)
SVG(/blog/1/tag/66/svg)
jQuery(/blog/1/tag/4/jquery)
Negocios(/blog/1/tag/58/negocios)
POO(/blog/1/tag/34/poo)
Git(/blog/1/tag/26/git)
HTML(/blog/1/tag/2/html)
iOS(/blog/1/tag/28/ios)
LINQ(/blog/1/tag/23/linq)
Metodologas(/blog/1/tag/19/metodologias)
Nebaris(/blog/1/tag/43/nebaris)
CSS(/blog/1/tag/1/css)
Expresionesregulares(/blog/1/tag/31/expresionesregulares)
Freelance(/blog/1/tag/46/freelance)
Kanban(/blog/1/tag/69/kanban)
C#(/blog/1/tag/6/csharp)
Ruby(/blog/1/tag/37/ruby)
SEO(/blog/1/tag/49/seo)
SQLServer(/blog/1/tag/16/sqlserver)
Tips(/blog/1/tag/33/tips)
TypeScript(/blog/1/tag/59/typescript)
VisualBasic.NET(/blog/1/tag/68/visualbasicnet)
Pure(/blog/1/tag/61/pure)
Toolbox(/blog/1/tag/38/toolbox)
UX(/blog/1/tag/18/ux)
WindowsAzure(/blog/1/tag/50/windowsazure)
Wireframing(/blog/1/tag/53/wireframing)
XML(/blog/1/tag/25/xml)
(http://www.facebook.com/Nebaris)
(https://plus.google.com/108107755178419878328)
(https://twitter.com/nebarisweb)
(http://www.youtube.com/user/nebarisvideos)
(http://www.linkedin.com/company/nebaris)
(http://feeds.feedburner.com/Nebaris)
20132015
http://www.nebaris.com/post/147/3errorescomunesdelosprogramadores
8/8