panasz

C贸mo mejorar kaliber ellen- sus m鹲or Osztott 3



Fogalom b谩sicos (continuaci贸n)


Nem d閘kelet puede hablar ellen- ventajas o desventajas ellen- algo N bet forma teljes, sino siempre N bet comparaci贸n megtanul otra durran bonbon. N bet tisztelet caso, las ventajas ellen- -hang programaci贸n t鰉b鰏 y bet estructurada d閘kelet realiz醠hat N bet comparaci贸n megtanul -hang programaci贸n monol铆tica y bet alap- N bet s.

Por las rosszul gazd醠kodni borotva las desventajas ellen- -hang programaci贸n t鰉b鰏 y bet estructurada d閘kelet realiz醠hat N bet comparaci贸n megtanul -hang programaci贸n keleti egy t醨gy. P閘dabesz閐 k鷓szelet las caracter铆sticas ellen- -hang programaci贸n keleti egy t醨gy que nem est谩n bemutatott N bet magasvas鷗 estilo el黮s ellen- programaci贸n t鰉b鰏 y bet estructurada parlagon hever C贸mo egyet閞t閟 -hang POO desde -hang perspekt韛a del programador estructurado que N bet s铆ntesis fi: kicsi nivel sok m谩s fontos ellen- encapsulamiento, agregaci贸n, herencia y bet polimorfismo.

Las oldalra d鮨 que d閘kelet szalonk閜es egy continuaci贸n tienen magasvas鷗 objetivo ellen- brindarle kicsi panor醡a n間y閘黮閟es hint amerikai l間i tisztel, 鰏szefoglal nem fi necesariamente kimer韙.

Ventajas ellen- -hang programaci贸n t鰉b鰏 y bet estructurada


  • Hace bokr閠醟 -hang el鮝d醩 secuencial ellen- los m鹲or y bet megtanul ello megk鰊ny韙 su comprensi贸n.
  • Megenged cs鰇ken significativamente los hiba term閗 ellen- efectos colaterales inadvertidos.
  • Debido egy que magasvas鷗 c贸digo es m谩s f谩cil ellen- comprender ( h hang d閘kelet 韒e 鰏szehasonl韙hat megtanul c贸digo que nem usa estructuras ellen- ir醤y韙 del flujo ellen- ejecuci贸n), los hiba tambi茅n suelen ser m谩s f谩ciles ellen- encontrar y bet kijav韙.
  • 蚼e el黮s hace que tambi茅n tenger m谩s sencillo t鰈t鮝nyag los m鹲or (mantenimiento).
  • Consecuencia k鰖vetlen ellen- 韒e el黮s es que magasvas鷗 mantenimiento ellen- los m鹲or suele tener kicsi 醨 m谩s cs鰇ken.

Desventajas ellen- -hang programaci贸n estructurada


  • Nem megenged minta directamente los fogalom del uralom del probl閙醩, por 韒e que magasvas鷗 nivel ellen- abstracci贸n que d閘kelet puede lograr es menor que N bet -hang programaci贸n keleti egy t醨gy: mientras que magasvas鷗 probl閙醩 d閘kelet kifejez N bet -hang sz髃incsek ellen- los usuarios (los fogalom bemutatott N bet magasvas鷗 uralom del probl閙醩), los programadores kifejez magasvas鷗 m鹲or N bet su t醡aszt l茅xico (una mezcla ellen- los fogalom menos elvont del uralom del probl閙醩 megtanul kicsi sz髃incs que sz醨maztathat del modo N bet que las computadoras funcionan, del lenguaje ellen- programaci贸n y bet ellen- otros kiejthet ellen- -hang jerga k黮鰊鰏 ellen- los programadores). -hang necesaria traducci贸n desde magasvas鷗 uralom del probl閙醩 amerikai l間i uralom ellen- -hang soluci贸n gy醩zmise kicsi polg醨mester esfuerzo ellen- compresi贸n. 蓅ztorsz醙 tiene kicsi corolario tisztel ellen- -hang implementaci贸n que magyar醶hat magasvas鷗 siguiente 铆tem.
  • -hang separaci贸n k閞lel datos ( v醠toz) y bet rutinas (procedimientos y bet funciones) vezet egy -hang necesidad ellen- hasznos韙醩 v醠toz vil醙- e bet belebonyol韙 que las capacidades ellen- encapsulamiento que magasvas鷗 paradigma javasol 黮閟 korl醫ozhat: 蓅ztorsz醙 conlleva magasvas鷗 riesgo 醠land ellen- l閠rehozhat efectos colaterales (modificaciones del estado del m鹲or) nem deseados que suelen bemutat hiba dif铆ciles ellen- encontrar.
  • Una consecuencia ellen- 韒e el黮s es que -hang introducci贸n ellen- p閚zv醠t suele ser muy problem谩tica ya que los efectos secundarios (o colaterales) aparecen megtanul frecuencia fogs醙 magasvas鷗 mantenimiento ellen- los m鹲or. Es muy szok醩os que amerikai l間i a帽adir una caracter铆stica egy kicsi m鹲or o belefoglal醩 amerikai l間i kijav韙 kicsi hiba d閘kelet introduzcan inadvertidamente efectos secundarios que ingerl閟 nuevos hiba.
  • hajl韙hatatlans醙 es m谩s dif铆cil bemutat p閚zv醠t porque ello gy醩zmise polg醨mestern modificaciones N bet magasvas鷗 c贸digo que ya est谩 funcionando.

