SlideShare una empresa de Scribd logo
1 de 107
Descargar para leer sin conexión
Rails


            2007.11.26


        y.ohba@everyleaf.com
...   C++   Java(7 )     Ruby(1.5     )

Perl CGI, EJB, Servlet/JSP (Struts)
orz
Ruby on Rails



 Java



        Ruby on Rails
Ruby on Rails   (^0^)/
Award on Rails 2006
•   Web

•
•

          http://www.kozuchi.net
Ruby on Rails   100%

EC



SNS
Ruby on Rails




  http://www.everyleaf.com
Award on rails 2007
                   BookScope

http://bookscope.net/
BookScope

Amazon WebService




   .org
Ruby on Rails

                /
Ruby on Rails



Ruby on Rails
Hello, RoR



Scaffold
              CRUD

Session, Request
Rails




Ruby

           etc...
API

             Rails   , Plugin

Ruby
Hash   Array
 REST


         ActiveRecord
                            DRY
Module    Mix-in
                   Ajax
                          Plugin
- IDE, SVN, Trac, Wiki, UML
Ruby
    Java



0

||=



Hash       Array
Ruby - 0
s=0
if s
  p quot;0           quot;
end


           nil       false

      0
nil
if value != nil
  ...


if value
  ...


unless value.nil?
 ...
1
if !id
  raise quot;no idquot;
end
Java

raise quot;no idquot; if !id


raise quot;no idquot; unless id
             unless
Hash   Array




API
Hash
hash = {key => value, key => value, ...}

value = hash[key]


obj.foo( {key => value, key => value} )
obj.foo(key => value, key => value)
                    {}
Array

     admin= nil
     for element in @array
       if element.name == quot;adminquot;
         admin = element
         break
       end
     end

admin = @array.detect{|e| e.name == quot;adminquot; }
public, protected, private   Java

                   Module
||=
name ||= quot;       quot;




name || name = quot;           quot;
ex) value += 1
private, protected, public


            Ruby
 private
            Java

            Ruby
protected
            Java

            Java

            Ruby
 public
            Java
private
item.my_private_method
self.my_private_method
          private



my_private_method


          private
Ruby
RoR
                - public

            - private

protected

  ActiveRecord
class Foo
  def self.foo
    p ‘foo’
  end
end

                 > Foo.foo
                 > f = Foo.new
                 > f.class.foo
ActiveRecord
:joins   :include
Acts as List
ActiveRecord
O/R

  RDB

ActiveRecord

  “              ”
ActiveRecord


table              class

users              User



                    user
          (id = 1, name = ‘   ’)
class


table

        class           class
(1)
  Item, Book, Dvd
        items

                           Item


items

                    Book          Dvd
Item.find(:all, :order => ‘created_at desc’)
              DVD,

Book.find(:all, :order => ‘created_at desc’)
type
type

 items
                                    Item


type: varchar(30)   quot;Bookquot;

                             Book          Dvd

     type
(2)

        Manager Developer
                                 ProjectMember
project_members               class

     table

                        class         class

                  Developer            Manager
item_type   role
                   if
Polymorphic Association
(Association)

                       =
          (=     )

belongs_to

has_one
has_many
belongs_to

            Employee             Office     offices
employees


office_id
             belongs_to :office
class Employee < ActiveRecord::Base
  belongs_to :office
end

                                   belongs_to(      )
Controller    Employee
@employee = Employee.find(params[:id])

             View
<table>
  <tr>
    <th>      </th>
    <td><%= @employee.office.name %></td>
  </tr>
</table>
has_one
                                   has_one :head

              Employee             Office      offices
employees


office_id
            class Office < ActiveRecord::Base
              has_one :head, :class_name => ‘Employee’,
                        :conditions => “head = 1”
            end

                           has_xxx (                )
has_many
                               has_many :employees

              Employee             Office       offices
employees


office_id

            class Office < ActiveRecord::Base
              has_many :employees
            end

               has_one     has_many
has_many
 Controller   office
@office = Office.find(params[:id])


              View
<% for e in @office.employees -%>
 <div><%= e.name %></div>
