tutorial - ruby wikipedia
Ruby off the rails (30)
A veces se siente que mi compañía es la única compañía en el mundo que usa Ruby pero no Ruby on Rails, al punto que Rails casi se ha convertido en sinónimo de Ruby.
Estoy seguro de que esto no es cierto, pero sería divertido escuchar algunas historias sobre el uso de Rails Ruby.
Marioneta y Chef: DevOps
No vi una mención de Puppet o Chef en las 30 respuestas que precedieron mi llegada. Ruby parece dominar el trabajo actual en la automatización de la nube y es el lenguaje de base, extensión y creación de plantillas de estos dos grandes jugadores. Se utilizan principalmente para distribuir información de configuración del sistema y la aplicación para matrices de servidores y para la administración general de estaciones de trabajo de TI.
El campo DevOps es bastante consciente de Ruby. Hoy, Perl tiene un competidor. Aunque a menudo se puede escribir un guión realmente simple directamente para sh(1),
ahora se puede hacer una tarea compleja en Ruby en lugar de Perl.
Casi me llevo el insulto de que el rubí es una cosa de los rieles. Es como cuando CGI era la última tendencia y todos pensaban que si conocías Perl, debes hacerlo solo porque has programado aplicaciones CGI. Ruby es solo un lenguaje de scripting para mí, aunque no tan maduro como Python, así que me arrepiento de haber tenido que pasar por algunos de sus aros y cambios recientes, todavía me gusta y lo uso. Aunque trabajo en una tienda de java y, por lo tanto, Groovy es la opción ideal para un lenguaje de scripting, aún uso ruby en casa y para tirar scripts que no son necesarios para compartir en el trabajo.
Estaba considerando entrar en RoR de todo el rumor y lo rápido / simple que es, pero después de revisar los rieles no vi nada que fuera sorprendente o incluso lo más innovador o rápido sobre su desarrollo en comparación con cualquier otro marco de referencia. El único beneficio que vi fue que podía codificar en ruby, lo que sería bueno, pero la configuración inicial, el mantenimiento del servidor y el escalado son más difíciles, lo que compensa el placer de codificar en ruby.
Creé una presentación, casualmente llamada Off The Rails, para analizar las aplicaciones web basadas en Rack:
https://github.com/alexch/Off-The-Rails
El git repo incluye diapositivas en formato Markdown y código de muestra (en forma de aplicaciones en ejecución y middleware). Aquí está el resumen:
Ruby on Rails es el framework de aplicaciones web más popular para Ruby. ¡Pero no es el único! Si crees que Rails es demasiado grande, o demasiado obstinado, o algo por el estilo, es posible que te guste aprender sobre la nueva generación de las denominadas microframeworks basadas en Rack. Y como Rails 3 es una aplicación de Rack, no tiene que renunciar a Rails para obtener el beneficio de las rutas de Sinatra o las API de Grape.
Y aquí hay algunas referencias:
- Esta charla vive en https://github.com/alexch/off-the-rails
- El # 10 favorito de Yehuda sobre Ruby
- Rack
- Sinatra
- Grape
- Vegas
- Siesta
- Rerun
¡Esperamos que te sea útil!
Donde trabajo, utilizamos Ruby para realizar varios trabajos por lotes de tipo único. Un ejemplo de eso es un trabajo que interactúa con el servicio S3 de Amazon. En ese momento, la biblioteca Ruby S3 fue probablemente la más fácil para que pudiéramos ponernos en funcionamiento en un corto período de tiempo.
Echa un vistazo a Shoes , una API simple para crear GUI en Ruby dirigida a programadores novatos.
El único sitio que he hecho con Ruby en el trabajo es usar Rails, pero me gustaría probar Merb .
Aparte de eso, hago un montón de pequeños programas de utilidad en Ruby, por ejemplo, una aplicación que lee fuentes RSS e importa nuevas publicaciones en una base de datos.
Es divertido, así que también escribo algunas cosas tontas solo porque es muy rápido. Ayer escribí una aplicación para jugar el problema de Monty Hall 100.000 veces para ayudar a un amigo a convencer a su profesor de que el cambio es la estrategia correcta.
En Boulder había un excelente grupo de usuarios de Ruby que se reunían mensualmente. Se hizo este punto: que Ruby tiene una existencia además de su uso en Rails. Los usuarios de Simple Ruby existen, piden atención, tienen cosas lindas para mostrar y pueden encontrarse en reuniones de grupos de usuarios.
También tenían mejor pizza que el grupo de Python, que también se reunió el mismo día del mes. Solo puedo elegir uno ...
Escribí un sistema experto en el procesamiento de pedidos (vea también la respuesta DSL), convertí 100k líneas de perl específico del cliente en aproximadamente 10k líneas de ruby manejando docenas de clientes. Sin componentes web, sin Rails.
Google Sketchup utiliza Ruby como un lenguaje de scripting incorporado. Puede usarlo para realizar todo tipo de tareas de modelado e importación / exportación en 3D. La secuencia de comandos funciona con la versión gratuita e incluso hay documentation decente.
He usado Ruby en el trabajo para
- Un extractor de datos, generando archivos csv a partir de salida binaria.
- Un generador de archivos .ini, convirtiendo una sintaxis simple en un formato .ini repetitivo.
- Un servidor TCP / IP simple, que actúa como sustituto del sistema del cliente durante las pruebas.
He usado Ruby mucho profesionalmente para guiones rápidos para cosas como mezclar archivos. Soy de la misma manera en que estaba usando Ruby antes de tocar Rails en absoluto.
Heh, gran pregunta.
Usé Ruby para convertir los datos de las instalaciones del aeropuerto de hoja de cálculo Excel a sqlite3 para la plataforma de teléfonos Android mientras hacía una aplicación para pilotos.
O podrías usar Ruby para hacer música al estilo de Archaeopteryx de Giles Bowkett. Esta presentación de Giles sobre Archaeopteryx es una de las mejores presentaciones de la historia. Lo recomiendo altamente.
Principalmente soy un desarrollador web, y aprendí a Ruby a usar Rails, pero me gusta tanto el lenguaje que comencé a desarrollar una aplicación de escritorio Swing en Ruby, usando JRuby y Monkeybars. Soy competente en Java, pero no me gusta usarlo, y la API de Swing es horrible, así que poner a Ruby en la cima ha sido una gran victoria.
Principalmente utilizamos rieles, pero tenemos muchas otras ruby no rieles, por ejemplo, un daemon de autentificación independiente para la autenticación centralizada de usuarios y un "servidor de procesamiento de imágenes" que ejecuta un número arbitrario de procesos ruby para procesar imágenes en paralelo.
Ah, y no te olvides del buen viejo Rake :-)
Ruby con una extensión homebrew escrita en C ++ hace todo el gran esfuerzo de píxeles para el procesamiento de mi fotografía. Estaba usando Python + numpy pero cuando hago cosas artísticas , Ruby es simplemente más divertido. También la relativa falta de, o menor madurez de, buenas bibliotecas de procesamiento de imágenes me hace sentir menos como si estuviera reinventando ruedas. No tengo ni idea de Rails, aparte de que he oído hablar de él, tengo una idea confusa de lo que es, y de hecho tengo un libro sobre él (sin abrir)
Ruby también se usa para aplicaciones de escritorio. Especialmente el uso de JRuby para desarrollar la aplicación de escritorio Swing.
RubyCocoa y MacRuby. Posibilidad de hacer aplicaciones GUI completas basadas en Cocoa sin Rails. Y luego puedes usar Interface Builder también.
Si bien tenemos varias aplicaciones de Rails en funcionamiento, también usamos Ruby para algunas cosas no web bastante intensas.
Tenemos un daemon de entrega de SMS, que extrae los mensajes de una cola y los entrega, y el daemon de procesamiento de tarjetas de crédito que otras aplicaciones pueden llamar, lo que asegura que haya un seguimiento de auditoría central.
Somos principalmente una tienda de C ++, pero hemos encontrado varias áreas donde Ruby ha demostrado ser bastante útil. Aquí hay algunos:
- Generación de código: construyó varias DSL para generar código C ++ / Java / C # a partir de archivos de entrada individuales
- Build Support
- scripts para generar Makefiles para Unix desde Visual Studio Project Files
- scripts para construir proyectos y formatear la salida para Cruise Control
- scripts para ejecutar nuestras pruebas unitarias y formatear la salida para Cruise Control
- scripts para manipular proyectos y soluciones de Visual Studio desde la línea de comandos
- Pruebas de integración: podemos generar pruebas mucho más rápido y más limpio usando Ruby que C ++
- El conjunto de pruebas completo de QA está escrito en Ruby
Ruby es básicamente mi herramienta ir a donde tiene sentido. Y tiene sentido en muchos lugares.
Soy un usuario de disco web. ruby es utilizado por webdriver para automatizar el proceso de compilación gracias al rake. ver http://code.google.com/p/webdriver/ para detalles
Trabajé en un proyecto de museo el año pasado que usó mucho Ruby. ( http: // http: //ourspace.tepapa.com/home )
La parte en la que pasé la mayor parte del tiempo fue un mapa de piso interactivo. El mapa en el piso tiene sensores para que cuando la gente camine se enciendan luces y las pantallas en la pared muestren imágenes o videos y se reproduzcan pistas de audio.
Todo el código de control para esta parte de la exhibición es ruby. Escribí interfaces C con envoltorios de rubí para comunicarme con los sensores de piso y los controladores de iluminación. El sistema consulta una base de datos MYSQL para que se muestren los archivos multimedia y luego le dice a las computadoras en las paredes que reproduzcan los medios a través de UDP.
Es la parte más confiable de toda la exhibición.
Ruby fue utilizado para la otra parte principal de la exposición, el Muro, aunque no tuve mucho que ver con eso. La mayoría de los gráficos fueron prototipo en ruby utilizando interfaces para OpenGL, un poco de Cocoa y una biblioteca de física antes de ser portado a Obj-C puro.
Uno de los grandes beneficios de Ruby es la capacidad de crear DSL con mucha facilidad. Ruby le permite crear "reglas comerciales" en una forma de lenguaje natural que, por lo general, es lo suficientemente fácil de usar para un analista de negocios. Existen muchas aplicaciones de Ruby fuera del desarrollo web para este propósito.
Recomiendo mucho googlear "ruby dsl" para una excelente lectura, pero me gustaría dejarte con una publicación en particular. Russ Olsen escribió una publicación de blog en dos partes sobre DSLs . Lo vi dar una presentación sobre DSL y fue muy bueno. Recomiendo leer estas publicaciones.
También encontré esta excelente presentación sobre Ruby DSL por Obie Fernandez . ¡Lectura altamente recomendada!
Usamos Watir (biblioteca Ruby) para probar nuestra aplicación web .net.
Usamos Ruby para implementar nuestro software de automatización de pruebas. Esto incluye el marco de prueba y el código de controlador para Selenium RC, WATIR y AutoIT.
Ruby es lo suficientemente potente como para crear aplicaciones completas que pueden interactuar con herramientas de prueba como Selenium o WATIR, mientras que al mismo tiempo lee archivos de datos, interactúa con una interfaz de usuario de Windows remota y realiza comunicaciones de red casi transparentes. Todo mientras se ejecuta en Windows o Linux.
La sintaxis despejada lo hace ideal para que los programadores nuevos e inexpertos lo lean. Si bien su naturaleza totalmente OO hace que sea fácil para estos mismos programadores aplicar buenas técnicas de OO (aprendidas recientemente), desde el principio.
La naturaleza flexible de la sintaxis de Ruby también hace que el uso y la creación de DSL sean mucho más fáciles. Esto permite que personas menos técnicas sean contactadas, leídas y posiblemente creen sus propias pruebas.
Uso Ruby con Sinatra, que es mucho más simple que Rails. Utilicé Rails, pero descubrí que se había convertido en un monstruo, aunque Rails sigue siendo sorprendente en comparación con los frameworks web disponibles para Java.
Sin embargo, la característica principal de Ruby que me encanta es "eval" y "method_missing", que Rails realmente usa, por ejemplo, en ActiveRecord para que pueda usar las asombrosas consultas "find_by-field-name-".
Uso Ruby extensamente en mi trabajo, y nada de eso está basado en Rails (o incluso en la web).
Mi dominio suele ser aplicaciones de Windows lado del cliente (wxRuby GUI) y scripts, automatización de Excel, Internet Explorer, consultas de SQL Server y generación de informes (automatización COM win32ole). También uso las bibliotecas sqlite, pdf-writer y gruff para diversas tareas de munging de datos y generación de gráficos.
El éxito de Rails ha sido excelente para Ruby, pero estoy de acuerdo en que Rails ha recibido tanta atención que el valor de Ruby más allá de la web a menudo se pasa por alto.
Utilicé Ruby para la generación de código de procedimientos almacenados C # y T-SQL en un proyecto con requisitos inestables. El modelo de datos se codificó en un archivo YAML y las plantillas .erb se usaron para las clases y los procedimientos almacenados. También permitió una solución mucho más SECA de lo que hubiera sido posible con C # directo, ya que el código repetitivo se podía descomponer en un solo método en el generador de códigos.
Utilicé a Ruby para una gran cantidad de código de back-end simplemente porque era la única persona que tenía la tarea de hacerlo y necesitaba un lenguaje limpio y agradable que me permitiera ser muy productivo y escribir código fácil de mantener. Me parece que Ruby me permite hacer eso más fácil que Perl y Python. El kilometraje de otras personas puede variar en eso pero funciona bien para mí.
Además de eso, me gusta cómo funcionan Sequel y Nokogiri. También utilicé ActiveRecord por un tiempo por separado de Rails.
Utilizamos algunos Ruby para la manipulación de archivos, pero aún no hemos podido incorporar los rieles.