SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
What I Learned about
Mobile-First by Not Going
Mobile-First
Clark Everetts
Zend Technologies, Inc
2
What are We Going to Talk About, Anyway?
•Background
– Transitioning from Freelancer to full-time Zender
– Reducing Client Base (Target: 0)
– Interesting History
●
“What you want can't be done”
●
Left Me! (whew...)
●
Came Back?!
●
Baaaad Timing
– Mobile-development: no better time than the present
• Talk is NOT a detailed tutorial
– Run-through of the desktop site
– Mobile application progress report
– To-Dos
– My thoughts and few suggestions
3
Who am I?
•Clark Everetts
– Professional Services Consultant for Zend Technologies
– Onsite and Remote Consulting – Linux, IBM iSeries, Windows
●
Software Architecture Audits and Code Reviews
●
Performance Audits
●
Continuous Delivery Assessments
– Online / Onsite Training in PHP, ZF, Studio, Server, Certification, etc.
– SmartStarts: Training and Onsite Guided Development
•Past Life: Independent Consultant (2002 - 2012)
– Web Sites and Web Applications
– Contract Instructor for Zend
•Past, Past Life: Contractor for US Army and NASA (1990 - 2002)
– Interceptor Ground Control Software; Green Screen Db Applications
– Space Station: Real-time, Embedded Software; Science Platforms,
Life Support
4
Who are You?
●
Your role: Manager, developer, stakeholder/decision-maker?
● Size: Small to large companies; small to large dev teams
● Have you built one or more applications?
●
Building one now? How far along are you?
●
What challenges did you face / are you facing?
● What tools did you use?
●
What did you do before you started?
5
•Florist-FloristDirectory.com
– Verified database of independent florists in U.S.
– Referral Network for order fulfillment for sending
flowers
– Owner is 73-year young lady
•Business Model
– 15,000+ free listings with basic info
– “Standard” listings with more info
– “Deluxe” listings with even more info
•Public-facing site for searches, Admin Screens for
processing applications and making changes
Background : The Desktop Web Site
6
Let's take a look ...
The Desktop Web Site: Live
7
Quick Detour: First Install of Apigility Skeleton
$ composer create-project -sdev 
--repository-url="https://packages.zendframework.com/" 
zfcampus/zf-apigility-skeleton ./apigility-skeleton
Installing zfcampus/zf-apigility-skeleton (dev-master
1932c09119de36edb9eb986c2f9f921e54dc4238)
- Installing zfcampus/zf-apigility-skeleton (dev-master master)
Cloning master
Created project in ./apigility-skeleton
Loading composer repositories with package information
Installing dependencies (including require-dev)
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to
allocate 32 bytes) in
phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Rule.php on line 62
PHP Stack trace: ….
I need to investigate.
8
Apigility: First Install of Skeleton
Composer.phar contains:
// ...
$memoryLimit = trim(ini_get('memory_limit'));
// Increase memory_limit if it is lower than 512M
if ($memoryLimit != -1 && $memoryInBytes($memoryLimit) < 512 * 1024 * 1024) {
@ini_set('memory_limit', '512M');
}
unset($memoryInBytes, $memoryLimit);
// ...
Figure this out later.
Back to presentation...
9
•Create CCM Project in Studio (with built-in example code)
– Server Project (florists-ccm)
– Mobile Project (m.florists-ccm)
•Deploy Application to Zend Server
•Test the Example Project
– Test a RESTful Method Route
– Web Mobile Emulator
•Decisions
•To-dos, thoughts, suggestions
Cloud-Connected Mobile: Process Overview
10
Cloud-Connected Mobile: Test Web Svc Method
Server-side gateway.xml
11
Cloud-Connected Mobile: Test Mobile Interface
Mobile Project name
or index.html file
12
•Looked at web site code
– Incorporate ZF1 web site code into ZF2 CCM backend?
– Write REST controllers in ZF1 app and change mobile
front-end to point to them?
•Controllers: Admin, Search, User, Index, Error
•Models
– Db_Table: Florists, User, Roles
– Db_Table_Row: for Florists Db_Table
– Entitity: User
– Authentication Service
•Unit Tests
Scope out the Territory
13
•Improper MVC - Separation of Concerns
•Hardcoded Dependencies
•Models tightly coupled to database
•Unit Tests
– Too few, poor coverage
– One not even under version control
•The sound you hear is a mobile application development
effort screeching to a halt, as a refactoring effort begins.
•Let's look at the code now...
Noticed Some Problems
14
•Conduct an audit of your code
•Refactor to better coding practices
– Proper MVC separation
– Service Layer to Support API
– More Unit Tests with real code coverage
•Migrate Application to ZF2
•Now is the time to look at Apigility
– Apigility “0.0.1” was Zend Server Gateway
To-Dos, Thoughts, and Suggestions
Thank You!
Please give constructive feedback at
https://joind.in/9076
Email: clark.e@zend.com
https://github.com/clarkphp
Twitter: @clarkphp

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Extending ZF & Extending With ZF
Extending ZF & Extending With ZFExtending ZF & Extending With ZF
Extending ZF & Extending With ZF
 