<% end ->
Office   offices


            Employee
employees


                                 Factory     factories



    Employee       Office   Factory
...
class Employee < ActiveRecord::Base
  belongs_to :office
  belongs_to :factory
end

<% if @employee.office %>
 <%= @employee.office.name %>
<% else -%>
 <%= @employee.factory.name %>
<% end -%>
class Employee < ActiveRecord::Base
  belongs_to :workplace
end
     Office     Factory    WorkpPlace


<%= @employee.workplace.name %>
has_many :employees
                                has_one :head


            Employee             Office     offices
employees


office_id
            belongs_to :office
has_many :employees, :as => work_place

                                      Office     offices
 work_place_id
 work_place_type

                           Work
            Employee
employees
                           Place
                                     Factory    factories



            belongs_to :work_place, :polymorphic => true
(xxx_type   )
class Employee < ActiveRecord::Base
  belongs_to :work_place, :polymorphic => true
end

class Office < ActiveRecord::Base
  has_many :employees, :as => :work_place
end
class Factory < ActiveRecord::Base
  has_many :employees, :as => :work_place
end
work_place_id,
        work_place_type


xxx_id, xxx_type     xxx

      xxx_type             SQL
conditions
      ActiveRecord
Comment
    comments


 commentable_id
commentable_type
class Item < ActiveRecord::Base
    has_many :comments, :as => :commentable
  end



@item.comments.create(:body => ‘              ’)
(xxx_)type



             Up
ActiveRecord



               Save
#
def after_update
 children.each {|c| c.save!}
end
before_validation



    after_destroy
-
     Controller


       Model



Rails API
:joins            :include


employees = Employee.find(:all,
    :select => quot;employee.*quot;,
    :conditions => [quot;offices.prefectue_id = ?quot;,
                      prefecture_id],
    :joins => quot;left join offices on
             employees.office_id = offices.idquot;)

            :joins   SQL    join
:joins        :include (2)
                                  DB



class Employee < ActiveRecord::Base
  belongs_to :office
end


employee = Employee.find(@id,
           :include => :office)
API

           validates_presence_of etc...



              = errors

def validate
 errors.add_to_base(“         ”) unless quantity % 2 == 0
end
if @employee.save
    flash[:notice] = ‘                ’
    redirect_to :action => ‘index’
  else
    render :action => ‘new’
  end
Controller        save

  <%= error_messages_for ‘employee’ %>
               View
API

API




  ActiveHeart Plugin

  GetText , Scpecial Generator
Acts as List

has_many
Acts as List
                position
class Note < ActiveRecord::Base
  has_many :lines, :order => quot;positionquot;
end

class Line < ActiveRecord::Base
                                          rails 2.0
  belongs_to :note
  acts_as_list :scope => :note
end



       position
has_many




 )
class Employee < ActiveRecord::Base
  belongs_to :office, :counter_cache => true
end

   offices              employees_count



                0
ActiveRecord

API

      Association   (has_many   )




 http://api.rubyonrails.org/
REST

Controller          URL




entries/new_comment/1
entries/1/comments/new
         entries/1/comments/3
REST

            Controller



routes.rb

Filter

            @book
rails 2.0



 REST
acts_as_authenticated plugin

 before_filter



before_filter :load_user
private
def load_user
  @user = User.find(session[:user_id])
end
@entries = Entry.secure_find(@user, options)
create              save

update




validates_association

:dependent => :destroy
acts_as_paranoid
file_column

RMagick




I/F
GetText (gem
      )

Globalize
acts_as_taggable


SpecialGenerator
        Scaffold
Rails
Ruby DSL
          DSL =

has_many :employees

  AR



  Rails

  = DSL
String



  under_score, pluralize ...
acts_as_paranoid
Module   Mix-in
Java



 Ruby

class Object
  def yeah
    p ‘yeah!’
  end
end
Module                    Mix-in
  Module



module Human
 def age(date)
   #                ()
 end
end
                    include

class Employee < ActiveRecord::Base
  include Human
end
ActiveRecord::Base


                                Module
 Office            Factory

