Sie sind auf Seite 1von 6

estilo, estndares y modelos 6e programacin recomendados

A la velocidad a la que est cambiando el lenguaje, los modelos de programacin aconsejados y las guas de estilo estn resultando ser blancos en movimiento
por Bryan Meyers
En muchos casos, si se utiliza la especicaci6n de formato libre, automticamente estar utilizando buenos estndaes Brooks, que haca el papel de un hombre pnmiti- porque no permite muchos de los modelos de programacin vo recin descubierto, que hablaba con un fuerte obsoletos y deficientes que permitan las espenfieaciones C acento ydish de NuevaYork. Al mismo tiempo que de formato fijo. Adems, a partir del releaseV5R2, muchas de Brooks comparta sus recuerdos con Reiner, tambin se ma- las nuevas funciones de RPG slo existen en formato libre. Evite -lar el estilo de formato f i o con el estilo de ravillaba de los cambios que se haba producido en los itiformato libre en las especificaciones C. El resultado es mos 2000 aiios y daba consejos para vivir ms aiios. Si un programador de RPG clsico examina los programas incoherente y difcil de leer. Saque el mximo partido del orque se escriben en RPG hoy en da puede que se sienta tan den ms natural y del espacio ampliado que permite el forintimidado como ese hombre de hace 2000 aos. Los ltimos mato libre. Cuando escriba bucles y grupos, ver que el cdireleases han incluido tantos cambios en el lenguaje RPG que go tiene un mejor aspecto. Utilice las expresiones de formato incluso si est programando en RPG N puede que necesite libre siempre que pueda en expresiones aritmticas, lgicas un curso de r e d a j e para poder sacar partido a las nuevas y de manipulacin de series de caracteres; para las operaciofunciones; un programa actual escrito en RPG N se parece nes de asignacin y de comparacin; y para establecer indimuy poco o nada al RPG original que vio la luz en los aos cadores (si los necesita).Pero no abandone del todo la alineacin mediante columnas como herramienta de ayuda a la sesenta. Al ritmo que est cambiando el lenguaje, los modelos de legibilidad de las expresiones. Especialmente cuando una programacin aconsejados y las guas de estilo se estn con- expresin debe continuar en las lneas siguientes, alinee la virtiendo en blancos mviles. Los objetivos de cualquier de- expresin para que sea ms fcil de entender: bate sobre estndares y modelos deben ser acelerar el proceso de desarrqiio de la aplicacin, facilitar el mantenimiento /Free Total = (HarasReg * Tarifa) + del programa y reducir los errores. Estos objetivos se ciimpli(HorasExtras * T a r i f a * 1.5) + rn si escribe sus programas pensando sobre todo en la (HorasDobles * Tarifa * 2); reutilizacin del cdigo y en los estndares. En este artculo presentamos algunas sugerencias puestas /End-free al da sobre cmo escribir programas en RPG N que sean fciles de leer, entender y mantener. Muchas de estas direc- Adopte [LE trices requieren el uso de la V5R1; si se precisa un release El segundo mandamiento de la gua de estilo de RPG N es W G N e L E estn inexcusablemente unidos y nunca dems reciente, se indicar en el texto. ben separarsen. Cada vez que oigo a un programador de RPG (a peor an, a Liberar el Factor 2 Repita conmigo 'RPG N es un lenguaje de formato libre; no un consultor) decirme quel'utilizo RPG N pero no hago nada utilizar clculos en formato fijo". Este es el primer manda- de eso de los enlaces"me quedo sin palabras. La sintaxis de RPG junto con el entorno de lenguajes integrados (ILE), miento de la gua de estilo de RPG IV. Las ventajas del formato libre son bien conocidas. Es ms propicia la programacin modular de las aplicaciones. La fcil de leer, documentar y mantener que el cdigo en forma- modularidad okece un media de organizar una aplicacin, to fijo y su sintaxis es wherente con la de otros lenguajes de facilita el mantenimiento del programa, oculta la lgica compleja y reutiliza el cdigo de forma eficaz all donde se aplica. programacin ms modernos. la clsica comedia satica "The 2000 Year-Old Man", el actor Carl Reiner entrevistaba a Me1
16 ServerNEWS JUNIO-JULIO 2005

que

con d

w wl r l s t F i a
M@
:18F

"&ha

wount

'es~ir'~

wrur,
i

Cita.

ara%

F
*m

a lCbLPV

A m U t

rR*krewnt

I f I-I*

'TX';
-

Ideafifiue el cdigo retrtizlaabk de un pacedimien-

to. En lugar de monstnros multiiiso monolticoe,escriba midadw de compilacin m& pequefas, que realicen una sola funcidn, y enlcelas wn los progmmas pUe las necesite. mine el c6digo duplicado, pm pequeo que sea; su mantra de pmpmaoin debe ser "una vez y slo una". Reikgue el edd&o m a n o d un ptocedinuienbd bien sEocuotc?ttado Y C O i nombre a%plhEto, k pesar db to~ m dos sus esher&os, a l g m raras ocasiones sencillamente en no s e d capaz de entender el sentido de un fragmento dc cdigo sin comentarlo exhaustivamente.Si aisla ese cdigo comentado y comprobado a fondo en un procedimiento propio, les ahorrar a los futuros programadores que realicen tareas de mantenimiento, el problema de descifrar innecesariamente ese cdigo. Utilice los directorios de enlace de forma coherente. Un directoido de enlaoe es un objeto que pude ayudarle a organipar las "piezaennecesarias pam mear t programa. Si m utiliza un directorio de enlace w a listat los m W o s o los programas de servicio ms utilizados, evitar tareas repetitivas y errores,ya que podr hacer refeiencia al directorio o directorios de enlace en vez de tener que listar explcitamente los componentea necesarios cuando d a c e un programa canlos mandatos CaTPGM ( E w p r o p m ) o GRTSRWM (Crear. .. Dromma de senrieid. Pata u a a t los direetotim de enlace eficazmente necesitar disear una estrategia coherente. Puede que la estrategia ms prctica sea tener un directorio de enlace generico que sima para hacer referencia al c6djgo reutilimble que ee w a en varias apiieaoionw, junto con uo dired& de edaw espee.~~una aplcacin para de el &o - m e se u W nicamenteen esa aaiicaciibn. . Empaqueta lospmcedimientos mp utilizados en pmgmmas de seruicio. Un programa de servicio es un elegante medio de reutilizar pmcedimientos sin copiarlos ffiicamente en cada programa que los necesihe. Como norma gmeral, si unpradmiento se vaa u~liaar ms de uno o dos pmgraen mas debed empaque%a& en un piogra2a9 de sewiolo. UGlice el &n&e &&r p@mooi&o&r la latirma de un programa de sefuicio. Resulta tentador dejar d enlazador que maneje la 5ma del progrsjna de servicio eapecificando EDORn*ALL) en el mandato GRTSEVPGM. Pero, a largo plazo, ese procedimiento pvede cmventir el

a-

manbenimiento en una pesadilla. El cdigo ven& del lenguaje enlazador le permitir controlar expctamente la firma de un progzama de se&eioy,Lo que es ms importante, permite al programa de 9~nriio mantener varia8 firmas. Esta earactdstica significa que puede haceme cambios drstico8 en m p r o g m a de seMcio-Xfadir, cambiar yeliminar pmoedimientogsin tener que modicar los pragramas que utiliaan el programii de servicio. UhLce las pouibBidades de e r e a r p r o f o de BPG ~ lVpamdefinKpar&meh.os e interfaces depwedinaientos. Los prntotipos (de5iciones PR) pla&intesfaces de prn&entos (deniciones PI)ofrecen muchas ventaja8 mdo se trata de pasar datps entre mdnlos y programas. P r o ejemplo, evitan errww dnrant.e la ejecwirin al darle al compilador la po~ibilidad wmpmbar el tipo de datos y el de nrmeko de parmetras. Lo8 pro;kotipostambin permiten escribir literalea y expresiones cnmo parmetm, dedatar lis. tas deparmeros (inelmo *ENTRY PLIST) ea lag aspeeiacaciones D y pam3 parmetrosporvalory por referenciasl~ de lectura, asi coma por referencia. AZmaene pm&pos en miembro@ /COPE Para cada $ndulo, escriba un miembm KOPY que conkenga el pmtotipo delproeedimienbdemdaprooedimientoexportado en ese mdlo.A c o n ~ u a t i i n ~ incluya una referencia a esemdulo /UXY en todos los mdulos que hagan referencia a lo8 procedimientos del mdulo al que se llama. Esta tcnica le evitar escribir los prototipos cada ves quc los necesite y reduce la posibilidad de cometer errores. Una alternativa a tener muchos miembms ICOPY de pequeo tamao es tener un miembro KOPY maestro que contenga prototipos para todos o casi todos los procedimientos reutilizables. TarnbiG puede estuaiar la posibilidad de utikm Wvas de oompila~i6n condicionales que le permitan utizar el prototipo del fuente del prneedimiento real en vez de utilizar un miembro lCOPY universal. Con &S &niea se evita inclUnprototipos que nose u&arn en el proceso de compiiacin (aunquela ejenicin no se ver penalizada por emplear prototipos queno %vayati sutilizar dnrlacompilacin)). Inccya las declumiones de eawtan&s de icn indirlo en el m h miembro IWPY que los prototipos de ese mdulo. Si luego hace i-efereneia al miembro /COPY en al@ mdulo M a g a referencia al mdulo aLwe selama, habr"globahadrf ia dedaracim de esas eomatantes, Utilhe IMPORT y BXPORl' solamenfe pan, elemento# @e datos gZohaes. Les paiabrw clave IMPCIRT y E X P O R T campar% datos en%relos prmdimieutos sn tener que pasar explicitamenbias datos de un - i como parmetros. En o t m palabrasas ofrecen una %6erfaz uculta%ntre procedimientog Limtese a utilizar estas palabras clave con los elementos de datos que son realmente globales del programa (generalmente,valores que se definen una vez y que no se modifican nunca ms). Centralice las dkkwacil~ne~ Con RPG N, finalmente tenemos un rea del fuente del programa en el que declarar todas las variables y constantes asociadas con el programa. Utilice las especificacionesD para

1
I

orgarii~ar s las declaraciones-enun sololugar Dentzo de W e las @caciones D, ~ t r g d c sus definiciones en un arden predecfle, por ejemplo, por.% de definicin: prototipo para el procedimiento principal intcrfaz de procedimiento para el procedimiento principal okas detinciones de rotot tipos mnhntes mnombre estructnrw de datos variables independientes Para cada tipo de detiicin, escriba las deelaradotle~ por orden alfab&ico. En vez de utilkw Eerales, dectaGelos como 6astantes con mimbre. Esta tdm ayuda a documentar el cdigo y facilita su manteMenb. 'Una excepcin obvia a esta regla es el uso permitido de O y 1 si tiene fientido en el contexto de una sentencia. Por ejemplo, si va a inicializar un campo acumulador o a incrementar un contador, es correcto utilizar mOamlenelfnen+e, S* a loe nombres de bs elementos de datos para m&om la legib%dad y docummte lw estruetums de datoa. A diferencia de muohas obras enbadas de 1 3 6 1>, el nombre $e un elemento delbido no necesita ajnstam a la izquierda en las especicacionesD (Figura 2). Saque parti. do a wta caraeterstieapara ayudar $ documentar el cdigo. P r mejmar la legibilidad, deje siempre la w1~mna en aa 7 blanco. Esta misma regla, dejarla col& 7 en blanco, tamH. bin es aplicabl a las~espesimciones UtiZtce .tsc notacuSn de longitud en Zwar da lo notaci6nposbional en Cas d a ~ 1 ~ m i o i& es&mtirm d~ es dofoa.Las espeacaciones D pezmiten escribir campos con posiciones i n i a e s y nales conwetas o simplemente con la longitud del campo. Para evitm confusiones ymejorar la domantacin del campo, utiIice la notactn de longitud sishticamen%e.Por eJemplo, eseriba:

Criando se delnen wgos de soiapamiento, utilicela palabra olaqe OVEIUAY en lugar de la notaai6n posicional. La palabra clave OVEIELAY fiineula e%pEcitamente la declaraei6n deuna uaziabb "hijaacon la desu "padrey.OVERLAX M slo documenCa esta relacin, sino que sila variable padre se mueve a otro lugar del &digo del programa, la vafiable w a la s&. Evite wtiZTzar mirices de tierno de ejecucin. Pl medida que sava deacnmponiendo un p&gr'am enprocedimipntos individualesJrasulta de ayuda que todas las piezas de cdigo relacionadas seso fkica y lgicameate independient s En ia p~ogramacin e. tradioional de una m a t h de tiempo de ejeducin, la definicidn de la matriz e&$ separada de los datos de la matriz m,tal ves, d e s de lneas de cdigo del programa. Una soucin mejor sera programar la Gatriz dentro de una estructura de datos Wi(~igwca 41. Eoite u t i l k esWWras &datos de apartcih m&l~ tiple. La eatmrotrirade datos de matrices del telease V a es ma co~s$niecin mejor, puesto que utiliza una notacin esfhdar de matrices en e programa, no limita el procesa a f una sola aparicin eri la &m lnea y permite tratar con esas i-ciaa en que las matrices anidadas (de m61tipiea e dimenaioms) nnos s o tiles. en lugar de Utilice estructuras de datoa QUALiFIED. ai& Las estluetnras de datoa QUALIFIsD obliga a c I f c f los nombres de ljus ~~bcampos el nombre d d a structueoa radedatos twr eiempio,Qiente.Nombre, o CIiente.Direoaionl. . - . . Esta caracteristica no slo proporciona una buena documenUtlice la notacin p~icional solamente si la posicin real tacin para el elemento de datos, indicndonos YUorigen, fiino que tambih nos permite tener subcampos con el mismo nombre en ecitructuras de datos distintas (por ejemplo, Cliente.Nombre, Empleado.Nornbre).Para definir una estructura de datos calificada, utilice la palabra clave QUALIFIED en su Cefnicin. Las palabras clave JRBEDS y LBEREC NSRa) hmbin qiie ilevan n untcampa o a una posicin denbo de un campo. de UWizar la notacinaosiciomi es preferible a ut&m varia- son pricticas cugndo una ~stzuetura datas "heradao ms bles "de r&ueno*ir&eceaariae . la notacin de lonpikud. subcampos de otra eetrudtnra de datos o de un formato de & V5R2 pueden codtr01mselos Aunque, ineluao con lanotaci6n psicional, pieme en Ia posi- registro. Adems, en el ~ekese bilidad de mperponer la variable ddarada posicioaalmente s u b c m o s 4ue aeareceh en una-estrmtura de datos con otra variable dedarada con la n~tacin longitud pana IBEIi6C o & una &tm&ma de datos deseritexbernamende te, espeaoando *&L, *INPUT,*OUTPUT o "HEP. documentar mejor la variableocomo rnuesba la Figiua 3.
18 ServerNDWS JUNIO-JULIO 2M15

AnnpI'br lor

Dle a los progtamadores que le suceder& la posibilidad de entender cmo funciona su programa implementando siempre tcnicas de programacidn estructurada. Loa cdigos de operacin "es;tnrcturadosn-m, DO& DOW y WHEN- adm&n las expresiones de formato l b e lo que los h e e ms ir, IegibIes que sus predecesores de formato $0. En general, si un d i g o de operacin ofrece una alternativa de formato libre, sela. Esta regla e$ aplicable al mdigo de operaei6n DO; la operaci6n FQR de formato libre suele ser una opcih mec6jor. Por cierto, nunea utilice indicadgres para condici~nar FxrlMr a d b sin indicaderes Histricament<los indicadores haasido una caraekerstica digos de operacin estructurados, de acuerdo? Vale. que identcaba la sintaxis de RPG, pero con RPG IV se esNo utilice GOTO. CABm ni COMP.En su lu~ar. mtit~ comnrtiendo rpidamente en reliquias de otra Wa. Redu- tyalos por una altekabiva esestrMda, como s&ien&s cirla utilizacin de mdicadores en un programa bien podra IF anidadas ovariables de estadopara dar salto^ en el &ligo ser la oosa m& importante que pueda hacer para mejorar la o para dirigir un programahacia una ubicacin concreta.Para legibilidad del programa. dar saltos, utilice DOU, DOW p FOR. Nunca programe su8 Elimine los indicadores nummicox del fuente de RPG. bucles comparando y saltando con GOMP (ni siquiera~on IF) RPG i elimina completamente la necesidad de utilizar y GOTO. Utilice ITER pararepetir unaiteracin de un bucle V indieadores de candicin e indicadores deresultado,y no per- y use LEAVE o LEAVESR para S& de fomprematura de mite utilizarlos en las especieaciones de formato libre. La bucles a subrutinas, respectivamente. y Efechie oomparaciones multirila con SELECTVHENI estructura de datos de indieadores (palabra clave INDDS) cierto nrfmero de funciones incorporadas @ F conviertes en OTEERlENDSL. Los bloques de cdigo iFm/EIlB/ENDiF I) obsoletos los indicadores num6ricos predenidos. Recuerde profundamente anidados son diciies de leer y aaoban pro-

Tal vez, el aspecto ms importmte del estilo de programacin tiene que ver con los nombres quesele dan a los elementos de datos (por demplo, lasi variables o las constantes con nombre) y a las r u t h a ~Establezca wnvenios de denomina. cin que vayan m& a U de los tradicionales seis caracteres, para identificar completamente las variables y otros identicadores. Esos caraderes extra pueden marcar la diferencia entre elYcdigo'de un prograta y una 'descripci6n" del mismo. Cuando ponga nombre a un elemento, asegrirese de que d e s d e complefay fielmente al elemento. E1 nombre debeeer meqirmoca, fanl de leer y obvio.Aunque debera aprovecharlaposWidad que ofrece RFG N de utizar nombreshrgos, no los estienda demasiado. Una longitud de entre 10 y 14 caracteressuele ser svficente; 10sdemayor longitud pueden no ser prcticm en muchas especificaciones. Cuando 0 nombre a un elemento de datos, describa % el elemento. Cuando se da nombre a un procedimiento con un valor de retorno, denomine al procedimiento a partir del valor de retorno a utilice un convenio de denominacin "geff set" dependiendo de si el procedimiento obtiene u asigna un valor de datos. En el caso de subrutinas o procedimientos sin un valor de retorno, utilice una sintaxis de tipo verbolobjeto (parecida a la de los mandatos de CL) para describir el proceso. Mantenga un diceipnario de nombres, verhos y objetos, y ntiIice el diccionario para estandarizar los convenios de denominaci6n. CumuEb escriba un nombre simolico en IEPG, uWce las mayrfseulasy las mi>uisculaspam chdficar el significado g el aso del elemento mmbnrdo. RPG permite escribir el cdigo fuente enmaBhe,nilasy &sculas. Utilice esta caraeteristica para cl&car los datos especicados. En el caso de las palabras y las operaciones reservadas de RPG, trate de escribir todos los caracteres en maysculas. Eutte &!izar cwacteres eqxwinks (por Gempb, 6,# 3 o $1 en el mmbre de un elemento de datos. Aigunos de estos caracteres pueden producir error68 de compiacin en algunosjuegos de baraderes. Aunpue RPG Fpermite d i zar el signo de subrayado 0en unnombre, puede evitar utilizar este cwcter empleando combinaciones de maysculas y miniisculas con inteiipencia.

- on ~~de demmmm..

que puede indicar condicione3 de excepcin de archivos con BIF de manejo de errores (comoYlrEOE:%ERRORo %FOU?;Di y nn expansor de operacidn E para evitar el empleo de indieadores. Si debe utilizar indieadores, dles un nombre. RPC N admite un tip de datas booleano (N) que cumple el mismo objetivo que un indicador. Puede utilizar la palabra clava INaDS con una especificacin de archivo de pantalla con el n de asociar una estructura de datos con los indioadores para un archivo de pantalla o deimpresora; despus, puede asignar nombres descriptivos a los indieadores. Incluya una descripcin de los indicadores que utilice. Incluso despus de haber eIiminado los indicadores numerados, puede que quede un puado de indicadores predenidos (por ejemplo, los indioadores de ruptura de nivel LO a L9, o los indicadores externos U1 a U@.Es espeeidmente importante para documentar esos mdicadores porque su propsito no suele ser obvio simplementeleyendoel h% . go. E1 prefacio es un buen sitio para enuinerarlos.

tanicas de prograrnaci6n estmcturada

de longitud variable como parhnetFo8 CONST oVALUE para todos los subprocedimientos de manejo de e m e s , asi como para los eampsde krabajo. El cdigo no s6b tiene mejor pinta (al e h i u a r la funcin %TRIM,por ejamplo), sino que tambin es mas rpido que si se u'cilizaran campos de longitud &a. Por ejemplo, utilice el cdigo de la Fgura 5A en lugar del de la Figura 5 . B Un buen estilo de prugramakn pnede tener una W d a d doemnencal,ayudando a otrus a entender el codigB fuen'ke. Si utiliza buenas~lenicas programacin,descubrir que'mede s nos e ms" cuando se trata de comentar el cdigo fuente. Demasiados comentarios sun t n malos como demasiados a -IOCOS. A continuacin se ofrecen dgww directrices concre as sobre los camentarios. UtfEkec o m n t h 1 zi&ognene. ElPG Wutiliza aho1 .a comentarios que empiezan con dos caracteres de barra nclinada U/)en vez del tradicional asterisco (*) en la mlumia 7. En el cdigo de formato libre, que no permitc utilizar asteriscosos comentariopuede empezar en cualquier mlumel na entre la 8 y la 90,e incluso puede estar en la misma b e a vocandouha a d a d d h irunmejablede E D al final del que Instnicdotiec ejeouhbles exisbnbs. NB El nuevo formato de comentario tambin puede sustituir grupo. ELSEIF mejoza alga la Bltuacin, pero SELECTI WBEWIOTHEIC suele ser una conatrncci6n mejor y m&ver- al asberisco en las espe&cacionea de formato jo, pero el stil. Elmismo maneja se puede dar para el cdigo de opera- mmentario debe esestar en una Enea propia. Par razones de & ; utilice en su lugar SELECT/WHENl cehereneia, utilice oicamente el formato nuevo,incluso en cin obsoleto O las espeoificationesde f o m t o 6jo (Figura6). Utizice mmentrctibs para acla;nUl.d cedfigo,no .a m p - . repetirlo. Los comentarios que meramente repiten el cdigo IRM ha mejorado muehisimo la capacidad de KPG IV de aumentan el tamafm del programa pero no su valor. En genemnnipular series de caraderes. Muchos de los tmcos que te- ral, debera utilizar eumentarios slo por tres motivos: iiia G e utilizar mn versiones a n t a t o s de @U han quedaproporcionm un resumen del programa o del procedimiendo obsoletos. Modernice su c6&@ fuente mando partido a to esas nuevas caractehieas. dar un fitulo a una subrutina,procedimiento u otra seccin Utiliaeuna con@atzte can nobsbrepma deeli~0.r &a del c a m constante de tUpo serie de canacteres en ver de explicar una tcnica que no es obviaal leer el cdigo fuente mhnaeenarla en una matriz o tabla D w l m una serie Pncluya siempre un breue resumen al inicio de un de m e t e r e s (por ejemplo, una sexie de caradere8 de un mandato de dL) como una constante mn nombre permite promama o umceimie&oe Este praiam debe incluir la hacer referencia a 4sta directamente en vez de obligarle a hacer referencia a l a serie medlante sh nombre de matriz e a el titulo del programa o del procedimiento ndice. Utilice una canstante con noplbre para deelazar un a una breve descripcin del objetivo del programa o del provalor que no espere que vaya a e a m b dnrante la ejecucidn cedimiento del programa. a una mnologta de los cambios queincluyan la fecha, el nomEvite u t i t h r mafriceti 4 eshucflrras de datos PWU de bre del oromamador Y el moti~o cada cambio - manipular series de caracteres y texto. En su lugar, utili- a un resumen del uso de indicadores ce los nuevos cdigos de operacin de manipulacin de serie8 una descripcin de la interfae del ymedimieuto (valor de de cara&eres yto BIP. retorno y parmetros) Utiitce eqpmsiones de osagnaO15n de fo171wctO libre r un ejemplo de cmo Uamar al procedimiento EV%Lsiempre que puedapara manjpuliwserks de s w U t k e c i m m t ~ M de f6po % a s a <Ze marcadoresm meteres. Cuando se utiliza mn series de caraoteres, EVAL del pam &idi'r seceio~spFinaipaes odigo. Par ejemgeneralmente equivale al cdigo de operacin MOVEUP). Si no desea que el resuttado se rellene mii blancos, utice L24 210, sin duda debe sepafa? con h e a s de guiones (-)lasdeclad racionees, el pmcedimienfa prineipal, W w las stlbmtinas y fiuiciopes%SUBST o %REPLACE. U t k cawpos de Songifusl variabte para siiqEifi- los subpmcedimientOs. Ideatique cada seccin para fa& w cm el m 4 0 de las series de caracteres. UWm campo9 t su Lmhaeih.
JUNIO-JULIO 2005 SenerNEW 2 1

Utilice lineas en blanco para agrupar ltneas de cdigo fuente mlacionadas y hacerlas destacafi En general, deberia utilizar lnea6 completamente en blanco en lugar de lneas de comentarios en blanco para agrupar Uneas de cbdigo, a menos que sea para crear unbloque de comentanos. Utilice slo una lnea en blanco; varias lneas en blanco consecutivas dicultan la lectura del programa. Evite los comentarios de y n de linea" a la derecha en las wlumnas 81 a 100. Los comentarios a la derecha suelen repetir el cdigo, pueden perderse durante el mantenimiento del ptograma y es fcil que queden deshados con respedo a la lnea que comentan. Especialmente ahora que los ~ m e n t a r i pueden insertarse en el cdigo, no utilice los 0~ comentarios a la derecha.

No se quede obsoleto RPG es un lenguaje viejo. Despus de casi 40 aos, muchas de sus caractersticas originales, obsoletas, siguen estando disponibles. No las utilice. Elimine los cdigos de opemcin obsoktos. Cmo se pueden identficar los cdigos de operacin obsoletos? Las respuesta es sencilla: si la especificacin de formato libre no lo admite, el cdigo de operacin es obsoleto. Con la presentacin de la especiticacin de formato libre, IBM aprovech la oportunidad de simplicar RPG reduciendo el nmero de cdigos de operacin por la mitad hasta aproximadamente 60. Si unafbncin tiene las mismas capmidudes que un cdigo de operacin, utilice la funcin en vez del cdigo de operacin. Con algunos cdigos de operacin se puede sustituir una BiF por el cdigo de operacin y utilizar la funcin en una expresin. Las funciones son preferibles si ohcen la misma capacidad que los cdigos de operacin. Evite utilizar archivos descrit~sporprograma~ su En lugar, utilice archivos deuidos externamente, siempre que sea posible. Utilice tipo8 de doros de ficha Mtiuos pam h b q i a r con @has. Lbrese de esas ingeniwas~tinas fecha y hora de que ha recopilado y eustodiado celosamente d m t e aos. Las BiF de fecbas de RPG N son m& eficientes, inteligibles y modenias.Aunque su base de datos incluya fechas en formatos' a tiposn, puede uiizar las funciones de fecha (por ejemplo, %DATE,%DIFF,%%SUBDTo %DAYSlpara manipularlas. No secwmie los nmeros de las lneas de programa en las columnas 1 a 5. Es bastante probable que nunca ms necesite utilizar esas pilas de tarjetas perforadas, por lo que el reade secuencia delpmgrama es innecesaria. EnRPG N esas columnas son solamente para comentarios. F'aede utilizarlas para identihar lneas modicadas de un programa o como niveles de sangrado estructurados, pera tenga presente que esas eolumnas cnrren el mismo peligro que los comentarios a la derecha.

conozcan el truco. Si piensa que debe aadir comentarios para explicar cmo funciona un bloque de cdigo, valore la posibilidad de volver a escribii el cdigo para aclarar su propsito, u oculte la complejidad del cdigo en nn procedimiento. El uso de los abshvwd cdigos de operacin de manipulacin de bits (BITON. BITOFF, MnZO, TESTB y TESTZ) pueden ser un signo de que el cdigo fuente necesita actualizarse. En todas las especificaciones que a d d t a n palabras clave, limitese a utilizar una palabrvr clave por Enea. En vez de diseminar mltipies palabras clave y valores por toda la especificacin, el programa ser m& fcil de leer y le permitir aiiadir o suprimir especicaciones, si se limita a utilizar en cada lnea una palabra clave o, si no, por lo menos que seanpalabras claveque estnmuy relacionadas(por ejemplo, DATFMT y TIMFTM). Empiece todas las palabras clave de las especificaciones Hen la colurna 8, d e i d la columna 7enblanc a Al separar la palabra clave de la H obligatoria en la columna 6 se mejora la legibilidad.

Consejo final Aveces no es posible combinar un buen estilo y un buenrendimiento de la aplicacin. Cada vez que se enfrente a un conflicto entre ambos, opte por el buen estiio. Los programas diules de leer son diciles de depurar, diciies de mantener y diciies de hacer que funcionen bien. La correccin del programa siempre debe estar por delante de la velocidad. Recuerde estas amonestacianes de Bnan Kernighan y P.J. Plauger en '!he Elements of Programming Style":
Ponga la correccin por delante de la velocidad de ejecudn. 8 Conserve la correccin cuando aumente la velocidad de eje eucin. 8 Ponga la claridad por delante de la velocidad de ejecucin. 8 No saerique la claridad por una pequea ventaja en la velocidad.
8

Directrices varias A c o n ~ a c se n ~

&.e&ces -tilo que pueden ayu.darle a mejorar el cdigo en RPG N. Evite utilizar artiFcios de ~fW?ra-in. maniobras no les parecern tan ingeniosas a los que M
12 ServerNEWS JUNIO-JULIO W 2

Brynn Meyen es redactor tcnico de Serres NEWS y autor de varios hbms, como "RPG lV]um+ Start"y"Pmgmmming b RPG IV"@~bI~odos 29th por Swet Press]. Do doses sobre vanos aspectos relooonads con el Series: pmendmente, en DVD o o tmvs del pmgmmtr de formacin de e-Learmng de iser~es Nenvork

Das könnte Ihnen auch gefallen