pattern για database access

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

pattern για database access

Δημοσίευση από cpulse » 18 Ιαν 2011 11:11

Εννοείται οτι θα βάλεις cache.. πρόβλεψη για memcached ή και κάτι καλύτερο.

Για το compression είνα εύκολα τα πράγματα.. ob_start("ob_gzhandler");

Τα singletons άστα. Είναι so 90's. Factory pattern είναι το μέλλον.

Τώρα κι εγώ νομίζω οτι αφού πας για PDO μάλλον πρέπει να σκεφτείς και την CORBA. Χωρίς CORBA δεν...

Κάτι ακόμα, το σύστημα θα πρέπει σίγουρα να είναι φτιαγμένο που να μπορεί πανεύκολα να κλονοποιείται για να μπει σε ένα cloud. Modularization και compartmentization δηλαδή είναι must για το σωστό design. Όπως έχει προτείνει κι ο σύντροφος Γιάννης στο παρελθόν, σκέψου και υπηρεσίες όπως cloud front της amazon.

Τώρα για το lower level coding, ίσως να σκεφτείς τελικά μια λύση σε Python, γιατί έχει καλύτερο connectability με C/C++ interfaces.

Από θέμα ασφάλειας παίζει μεγάλο ρόλο το σωστό escaping για όλων των ειδών τα injections.. sql injection και άλλα attacks, όπως επίσης και η ρύθμιση του php.ini και η αρμονική λειτουργία με τα htaccess. Μην αφήσεις κανένα magic quotes ή register globals ανοιχτό δηλαδή. Για να μην αναφερθούμε στα πολύ καλά σχεδιασμένα tokens για τα cookies.

Τέλος από θέμα hardware, πέρα από τα τετρημένα μνήμη CPU, νομίζω οτι παίζει σημαντικό ρόλο το voltage και ένα δυνατό UPS σύστημα. Μην πας σε κανένα αμα δεν έχει UPS με γεννήτριες. Τα άλλα γνωστά εννοούνται.. πχ σοβαροί inhouse routers και καλή σύνδεση με το εξωτερικό δίκτυο.. καλώδια στο ταβάνι κι όχι στο πάτωμα (μη έχουμε και θέματα με καμιά πλημμύρα), τέλειο air conditioning κτλ.

Έχω κι άλλα να πω, αλλά ας μην σας κουράζω..

Αλλά.. μέχρι να τα προβλέψεις όλα αυτά ρίξε ένα mysql_query() να κάνεις τη δουλειά σου.

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

pattern για database access

Δημοσίευση από Khronos » 18 Ιαν 2011 11:36

cpulse έγραψε:Αλλά.. μέχρι να τα προβλέψεις όλα αυτά ρίξε ένα mysql_query() να κάνεις τη δουλειά σου.
+1000 :P

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

pattern για database access

Δημοσίευση από cherouvim » 18 Ιαν 2011 12:32

Σχετικά με το caching δεν υπάρχει server ή προϊόν που θα σε βοηθήσει πλήρως.
Η εφαρμογή σου μπορεί να χρειάζεται caching σε πολλά επίπεδα (πχ σε επίπεδο αρχείου, query resultset, ολόκληρης σελίδας, response snippet ή ακόμα και cpu intensive υπολογισμού) οπότε σχεδιάζεις και υλοποιείς αναλόγως την περίπτωση.

Με τα patterns προσπάθησε να οδηγείσαι από το πρόβλημα σου και όχι από την ανάγκη του στυλ "έχω ένα pattern, που να το βάλω;". Σχεδόν για όλα τα βασικά σχεδιαστικά προβλήματα υπάρχουν patterns που δίνουν απαντήσεις αλλά όλα είναι σχετικά μιας και τα προβλήματα αρχιτεκτονικής της εφαρμογής συνήθως έχουν παραπάνω από μία λύσεις.
Οπότε σε μία συζήτηση με συναδέλφους μπορεί οι μισοί να σου λένε φανατικά ότι τα DAOs είναι ή λύση και οι άλλοι μισοί να μιλάνε για active record... στη συνέχεια αρχίζουν να πλακώνονται οι μεν με τους δε, με τους μεν να λένε οτι το active record τους προκαλεί εμετό λόγω του coupling που εισάγει στο μοντέλο και τους δε οτι τα DAOs τους φέρνουν ναυτία από το boilerplate code που πρέπει να γράψουν για να κάνουν το σύστημα να δουλέψει... και μάντεψε... έχουν όλοι δίκιο.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

pattern για database access

Δημοσίευση από korgr » 18 Ιαν 2011 12:32

Khronos έγραψε:
cpulse έγραψε:Αλλά.. μέχρι να τα προβλέψεις όλα αυτά ρίξε ένα mysql_query() να κάνεις τη δουλειά σου.
+1000 :P

Είναι αυτό που λένε "μπλα...μπλα...μπλα...mysql_query()", ΚΡΑΤΑ την ΟΥΣΙΑ! :lol:

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

