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.7k
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
200
Code Review of Senior Python Engineers
keitheis
0
210
成功地測試失敗 Fail tests successfully - Talk Slides - PyCon Taiwan 2021
keitheis
0
270
2020 給新手開發者學 Python 的建議與書單
keitheis
0
340
Django Cookiecutter short walk
keitheis
0
190
Reactive Programming in Python
keitheis
6
1.8k
迅速網站前端開發用 Python
keitheis
5
540
How PyCon APAC 2014 Web is built
keitheis
1
200
CKAN Introduction with zh_TW
keitheis
0
280
Other Decks in Technology
See All in Technology
生成AI活用のROI、どう測る? DMM.com 開発責任者から学ぶ「AI効果検証のノウハウ」 / ROI of AI
i35_267
4
150
生成AIによるソフトウェア開発の収束地点 - Hack Fes 2025
vaaaaanquish
35
16k
生成AI利用プログラミング:誰でもプログラムが書けると 世の中どうなる?/opencampus202508
okana2ki
0
180
OpenAPIから画面生成に挑戦した話
koinunopochi
0
110
JOAI発表資料 @ 関東kaggler会
joai_committee
1
180
AIが住民向けコンシェルジュに?Amazon Connectと生成AIで実現する自治体AIエージェント!
yuyeah
0
240
形式手法特論:位相空間としての並行プログラミング #kernelvm / Kernel VM Study Tokyo 18th
ytaka23
3
1.6k
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
6.4k
夏休みWebアプリパフォーマンス相談室/web-app-performance-on-radio
hachi_eiji
1
290
あなたの知らない OneDrive
murachiakira
0
210
マイクロモビリティシェアサービスを支える プラットフォームアーキテクチャ
grimoh
1
150
Exadata Database Service on Dedicated Infrastructure セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
1
350
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Into the Great Unknown - MozCon
thekraken
40
2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Statistics for Hackers
jakevdp
799
220k
Designing for Performance
lara
610
69k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
Producing Creativity
orderedlist
PRO
347
40k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Adopting Sorbet at Scale
ufuk
77
9.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
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