Organizing Your PHP Projects (2010 ConFoo)
Organizing Your PHP Projects (2010 ConFoo)Organizing Your PHP Projects (2010 ConFoo)
Organizing Your PHP Projects (2010 ConFoo)
 
Developing better PHP projects
Developing better PHP projectsDeveloping better PHP projects
Developing better PHP projects
 
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsBP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
BP-10 Keeping Your Sanity – Rapid Development & Deployment Tools
 
Why Plone Will Die
Why Plone Will DieWhy Plone Will Die
Why Plone Will Die
 
Web Performance First Aid
Web Performance First AidWeb Performance First Aid
Web Performance First Aid
 
Enterprise PHP
Enterprise PHPEnterprise PHP
Enterprise PHP
 
Becoming A Php Ninja
Becoming A Php NinjaBecoming A Php Ninja
Becoming A Php Ninja
 
Mixing Plone and Django for explosive results
Mixing Plone and Django for explosive resultsMixing Plone and Django for explosive results
Mixing Plone and Django for explosive results
 
KYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlKYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under Control
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7
 
Intro To Puppet.Key
Intro To Puppet.KeyIntro To Puppet.Key
Intro To Puppet.Key
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
Testing Alfresco extensions
Testing Alfresco extensionsTesting Alfresco extensions
Testing Alfresco extensions
 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications Faster
 
Take your CFML Legacy Apps to Modernization
Take your CFML Legacy Apps to ModernizationTake your CFML Legacy Apps to Modernization
Take your CFML Legacy Apps to Modernization
 
Maven - Taming the Beast
Maven - Taming the BeastMaven - Taming the Beast
Maven - Taming the Beast
 
Joe Damato
Joe DamatoJoe Damato
Joe Damato
 
Releasing High Quality Packages - Longhorn PHP 2021
Releasing High Quality Packages - Longhorn PHP 2021Releasing High Quality Packages - Longhorn PHP 2021
Releasing High Quality Packages - Longhorn PHP 2021
 
Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020
Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020
Manage your Windows Infrastructure with Puppet Bolt - August 26 - 2020
 

Semelhante a Zend con what-i-learned-about-mobile-first

Architecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering CultureArchitecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering Culture
ifnu bima
 
Developer Conference 1.5 - Making the Move to Visual COBOL (Transvive)
Developer Conference 1.5 - Making the Move to Visual COBOL (Transvive)Developer Conference 1.5 - Making the Move to Visual COBOL (Transvive)
Developer Conference 1.5 - Making the Move to Visual COBOL (Transvive)
Micro Focus
 
Mobile and IBM Worklight Best Practices
Mobile and IBM Worklight Best PracticesMobile and IBM Worklight Best Practices
Mobile and IBM Worklight Best Practices
Andrew Ferrier
 