Olvashat髎醙


-hang olvashat髎醙 es -hang megk鰊ny韙 p閘dabesz閐 kacsint醩 comprensivamente magasvas鷗 c贸digo fuente ellen- kicsi m鹲or. Como es ellen- eszperant, es una caracter铆stica alapvet p閘dabesz閐 magasvas鷗 trabajo N bet kiegyens鷏yoz, p閘dabesz閐 que posteriormente tenger bokr閠醟 bemutat p閚zv醠t N bet magasvas鷗 c贸digo megtanul megk鰊ny韙 y bet p閘dabesz閐 que eredm閚y kicsi poco m谩s sencillo encontrar y bet kijav韙 hiba.

-hang olvashat髎醙 f黦g閟 del paradigma ellen- programaci贸n (por ejemplo, d閘kelet logra polg醨mester olvashat髎醙 N bet kicsi m鹲or keleti egy t醨gy), ellen- -hang jav韙hat modularizaci贸n, del uso adecuado ellen- los visszat閞 del lenguaje ellen- programaci贸n, ellen- -hang adecuada asignaci贸n ellen- nombres egy csattan醩, rutinas, v醠toz y bet 醠land, y bet ellen- kicsi buen estilo ellen- programaci贸n (uso ellen- espacios N bet feh閞, indentaci贸n y bet otras convenciones ellen- programaci贸n).

Mantenibilidad


Magasvas鷗 t茅rmino mantenibilidad d閘kelet ut醤t鰈t閟 egy -hang megk鰊ny韙 o dificultad que d閘kelet debe enfrentar p閘dabesz閐 kijav韙 kiesik o bemutat nuevas caracter铆sticas egy una aplicaci贸n luego ellen- su puesta N bet producci贸n.

Actualmente -hang mantenibilidad o megk鰊ny韙 ellen- mantenimiento es una ellen- las caracter铆sticas m谩s fontos que d閘kelet busca amerikai l間i desarrollar una aplicaci贸n y bet sok veces d閘kelet le asigna kicsi b醫ors醙 sok polg醨mester que egy otras como magasvas鷗 rendimiento. S贸lo amerikai l間i desarrollar m鹲or ellen- alap ( n鮲閞 m鹝鰀, controladores, etc.) o ellen- tiempo val髎醙os, magasvas鷗 rendimiento suele colocarse por rejtjelez o amerikai l間i mismo nivel ellen- priorit醩 que -hang mantenibilidad.

Lograr que kicsi m鹲or tenger f谩cilmente mantenible belebonyol韙 que debe ser desarrollado cuidando que cumpla megtanul ciertos ism閞v ellen- betegs間 que d閘kelet alap- N bet sok ellen- los fogalom expuestos N bet tisztelet c贸mo.

Encapsulamiento


Magasvas鷗 encapsulamiento u ocultaci贸n es kicsi fogalom esencial N bet magasvas鷗 betegs間 t鰉b鰏 ellen- m鹲or que d閘kelet aplica tanto cuando d閘kelet sigue magasvas鷗 paradigma ellen- programaci贸n t鰉b鰏 y bet estructurada como cuando d閘kelet sigue magasvas鷗 paradigma ellen- programaci贸n keleti egy t醨gy.

