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
Agile web dev with Pyhon
Search
Keith Yang
January 13, 2013
Technology
13
3.6k
Agile web dev with Pyhon
A presentation for WebConf Taiwan 2013
Keith Yang
January 13, 2013
Tweet
Share
More Decks by Keith Yang
See All by Keith Yang
以 Python 應用來推進餐飲雲端 POS 系統:一個後端開發者的實戰分享
keitheis
0
70
Code Review of Senior Python Engineers
keitheis
0
140
成功地測試失敗 Fail tests successfully - Talk Slides - PyCon Taiwan 2021
keitheis
0
230
2020 給新手開發者學 Python 的建議與書單
keitheis
0
320
Django Cookiecutter short walk
keitheis
0
160
Reactive Programming in Python
keitheis
6
1.7k
迅速網站前端開發用 Python
keitheis
5
520
How PyCon APAC 2014 Web is built
keitheis
1
180
CKAN Introduction with zh_TW
keitheis
0
270
Other Decks in Technology
See All in Technology
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
380
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
170
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
990
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
Lambdaと地方とコミュニティ
miu_crescent
2
370
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
510
複雑なState管理からの脱却
sansantech
PRO
1
140
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
Engineer Career Talk
lycorp_recruit_jp
0
130
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
0
110
Featured
See All Featured
A designer walks into a library…
pauljervisheath
203
24k
Gamification - CAS2011
davidbonilla
80
5k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Become a Pro
speakerdeck
PRO
25
5k
Transcript
Agile web dev with Python a presentation by Keith Yang
for WebConf Taiwan 2013 @keitheis http://quest.keitheis.org/
WebConf.TW 2013 How to learn Python from zero to web
development? A question on programmers.stackexchange.com
WebConf.TW 2013 How to learn Python from zero to web
development? A question on programmers.stackexchange.com
WebConf.TW 2013 How to learn Python from zero to web
development? A question on programmers.stackexchange.com Just go over 14 tutorials.
WebConf.TW 2013 THAT simple, Dear.
WebConf.TW 2013 T^T simple, Tear.
WebConf.TW 2013 T^T simple, Tear. (括號:哭哭)
WebConf.TW 2013 Any one who likes Ruby or PHP ?
WebConf.TW 2013 Hold on
WebConf.TW 2013 It’s not that easier for any_language in web_development
WebConf.TW 2013 Then, how can we make it better?
WebConf.TW 2013 Good is meant to be chosen that’s why
we’re here.
WebConf.TW 2013 Choosing good... • Language • Framework • Library
• Application • Methodology • Architecture • Team • Organization
WebConf.TW 2013 >>> assert True or False We’re interested: Agile
Web Python
WebConf.TW 2013 >>> assert True or False We’re interested: Agile
Web Python Taiwan
WebConf.TW 2013 >>> assert True and False Traceback (most recent
call last): File "<stdin>", line 1, in <module> AssertionError Traceback (most recent call last): File "<stdin>", line 1, in <module> AssertionError
WebConf.TW 2013 >>> assert True and False Traceback (most recent
call last): File "<stdin>", line 1, in <module> AssertionError Traceback (most recent call last): File "<stdin>", line 1, in <module> AssertionError raise Exception quickly.
WebConf.TW 2013 Exception You can choose not to raise it
now, you will be !ne except it may come to visit you often, sometimes secretly.
WebConf.TW 2013 Keith Yang architect.py at biideal yet another di"erent
e-commerce provider Taipei.py organizer PyCon Taiwan sta"
WebConf.TW 2013 Keith Yang architect.py at biideal yet another di"erent
e-commerce provider Taipei.py organizer PyCon Taiwan sta" 2012 2013 ...
WebConf.TW 2013 Monthly meeting Python user group in Taipei Taipei.py
WebConf.TW 2013 We’re using Python And not just us. Python
has been popular in parts of the startups
WebConf.TW 2013 We’re using Python And not just us. Python
has been popular in parts of the startups Instagram, FriendFeed, ... how Facebook [like] it
WebConf.TW 2013 Looking for good
WebConf.TW 2013 Looking for good
WebConf.TW 2013 Looking for good Coder Dev Ops
WebConf.TW 2013 The best agile toolkit for Python web dev?
WebConf.TW 2013 Python itself. Yeah, you know the secret...
WebConf.TW 2013 Python itself. Yeah, you know the secret...
WebConf.TW 2013 “Nobody got !red for choosing Python”
WebConf.TW 2013 “Nobody got !red for choosing Python” not me,
not yet
WebConf.TW 2013 Python is good by people who is using
it
WebConf.TW 2013 Python is good by people who is using
it be careful with magic project that supports injection of apps, plugins, extensions
WebConf.TW 2013 “Simple, Stupid Language”
WebConf.TW 2013 “Simple, Stupid Language” Not much surprise Not much
magic No all day debug of $%@!? variables
WebConf.TW 2013 It practices elegance Rethink code in hands. Just
do it
WebConf.TW 2013 It practices elegance Rethink code in hands. Just
do it better.
WebConf.TW 2013 Web Toolkits Most popular one v.s. My opinionated
one v.s. Alternatives
WebConf.TW 2013 Web Frameworks of Python ... lots • Django
• Pyramid • Flask • Tornado • Web2py, Turbogears, bottle.py, ...
WebConf.TW 2013 Web Frameworks of Python ... lots • Django
• Pyramid • Flask • Tornado • Web2py, Turbogears, bottle.py, ... ALL AGILE!
WebConf.TW 2013 Web Frameworks of Python ... lots • Django
• Pyramid • Flask • Tornado • Web2py, Turbogears, bottle.py, ... ALL AGILE! Ready for RESTful
WebConf.TW 2013 As long as you know PEP 8 or
The Hitchhiker’s Guide to Python!
WebConf.TW 2013 As long as you know PEP 8 or
The Hitchhiker’s Guide to Python! Good style to follow
WebConf.TW 2013 Code Indention from the very beginning. Seems that
Co"eeScript loves it.
WebConf.TW 2013 It’s important You can make choice between several
well developed choices. Not just ONE there.
WebConf.TW 2013 How to pick a web framework from “Just
pick a good one.” to “I’ve compared EVERYTHING.”
WebConf.TW 2013 How to pick a web framework Goal Scale
Resources
WebConf.TW 2013 How to pick a web framework Goal: Blog,
Wiki, EC Platform Scale: Personal, Studio, Company, Enterprise Resources: Schedule, Support
WebConf.TW 2013 How to pick a web framework Micro: bottle.py
Mini: Flask by Armin Ronacher by Marcel Hellkamp
WebConf.TW 2013 How to pick a web framework Micro: bottle.py
Mini: Flask Middle: Django, Pyramid, web2py by Armin Ronacher by Marcel Hellkamp
WebConf.TW 2013 How to pick a web framework Micro: bottle.py
Mini: Flask Middle: Django, Pyramid, web2py Other: you’ll know what you want. by Armin Ronacher by Marcel Hellkamp
WebConf.TW 2013 What Makes Pyramid Unique Single-!le applications Decorator-based con!g
URL generation Debug Toolbar Add-ons Class-based and function-based views Asset speci!cations Extensible templating Event system No any “mutable globals” Transaction management
WebConf.TW 2013 What Makes Pyramid Unique Single-!le applications Decorator-based con!g
URL generation Debug Toolbar Add-ons Class-based and function-based views Asset speci!cations Extensible templating Event system No any “mutable globals” Transaction management Lots more!
WebConf.TW 2013 How to setup environment virtualenv + pip Search:
“keitheis pip” for my tutorial
WebConf.TW 2013 Documentation by Georg Brandl.
WebConf.TW 2013
WebConf.TW 2013 Object-Relational Mapping •SQLAlchemy unless you’re using Django ORM
or web2py DAL • You might also be interested in: MongoKit structured schema and validation layer
WebConf.TW 2013 Template •Mako or Jinja2 unless you’re using Django
Template • You might also be interested in: Plim “a Python port of Ruby’s Slim template language built on top of the Mako Templates”
WebConf.TW 2013 Manage Web Assets “webassets - Asset management for
Python” • with Django • with Flask • with Pyramid • other or no framework
WebConf.TW 2013 Do it later Celery asynchronous task queue/job queue
based on distributed message passing
WebConf.TW 2013 Testing •Nosetests (Django-nose?) • You might also be
interested in: pytest more powerful, detail, #exible and complex
WebConf.TW 2013 Coding tool •Sublime Text 2 powered by Python
•PyDev more powerful, detail, #exible and complex • Lots... Emacs, Vim, ...
WebConf.TW 2013 Coding tool •Sublime Text 2 powered by Python
•PyDev more powerful, detail, #exible and complex • Lots... Emacs, Vim, ...
WebConf.TW 2013 Deployment •Fabric + cuisine Server(s) administration in Python
• You might also be interested in: Plumbum di"erent style... # sudo[ls["-l", "-a"]] by Christian Vest Hansen and Jeffrey E. Forcier. by Sebastien Pierre by Tomer Filiba
WebConf.TW 2013 Fabric + cuisine def restart_service(service_name, time_interval=1): stop_service(service_name) time.sleep(time_interval)
# Avoid time attack start_service(service_name) def stop_service(service_name): return sudo( 'service {service_name} stop'.format( service_name=service_name)) def start_service(service_name): return sudo( 'service {service_name} start'.format( service_name=service_name))
WebConf.TW 2013 Process Management •Supervisor monitor and control a number
of processes on UNIX-like operating systems. • You might also be interested in: Circus.io process & socket manager. by Agendaless by Mozilla
WebConf.TW 2013 Powerful Data Computing If you’re going to have
numbers, you won’t hope to learn one more language for statistic and analysis.
WebConf.TW 2013 Python User Group in Taiwan Communities: PyHUG #
Taipei.py #
WebConf.TW 2013 Python User Group in Taiwan Communities: PyHUG #
Taipei.py # Yilan, Tainan, Kaohsiung, Kinmen, ... #
WebConf.TW 2013 PyCon Taiwan 2013 after PyCon.TW 2012 fantasy #
tw.pycon.org
WebConf.TW 2013 PyCon Taiwan 2013 after PyCon.TW 2012 fantasy #
Call for Proposals tw.pycon.org
WebConf.TW 2013 PyCon Taiwan 2013 after PyCon.TW 2012 fantasy #
Call for Proposals and Sponsorship tw.pycon.org
WebConf.TW 2013 Be agile but not scrumover#ow
WebConf.TW 2013 Choose good
WebConf.TW 2013 Some Fun Demo? % python Python 2.7.2 (default,
Jun 20 2012, 16:23:33) Type "help", "copyright", "credits" or "license" for more information. >>> import this
WebConf.TW 2013 Q & A