Enviar búsqueda
Cargar
MobaSiF::Template Introduction
•
4 recomendaciones
•
1,596 vistas
Tadashi Matsuda
Seguir
MobaSiF::Template introduction on YAPC::Asia 2009 at 2009.09.10
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 52
Descargar ahora
Descargar para leer sin conexión
Recomendados
Sql php-vibrant course-mumbai(1)
Sql php-vibrant course-mumbai(1)
vibrantuser
PHP Output Buffering
PHP Output Buffering
Dave Ross
How PHP Works ?
How PHP Works ?
Ravi Raj
1. MySql plugins
1. MySql plugins
Roland Bouman
Symfony ile Gelişmiş API Mimarisi
Symfony ile Gelişmiş API Mimarisi
Behram ÇELEN
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
rivierarb
A History of PHP
A History of PHP
Xinchen Hui
PHP language presentation
PHP language presentation
Annujj Agrawaal
Recomendados
Sql php-vibrant course-mumbai(1)
Sql php-vibrant course-mumbai(1)
vibrantuser
PHP Output Buffering
PHP Output Buffering
Dave Ross
How PHP Works ?
How PHP Works ?
Ravi Raj
1. MySql plugins
1. MySql plugins
Roland Bouman
Symfony ile Gelişmiş API Mimarisi
Symfony ile Gelişmiş API Mimarisi
Behram ÇELEN
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
rivierarb
A History of PHP
A History of PHP
Xinchen Hui
PHP language presentation
PHP language presentation
Annujj Agrawaal
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
Uilian Ries
Hands-on with the Symfony2 Framework
Hands-on with the Symfony2 Framework
Ryan Weaver
All about Erubis (English)
All about Erubis (English)
kwatch
Build Systems with autoconf, automake and libtool [updated]
Build Systems with autoconf, automake and libtool [updated]
Benny Siegert
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)
jeresig
php 1
php 1
tumetr1
Living With Legacy Code
Living With Legacy Code
Rowan Merewood
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
Fabien Potencier
HPC_MPI_CICID_OA.pptx
HPC_MPI_CICID_OA.pptx
ObjectAutomation2
Symfony2 Introduction Presentation
Symfony2 Introduction Presentation
Nerd Tzanetopoulos
The why and how of moving to php 5.4
The why and how of moving to php 5.4
Wim Godden
Merb
Merb
Yehuda Katz
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
Sam Keen
PHP
PHP
sometech
Bfg Ploneconf Oct2008
Bfg Ploneconf Oct2008
Jeffrey Clark
Node.js basics
Node.js basics
Ben Lin
The Skinny on Slim
The Skinny on Slim
Eric Mulligan
Introduction to Xamarin.Forms
Introduction to Xamarin.Forms
Brad Pillow
From CakePHP to Laravel
From CakePHP to Laravel
Jason McCreary
Tuning web performance
Tuning web performance
George Ang
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
MadyBayot
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
Más contenido relacionado
Similar a MobaSiF::Template Introduction
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
Uilian Ries
Hands-on with the Symfony2 Framework
Hands-on with the Symfony2 Framework
Ryan Weaver
All about Erubis (English)
All about Erubis (English)
kwatch
Build Systems with autoconf, automake and libtool [updated]
Build Systems with autoconf, automake and libtool [updated]
Benny Siegert
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)
jeresig
php 1
php 1
tumetr1
Living With Legacy Code
Living With Legacy Code
Rowan Merewood
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
Fabien Potencier
HPC_MPI_CICID_OA.pptx
HPC_MPI_CICID_OA.pptx
ObjectAutomation2
Symfony2 Introduction Presentation
Symfony2 Introduction Presentation
Nerd Tzanetopoulos
The why and how of moving to php 5.4
The why and how of moving to php 5.4
Wim Godden
Merb
Merb
Yehuda Katz
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
Sam Keen
PHP
PHP
sometech
Bfg Ploneconf Oct2008
Bfg Ploneconf Oct2008
Jeffrey Clark
Node.js basics
Node.js basics
Ben Lin
The Skinny on Slim
The Skinny on Slim
Eric Mulligan
Introduction to Xamarin.Forms
Introduction to Xamarin.Forms
Brad Pillow
From CakePHP to Laravel
From CakePHP to Laravel
Jason McCreary
Tuning web performance
Tuning web performance
George Ang
Similar a MobaSiF::Template Introduction
(20)
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
Hands-on with the Symfony2 Framework
Hands-on with the Symfony2 Framework
All about Erubis (English)
All about Erubis (English)
Build Systems with autoconf, automake and libtool [updated]
Build Systems with autoconf, automake and libtool [updated]
New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)
php 1
php 1
Living With Legacy Code
Living With Legacy Code
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
HPC_MPI_CICID_OA.pptx
HPC_MPI_CICID_OA.pptx
Symfony2 Introduction Presentation
Symfony2 Introduction Presentation
The why and how of moving to php 5.4
The why and how of moving to php 5.4
Merb
Merb
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
PHP
PHP
Bfg Ploneconf Oct2008
Bfg Ploneconf Oct2008
Node.js basics
Node.js basics
The Skinny on Slim
The Skinny on Slim
Introduction to Xamarin.Forms
Introduction to Xamarin.Forms
From CakePHP to Laravel
From CakePHP to Laravel
Tuning web performance
Tuning web performance
Último
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
MadyBayot
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Jeffrey Haguewood
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Zilliz
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
apidays
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Angeliki Cooney
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Edi Saputra
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Orbitshub
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Dropbox
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
Remote DBA Services
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
Rustici Software
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
danishmna97
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Orbitshub
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Zilliz
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
WSO2
Último
(20)
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
MobaSiF::Template Introduction
1.
MobaSiF::Template DeNA -
Tadashi Matsuda - bobpp bobpp+yapc@bobpp.jp YAPC::Asia 2009 - 2009.09.10
2.
• • MobaSiF::Template
/ • • •
3.
•
( ) • bobpp ( ) • http://bobpp.jp/ •( ) • (http://mbok.jp)
4.
YAPC! • YAPC • •
5.
Check this! •Twitter: BoBpp
•
6.
MobaSiF
7.
Moba* Simple Framework
8.
Moba* •
• 2003 • •5 PV/day • and more...
9.
Moba* Simple Framework
10.
Mobile Simple Framework
11.
12.
YAPC::Asia 2008
13.
MobaSiF::Template
14.
MTemplate • MobaSiF::Template • MobaSiF •
15.
MobaSiF::Template •
(MobaSiF::*) • github • CPAN • •
16.
•
• MobaSiF::Template • • MobaSiF::Template::Compiler •
17.
18.
HTML Template (*.html)
19.
HTML
Template (*.html) MobaSiF::Template::PreCompiler MobaSiF:::Template::Compiler precompile compile Include Template (*.txt/html)
20.
HTML
Compiled Template Template (*.html) (*.bin) MobaSiF::Template::PreCompiler MobaSiF:::Template::Compiler precompile compile Include Template (*.txt/html)
21.
HTML
Compiled Template Template (*.html) (*.bin) MobaSiF::Template::PreCompiler MobaSiF:::Template::Compiler MobaSiF::Template precompile compile insert / render Include Output Template (*.html) (*.txt/html)
22.
HTML
HTML Compiled HTML HTML Template Template Template Template Template (*.html) (*.html) (*.bin) (*.html) (*.html) MobaSiF::Template::PreCompiler MobaSiF:::Template::Compiler MobaSiF::Template precompile compile insert / render Include Output Template Compile Command (*.html) (*.txt/html)
23.
•
• • • • • URL Encode •
24.
$ cpan cpan> install
MobaSiF::Template
25.
<
: > <!-- Escape --> $=h:escape_string$ <!-- Escape (bypass) --> $=b:not_escape_data$ <!-- URL Encode --> $=e:url_encode_string$
26.
<
: > $ if (val > 10) { $ val 10 $ } elsif (val > 5) { $ val 5 $ } else { $ val 5 $}$
27.
<
: > $ loop (list) { $ $=h:id$ / $=h:key$ / $=h:value$ $}$
28.
<
> use MobaSiF::Template::Compiler; MobaSiF::Template::Compiler::compile( “/path/to/template_file.html”, “/path/to/compiled_binary_file.bin” );
29.
<
> use MobaSiF::Template; my $param = +{ hoge => 1, fuga => [ +{ id => 1, value => ‘A’ }, +{ id => 2, value => ‘B’ }, ] }; print MobaSiF::Template::insert( “/path/to/compiled_binary_file.bin”, $param);
30.
use MobaSiF::Template; my $param
= +{...}; $MobaSiF::Template::DEVELOP = 1; print MobaSiF::Template::render( “/path/to/template_file.html”, “/path/to/compiled_binary_file.bin”, $param);
31.
use MobaSiF::Template;
0 my $param = +{...}; $MobaSiF::Template::DEVELOP = 1; print MobaSiF::Template::render( “/path/to/template_file.html”, “/path/to/compiled_binary_file.bin”, $param);
32.
use MobaSiF::Template;
1 down 0 my $param = +{...}; $MobaSiF::Template::DEVELOP = 1; print MobaSiF::Template::render( “/path/to/template_file.html”, “/path/to/compiled_binary_file.bin”, $param);
33.
34.
35.
Benchmark! <Rivals> • Template
Toolkit • Tenjin • HTML::Template::Pro • MobaSiF::Template
36.
Benchmark •
/ • 10,000 qps
37.
Machine • MacBook • OS
X 10.5 Leopard • perl v.5.8.9 • 2.4GHz Core2 Duo • 4GB Memory
38.
Result.
Benchmark#1
39.
Result.
Benchmark#1 0 5000.00 10000.00 15000.00 20000.00 Template Toolkit 585.8 Tenjin 2421.3 HTML::Template::Pro 6451.6 MobaSiF::Template 17543.9
40.
41.
binary template /
XS
42.
binary template •
(option)... • • XS
43.
XS • mmap •
44.
45.
NULL
46.
PLAIN REPLACE
IF/ELSE LOOP / etc. NULL
47.
• •
View(Template) =
48.
• Pre-Compiler • Mobile
Pre-Compiler • compile files command • tests! •
49.
50.
• •
51.
CPAN / github •
http://search.cpan.org/~bobpp/MobaSiF- Template/ • http://github.com/bobpp/perl-MobaSiF- Template/
Descargar ahora