Semelhante a Zend con what-i-learned-about-mobile-first (20)

How to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishHow to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - English
 
Epita pres
Epita presEpita pres
Epita pres
 
Architecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering CultureArchitecting for Huper Growth and Great Engineering Culture
Architecting for Huper Growth and Great Engineering Culture
 
Architecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering CultureArchitecting for Hyper Growth and Great Engineering Culture
Architecting for Hyper Growth and Great Engineering Culture
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Developer Conference 1.5 - Making the Move to Visual COBOL (Transvive)
Developer Conference 1.5 - Making the Move to Visual COBOL (Transvive)Developer Conference 1.5 - Making the Move to Visual COBOL (Transvive)
Developer Conference 1.5 - Making the Move to Visual COBOL (Transvive)
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for Change
 
Good bye Massive View Controller!
Good bye Massive View Controller!Good bye Massive View Controller!
Good bye Massive View Controller!
 
Mobile and IBM Worklight Best Practices
Mobile and IBM Worklight Best PracticesMobile and IBM Worklight Best Practices
Mobile and IBM Worklight Best Practices
 
Benchmarking Web Application Scanners for YOUR Organization
Benchmarking Web Application Scanners for YOUR OrganizationBenchmarking Web Application Scanners for YOUR Organization
Benchmarking Web Application Scanners for YOUR Organization
 
2015 Mastering SAP Tech - Enterprise Mobility - Testing Lessons Learned
2015 Mastering SAP Tech - Enterprise Mobility - Testing Lessons Learned2015 Mastering SAP Tech - Enterprise Mobility - Testing Lessons Learned
2015 Mastering SAP Tech - Enterprise Mobility - Testing Lessons Learned
 
hadoop_bigdata
hadoop_bigdatahadoop_bigdata
hadoop_bigdata
 
Bring Your Legacy Applications to the Mobile World - DOAG 2014
Bring Your Legacy Applications to the Mobile World - DOAG 2014Bring Your Legacy Applications to the Mobile World - DOAG 2014
Bring Your Legacy Applications to the Mobile World - DOAG 2014
 
Alaguraja.Ramasamy
Alaguraja.RamasamyAlaguraja.Ramasamy
Alaguraja.Ramasamy
 
Webview: The fifth element
Webview: The fifth elementWebview: The fifth element
Webview: The fifth element
 
"WebView, the fifth element" por @fernando_cejas
"WebView, the fifth element" por @fernando_cejas"WebView, the fifth element" por @fernando_cejas
"WebView, the fifth element" por @fernando_cejas
 
Trends in front end engineering_handouts
Trends in front end engineering_handoutsTrends in front end engineering_handouts
Trends in front end engineering_handouts
 
How Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.comHow Open Source Embiggens Salesforce.com
How Open Source Embiggens Salesforce.com
 
Nand_CV
Nand_CV Nand_CV
Nand_CV
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

