Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Ruby on Rails Lazy Developer
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
phamon
April 26, 2015
Programming
98
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ruby on Rails Lazy Developer
Ruby on Rails
www.symbolet.com
phamon
April 26, 2015
Other Decks in Programming
See All in Programming
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.1k
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
32k
最近”作らせてる” ローカルAIアプリの話
akit37
0
470
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
170
R8 の設定見直しでアプリサイズ削減
andpad
0
220
ActionController meets Protocol Buffers
sorah
0
520
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
Kotlinの15年とServer-Side Kotlin
n_takehata
1
150
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
The Cult of Friendly URLs
andyhume
79
7k
Chasing Engaging Ingredients in Design
codingconduct
0
360
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Paper Plane
katiecoart
PRO
5
54k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
710
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
Marketing to machines
jonoalderson
1
5.9k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
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