include               include
          WorkPlace
include



module WorkPlace
 #
 def self.included(base)
   base.has_many :employees,
                   :as => :work_place
 end
end
Module
module WorkPlace
 module ClassMethods
   def foo
    p ‘foo’
   end
 end
 def self.included(base)
   base.extend(ClassMethods)
 end
end
private



obj.__send__(:himitsu)

       Ruby1.9
clazz.__send__(:define_method, :yeah) {
  p ‘yeah!’
}
(^o^)/
init.rb



Module
include

  DSL

  ) acts_as_paranoid
NULL



email

def email=(value)
 value = nil if value.blank?
 self[:email] = value
end
class User < ActiveRecord::Base
  nullify_blank :email, :address, :tel, :fax, :url
end
vendor/plugins/my_extension/init.rb

class ActiveRecord::Base
  def self.nullify_blank(*args)
    args.each do |attr|
      define_method(:quot;#{attr.to_s}=quot;) do |v|
       v = nil if v.blank?
       self[attr.to_sym] = v
      end
    end
  end
end
Module   Helper


DSL
Ruby on Rails ステップアップ講座 - 大場寧子

Más contenido relacionado

La actualidad más candente

PofEAA and SQLAlchemy
PofEAA and SQLAlchemyPofEAA and SQLAlchemy
PofEAA and SQLAlchemyInada Naoki
 
td_mxc_rubyrails_shin
td_mxc_rubyrails_shintd_mxc_rubyrails_shin
td_mxc_rubyrails_shintutorialsruby
 
Class-based views with Django
Class-based views with DjangoClass-based views with Django
Class-based views with DjangoSimon Willison
 
JavaScript
JavaScriptJavaScript
JavaScriptSunil OS
 
Dig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup CairoDig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup CairoMohamed Mosaad
 
Django Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksDjango Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksShawn Rider
 
Meet Magento Belarus debug Pavel Novitsky (eng)
Meet Magento Belarus debug Pavel Novitsky (eng)Meet Magento Belarus debug Pavel Novitsky (eng)
Meet Magento Belarus debug Pavel Novitsky (eng)Pavel Novitsky
 
От Rails-way к модульной архитектуре
От Rails-way к модульной архитектуреОт Rails-way к модульной архитектуре
От Rails-way к модульной архитектуреIvan Nemytchenko
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentationguest5d87aa6
 
Template rendering in rails
Template rendering in rails Template rendering in rails
Template rendering in rails Hung Wu Lo
 
SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)
SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)
SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)Mark Wilkinson
 
QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"
QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"
QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"GeeksLab Odessa
 
Assetic (Symfony Live Paris)
Assetic (Symfony Live Paris)Assetic (Symfony Live Paris)
Assetic (Symfony Live Paris)Kris Wallsmith
 
QA Lab: тестирование ПО. Станислав Шмидт: "Self-testing REST APIs with API Fi...
QA Lab: тестирование ПО. Станислав Шмидт: "Self-testing REST APIs with API Fi...QA Lab: тестирование ПО. Станислав Шмидт: "Self-testing REST APIs with API Fi...
QA Lab: тестирование ПО. Станислав Шмидт: "Self-testing REST APIs with API Fi...GeeksLab Odessa
 
Active Record Inheritance in Rails
Active Record Inheritance in RailsActive Record Inheritance in Rails
Active Record Inheritance in RailsSandip Ransing
 

La actualidad más candente (19)

PofEAA and SQLAlchemy
PofEAA and SQLAlchemyPofEAA and SQLAlchemy
PofEAA and SQLAlchemy
 
Alfredo-PUMEX
Alfredo-PUMEXAlfredo-PUMEX
Alfredo-PUMEX
 
td_mxc_rubyrails_shin
td_mxc_rubyrails_shintd_mxc_rubyrails_shin
td_mxc_rubyrails_shin
 
Class-based views with Django
Class-based views with DjangoClass-based views with Django
Class-based views with Django
 
RicoLiveGrid
RicoLiveGridRicoLiveGrid
RicoLiveGrid
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Dig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup CairoDig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup Cairo
 
