{"id":26709,"date":"2017-06-17T11:03:19","date_gmt":"2017-06-17T11:03:19","guid":{"rendered":"https:\/\/dev.railscarma.com\/rails-development-coding-conventions-best-practices\/"},"modified":"2024-01-10T11:41:26","modified_gmt":"2024-01-10T11:41:26","slug":"mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/","title":{"rendered":"Desarrollo de Rails: convenciones de codificaci\u00f3n y mejores pr\u00e1cticas"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"26709\" class=\"elementor elementor-26709\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3cb0fa5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3cb0fa5\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-524f6358\" data-id=\"524f6358\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-41766eb elementor-widget elementor-widget-text-editor\" data-id=\"41766eb\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4>Lo que hay en un nombre<\/h4>\n<p>A good name answers important questions. What does it contain? What does it mean? How would I use it?<br>\nWhat&nbsp; role&nbsp; does&nbsp; it&nbsp; play?<br>\nAlways name your methods based on their behaviour, not implementation.<br>\nConsider,<\/p>\n<p><a href=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-26734\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/1.png\" alt=\"coding\" width=\"610\" height=\"160\"><\/a><\/p>\n<p>By looking at the method name above, we can predict it\u2019s going to perform 2-3 database operations, but<br>\nwhen I\u2019m working in Business model, why would it concern me?<br>\nGoing&nbsp; by,&nbsp; naming&nbsp; method&nbsp; based&nbsp; on&nbsp; their&nbsp; business&nbsp; role,&nbsp; the&nbsp; method&nbsp; can&nbsp; be&nbsp; renamed&nbsp; as,<\/p>\n<p><a href=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/2.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-26735\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/2.png\" alt=\"Rails Coding\" width=\"424\" height=\"146\"><\/a><\/p>\n<h4><strong>Denominaci\u00f3n estructural<\/strong><\/h4>\n<p>Another common strategy is to name things for their role in the program. It\u2019s the input or the output. It\u2019s the recurring phrase or the middle sentence.&nbsp; Consider the code for counting differences between two points;<code><\/code><\/p>\n<p><a href=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/3-1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-26736\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/3-1.png\" alt=\"\" width=\"381\" height=\"104\"><\/a><\/p>\n<p>Here the arguments first and second are pretty vague, considering the fact that we\u2019re not even sure if the order matters. In this context, it doesn\u2019t.<br>\nI can then restructure my code as;<\/p>\n<p><a href=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/4-1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-26732\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/4-1.png\" alt=\"rieles\" width=\"338\" height=\"102\"><\/a><\/p>\n<p>Lo que podemos concluir de esto es que el primer paso fue describir el problema en ingl\u00e9s. El c\u00e1lculo de la distancia entre dos cadenas se basa en el recuento de mutaciones encontradas entre las dos cadenas.<\/p>\n<h4><strong>Refactorizaci\u00f3n<\/strong><\/h4>\n<p align=\"justify\">Reorganizar el c\u00f3digo es generalmente bastante trivial. La parte complicada es saber por d\u00f3nde empezar y reconocer que puedes hacerlo. Parte de superar esa barrera es simplemente hacerlo unas cuantas veces. Encuentra un condicional y, para cada uno de sus bloques, crea un objeto cuya \u00fanica responsabilidad sea hacer esa cosa.<\/p>\n<p>Refactoring is about recognizing a snippet of code as exhibiting characteristics that are known to be problematic.Applying a change that is known to fix this category of problem.<br>\nThis problematic pattern is called Code Smell, \u201ccode smell is a surface indication that usually corresponds to a deeper problem in the system.\u201d \u2013 Martin Fowler<br>\nStarting small is never a bad idea, if you can refactor code at micro level, then when it all comes together, it will become a refactored code.<br>\nConsider two&nbsp;code snippets for example,<\/p>\n<p><a href=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/5.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-26737\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/5.png\" alt=\"sum\" width=\"315\" height=\"108\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/a><a href=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/7.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-26739\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/7.png\" alt=\"old\" width=\"281\" height=\"206\"><\/a><\/p>\n<p><span style=\"font-size: 16px;\">\u00bfCu\u00e1l es la similitud en los fragmentos de c\u00f3digo anteriores? Ambos tienen cada bucle, y si intentamos encontrar su c\u00f3digo huele,<\/span><br><\/p>\n<ul>\n<li>Un bucle con una variable temporal.<\/li>\n<li>Un bucle con un condicional anidado.<\/li>\n<\/ul>\n<h4><\/h4>\n<h4><strong>Intentemos refactorizarlos.<\/strong><\/h4>\n<p>El primer bucle solo tiene una variable temporal, que se puede arreglar usando &#039;inject&#039;<\/p>\n<p><a href=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/6.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-26738\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/6.png\" alt=\"numbers\" width=\"322\" height=\"180\"><\/a><\/p>\n<p>Este tiene dos variables temporales y un bucle anidado, ya que estamos tratando de clasificarlas, sort_by deber\u00eda funcionar. El c\u00f3digo se puede refactorizar a\u00fan m\u00e1s, ya que estamos tratando de encontrar el valor m\u00e1ximo, podemos usar directamente la funci\u00f3n max_by aqu\u00ed.<\/p>\n<p><a href=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/8.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-26740\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/8.png\" alt=\"number\" width=\"439\" height=\"318\"><\/a><\/p>\n<h4><strong>Pr\u00e1cticas Generales<\/strong><\/h4>\n<ul>\n<li>What if we devise a set of rules to follow while coding, that later on reduces our efforts in refactoring.<br>\nThe most basic and important point is FORMATTING. It sounds like the most obvious and easy thing to do but it\u2019s very important to format your code correctly. In terms of code readability, understanding for future references, and also while resolving conflicts that occur while merging two different branches.<\/li>\n<li>Al escribir una condici\u00f3n if con m\u00faltiples subcondiciones, intente siempre ordenarlas de manera que requiera el menor esfuerzo. Por ejemplo,<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/9.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-26731\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2024\/01\/9.png\" alt=\"rieles\" width=\"678\" height=\"103\"><\/a><\/p>\n<ul>\n<li>Si tiene una gran cantidad de l\u00f3gica que girar\u00e1 en torno a una \u00fanica funcionalidad, intente dividirla en varios m\u00e9todos m\u00e1s peque\u00f1os. Aumenta la reutilizaci\u00f3n y adem\u00e1s facilita que un nuevo desarrollador comprenda el c\u00f3digo f\u00e1cilmente. En lugar de escribir todo en un solo m\u00e9todo y darle la apariencia de una l\u00f3gica compleja, div\u00eddalo en fragmentos de m\u00e9todos m\u00e1s peque\u00f1os y legibles.<\/li>\n<li>Comenta tu c\u00f3digo m\u00e1gico. Ruby proporciona muchos m\u00e9todos de metaprogramaci\u00f3n que ayudan a reducir el esfuerzo y ahorran tiempo. Pero no siempre son tan f\u00e1ciles de entender cuando quieres consultarlos, siempre es una buena idea agregar comentarios apropiados para que cuando vuelvas m\u00e1s tarde a echarles un vistazo, te resulte m\u00e1s f\u00e1cil volver a conectarte.<\/li>\n<li>Utilice before_filter, en lugar de repetirse en el controlador.<\/li>\n<li>Utilice devoluciones de llamadas de modelos para evitar escribir demasiado c\u00f3digo en los controladores para las acciones que giran en torno a las operaciones CRUD b\u00e1sicas.<\/li>\n<li>FORMATING: there are certain gems which makes your life much easier : awesome_print ; pretty print ;&nbsp; rubocop.<\/li>\n<li>Siga siempre la pr\u00e1ctica de revisi\u00f3n de c\u00f3digo en Git. El c\u00f3digo escrito por un desarrollador debe ser revisado por otros miembros del equipo antes de fusionarlo con las ramas principales, ya que eso ayuda a eliminar posibles errores o resultados inesperados. Tambi\u00e9n ayuda a mantener a todos los miembros informados y actualizados sobre en qu\u00e9 est\u00e1 trabajando su colega.<\/li>\n<li>Las declaraciones que extienden la publicaci\u00f3n a 80 caracteres deben dividirse en las siguientes l\u00edneas para evitar la barra de desplazamiento al ver el c\u00f3digo en otros medios como GitHub.<\/li>\n<li>Al enviar c\u00f3digo a su repositorio, git diff me dice lo que hizo, su mensaje de confirmaci\u00f3n debe decir por qu\u00e9 lo hizo.<\/li>\n<li>NO OPTIMIZAR para el rendimiento \u2013 OPTIMIZAR PARA LA CLARIDAD DEL C\u00d3DIGO<\/li>\n<li>Las pruebas unitarias siempre son una buena idea para garantizar que la funcionalidad funcione como esperaba. Ayuda por aspecto: Rails genera de forma predeterminada un asistente para cada controlador. Elim\u00ednelos e intente utilizar ayudas que est\u00e9n orientadas a aspectos como; <strong>-&gt; link_helper &nbsp; &nbsp;&nbsp; &#8211;<\/strong><strong>&gt; men\u00fa_ayudante<\/strong><\/li>\n<li>Seg\u00fan la convenci\u00f3n de MVC, se debe evitar realizar llamadas a la base de datos desde la capa de Vista. Mueva esa parte de su c\u00f3digo a los controladores para garantizar la separaci\u00f3n de preocupaciones.<\/li>\n<li>Reducir las llamadas a bases de datos. Si una p\u00e1gina visitada con frecuencia genera m\u00e1s de un par de llamadas a la base de datos, vale la pena dedicar un poco de tiempo para reducir la cantidad de llamadas a solo unas pocas. En muchos casos, esto es s\u00f3lo cuesti\u00f3n de usar .includes() o .joins().<\/li>\n<li>Se convierte en una tarea tediosa verificar la estructura de su modelo de vez en cuando; como recurso, incluya la estructura de su modelo en la parte superior del archivo como referencia.<\/li>\n<\/ul>\n<p>\u00a1Espero que haya ayudado! Cerrando la sesi\u00f3n, <strong>Niyanta<\/strong><\/p>\n<p><span style=\"border-radius: 2px; text-indent: 20px; width: auto; padding: 0px 4px 0px 0px; text-align: center; font: bold 11px\/20px 'Helvetica Neue',Helvetica,sans-serif; color: #ffffff; background: #bd081c no-repeat scroll 3px 50% \/ 14px 14px; position: absolute; opacity: 1; z-index: 8675309; display: none; cursor: pointer;\">Ahorrar<\/span><\/p>\n<p><span style=\"border-radius: 2px; text-indent: 20px; width: auto; padding: 0px 4px 0px 0px; text-align: center; font: bold 11px\/20px 'Helvetica Neue',Helvetica,sans-serif; color: #ffffff; background: #bd081c no-repeat scroll 3px 50% \/ 14px 14px; position: absolute; opacity: 1; z-index: 8675309; display: none; cursor: pointer; top: 2615px; left: 40px;\">Ahorrar<\/span><\/p>\n<p><span style=\"border-radius: 2px; text-indent: 20px; width: auto; padding: 0px 4px 0px 0px; text-align: center; font: bold 11px\/20px 'Helvetica Neue',Helvetica,sans-serif; color: #ffffff; background: #bd081c no-repeat scroll 3px 50% \/ 14px 14px; position: absolute; opacity: 1; z-index: 8675309; display: none; cursor: pointer; top: 1696px; left: 447px;\">Ahorrar<\/span><\/p>\n<p><span style=\"border-radius: 2px; text-indent: 20px; width: auto; padding: 0px 4px 0px 0px; text-align: center; font: bold 11px\/20px 'Helvetica Neue',Helvetica,sans-serif; color: #ffffff; background: #bd081c no-repeat scroll 3px 50% \/ 14px 14px; position: absolute; opacity: 1; z-index: 8675309; display: none; cursor: pointer; top: 2641px; left: 40px;\">Ahorrar<\/span><\/p>\n<p><span style=\"border-radius: 2px; text-indent: 20px; width: auto; padding: 0px 4px 0px 0px; text-align: center; font: bold 11px\/20px 'Helvetica Neue',Helvetica,sans-serif; color: #ffffff; background: #bd081c no-repeat scroll 3px 50% \/ 14px 14px; position: absolute; opacity: 1; z-index: 8675309; display: none; cursor: pointer; top: 2570px; left: 40px;\">Ahorrar<\/span><\/p>\n<p><span style=\"border-radius: 2px; text-indent: 20px; width: auto; padding: 0px 4px 0px 0px; text-align: center; font: bold 11px\/20px 'Helvetica Neue',Helvetica,sans-serif; color: #ffffff; background: #bd081c no-repeat scroll 3px 50% \/ 14px 14px; position: absolute; opacity: 1; z-index: 8675309; display: none; cursor: pointer; top: 2570px; left: 40px;\">Ahorrar<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-311a9228 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"311a9228\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-428e9518\" data-id=\"428e9518\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7b59b682 elementor-widget elementor-widget-heading\" data-id=\"7b59b682\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Suscr\u00edbete para recibir las \u00faltimas actualizaciones<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-445b395c elementor-widget elementor-widget-shortcode\" data-id=\"445b395c\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t\t\t\t<script type=\"text\/javascript\">\n\t\t\t\t\t\tvar gCaptchaSibWidget;\n                        var onloadSibCallbackInvisible = function () {\n\n                            var element = document.getElementsByClassName('sib-default-btn');\n                            var countInvisible = 0;\n                            var indexArray = [];\n                            jQuery('.sib-default-btn').each(function (index, el) {\n                                if ((jQuery(el).attr('id') == \"invisible\")) {\n                                    indexArray[countInvisible] = index;\n                                    countInvisible++\n                                }\n                            });\n\n                            jQuery('.invi-recaptcha').each(function (index, el) {\n                                grecaptcha.render(element[indexArray[index]], {\n                                    'sitekey': jQuery(el).attr('data-sitekey'),\n                                    'callback': sibVerifyCallback,\n                                });\n                            });\n                        };\n\t\t\t\t\t<\/script>\n\t\t\t\t\t                <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=onloadSibCallbackInvisible&render=explicit\" async defer><\/script>\n\t\t\t\t\n\t\t\t<form id=\"sib_signup_form_1\" method=\"post\" class=\"sib_signup_form\" action=\"\">\n\t\t\t\t<div class=\"sib_loader\" style=\"display:none;\"><img\n\t\t\t\t\t\t\tsrc=\"https:\/\/www.railscarma.com\/wp-includes\/images\/spinner.gif\" alt=\"cargador\"><\/div>\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_action\" value=\"subscribe_form_submit\">\n\t\t\t\t<input type=\"hidden\" name=\"sib_form_id\" value=\"1\">\n                <input type=\"hidden\" name=\"sib_form_alert_notice\" value=\"Please fill out this field\">\n                <input type=\"hidden\" name=\"sib_form_invalid_email_notice\" value=\"Your email address is invalid\">\n                <input type=\"hidden\" name=\"sib_security\" value=\"d7f7626ab9\">\n\t\t\t\t<div class=\"sib_signup_box_inside_1\">\n\t\t\t\t\t<div style=\"\/*display:none*\/\" class=\"sib_msg_disp\">\n\t\t\t\t\t<\/div>\n                                            <div id=\"sib_captcha_invisible\" class=\"invi-recaptcha\" data-sitekey=\"6LdikOAaAAAAAJ6SWrrKVQrtw7TQpQAEnv0HS0G3\"><\/div>\n                    \t\t\t\t\t<p class=\"sib-email-area\">\r\n    <label class=\"sib-email-area\"><\/label>\r\n    <input type=\"email\" class=\"sib-email-area\" name=\"email\" required=\"required\" placeholder=\"Direcci\u00f3n de correo electr\u00f3nico\">\r\n<\/p>\r\n<p class=\"sib-NAME-area\">\r\n    <label class=\"sib-NAME-area\"><\/label>\r\n    <input type=\"text\" class=\"sib-NAME-area\" name=\"NAME\" placeholder=\"Nombre\">\r\n<\/p>\r\n<p>\r\n    <input type=\"submit\" id=\"invisible\" class=\"sib-default-btn\" value=\"Suscribir\">\r\n<\/p>\t\t\t\t<\/div>\n\t\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"es\"\/><\/form>\n\t\t\t<style>\n\t\t\t\tform#sib_signup_form_1 p.sib-alert-message {\n    padding: 6px 12px;\n    margin-bottom: 20px;\n    border: 1px solid transparent;\n    border-radius: 4px;\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\nform#sib_signup_form_1 p.sib-alert-message-error {\n    background-color: #f2dede;\n    border-color: #ebccd1;\n    color: #a94442;\n}\nform#sib_signup_form_1 p.sib-alert-message-success {\n    background-color: #dff0d8;\n    border-color: #d6e9c6;\n    color: #3c763d;\n}\nform#sib_signup_form_1 p.sib-alert-message-warning {\n    background-color: #fcf8e3;\n    border-color: #faebcc;\n    color: #8a6d3b;\n}\n\t\t\t<\/style>\n\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">Art\u00edculos Relacionados<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Gema Kaminari\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/gema-kaminari\/?related_post_from=37277\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"gema kaminari\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/04\/kaminari-gem-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Gema Kaminari\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/gema-kaminari\/?related_post_from=37277\">\r\n        Gema Kaminari  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"\u00bfPor qu\u00e9 contratar desarrolladores Ruby on Rails en 2026?\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/por-que-contratar-desarrolladores-de-ruby-on-rails\/?related_post_from=30627\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"por qu\u00e9 contratar desarrolladores de Ruby on Rails en 2022\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2019\/01\/why-to-hire-ruby-on-rails-developers-in-2022-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"\u00bfPor qu\u00e9 contratar desarrolladores Ruby on Rails en 2026?\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/por-que-contratar-desarrolladores-de-ruby-on-rails\/?related_post_from=30627\">\r\n        \u00bfPor qu\u00e9 contratar desarrolladores Ruby on Rails en 2026?  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Importancia de la arquitectura de software en el desarrollo de software empresarial\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/importancia-de-la-arquitectura-de-software-en-el-desarrollo-de-software-empresarial\/?related_post_from=36250\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"Importancia de la arquitectura de software en el desarrollo de software empresarial\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/06\/Importance-of-Software-Architecture-in-enterprise-software-development-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Importancia de la arquitectura de software en el desarrollo de software empresarial\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/importancia-de-la-arquitectura-de-software-en-el-desarrollo-de-software-empresarial\/?related_post_from=36250\">\r\n        Importancia de la arquitectura de software en el desarrollo de software empresarial  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby IDE: los mejores IDE para el desarrollo de Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/ruby-ide-las-mejores-ideas-para-el-desarrollo-de-ruby-on-rails\/?related_post_from=36125\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg\" class=\"attachment-full size-full wp-post-image\" alt=\"MEJORES IDES PARA EL DESARROLLO DE RUBY ON RAILS\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT.jpg 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-300x113.jpg 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2022\/01\/BEST-IDES-FOR-RUBY-ON-RAILS-DEVELOPMENT-768x288.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Ruby IDE: los mejores IDE para el desarrollo de Ruby on Rails\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ror\/ruby-ide-las-mejores-ideas-para-el-desarrollo-de-ruby-on-rails\/?related_post_from=36125\">\r\n        Ruby IDE: los mejores IDE para el desarrollo de Ruby on Rails  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>What\u2019s in a name A good name answers important questions. What does it contain? What does it mean? How would I use it? What&nbsp; role&nbsp; does&nbsp; it&nbsp; play? Always name your methods based on their behaviour, not implementation. Consider, By looking at the method name above, we can predict it\u2019s going to perform 2-3 database &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/es\/blog\/ruby-regex-match-guide-with-examples\/\"> <span class=\"screen-reader-text\">Ruby Regex Match Guide (2026) con Ejemplos<\/span> Leer m\u00e1s \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":31753,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384],"tags":[],"class_list":["post-26709","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-articles"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rails Development: Coding Conventions &amp; Best Practices - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development<\/title>\n<meta name=\"description\" content=\"What\u2019s in a name A good name answers important questions. What does it contain? What does it mean? How would I use it? What&nbsp; role&nbsp; does&nbsp;\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rails Development: Coding Conventions &amp; Best Practices - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"og:description\" content=\"What\u2019s in a name A good name answers important questions. What does it contain? What does it mean? How would I use it? What&nbsp; role&nbsp; does&nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2017-06-17T11:03:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-10T11:41:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/06\/Rails-Development-Coding-Conventions-Best-Practices.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\"},\"headline\":\"Rails Development: Coding Conventions &#038; Best Practices\",\"datePublished\":\"2017-06-17T11:03:19+00:00\",\"dateModified\":\"2024-01-10T11:41:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/\"},\"wordCount\":1049,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/06\/Rails-Development-Coding-Conventions-Best-Practices.png\",\"articleSection\":[\"Technical Articles\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/\",\"url\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/\",\"name\":\"Rails Development: Coding Conventions & Best Practices - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/06\/Rails-Development-Coding-Conventions-Best-Practices.png\",\"datePublished\":\"2017-06-17T11:03:19+00:00\",\"dateModified\":\"2024-01-10T11:41:26+00:00\",\"description\":\"What\u2019s in a name A good name answers important questions. What does it contain? What does it mean? How would I use it? What&nbsp; role&nbsp; does&nbsp;\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/06\/Rails-Development-Coding-Conventions-Best-Practices.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/06\/Rails-Development-Coding-Conventions-Best-Practices.png\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rails Development: Coding Conventions &#038; Best Practices\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Desarrollo de Rails: convenciones de codificaci\u00f3n y mejores pr\u00e1cticas - RailsCarma - Ruby on Rails Development Company especializada en desarrollo offshore","description":"What\u2019s in a name A good name answers important questions. What does it contain? What does it mean? How would I use it? What&nbsp; role&nbsp; does&nbsp;","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/","og_locale":"es_ES","og_type":"article","og_title":"Rails Development: Coding Conventions & Best Practices - RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","og_description":"What\u2019s in a name A good name answers important questions. What does it contain? What does it mean? How would I use it? What&nbsp; role&nbsp; does&nbsp;","og_url":"https:\/\/www.railscarma.com\/es\/blog\/articulos-tecnicos\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2017-06-17T11:03:19+00:00","article_modified_time":"2024-01-10T11:41:26+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/06\/Rails-Development-Coding-Conventions-Best-Practices.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"Escrito por":"admin","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/"},"author":{"name":"admin","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21"},"headline":"Rails Development: Coding Conventions &#038; Best Practices","datePublished":"2017-06-17T11:03:19+00:00","dateModified":"2024-01-10T11:41:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/"},"wordCount":1049,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/06\/Rails-Development-Coding-Conventions-Best-Practices.png","articleSection":["Technical Articles"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/","url":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/","name":"Desarrollo de Rails: convenciones de codificaci\u00f3n y mejores pr\u00e1cticas - RailsCarma - Ruby on Rails Development Company especializada en desarrollo offshore","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/06\/Rails-Development-Coding-Conventions-Best-Practices.png","datePublished":"2017-06-17T11:03:19+00:00","dateModified":"2024-01-10T11:41:26+00:00","description":"What\u2019s in a name A good name answers important questions. What does it contain? What does it mean? How would I use it? What&nbsp; role&nbsp; does&nbsp;","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/06\/Rails-Development-Coding-Conventions-Best-Practices.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2017\/06\/Rails-Development-Coding-Conventions-Best-Practices.png","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/es\/blog\/technical-articles\/mejores-practicas-de-convenciones-de-codificacion-de-desarrollo-de-rieles\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Rails Development: Coding Conventions &#038; Best Practices"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - Empresa de desarrollo Ruby on Rails especializada en desarrollo offshore","description":"RailsCarma es una empresa de desarrollo de Ruby on Rails en Bangalore. Nos especializamos en el desarrollo offshore de Ruby on Rails con sede en EE. UU. e India. Contrate desarrolladores experimentados de Ruby on Rails para disfrutar de la mejor experiencia web.","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"RielesCarma","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/5f2228a2dec7549056e709de6eb85d21","name":"administraci\u00f3n","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/308867ca6c81f3aba146080c601000087180326f752c4116849ea9f514c6a4fa?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/posts\/26709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/comments?post=26709"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/posts\/26709\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/media\/31753"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/media?parent=26709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/categories?post=26709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/es\/wp-json\/wp\/v2\/tags?post=26709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}