WebNano Zbigniew Lukasiak (zby) Ideas for web libraries and frameworks
Richard P. Gabriel "Worse is Better"
Nickieben Bourbaki "Worse Is Better Is Worse"
Nickieben Bourbaki a pen name of Richard Gabriel
Frameworks are framing,  libraries are liberating WebNano
Frameworks tend to tie  many functions together.
Coupling
Dave Rolsky ”Want Good Tools?  Break Your Problems Down”
Current frameworks not only deal with the web part of the task – but also create all the objects of the application.
Bread::Board – specialized tool Dependency Injection Pattern
My experiences (see WebNano tests): It works. But there are no good examples. Lacks integration with standard text config files.
Needs to be at least as good as current solutions.
Catalyst config files: View::TT: WRAPPER: 'wrapper.tt' Configuration for each component. Plus logic for loading global and local configs.
And maybe we could also get rid of
Endless adaptors. Like the many Catalyst views or models. Why not use TT directly? Or Email::Send?
Adaptors add another layer where things can go wrong. They don't add new functionality. They are needed to fit outside libs into the framework.  But why we need to squize them there?
WebNano – main ideas Use of Bread::Board Controllers in Request Scope
Object Oriented Programming (wikipedia): each instance of which ("objects") contains all the information needed to manipulate its own data structure ("members") My extension:  object should contain all data most accessed by it's methods
Catalyst controllers: sub index :Path :Args(0) { my ( $self, $c ) = @_; # Hello World $c->response->body( $c->welcome_message ); }
$c is passed to all methods as an argument, because it is always needed In contrast $self is nearly never used in all examples from Catalyst::Tutorial
 
The answers never satisfied me.  They looked like based on some incidental design choice, nothing that could not be changed.
Until I read series of blog posts, starting with nothingmuch articles on: Immutable Data Structures
I like it - it simplifies a lot of things when used moderately.
But it also means that a Catalyst controller cannot contain data about the request.
This is a fundamental limitation.
Controllers in Request Scope
From the many Perl MVC web frameworks only Tatsumaki uses request scope controllers. Rails and Django do.
Counter argument – what if you have something heavy that you need to use in the controller? No problem the controller can access objects from  outer (application scope).
A simple rule of thumb for immutable objects: Objects from narrower scope can contain references to objects in outer scopes, but not the other way around.
Like with other variables: Create objects in the narrowest scope that needs them.
And hopefully get rid of Stash.
There are more ideas in Nano
Questions?
Links http://en.wikipedia.org/wiki/Worse_is_better

More Related Content

PPTX
Intro to Flux - ReactJS Warsaw #1
PDF
Building Autonomous Services
PDF
ConFoo Presentation - Front-End Architecture
PDF
ESNext, service workers, and the future of the web
PDF
Embracing the Future
PDF
Dlsecyx pgroammr (Dyslexic Programmer - cool stuff for scaling)
PDF
Advanced web application architecture - Talk
Intro to Flux - ReactJS Warsaw #1
Building Autonomous Services
ConFoo Presentation - Front-End Architecture
ESNext, service workers, and the future of the web
Embracing the Future
Dlsecyx pgroammr (Dyslexic Programmer - cool stuff for scaling)
Advanced web application architecture - Talk

What's hot (20)

PPTX
Relay: Seamless Syncing for React (VanJS)
PDF
Performant Django - Ara Anjargolian
PPTX
Salesforce lwc development workshops session #6
PDF
RxJS - The Basics & The Future
PDF
Sharing the pain using Protractor
PDF
Gatling Performance Workshop
PPTX
Lets cook cucumber !!
PPTX
End to-end async and await
PPTX
Entity framework advanced
PDF
What's New in JHipsterLand - DevNexus 2017
ODP
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
PPTX
Mountebank and you
PDF
Donald Ferguson - Old Programmers Can Learn New Tricks
PPTX
Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...
PPTX
How to practice TDD without shooting yourself in the foot
PDF
Architecture by Accident
PDF
The Power of RxJS in Nativescript + Angular
PDF
Testing Angular Applications - Jfokus 2017
PPTX
Advanced AngularJS Tips and Tricks
PDF
All the reasons for choosing react js that you didn't know about - Avi Marcus...
Relay: Seamless Syncing for React (VanJS)
Performant Django - Ara Anjargolian
Salesforce lwc development workshops session #6
RxJS - The Basics & The Future
Sharing the pain using Protractor
Gatling Performance Workshop
Lets cook cucumber !!
End to-end async and await
Entity framework advanced
What's New in JHipsterLand - DevNexus 2017
JQuery Conf Berlin - Ondrisek - From Java To AngularJS (without pain)
Mountebank and you
Donald Ferguson - Old Programmers Can Learn New Tricks
Promise of a better future by Rahul Goma Phulore and Pooja Akshantal, Thought...
How to practice TDD without shooting yourself in the foot
Architecture by Accident
The Power of RxJS in Nativescript + Angular
Testing Angular Applications - Jfokus 2017
Advanced AngularJS Tips and Tricks
All the reasons for choosing react js that you didn't know about - Avi Marcus...
Ad

Viewers also liked (6)

PDF
How could I automate log gathering in the distributed system
PPTX
PPTX
Federal Express
PPT
Ppt fedex
PPTX
service quality-models-ppt
PPTX
Service quality
How could I automate log gathering in the distributed system
Federal Express
Ppt fedex
service quality-models-ppt
Service quality
Ad

Similar to WebNano - Ideas for Web Frameworks (20)

ODP
Practical catalyst
PDF
Using React with Grails 3
PDF
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
PDF
Why you should consider a microframework for your next web project
PDF
Ruby on Rails from the other side of the tracks
PPTX
Do you queue (updated)
PDF
Professional JavaScript: AntiPatterns
PDF
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
PPT
Developing Java Web Applications
KEY
Speedy TDD with Rails
PDF
Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010
PPT
Introduction To Ruby On Rails
PPTX
Onion Architecture with S#arp
PPT
Ruby On Rails Siddhesh
PDF
50 common web developer interview questions [2020 updated] [www.full stack....
PDF
Function as a Service
PPTX
Behavioural Testing Ruby/Rails Apps @ Scale - Rspec & Cucumber
PDF
The complete-beginners-guide-to-react dyrr
PPTX
Capybara and cucumber with DSL using ruby
PDF
Using Docker in the Real World
Practical catalyst
Using React with Grails 3
Is Serverless The New Swiss Cheese? - AWS Seattle User Group
Why you should consider a microframework for your next web project
Ruby on Rails from the other side of the tracks
Do you queue (updated)
Professional JavaScript: AntiPatterns
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
Developing Java Web Applications
Speedy TDD with Rails
Don't RTFM, WTFM - Open Source Documentation - German Perl Workshop 2010
Introduction To Ruby On Rails
Onion Architecture with S#arp
Ruby On Rails Siddhesh
50 common web developer interview questions [2020 updated] [www.full stack....
Function as a Service
Behavioural Testing Ruby/Rails Apps @ Scale - Rspec & Cucumber
The complete-beginners-guide-to-react dyrr
Capybara and cucumber with DSL using ruby
Using Docker in the Real World

Recently uploaded (20)

PPTX
Unlocking Success Through the Relentless Power of Grit
DOCX
Paulo Tuynmam: Nine Timeless Anchors of Authentic Leadership
PDF
Dominate Her Mind – Make Women Chase, Lust, & Submit
PDF
The Blogs_ Humanity Beyond All Differences _ Andy Blumenthal _ The Times of I...
PPTX
2-THE-NATIONAL-EARLY-LEARNING-FRAMEWORK.STE.pptx
PDF
Anxiety Awareness Journal One Week Preview
PDF
relational self of self improvements etc
PDF
PLAYLISTS DEI MEGAMIX E DEEJAY PARADE DAL 1991 AL 2004 SU RADIO DEEJAY
PPTX
chuong-2-nhung-hinh-thuc-tu-duy-20250711081647-e-20250718055609-e.pptx
PPT
Thinking Critically Presentation w Exercise.ppt
PPT
Critical Thinking Lecture 1 2008 University.ppt
PPTX
Modulation is the process of varying one or more properties of a carrier sign...
PPTX
My future self called today–I answered.pptx
PPTX
A portfolio Template for Interior Designer
PDF
Psychology and Work Today 10th Edition by Duane Schultz Test Bank.pdf
PPT
Sanskar for Kids a cultural intervension
PDF
technical writing on emotional quotient ppt
PDF
OneRead_20250728_1807.pdfbdjsajaajjajajsjsj
PPTX
SELF ASSESSMENT Power Point Presentation Activity
PDF
Why is mindset more important than motivation.pdf
Unlocking Success Through the Relentless Power of Grit
Paulo Tuynmam: Nine Timeless Anchors of Authentic Leadership
Dominate Her Mind – Make Women Chase, Lust, & Submit
The Blogs_ Humanity Beyond All Differences _ Andy Blumenthal _ The Times of I...
2-THE-NATIONAL-EARLY-LEARNING-FRAMEWORK.STE.pptx
Anxiety Awareness Journal One Week Preview
relational self of self improvements etc
PLAYLISTS DEI MEGAMIX E DEEJAY PARADE DAL 1991 AL 2004 SU RADIO DEEJAY
chuong-2-nhung-hinh-thuc-tu-duy-20250711081647-e-20250718055609-e.pptx
Thinking Critically Presentation w Exercise.ppt
Critical Thinking Lecture 1 2008 University.ppt
Modulation is the process of varying one or more properties of a carrier sign...
My future self called today–I answered.pptx
A portfolio Template for Interior Designer
Psychology and Work Today 10th Edition by Duane Schultz Test Bank.pdf
Sanskar for Kids a cultural intervension
technical writing on emotional quotient ppt
OneRead_20250728_1807.pdfbdjsajaajjajajsjsj
SELF ASSESSMENT Power Point Presentation Activity
Why is mindset more important than motivation.pdf

WebNano - Ideas for Web Frameworks