Django Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksDjango Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, Tricks
 
Meet Magento Belarus debug Pavel Novitsky (eng)
Meet Magento Belarus debug Pavel Novitsky (eng)Meet Magento Belarus debug Pavel Novitsky (eng)
Meet Magento Belarus debug Pavel Novitsky (eng)
 
Php summary
Php summaryPhp summary
Php summary
 
От Rails-way к модульной архитектуре
От Rails-way к модульной архитектуреОт Rails-way к модульной архитектуре
От Rails-way к модульной архитектуре
 
Jquery presentation
Jquery presentationJquery presentation
Jquery presentation
 
Template rendering in rails
Template rendering in rails Template rendering in rails
Template rendering in rails
 
SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)
SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)
SADI in Perl - Protege Plugin Tutorial (fixed Aug 24, 2011)
 
QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"
QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"
QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation"
 
Assetic (Symfony Live Paris)
Assetic (Symfony Live Paris)Assetic (Symfony Live Paris)
Assetic (Symfony Live Paris)
 
Framework
FrameworkFramework
Framework
 
QA Lab: тестирование ПО. Станислав Шмидт: "Self-testing REST APIs with API Fi...
QA Lab: тестирование ПО. Станислав Шмидт: "Self-testing REST APIs with API Fi...QA Lab: тестирование ПО. Станислав Шмидт: "Self-testing REST APIs with API Fi...
QA Lab: тестирование ПО. Станислав Шмидт: "Self-testing REST APIs with API Fi...
 
Active Record Inheritance in Rails
Active Record Inheritance in RailsActive Record Inheritance in Rails
Active Record Inheritance in Rails
 

Similar a Ruby on Rails ステップアップ講座 - 大場寧子

Ruby/Rails
Ruby/RailsRuby/Rails
Ruby/Railsrstankov
 
Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007Rabble .
 
Introduction to Active Record - Silicon Valley Ruby Conference 2007
Introduction to Active Record - Silicon Valley Ruby Conference 2007Introduction to Active Record - Silicon Valley Ruby Conference 2007
Introduction to Active Record - Silicon Valley Ruby Conference 2007Rabble .
 
Rails2 Pr
Rails2 PrRails2 Pr
Rails2 Prxibbar
 
Ruby on Rails at PROMPT ISEL '11
Ruby on Rails at PROMPT ISEL '11Ruby on Rails at PROMPT ISEL '11
Ruby on Rails at PROMPT ISEL '11Pedro Cunha
 
Desarrollando aplicaciones web en minutos
Desarrollando aplicaciones web en minutosDesarrollando aplicaciones web en minutos
Desarrollando aplicaciones web en minutosEdgar Suarez
 
Postobjektové programovanie v Ruby
Postobjektové programovanie v RubyPostobjektové programovanie v Ruby
Postobjektové programovanie v RubyJano Suchal
 
Pourquoi ruby et rails déchirent
Pourquoi ruby et rails déchirentPourquoi ruby et rails déchirent
Pourquoi ruby et rails déchirentNicolas Ledez
 
OSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialOSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialYi-Ting Cheng
 
Simple restfull app_s
Simple restfull app_sSimple restfull app_s
Simple restfull app_snetwix
 
Metaprogramovanie #1
Metaprogramovanie #1Metaprogramovanie #1
Metaprogramovanie #1Jano Suchal
 
Rails 3 (beta) Roundup
Rails 3 (beta) RoundupRails 3 (beta) Roundup
Rails 3 (beta) RoundupWayne Carter
 
Ruby on Rails For .Net Programmers
Ruby on Rails For .Net ProgrammersRuby on Rails For .Net Programmers
Ruby on Rails For .Net Programmersdaveverwer
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the FinishYehuda Katz
 

Similar a Ruby on Rails ステップアップ講座 - 大場寧子 (20)

Why ruby
Why rubyWhy ruby
Why ruby
 
Ruby/Rails
Ruby/RailsRuby/Rails
Ruby/Rails
 
Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007
 
