επαληθεύσεις δεδομένων στο κτητόρων / Σέττερ ή αλλού;




Αναρωτιέμαι αν είναι καλή ιδέα να κάνουν **ελέγχους** στα **getters** και **setters** , ή σε άλλα σημεία του κώδικα.


Αυτό μπορεί να σας εκπλήξει είναι όταν πρόκειται για **βελτιώσεις** και **την επιτάχυνση** του κώδικα, νομίζω ότι δεν πρέπει να κάνουν ελέγχους στα getters και setters, αλλά στον κώδικα όπου είστε **ενημέρωση** αρχείων ή βάσης δεδομένων σας. Κάνω λάθος?
Λοιπόν, ένα από τα reaons γιατί τάξεις περιλαμβάνουν συνήθως ιδιωτικού μέλη με τις δημόσιες κτήτορες / setters είναι ακριβώς επειδή μπορεί να ελέγξει τα δεδομένα.


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


Όσο για τις επιδόσεις, είμαι με εδώ Knuth:



> 
> «Πρέπει να ξεχάσουμε τις μικρές αποδόσεις, δηλαδή περίπου το 97% του χρόνου. Πρόωρο βελτιστοποίησης είναι η ρίζα όλων των κακών»
> 
> 
>
**Για την «ορθογραφία λάθος» μέρος (Μήπως εννοείτε)**


* Θα μπορούσατε να κάνετε κάποια `LIKE`ερωτήματα στο db π.χ. `LIKE %j%e%a%n%s%`, αλλά αν θέλετε να το κάνετε καλά, θα πρέπει να χρησιμοποιήσετε μια βιβλιοθήκη αναζήτησης όπως αυτό:


	+ <https://github.com/TomLingham/Laravel-Searchy>
	+ <http://tnt.studio/blog/did-you-mean-functionality-with-laravel-scout>



> 
> Μπορείτε να δημοσιεύσετε το αρχείο ρυθμίσεων στον κατάλογο της εφαρμογής σας και να παρακάμψετε τις ρυθμίσεις, εκτελώντας php τεχνίτη πωλητή: δημοσιεύει για να αντιγράψετε τις ρυθμίσεις στο φάκελο config σας όπως searchy.php
> 
> 
> Μπορείτε να ορίσετε το προεπιλεγμένο πρόγραμμα οδήγησης που θα χρησιμοποιηθεί για τις αναζητήσεις στο αρχείο ρυθμίσεων. Οι επιλογές σας (στην παρούσα φάση) είναι: ασαφή, απλό και Levenshtein.
> 
> 
> Μπορείτε επίσης να παρακάμψετε αυτές τις μεθόδους, χρησιμοποιώντας την ακόλουθη σύνταξη κατά την εκτέλεση μιας αναζήτησης:
> 
> 
> 


