Geschrieben von artodeto am Mittwoch, Oktober 9. 2013
By Oliver
Mindworks
Jarrestraße 42A
Take a look to knpbundles .
Hurdles
problem is solved in other language
problem is solved in other licence
can be solved by design patterns (abstract solution)
write a good bundle/component that is general enough takes much more time
Anti-Pattern
Reuseage by copy and paste.
decreases maintainability
decreases testability
violates dry principle
Scenario
community web application
users seek other users by interests
how to input data to easy up matching?
What Do We Need?
form widget (js and css based)
data transformer (converts format from storage to human readable presentation and back)
form type (provides name for form widget, called in FormTypes, gets TagManager injected and defines DataTransformer)
Entity Trait (avoid copy and paste)
Taggable Subscriber
Make it reusable (dedicated bundle, created composer project)
Use JavaScript and CSS via "composer component" (see web/bundles, RobLoach/component-installer)
Live Demo
Available on github
Geschrieben von artodeto am Mittwoch, September 11. 2013
This talk contains information about architecture.
Classical Architecture
When have done this for quite a while.
Browser->WebServer->PHP-Database
This works best in the past.
General solution was to add more hardware and that leads to more errors.
monolithic architecture
normalized data (in database)
pull-principle (browser is build per request)
full page cache is bad
edge site include (for varnish/ESI) is also not the best solution
We are fast when:
no real workload per request
everything from memory
denomalized data
snippets
How Often Does Data Change (From Rare To Often)?
Based on the example of a shop system.
catalog
product information
price
availability
Who Changes Data?
editor
product manager
receipt of goods / outgoing goods
images and static content is deliverd by static content webserver
only dynamic part is done by php
snippets are deliverd, not full pages
PHP->Key-Value-Store->Backend-Process->Database
or
PHP->Web-Service->Database
Benefit of key-value-store (for example redis) is, that the database itself can die and the only thing that happens is, that the entries are becoming obsolete.
But What About Filternavigation?
Use a searchengine that returns simple a collection of product keys. Use this product keys and ask the key value store to fetch product data.
But What About Personalization?
use snippets with variables and default values
fetch this snippet in the key value store
thanks to "time to death" feature provided by many key-value-stores, you can easily define "special offers" per day and so on
Nice meetup, incredible how many people are attending already.
Geschrieben von artodeto am Dienstag, September 10. 2013
2013-09-10 Hamburg, Otto, Loft 06
Define The Unspeakable
Result
establishment
project
uniform
moral concepts (negotiable)
hanseatic
freaked out / nerdic
cutting edge
basic assumption
They are teached/ already at school level (errors are bad, don't do something wrong).
what can i do
who am i able to add critic to
natur
fellow men
industry
From the school already, we get trained to:
it is bad to say "that was my fault"
shift the know error to others
there is one majority out there who decides if this is a bad error
be perfect
always have a fallback (not to lose the face)
Define A Good Error Culture
This goals can be achived by exemplify the following steps (best by upper management but important for all).
"good" is enough
no fear of mistakes
many/fast update cycles (don't try to do big jumps, doing small steps results in small mistakes)
straightforwardness
to take the blame is not important
do not repeat your mistakes
do small and usefull steps (validate if your change contains a "only if")
use and understand the Twelve Principles of Agile Software
celebrate reached goals
Slides are available on judiths page . Again a nice talk and incredible what kind of easy mistakes we are doing in our regular live.