Introduction to Active Record - Silicon Valley Ruby Conference 2007
Introduction to Active Record - Silicon Valley Ruby Conference 2007Introduction to Active Record - Silicon Valley Ruby Conference 2007
Introduction to Active Record - Silicon Valley Ruby Conference 2007
 
Rails2 Pr
Rails2 PrRails2 Pr
Rails2 Pr
 
Ruby on Rails at PROMPT ISEL '11
Ruby on Rails at PROMPT ISEL '11Ruby on Rails at PROMPT ISEL '11
Ruby on Rails at PROMPT ISEL '11
 
DataMapper
DataMapperDataMapper
DataMapper
 
Desarrollando aplicaciones web en minutos
Desarrollando aplicaciones web en minutosDesarrollando aplicaciones web en minutos
Desarrollando aplicaciones web en minutos
 
Postobjektové programovanie v Ruby
Postobjektové programovanie v RubyPostobjektové programovanie v Ruby
Postobjektové programovanie v Ruby
 
Pourquoi ruby et rails déchirent
Pourquoi ruby et rails déchirentPourquoi ruby et rails déchirent
Pourquoi ruby et rails déchirent
 
OSDC 2009 Rails Turtorial
OSDC 2009 Rails TurtorialOSDC 2009 Rails Turtorial
OSDC 2009 Rails Turtorial
 
Simple restfull app_s
Simple restfull app_sSimple restfull app_s
Simple restfull app_s
 
Metaprogramovanie #1
Metaprogramovanie #1Metaprogramovanie #1
Metaprogramovanie #1
 
Rails <form> Chronicle
Rails <form> ChronicleRails <form> Chronicle
Rails <form> Chronicle
 
Rails 3 (beta) Roundup
Rails 3 (beta) RoundupRails 3 (beta) Roundup
Rails 3 (beta) Roundup
 
Rails is not just Ruby
Rails is not just RubyRails is not just Ruby
Rails is not just Ruby
 
Ruby on Rails For .Net Programmers
Ruby on Rails For .Net ProgrammersRuby on Rails For .Net Programmers
Ruby on Rails For .Net Programmers
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the Finish
 
Magic of Ruby
Magic of RubyMagic of Ruby
Magic of Ruby
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 

Más de Yasuko Ohba

Rubyによる開発プロジェクトをうまく回すには(2)
Rubyによる開発プロジェクトをうまく回すには(2)Rubyによる開発プロジェクトをうまく回すには(2)
Rubyによる開発プロジェクトをうまく回すには(2)Yasuko Ohba
 
Rubyによる開発プロジェクトをうまく回すには(1)
Rubyによる開発プロジェクトをうまく回すには(1)Rubyによる開発プロジェクトをうまく回すには(1)
Rubyによる開発プロジェクトをうまく回すには(1)Yasuko Ohba
 
TECH LAB PAAK 2015/06/24 Team Development
TECH LAB PAAK 2015/06/24 Team DevelopmentTECH LAB PAAK 2015/06/24 Team Development
TECH LAB PAAK 2015/06/24 Team DevelopmentYasuko Ohba
 
女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77Yasuko Ohba
 
Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5
Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5
Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5Yasuko Ohba
 
世界を描く Drawing the world
世界を描く Drawing the world世界を描く Drawing the world
世界を描く Drawing the worldYasuko Ohba
 
Good Names in Right Places on Rails
Good Names in Right Places on RailsGood Names in Right Places on Rails
Good Names in Right Places on RailsYasuko Ohba
 
ごきげんRails
ごきげんRailsごきげんRails
ごきげんRailsYasuko Ohba
 
名前のつけ方
名前のつけ方名前のつけ方
名前のつけ方Yasuko Ohba
 
Smell in Rails Apps (in Sapporo RubyKaigi03)
Smell in Rails Apps (in Sapporo RubyKaigi03)Smell in Rails Apps (in Sapporo RubyKaigi03)
Smell in Rails Apps (in Sapporo RubyKaigi03)Yasuko Ohba
 
The Basis of Making DSL with Ruby
The Basis of Making DSL with RubyThe Basis of Making DSL with Ruby
The Basis of Making DSL with RubyYasuko Ohba
 