pattern για database access

Δημοσίευση από pimpogio » 18 Ιαν 2011 17:09

korgr έγραψε:
Khronos έγραψε:
cpulse έγραψε:Αλλά.. μέχρι να τα προβλέψεις όλα αυτά ρίξε ένα mysql_query() να κάνεις τη δουλειά σου.
+1000 :P

Είναι αυτό που λένε "μπλα...μπλα...μπλα...mysql_query()", ΚΡΑΤΑ την ΟΥΣΙΑ! :lol:
ποια ειναι η ουσια ? το mysql_query δεν υποστηριζει οτι θελω και δεν κανει για τη δουλεια
που το θελω..
Οταν εχεις μια normalized db με διαφορα foreign keys δεν υπαρχει περιπτωση να μην χρειαστεις transactions και το mysql_query δεν τα υποστηριζει...
Ειναι κακη πρακτικη το mysql_query σημερα απο τη στιγμη που υπαρχει το ανωτερο
PDO..
Δε καταλαβα ποιος ο λογος να το χρησιμοποιησω ...

Τα patterns δινουνε ευκολες γρηγορες και καλες λυσεις πολλες φορες γιατι λυνουνε προβληματα τα οποια εχουνε σκευτει αλλοι πριν απο εσενα για σενα..
Αλλα ειναι δυνατον να κανεις εφαρμογη χωρις να χρησιμοποιησεις τα βασικα τουλαχιστον
patterns ? δε γινετε...

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

pattern για database access

Δημοσίευση από korgr » 18 Ιαν 2011 17:21

Απ' ότι φαίνεται ούτε την σχετική διαφήμιση στην οποία αναφέρθηκα γνωρίζεις, ούτε το χιούμορ είναι το δυνατό σου σημείο.
Άντε να δούμε κατά το 2012 καμιά εφαρμογή σου στην πράξη, γιατί πολοί πέρασαν από εδώ με βαρύγδουπες θεωρίες και από πράξη ελάχιστα πράγματα.

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

pattern για database access

Δημοσίευση από pimpogio » 18 Ιαν 2011 17:26

νταξει εχεις δικιο...
Δεν ειμαι επαγγελματιας και απλα ενα site θελω να κανω για ιδια χρηση ...
αλλα επειδη θα ειναι δικο μου θελω να το κανω καλα οσο μπορω..
Δεν εχω καμια πιεση χρονου ..
Πιθανον ουτε το 2012 να εχω κανει γιατι μπορει να
ξυπνησω αυριο και να μου εχει φυγει η ιδεα να κανω site..

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

pattern για database access

Δημοσίευση από Rapid-eraser » 31 Ιαν 2011 22:45

Mία μικρή σημείωση:

Το mysql_query δεν έχει να κάνει με foreign keys.
Τα foreign keys υλοποιούνται στην mySQL μέσω του storage engine πχ inodb και bdb και οι δύο transactional με την inodb πλέων την προεπιλεγμένη storage engine και συμβατή ACID.

Το mysql_query δεν κάνει τίποτα παραπάνω από το να κάνει pipe το query στον mySQL server μέσο του native driver τις mysql που έχει η php, δεν εφαρμόζει ούτε υλοποιεί ούτε transactions, μόνο στέλνει την εντολή και διασφαλίζει ότι θα φύγει μόνο μία εντολή την φορά.

Το PDO δεν είναι κατά καμία έννοια ανώτερο σε σχέση με τo mysqli και mysql αφού και τα 3 πατάνε σε διαφορετικό driver για να υλοποιήσουν το API ( ο PDO mySQL driver δεν κάνει expose τον driver γιατί παίζει μόνο με interfaces [έχει σαν failover native driver της php]).

Αναλυτικά τις διαφορές μπορείς να τις δεις στο manual της php mysqli.overview

Η ίδια η mySQL ΑΒ (νυν Oracle) μάλιστα προτείνει mySQLi για τα νέα project !!!

Αν η επιλογή σου είναι καθαρά όσον αφορά το data-access abstraction layer τότε η χρήση του PDO είναι μονόδρομος απλά θυμήσου ότι το PDΟ δεν είναι database abstraction layer δεν κάνει rewrite ή emulate feats από db σε db.

Αν εξαιρέσεις το"client-side Prepared Statements" το οποίο ούτως η άλλος δεν είναι native στην mySQL τότε από άποψη functionality το PDO υστερεί σε σχέση με το mySQLi.

Αυτά τα ολίγα.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high


Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

pattern για database access

Δημοσίευση από cpulse » 02 Φεβ 2011 02:37

Δυστυχώς τέτοια είναι βγαλμένα από τη ζωή. Π.χ.
http://www.businessinsider.com/the-aol-way#

Δέστε το screen cast. Τα άτομα δεν πάνε καλά.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: ss13 και 0 επισκέπτες