Zend con what-i-learned-about-mobile-first

  • 1. What I Learned about Mobile-First by Not Going Mobile-First Clark Everetts Zend Technologies, Inc
  • 2. 2 What are We Going to Talk About, Anyway? •Background – Transitioning from Freelancer to full-time Zender – Reducing Client Base (Target: 0) – Interesting History ● “What you want can't be done” ● Left Me! (whew...) ● Came Back?! ● Baaaad Timing – Mobile-development: no better time than the present • Talk is NOT a detailed tutorial – Run-through of the desktop site – Mobile application progress report – To-Dos – My thoughts and few suggestions
  • 3. 3 Who am I? •Clark Everetts – Professional Services Consultant for Zend Technologies – Onsite and Remote Consulting – Linux, IBM iSeries, Windows ● Software Architecture Audits and Code Reviews ● Performance Audits ● Continuous Delivery Assessments – Online / Onsite Training in PHP, ZF, Studio, Server, Certification, etc. – SmartStarts: Training and Onsite Guided Development •Past Life: Independent Consultant (2002 - 2012) – Web Sites and Web Applications – Contract Instructor for Zend •Past, Past Life: Contractor for US Army and NASA (1990 - 2002) – Interceptor Ground Control Software; Green Screen Db Applications – Space Station: Real-time, Embedded Software; Science Platforms, Life Support
  • 4. 4 Who are You? ● Your role: Manager, developer, stakeholder/decision-maker? ● Size: Small to large companies; small to large dev teams ● Have you built one or more applications? ● Building one now? How far along are you? ● What challenges did you face / are you facing? ● What tools did you use? ● What did you do before you started?
  • 5. 5 •Florist-FloristDirectory.com – Verified database of independent florists in U.S. – Referral Network for order fulfillment for sending flowers – Owner is 73-year young lady •Business Model – 15,000+ free listings with basic info – “Standard” listings with more info – “Deluxe” listings with even more info •Public-facing site for searches, Admin Screens for processing applications and making changes Background : The Desktop Web Site
  • 6. 6 Let's take a look ... The Desktop Web Site: Live
  • 7. 7 Quick Detour: First Install of Apigility Skeleton $ composer create-project -sdev --repository-url="https://packages.zendframework.com/" zfcampus/zf-apigility-skeleton ./apigility-skeleton Installing zfcampus/zf-apigility-skeleton (dev-master 1932c09119de36edb9eb986c2f9f921e54dc4238) - Installing zfcampus/zf-apigility-skeleton (dev-master master) Cloning master Created project in ./apigility-skeleton Loading composer repositories with package information Installing dependencies (including require-dev) PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 32 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Rule.php on line 62 PHP Stack trace: …. I need to investigate.
  • 8. 8 Apigility: First Install of Skeleton Composer.phar contains: // ... $memoryLimit = trim(ini_get('memory_limit')); // Increase memory_limit if it is lower than 512M if ($memoryLimit != -1 && $memoryInBytes($memoryLimit) < 512 * 1024 * 1024) { @ini_set('memory_limit', '512M'); } unset($memoryInBytes, $memoryLimit); // ... Figure this out later. Back to presentation...
  • 9. 9 •Create CCM Project in Studio (with built-in example code) – Server Project (florists-ccm) – Mobile Project (m.florists-ccm) •Deploy Application to Zend Server •Test the Example Project – Test a RESTful Method Route – Web Mobile Emulator •Decisions •To-dos, thoughts, suggestions Cloud-Connected Mobile: Process Overview
  • 10. 10 Cloud-Connected Mobile: Test Web Svc Method Server-side gateway.xml
  • 11. 11 Cloud-Connected Mobile: Test Mobile Interface Mobile Project name or index.html file
  • 12. 12 •Looked at web site code – Incorporate ZF1 web site code into ZF2 CCM backend? – Write REST controllers in ZF1 app and change mobile front-end to point to them? •Controllers: Admin, Search, User, Index, Error •Models – Db_Table: Florists, User, Roles – Db_Table_Row: for Florists Db_Table – Entitity: User – Authentication Service •Unit Tests Scope out the Territory
  • 13. 13 •Improper MVC - Separation of Concerns •Hardcoded Dependencies •Models tightly coupled to database •Unit Tests – Too few, poor coverage – One not even under version control •The sound you hear is a mobile application development effort screeching to a halt, as a refactoring effort begins. •Let's look at the code now... Noticed Some Problems
  • 14. 14 •Conduct an audit of your code •Refactor to better coding practices – Proper MVC separation – Service Layer to Support API – More Unit Tests with real code coverage •Migrate Application to ZF2 •Now is the time to look at Apigility – Apigility “0.0.1” was Zend Server Gateway To-Dos, Thoughts, and Suggestions
  • 15. Thank You! Please give constructive feedback at https://joind.in/9076 Email: clark.e@zend.com https://github.com/clarkphp Twitter: @clarkphp