Sub Resources Rails Plug-in
Sub Resources Rails Plug-inSub Resources Rails Plug-in
Sub Resources Rails Plug-inYasuko Ohba
 
More Pragmatic Patterns of Ruby on Rails at Kansai Ruby Kaigi #02
More Pragmatic Patterns of Ruby on Rails at Kansai Ruby Kaigi #02More Pragmatic Patterns of Ruby on Rails at Kansai Ruby Kaigi #02
More Pragmatic Patterns of Ruby on Rails at Kansai Ruby Kaigi #02Yasuko Ohba
 
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009Yasuko Ohba
 
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場Yasuko Ohba
 
テスト大嫌いっ娘のRSpec
テスト大嫌いっ娘のRSpecテスト大嫌いっ娘のRSpec
テスト大嫌いっ娘のRSpecYasuko Ohba
 

Más de Yasuko Ohba (20)

Rubyによる開発プロジェクトをうまく回すには(2)
Rubyによる開発プロジェクトをうまく回すには(2)Rubyによる開発プロジェクトをうまく回すには(2)
Rubyによる開発プロジェクトをうまく回すには(2)
 
Rubyによる開発プロジェクトをうまく回すには(1)
Rubyによる開発プロジェクトをうまく回すには(1)Rubyによる開発プロジェクトをうまく回すには(1)
Rubyによる開発プロジェクトをうまく回すには(1)
 
TECH LAB PAAK 2015/06/24 Team Development
TECH LAB PAAK 2015/06/24 Team DevelopmentTECH LAB PAAK 2015/06/24 Team Development
TECH LAB PAAK 2015/06/24 Team Development
 
女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77女性IT技術者と働き方 情報処理学会77
女性IT技術者と働き方 情報処理学会77
 
Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5
Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5
Girl, Geek and Company - Tokyo Girl Geek Dinners #5 2013/7/5
 
世界を描く Drawing the world
世界を描く Drawing the world世界を描く Drawing the world
世界を描く Drawing the world
 
Sendai ruby-02
Sendai ruby-02Sendai ruby-02
Sendai ruby-02
 
Good Names in Right Places on Rails
Good Names in Right Places on RailsGood Names in Right Places on Rails
Good Names in Right Places on Rails
 
ごきげんRails
ごきげんRailsごきげんRails
ごきげんRails
 
名前のつけ方
名前のつけ方名前のつけ方
名前のつけ方
 
Shimane2010
Shimane2010Shimane2010
Shimane2010
 
Smell in Rails Apps (in Sapporo RubyKaigi03)
Smell in Rails Apps (in Sapporo RubyKaigi03)Smell in Rails Apps (in Sapporo RubyKaigi03)
Smell in Rails Apps (in Sapporo RubyKaigi03)
 
The Basis of Making DSL with Ruby
The Basis of Making DSL with RubyThe Basis of Making DSL with Ruby
The Basis of Making DSL with Ruby
 
Sub Resources Rails Plug-in
Sub Resources Rails Plug-inSub Resources Rails Plug-in
Sub Resources Rails Plug-in
 
More Pragmatic Patterns of Ruby on Rails at Kansai Ruby Kaigi #02
More Pragmatic Patterns of Ruby on Rails at Kansai Ruby Kaigi #02More Pragmatic Patterns of Ruby on Rails at Kansai Ruby Kaigi #02
More Pragmatic Patterns of Ruby on Rails at Kansai Ruby Kaigi #02
 
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
Pragmatic Patterns of Ruby on Rails - Ruby Kaigi2009
 
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
QCon2009 Tokyo - Ruby on Railsで変わるエンタープライズ開発の現場
 
Raspbilly
RaspbillyRaspbilly
Raspbilly
 
テスト大嫌いっ娘のRSpec
テスト大嫌いっ娘のRSpecテスト大嫌いっ娘のRSpec
テスト大嫌いっ娘のRSpec
 
Shimane2008
Shimane2008Shimane2008
Shimane2008
 

Último

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Último (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

Ruby on Rails ステップアップ講座 - 大場寧子