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
93
Code Review of Senior Python Engineers
keitheis
0
150
成功地測試失敗 Fail tests successfully - Talk Slides - PyCon Taiwan 2021
keitheis
0
240
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
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
12
3.5k
UI State設計とテスト方針
rmakiyama
2
420
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
550
KubeCon NA 2024 Recap: How to Move from Ingress to Gateway API with Minimal Hassle
ysakotch
0
200
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
380
.NET 9 のパフォーマンス改善
nenonaninu
0
710
生成AIのガバナンスの全体像と現実解
fnifni
1
180
コンテナセキュリティのためのLandlock入門
nullpo_head
2
320
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
120
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
210
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
440
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
222
9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
How GitHub (no longer) Works
holman
311
140k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
2
170
RailsConf 2023
tenderlove
29
940
Building Your Own Lightsaber
phodgson
103
6.1k
The Language of Interfaces
destraynor
154
24k
The Cost Of JavaScript in 2023
addyosmani
45
7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Gamification - CAS2011
davidbonilla
80
5.1k
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