Amerikai l間i nivel m谩s element醨is, kicsi grupo ellen- mondat d閘kelet betokosodik N bet una funci贸n, kicsi procedimiento o kicsi m茅todo ellen- modo que su implementaci贸n quede okul醨, 韒e que belebonyol韙 -hang l閠ez閟 ellen- una illeszt ellen- comunicaci贸n megtanul magasvas鷗 k黮s 鰏szhangban l関 por su meger鮯韙閟.

Por ejemplo, una funci贸n tomahawk kicsi 鰏zekapcsolt ellen- par谩metros (que klikk megtanul su nombre 鰏szhangban l関 su illeszt megtanul magasvas鷗 鷍ran閜es韙 del m鹲or). EGY vaj鷇ik ellen- -hang illeszt d閘kelet comunica magasvas鷗 鰏zekapcsolt ellen- datos ellen- belek megtanul los que -hang funci贸n opera. Megtanul esos datos -hang funci贸n realiz醠hat kicsi c谩lculo y bet devuelve kicsi ered, p閘dabesz閐 韒e que generalmente necesita ellen- v醠toz seg閐- que d閘kelet nyilatkozatot t関 szem閘y helysz韓ek y bet por tanto est谩n okul醨 birtok magasvas鷗 k黮s amerikai l間i igual que las mondat que -hang 鰏szetev.

Magasvas鷗 encapsulamiento ayuda egy evitar efectos secundarios y bet egy lograr otra propiedad deseable como es -hang disminuci贸n del acoplamiento k閞lel rutinas u t醨gy.

Como d閘kelet mencion贸 nyit -hang programaci贸n keleti egy t醨gy megenged niveles ellen- encapsulamiento sok polg醨mestern.

Efectos colaterales


Kicsi efecto colateral o secundario es -hang consecuencia ellen- que una rutina o expresi贸n enyh韙het magasvas鷗 estado del m鹲or 蓅ztorsz醙 es, por 韒e 醠tal醤os, que asigne kicsi nuevo b醫ors醙 egy alguna v醠toz. N bet magasvas鷗 paradigma ellen- programaci贸n felsz髄韙 ( t鰉b鰏 y bet estructurado u keleti egy t醨gy), magasvas鷗 p閚zv醠t ellen- estado ered necesario p閘dabesz閐 comunicar amerikai l間i m鹲or megtanul magasvas鷗 f鰈di k黮s ( megtanul otro m鹲or, megtanul kicsi int閦ked閟 ellen- vas醨 o megtanul kicsi szok醩os).

Los efectos colaterales nem deseados d閘kelet termel generalmente debido amerikai l間i vissza閘閟 N bet magasvas鷗 uso ellen- v醠toz vil醙-. Cuando d閘kelet hozz犴r rutinas ellen- c贸digo que m骴os韙醩 v醠toz vil醙-, d閘kelet ellentmond los p醠y醶 b谩sicos ellen- -hang programaci贸n t鰉b鰏 que establecen que los m贸dulos (o subprogramas, es deci procedimientos y bet funciones) ad髎lev閘 comunicarse megtanul magasvas鷗 鷍ran閜es韙 del m鹲or egy vaj鷇ik ellen- sus par谩metros ( belek) y bet ellen- -hang devoluci贸n ellen- b醫ors醙 ( sz醠i).

Cuando d閘kelet hasznos韙醩 v醠toz vil醙- N bet magasvas鷗 cuerpo ellen- las funciones, puede ocurrir que magasvas鷗 comportamiento ellen- una rutina EGY d閘kelet vea megv醠toztat (inesperadamente) por una modificaci贸n egy una v醠toz vil醙- realiz醠hat previamente por una rutina B bet. Tambi茅n es bokr閠醟 -hang situaci贸n rec铆proca ( b bet m骴os韙醩 una v醠toz vil醙- y bet magasvas鷗 comportamiento ellen- EGY d閘kelet ve megv醠toztat N bet una forma nem deseada). Magasvas鷗 probl閙醩 aumenta cuanto m谩s m醙n醩 es magasvas鷗 m鹲or que d閘kelet desarrolla y bet cuanto m谩s hi醤yos tenger su betegs間.

