Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ruby on Rails Lazy Developer
Search
phamon
April 26, 2015
Programming
0
95
Ruby on Rails Lazy Developer
Ruby on Rails
www.symbolet.com
phamon
April 26, 2015
Tweet
Share
Other Decks in Programming
See All in Programming
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.8k
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
170
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
高速開発のためのコード整理術
sutetotanuki
1
390
今から始めるClaude Code超入門
448jp
7
8.4k
CSC307 Lecture 04
javiergs
PRO
0
660
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
170
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
180
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
180
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
2.4k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
500
Fragmented Architectures
denyspoltorak
0
150
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Leo the Paperboy
mayatellez
4
1.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
88
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
49k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
320
How to make the Groovebox
asonas
2
1.9k
Typedesign – Prime Four
hannesfritz
42
2.9k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
The Invisible Side of Design
smashingmag
302
51k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Transcript
Lazy developer www.symbolet.com Symbolet
สิ่งที่คิด www.symbolet.com 2
สิ่งที่ลูกค้ามอง www.symbolet.com 3
ความเป็นจริง อยากกลับบ้าน ทุกครั้งที่แก้ต้อง restart server reproduce บั๊กไม่ได้เจอ แต่บน production ไม่ได้กลับบ้านมา
2 วัน โปรเจคเลย deadline มาแล้ว 1 เดือน www.symbolet.com 4
มันเกิดอะไรขึ้นกับการพัฒนา Software บ้านเรา ? www.symbolet.com 5
lazy developer www.symbolet.com 6
lazy developer be productive www.symbolet.com 7
but.. How ? www.symbolet.com 8
1. less code 9
less code solve more problems 10
ธรรมชาติของ html html 11
html เปิด tags ปิด tags ย่อหน้า ตัวอักษร < > 12
ธรรมชาติของ html
html เปิด tags ปิด tags ย่อหน้า ตัวอักษร < > 13
ธรรมชาติของ html
html เปิด tags ปิด tags ย่อหน้า ตัวอักษร < > 14
ธรรมชาติของ html ความไม่สอดคล้องกันของ html และ css class=“navbar” -> .navbar id=“app” -> #app
html -> slim lightweight template engine 15 www.symbolet.com
16 www.symbolet.com
js -> little language that compile to javascript 17 www.symbolet.com
http://coffeescript.org 18 www.symbolet.com
ถ้าต้องการ reuse font และ css หล่ะ ? css 19 www.symbolet.com
css -> ใช้ Sass เพื่อเพิ่มความสามารถให้ css 20 www.symbolet.com
21 www.symbolet.com
22 www.symbolet.com
hello world java php ruby 23 www.symbolet.com
find element in array java php ruby 24 www.symbolet.com
find element in array java 25 www.symbolet.com
find element in array java php 26 www.symbolet.com
find element in array java php ruby 27 www.symbolet.com
“I hope to see Ruby help every programmer in the
world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language.” หลักปรัชญา Ruby –Matz, the creator of Ruby 28 www.symbolet.com
less code solve more problems 29 www.symbolet.com
less code solve more problems less mistakes 30 www.symbolet.com
less code solve more problems less mistakes fast development 31
www.symbolet.com
don’t build from scratch 32 www.symbolet.com
don’t build from scratch framework 33 www.symbolet.com
Rails mvc / db-migrate / scaffold / i18n / log
34 www.symbolet.com
Ruby Stack slim + sass + coffeescript nginx / apache
unicorn / passenger memcached / redis postgresql / mysql / .. rails / sinatra / lotus 35 www.symbolet.com
2. use available library 36 www.symbolet.com
Dependency management maven / gradle bundler composer bower npm cocoapod
37 www.symbolet.com
Library = Gem 38 www.symbolet.com
Gem supermarket https://www.ruby-toolbox.com/categories/by_group 39 www.symbolet.com
Gem supermarket https://www.ruby-toolbox.com/categories/rails_authentication 40 www.symbolet.com
Devise - Authentication Features 41 www.symbolet.com
https://github.com/plataformatec/devise Devise - Authentication 42 www.symbolet.com
Devise - Authentication 43 www.symbolet.com
Devise - Authentication 44 www.symbolet.com
Library networking Device 45 www.symbolet.com
Library networking Cancancan Device OmniAuth (Authorization) (OAuth) Active Admin (User
Management) 46 www.symbolet.com
Ruby supermarket •Tagging •Background Job •Json parser •Blog engine •CRM
•Shopping cart •Cache engine •PDF Generate •Payment •Server monitor •CDN •File upload •A/B Testing •more more … 47 www.symbolet.com
3. use available tools 48 www.symbolet.com
Query N+1 Problem Places Categories m 1 49 www.symbolet.com
Query N+1 Problem @places = Place.all place.title place.category.name place.latitude place.longitude
50 www.symbolet.com
Query N+1 Problem @places = Place.all 1 n 4 queries
!! 51 www.symbolet.com
Solve Query N+1 Problem @places = Place.includes(:place_category) 1 2 tuning
query -> 2 queries 52 www.symbolet.com
Solve Query N+1 Problem Bullet 53 www.symbolet.com
Solve Query N+1 Problem auto detect & how to fix
line of code 54 www.symbolet.com
https://github.com/bbatsov/ruby-style-guide Ruby Guide Style 55 www.symbolet.com
Ruby Guide Style 56 www.symbolet.com
Ruby Guide Style 57 www.symbolet.com
https://github.com/bbatsov/rubocop Ruby Guide Style 58 www.symbolet.com
Ruby Guide Style 59 www.symbolet.com
Ruby Guide Style 60 www.symbolet.com
4. Automate 61 www.symbolet.com
–Mike Co-founder Instagram “Replace all components of a car while
driving it at 100 mph” 62 www.symbolet.com
Chef - Provision 63 www.symbolet.com
Vagrant - Test config 64 www.symbolet.com
Docker 65 www.symbolet.com
Mina - Deploy 1. ssh 2. git pull master 3.
build 4. create new version 5. restart 66 www.symbolet.com
5. Invest 67 www.symbolet.com
68 www.symbolet.com www.symbolet.com ลงทุนกับความรู้
Summary 1. less code 2. use available library 3. use
available tools 4. automate 5. Invest 69 www.symbolet.com
lazy developer be productive Focus More 70 www.symbolet.com