Με τον καθορισμό [Levenshtein απόσταση](https://en.wikipedia.org/wiki/Levenshtein_distance) μπορείτε να finetune πόσο μακριά μια λέξη μπορεί να είναι.


* Αν χρειάζεστε καλύτερη απόδοση θα πρέπει να εξετάσει κάτι σαν `solr`ή `elasticsearch`για το έργο αυτό.


<https://wiki.apache.org/solr/SpellCheckComponent>
<https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html>


**Για το τμήμα μετάφρασης**


Απλά θα πρέπει να έχει ένα λεξικό έτοιμο σε βάση δεδομένων ή εντοπισμό των αρχείων σας και εκτελέστε το χαμηλότερο σημείο εισόδου και αυτό. Αναμείνετε υψηλή φορές υπολογιστών τόσο για τη διόρθωση ορθογραφίας και της μετάφρασης στον κώδικά σας. χωρίς να είμαι 100% βέβαιος η πληροφορία αποθηκεύετε ως matadata στο gvfs, οπότε υποθέτω στον φάκελο .local/share/gvfs-metadata. ακόμα και αν έχω λάθος σε αυτό ένα πλήρες αντίγραφο του φακέλου χρήστη θα κρατήσει αυτή την πληροφορία. Έχεις κάνει το τεστ από το λινκγομάγαζο να δεις το σκορ σου; Το τεστ εξετάζει σε όλο το δέντρο μαζί.


Δες τις απαντήσεις μου για το τι να κάνεις αφού έχεις τελειώσει όλα τα μαθήματα [εδώ](https://www.duolingo.com/comment/13395575). Συνήθως δεχόμαστε είτε "have to" είτε "must". Στείλτε μας, παρακαλώ, ένα συγκεκριμένο παράδειγμα που μπορούμε να ελέγξουμε για λάθοι. Η προτιμώμενη μέθοδος είναι να χρησιμοποιήσετε πραγματικά την ιδιότητα υπό όρους για να τυλίξει τις κλήσεις εντοπισμού σφαλμάτων σας, μην χρησιμοποιήσετε τις οδηγίες μεταγλωττιστή. #ifs μπορεί να πάρει δύσκολες και μπορεί να οδηγήσει σε περίεργα προβλήματα κατασκευής.


Ένα παράδειγμα της χρήσης ενός υπό όρους χαρακτηριστικό είναι η εξής (σε C #, αλλά λειτουργεί σε VB.NET πολύ):



```
[ Conditional("Debug") ]
private void WriteDebug(string debugString)
{
  // do stuff
}

```

Κατά τη μεταγλώττιση, χωρίς το σετ σημαία DEBUG, κάθε κλήση προς WriteDebug θα καταργηθούν όπως υποτίθεται συνέβαινε με Debug.Write (). εντάξει, όλα καλά. το θέμα λύθηκε. η απορία όμως έμεινε.

**τι έκανα:text

άλλαξα τα repos σε testing. αυταααα… ευχαριστώ όλους για την συμπαράσταση!! ευχαριστώ και το [linux-user.gr](http://linux-user.gr) γιατί υπάρχει. Θα χρησιμοποιηθεί για να πάρει αυτό - νομίζω ότι είναι ένα bug με το παράθυρο εντοπισμού σφαλμάτων «Autos»:


[http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/eabc58b1-51b2-49ce-b710-15e2bf7e7516/](https://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/eabc58b1-51b2-49ce-b710-15e2bf7e7516/) να τα πάρουμε με τη σειρά για να μη γίνει μπέρδεμα;

άρχικά, ένας αυτοματοποιημένος εγκαταστάτης μπορεί να μην εμφανίσει κάποιο μήνυμα λάθους αλλά αρκεί ένα τυπογραφικό λάθος στον κώδικά του για να μην πετύχει μια απλή ρύθμιση ας πούμε.

τώρα, το μενού του septor στο πρώτο screenshot αντιστοιχεί στη… <p>το <strong>server</strong> (που αποστέλλεται το αίτημα post) πρέπει να περιλαμβάνει την κεφαλίδα <code>access-control-allow-headers</code> (κλπ) <strong>στην απάντησή του</strong>. η τοποθέτησή τους στο αίτημά σας από τον πελάτη δεν έχει καμία επίδραση.</p><p>αυτό οφείλεται στο γεγονός ότι εναπόκειται στον διακομιστή να καθορίσει ότι δέχεται αιτήσεις διασταυρούμενης προέλευσης (και ότι επιτρέπει την κεφαλίδα <code>content-type</code> αίτησης και ούτω καθεξής) - ο πελάτης δεν μπορεί να αποφασίσει για τον εαυτό του ότι ένας δεδομένος διακομιστής πρέπει να επιτρέπει την cors.</p> Όχι, δεν κάνει καμία διαφορά.


Προσωπικά προτιμώ το στυλ που σας δείχνουν στο Q3, μερικοί από τους συναδέλφους μου προτιμούν το στυλ στο Q1. Δεν ξέρω κανέναν που θα εξετάσει ποτέ ούτε από αυτούς να είναι *λάθος* .


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


Έλεγξα (SQL Server 2005) στο σχέδιο εκτέλεσης των δύο ερωτήματα με τα τελούμενα κατηγόρημα με διαφορετική σειρά, και όπως αναμένεται να είναι πανομοιότυπα.