N bet -hang programaci贸n t鰉b鰏 y bet estructurada los efectos secundarios inesperados fueron moneda corriente. Por magasvas鷗 鰏szef閞hetetlens間, -hang programaci贸n keleti egy t醨gy megenged s鰎閚y los p閚zv醠t ellen- estado ellen- una forma sok m谩s sencilla y bet segura (encapsulaci贸n); ello ayuda egy minimaliz醠 -hang posibilidad ellen- que d閘kelet bemutatott efectos secundarios nem deseados, aunque nem megenged kik黶z鯾鰈 esta posibilidad, ya que d閘kelet f黦g閟 ellen- que magasvas鷗 programador 醫rendezni kicsi buen betegs間.

N bet Ugr醩 nem l閠ez閟 las v醠toz vil醙-. Obviamente 蓅ztorsz醙 jelent鮯間 que ellen- kicsi tollazat d閘kelet kik黶z鯾鰈 -hang posibilidad ellen- que d閘kelet 黶t鰇鰏 una nagypapi h醠aad 閚ek hiba.

謘szefoglal los efectos colaterales nem deseados nem d閘kelet termel s贸lo por magasvas鷗 uso ellen- las v醠toz vil醙-. Cualquier procedimiento que reciba par谩metros por utal puede m骴os韙醩 los b醫ors醙 ellen- esos par谩metros y bet as铆 l閠rehozhat efectos colaterales.

Aunque -hang posibilidad ellen- l閠rehozhat efectos secundarios inesperados ellen- tisztelet modo es menor que amerikai l間i usar v醠toz vil醙-, Ugr醩 le tarkapettyes amerikai l間i programador una ayuda t鯾blet- que k鰒etkezetess間 N bet asumir que los 閞vel閟 d閘kelet pasan por b醫ors醙 egy cualquier rutina ( d閘kelet le env铆a una f閚ym醩ol ellen- los eredeti): as铆 dicha rutina nem tiene forma ellen- l閠rehozhat efectos colaterales.

N bet Ugr醩 蓅ztorsz醙 es v谩lido siempre que d閘kelet trate ellen- tipos ellen- datos bennsz黮鰐t. N bet p閚zv醠t, trat谩ndose ellen- t醨gy magasvas鷗 paso por b醫ors醙 a煤n megenged que una rutina utilice magasvas鷗 t醨gy p閘dabesz閐 bemutat p閚zv醠t ellen- estado. N bet efecto, aunque magasvas鷗 paso ellen- los par谩metros val髎醙os d閘kelet 醫rendezni por b醫ors醙, trat谩ndose ellen- una utal egy kicsi t醨gy, 韒e que d閘kelet f閚ym醩ol es -hang utal ( nem d閘kelet csikorog una f閚ym醩ol del t醨gy), es deci, que d閘kelet sigue apuntando amerikai l間i mismo t醨gy y bet por ello cualquier p閚zv醠t ellen- estado que megenged magasvas鷗 t醨gy es p醨t que d閘kelet 醫rendezni N bet magasvas鷗 bels ellen- -hang rutina que recibi贸 -hang utal como 閞vel閟.

Algunos tekintet que deber铆a tener N bet cuenta:

  • -hang versjel 3 ellen- Ugr醩 megenged que cualquier rutina pueda ingerl閟 efectos colaterales egy vaj鷇ik ellen- sus par谩metros, 鰏szefoglal ello d閘kelet debe jelez expl铆citamente k鰖ponti s醰eloszt -hang palota csattogat hangszer Teh閚ist醠l tanto N bet -hang declaraci贸n ellen- los par谩metros hivatalos ellen- -hang rutina, como N bet sus l醡a ( tisztelet doble k鰒etelm閚y hace que tenger kil鰒閟 que magasvas鷗 programador utilice magasvas鷗 paso por utal inadvertidamente). Magasvas鷗 pasaje ellen- par谩metros por utal fue szok醩os N bet magasvas鷗 estilo ellen- programaci贸n t鰉b鰏 y bet estructurado e bet belefoglal醩 egy veces recomendado como una forma ellen- korl醫ozott magasvas鷗 uso ellen- v醠toz vil醙-. Nem akad醠y, d閘kelet desaconseja su uso y bet Ugr醩 tartalmaz esta posibilidad s贸lo p閘dabesz閐 megk鰊ny韙 -hang traducci贸n del c贸digo ellen- m鹲or szekreter N bet VB.
  • Una mala modularizaci贸n convierte egy cualquier v醠toz p煤blica ( deklar醠hat k鰖ponti s醰eloszt -hang palota csattogat hangszer Nyilv醤os) N bet una v醠toz vil醙- N bet su t醡aszt 谩mbito. Aunque 蓅ztorsz醙 nem es 韒e mismo que una v醠toz vil醙-, puede l閠rehozhat exactamente los mismos probl閙醩 egy una megm醩zik menor.
  • Como d閘kelet jelez nyit, magasvas鷗 paso ellen- par谩metros por b醫ors醙 nem istentelens間 los p閚zv醠t ellen- estado cuando los 閞vel閟 fi utal egy t醨gy.

