SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
Scaling the Cairngorms,[object Object],One Way Up the Mountain,[object Object],Test-Driven Flex and ArcGIS Server Development Utilizing Cairngorm 3,[object Object]
Your Sherpa,[object Object],Glenn Goodrich,[object Object],Enspiria Solutions,[object Object],ggoodrich@enspiria.com,[object Object],@ruprictGeek,[object Object]
Pragmatica,[object Object],Destination: Summit of Pragmatica,[object Object],Build good practices like TDD, IoC, DI and make a MOCKery of unmaintainable development.,[object Object]
What’s on our backs?,[object Object],Flex API,[object Object],Cairngorm 3,[object Object],FlexUnit 4,[object Object],Parsley,[object Object],ASMock,[object Object],Hamcrest,[object Object]
Who are you?,[object Object],Previous Climbing Experience,[object Object],  Flex Developer,[object Object],  Understand TDD, IoC/DI,[object Object],  Understand Mocking,[object Object],Bonus,[object Object],  Cairngorm experience,[object Object],  Other MVC experience,[object Object]
Base Camp: Cairngorm,[object Object],Micro-Architecture,[object Object],  Command Pattern,[object Object],IoC to Inject Models & Services,[object Object],Guidelines,[object Object],Tools,[object Object],Libraries,[object Object],We are here,[object Object],NOTHING like Cairngorm 2.,[object Object],(Really, like, they are TOTALLY different),[object Object]
Base Camp: Cairngorm Guidelines,[object Object],Application Layers,[object Object], Presentation,[object Object],  Application,[object Object], Domain,[object Object], Infrastructure,[object Object],Presume IoC, but don’t specify,[object Object],Loose Coupling,[object Object],NOTHING like Cairngorm 2.,[object Object],(Really, like, they are TOTALLY different),[object Object]
Base Camp: Cairngorm Guidelines,[object Object],Presentation,[object Object], View and View Models,[object Object],  MXML has minimal script,[object Object],  MXML binds to Model,[object Object],  MXML throws inline events,[object Object],  View Model throws business events,[object Object],Application,[object Object],  Events & Commands,[object Object],  Integrate to the world,[object Object], Changes Model,[object Object],Domain,[object Object], Business Objects,[object Object], Business Logic (Client-side),[object Object],Infrastructure,[object Object],  Services, Remote & Local (cache),[object Object]
Base Camp: Cairngorm Guidelines,[object Object],Cairngorm,[object Object],Messaging,[object Object],event,[object Object],event,[object Object],Infrastructure,[object Object],View => PM,[object Object],Command,[object Object],invokes,[object Object],returns,[object Object],updates,[object Object],binds to,[object Object],Model,[object Object]
Base Camp: Cairngorm Tools,[object Object],Leverage Existing Libraries,[object Object], FlexUnit4,[object Object],ASMock,[object Object],FlexPMD,[object Object], IDE Plugins,[object Object],Pretty sparse, right now.,[object Object],IDE Integration could be the only place Cairngorm 3 is like Caringorm 2,[object Object]
Base Camp: Cairngorm Libraries,[object Object],Integration,[object Object],Observer,[object Object],Validation,[object Object],Navigation,[object Object],Module,[object Object],Task ,[object Object],PopUp,[object Object],Think Patterns & Practices,[object Object],   Provide framework,[object Object],   Handle common needs,[object Object]
Base Camp: Cairngorm Libraries,[object Object],public class SelectStadiumsCommand,[object Object],{,[object Object],  [Inject],[object Object],  public varservice:IStadiumService;,[object Object],  [Inject],[object Object],  public varselectedStadiums:Stadiums;,[object Object],  [Command(selector="selectStadiums")],[object Object],  public function execute(event:SelectStadiumsEvent):AsyncToken{,[object Object],return service.getStadiumsForGeometry(event.geometry);,[object Object],  },[object Object],  [CommandResult(selector="selectStadiums")],[object Object],  public function handleStadiums(result:*,event:SelectStadiumsEvent):void{,[object Object],    //Transform result    ,[object Object],Integration ,[object Object],Command Pattern,[object Object], Global Error Handling,[object Object], Progress Information,[object Object]
Base Camp: Cairngorm Libraries,[object Object],Observer,[object Object],Data binding ,[object Object],  Don’t use this,[object Object],  (unless you have to),[object Object],<observer:Observe source="{model.selectedExtent.xmin}“ handler="updateExtent"/>,[object Object]
Base Camp: Cairngorm Libraries,[object Object],Validation,[object Object],Data Input,[object Object],  Domain Validation,[object Object],<validators:ValidatorGroup id="validatorGroup">,[object Object],    <validators:validators>,[object Object],        <mx:StringValidator id="firstnameValidator",[object Object],            source="{ firstnameInput }",[object Object],            required="true",[object Object],minLength="3",[object Object],            property="text",[object Object],triggerEvent="change"/>,[object Object],        <mx:StringValidator id="lastnameValidator",[object Object],            source="{ lastnameInput }",[object Object],            required="true",[object Object],minLength="2",[object Object],            property="text",[object Object],triggerEvent="change"/>,[object Object],    </validators:validators>,[object Object],</validators:ValidatorGroup>,[object Object]
Base Camp: Cairngorm Libraries,[object Object],Navigation,[object Object],Waypoints and Landmarks,[object Object],  Navigation Interceptors,[object Object],  Navigation State,[object Object],<mx:ViewStackxmlns:mx="http://www.adobe.com/2006/mxml" >	,[object Object],   <mx:Metadata>,[object Object],        [Waypoint],[object Object],   </mx:Metadata>,[object Object],    <dashboard:BoardViewautomationName="{ ContentDestination.DASHBOARD }“/>,[object Object],    <news:NewsView automationName="{ ContentDestination.NEWS }"/>,[object Object],    <messages:MessagesViewautomationName="{ ContentDestination.MESSAGES }"/>,[object Object],</mx:ViewStack>,[object Object],………………………………………………………………………………………..,[object Object],[Landmark(name=“news")],[object Object],public class ContentPM implements ISelectedIndex,[object Object],{,[object Object],    [Bindable],[object Object],    public varselectedIndex:int;,[object Object],………………………………………………………………………………………..,[object Object],private function navigateTo(destination:String):void {          	dispatcher(NavigationEvent.newNavigateToEvent(destination)); ,[object Object],},[object Object]
Base Camp: Cairngorm Libraries,[object Object],PopUp,[object Object],PopUp Management ,[object Object],  Abstract PopUpManager,[object Object],<popup:PopUpWrapper id="popup1" open="{model.popUpHandler.showStadium}"  >,[object Object],       <mx:TitleWindow  width="450" height="400" 	title="{model.selectedStadium.team}" layout="absolute" >,[object Object],  	<esri:Map  id="stadiumMap"  verticalCenter="0" horizontalCenter="0",[object Object],mapClick="trace(model.selectedExtent);trace(stadiumMap.extent)",[object Object],	width="400“ height="300">,[object Object],	</esri:Map>,[object Object], 	<mx:Button  bottom="10" left="10",[object Object],            		label="Close",[object Object],            		click=“dispatchEvent( new Event( Event.CLOSE ) )"/>,[object Object],      </mx:TitleWindow>,[object Object],       <popup:behaviors>,[object Object],        <mx:Array>,[object Object],            <popup:AddPopUpToParsleyContext context="{ context }"/>,[object Object],        </mx:Array>,[object Object],    </popup:behaviors>,[object Object],    </popup:PopUpWrapper>,[object Object]
Base Camp: Cairngorm Libraries,[object Object],Module,[object Object], Modular Applications*,[object Object],Task,[object Object],  Sequence Commands,[object Object], Parallel Commands,[object Object],*Duh,[object Object]
Base Camp: Parsley & SpiceLib,[object Object],Parsley,[object Object], Dependency Injection,[object Object], Messaging,[object Object], Task Framework,[object Object],SpiceLib,[object Object],Submodule of Parsely,[object Object], Reflection,[object Object], Task Framework,[object Object]
Pragmatica Need,[object Object],The Cairngorms are the last place on earth where the NFL hasn’t played a football game.  The leaders of Pragmatica want to lure the NFL to Scotland and need a way  to select the different stadiums and learn about these “football” teams.*,[object Object],User Story,[object Object], As a Pragmatica Leader, I want to select specific NFL Stadiums so I can see what makes a good stadium. *,[object Object],*worst contrived presentation demo story ever,[object Object]
The Foot of the Summit,[object Object],Data,[object Object], Base Map,[object Object], NFL Stadiums (via GeoCommons),[object Object],Special Instructions,[object Object], Compiler setting for ASMock/FlexUnit4 runner,[object Object], Create “test” folder for our unit tests,[object Object]
The Foot of the Summit,[object Object],Source Structure,[object Object],  Broken into Functional Areas,[object Object],  Separate test folder,[object Object]
First Belay: Write a Test,[object Object],FlexUnit4 Setup,[object Object], Test Suite (Scaling Tests)	,[object Object],TestRunner Application,[object Object],User Story,[object Object], As a Pragmatica Leader, I want to select specific NFL Stadiums so I can see what makes a good stadium. ,[object Object],Map Test,[object Object], User draws a polygon,[object Object],  Map fires event (SelectStadiumsEvent),[object Object]
First Belay: Under Test,[object Object],Cairngorm,[object Object],Messaging,[object Object],event,[object Object],View => PM,[object Object]
First Belay: Under Test,[object Object]
Scaling Cairngorms
Second Belay: Write a Test,[object Object],Command Test,[object Object], Should call a service,[object Object],  Should update model with results,[object Object],Application Layer,[object Object],  Shields view from Infrastructure,[object Object],  Changes Model,[object Object],Drives the Model,[object Object], Stadium,[object Object],  Stadiums,[object Object]
Second Belay: Under Test,[object Object],Cairngorm,[object Object],Messaging,[object Object],Infrastructure,[object Object],Command,[object Object],invokes,[object Object],returns,[object Object],updates,[object Object],Model,[object Object]
Second Belay: Under Test,[object Object]
Scaling Cairngorms
Scaling Cairngorms
Third Belay: Hook Up the View,[object Object],Guidelines,[object Object],   Only knows about PM ,[object Object],   Use Flex data binding,[object Object]
Third Belay: Hook Up the View,[object Object]
Fourth Belay: Configure IoC,[object Object],Views,[object Object],addedToStage,[object Object],PMs,[object Object],ManagedEvents,[object Object],Parsley IoC,[object Object],   Create a Context,[object Object],   Add Presentation Models,[object Object],   Add Business Objects,[object Object],   Add Commands,[object Object],   Add Services,[object Object]
Fourth Belay: Configure IoC,[object Object]
Fourth Belay: Configure IoC,[object Object]
Race to the Summit,[object Object],Pragmatica,[object Object],Rinse, Lather, Repeat,[object Object],   Write Tests,[object Object],   Write Code to Satisfy Tests,[object Object],   Hook up Views,[object Object],   Configure IoC,[object Object],Some Other Examples,[object Object],  Stadium Map,[object Object],  Show PopUp,[object Object]
Scaling Cairngorms
Scaling Cairngorms
Scaling Cairngorms
Back at Base Camp,[object Object],Presentation on SlideShare,[object Object],http://slideshare.net/ruprict/scaling-caringorms,[object Object],Source Code on GitHub,[object Object],http://github.com/ruprict/scaling-cairngorm-ags,[object Object],Links to all libraries,[object Object],Contact Me,[object Object],ggoodrich@enspiria.com,[object Object],@ruprictGeek,[object Object]
Questions,[object Object],Thanks for coming!,[object Object],Post Climb Refreshments,[object Object]

Contenu connexe

Similaire à Scaling Cairngorms

Windows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesWindows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesSriram Krishnan
 
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineGoogle Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineRoman Kirillov
 
Struts2
Struts2Struts2
Struts2yuvalb
 
Non Conventional Android Programming (English)
Non Conventional Android Programming (English)Non Conventional Android Programming (English)
Non Conventional Android Programming (English)Davide Cerbo
 
Naive application development
Naive application developmentNaive application development
Naive application developmentShaka Huang
 
Open Source XMPP for Cloud Services
Open Source XMPP for Cloud ServicesOpen Source XMPP for Cloud Services
Open Source XMPP for Cloud Servicesmattjive
 
First Failure Data Capture for your enterprise application with WebSphere App...
First Failure Data Capture for your enterprise application with WebSphere App...First Failure Data Capture for your enterprise application with WebSphere App...
First Failure Data Capture for your enterprise application with WebSphere App...Rohit Kelapure
 
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCAndroid Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCJim Tochterman
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingFelix Meschberger
 
JUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleJUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleGeoffrey De Smet
 
jBPM5 in action - a quickstart for developers
jBPM5 in action - a quickstart for developersjBPM5 in action - a quickstart for developers
jBPM5 in action - a quickstart for developersKris Verlaenen
 
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at RuntimeOSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at RuntimeNETWAYS
 
Hector v2: The Second Version of the Popular High-Level Java Client for Apach...
Hector v2: The Second Version of the Popular High-Level Java Client for Apach...Hector v2: The Second Version of the Popular High-Level Java Client for Apach...
Hector v2: The Second Version of the Popular High-Level Java Client for Apach...zznate
 
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...Chester Chen
 
CiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklum Ukraine
 
Mini Curso Django Ii Congresso Academico Ces
Mini Curso Django Ii Congresso Academico CesMini Curso Django Ii Congresso Academico Ces
Mini Curso Django Ii Congresso Academico CesLeonardo Fernandes
 

Similaire à Scaling Cairngorms (20)

FLAR Workflow
FLAR WorkflowFLAR Workflow
FLAR Workflow
 
Windows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best PracticesWindows Azure - Cloud Service Development Best Practices
Windows Azure - Cloud Service Development Best Practices
 
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngineGoogle Cloud Endpoints: Building Third-Party APIs on Google AppEngine
Google Cloud Endpoints: Building Third-Party APIs on Google AppEngine
 
02 create first-map
02 create first-map02 create first-map
02 create first-map
 
Beyond Unit Testing
Beyond Unit TestingBeyond Unit Testing
Beyond Unit Testing
 
Struts2
Struts2Struts2
Struts2
 
Non Conventional Android Programming (English)
Non Conventional Android Programming (English)Non Conventional Android Programming (English)
Non Conventional Android Programming (English)
 
Naive application development
Naive application developmentNaive application development
Naive application development
 
Open Source XMPP for Cloud Services
Open Source XMPP for Cloud ServicesOpen Source XMPP for Cloud Services
Open Source XMPP for Cloud Services
 
First Failure Data Capture for your enterprise application with WebSphere App...
First Failure Data Capture for your enterprise application with WebSphere App...First Failure Data Capture for your enterprise application with WebSphere App...
First Failure Data Capture for your enterprise application with WebSphere App...
 
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCAndroid Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with Sling
 
JUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleJUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by example
 
jBPM5 in action - a quickstart for developers
jBPM5 in action - a quickstart for developersjBPM5 in action - a quickstart for developers
jBPM5 in action - a quickstart for developers
 
my accadanic project ppt
my accadanic project pptmy accadanic project ppt
my accadanic project ppt
 
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at RuntimeOSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
 
Hector v2: The Second Version of the Popular High-Level Java Client for Apach...
Hector v2: The Second Version of the Popular High-Level Java Client for Apach...Hector v2: The Second Version of the Popular High-Level Java Client for Apach...
Hector v2: The Second Version of the Popular High-Level Java Client for Apach...
 
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
 
CiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForce
 
Mini Curso Django Ii Congresso Academico Ces
Mini Curso Django Ii Congresso Academico CesMini Curso Django Ii Congresso Academico Ces
Mini Curso Django Ii Congresso Academico Ces
 

Dernier

Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.francesco barbera
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServiceRenan Moreira de Oliveira
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum ComputingGDSC PJATK
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIUdaiappa Ramachandran
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 

Dernier (20)

Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum Computing
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
RAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AIRAG Patterns and Vector Search in Generative AI
RAG Patterns and Vector Search in Generative AI
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 

Scaling Cairngorms

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 26.
  • 27.
  • 28.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 40.
  • 41.

Notes de l'éditeur

  1. Flex work for &gt;2 yearUsed Cairngorm 2 on a couple of projectsThis presentation focuses on Cairngorm 3, which is in beta
  2. Goal: To get to Base Camp Pragmatica where maintainable, clean Flex apps are the norm.
  3. Cairngorm 3 – the frameworkFlexUnit4 – TDDSpicefactory/Parsley – IoC, messagingAGS Flex API - MapsHamcrest – MatchersASMock – Mock framework
  4. Cairngorm 3 – the frameworkFlexUnit4 – TDDSpicefactory/Parsley – IoC, messagingAGS Flex API - MapsHamcrest – MatchersASMock – Mock framework
  5. Cairngorm 3 is still in betaI recommend using it b/c it&apos;s cleaner, easier to test &amp; maintain&quot;Microarchitecture&quot; to develop RIAsWhile some of the Cairngorm 2 patterns are still around, much of what was wrong with Cairngorm 2 is gone.Command pattern is still hereIOC is goneHas a set of Guidelines, Tools, and Libraries to help describe and support this microarchitecture
  6. Split the application into functional areas.In larger applications, you would split the functional areas into modules, and each FA would have layersPresume IoC, but don&apos;t specify a provider.  This is the heart of Cairngorm 3&apos;s adaptability.  The example implementation is written using Parsley and SpiceLibVERY different from Cairngorm 2
  7. Layout application (or modules) into the these four functional areas
  8. Layout application (or modules) into the these four functional areas