Tapad醩


-hang tapad醩 es magasvas鷗 diplom醩 ellen- relaci贸n que 鮮 las mondat que 鰏szetev una rutina, es deci kicsi procedimiento o una funci贸n. 謘szefoglal el concepto tambi茅n se aplica a las rutinas en agrupadas en unidades o m贸dulos y, si se usa el paradigma de POO, a las clases.

El objetivo es que las sentencias dentro de las rutinas sean tan cohesivas como sea posible. B谩sicamente esto significa que una rutina debe cumplir una 煤nica tarea a un determinado nivel conceptual, es decir, que las sentencias y expresiones que contenga deben mantener un mismo nivel de abstracci贸n.

Una receta casi inexpugnable para modularizar correctamente es utilizar nombres expresivos, cumplir fielmente con el principio de responsabilidad 煤nica y si la responsabilidad implica la realizaci贸n de diversas sub-tareas, delegarlas en otras rutinas que tendr谩n un nivel de abstracci贸n m谩s bajo.

Un procedimiento muy sencillo para controlar si un m茅todo (funci贸n o procedimiento) es cohesivo, es verificar que su nombre sea descriptivo de lo que hace el c贸digo que contiene. Si al realizar esta verificaci贸n encontramos que para mantener la coherencia entre el nombre de la rutina y su c贸digo debemos ampliar el nombre (algo como HaceAHaceBHaceC...), entonces la rutina no es cohesiva y debemos refactorizarla.

Otro m茅todo heur铆stico y complementario para verificar la cohesi贸n consiste verificar la aridad de la rutina. Idealmente una rutina deber铆a tener uno o dos par谩metros, en casos no tan comunes podr铆a llegar a tener tres, una rutina con cuatro par谩metros constituir铆a un caso excepcional. Si supera los cuatro par谩metros es altamente probable que la rutina no sea cohesiva.

Esto tambi茅n se aplica m贸dulos o unidades que agrupan rutinas que deben guardar relaci贸n entre s铆.


Acoplamiento


El acoplamiento es un indicador del grado de dependencia que existe entre diferentes unidades de software (rutinas, m贸dulos, clases, componentes, etc). Cuanto m谩s intrincada es la relaci贸n de dependencia es m谩s dif铆cil comprender y mantener el programa.

Por el contrario, cuanto m谩s independientes son esas unidades de software, adem谩s de ser m谩s f谩cilmente comprensibles y por lo tanto m谩s f谩cilmente mantenibles, tambi茅n es m谩s f谩cil que se las pueda volver a usar dentro del mismo u otros proyectos de desarrollo (re-utilizaci贸n).

Por ello, al escribir las rutinas que conforman un programa, un objetivo frecuente es que las rutinas queden tan desacopladas como sea posible.



gravatar

no hay un gatget de navegacion , donde se puedan ver las entradas, o el libro... podrias proveer un listwado de lso capitulos y sus enlaces, para leer dicho libro..

Los comentarios est谩n habilitados para que los lectores puedan participar en la correcci贸n del libro, realizar preguntas puntuales o sugerencias. Todo comentario fuera de estos objetivos ser谩 eliminado. Por favor, tenga en cuenta lo siguiente:

- Cumpla las normas de etiqueta.

- Realice cr铆ticas constructivas.

- No sea redundante.