πώς να προφέρει anecdotal;
an-ec-dot-al
Οι μέθοδοι είναι σύγχρονη από προεπιλογή. Για να τους κάνουν ασύγχρονη, θα πρέπει να προσθέσετε αυτό το χαρακτηριστικό [OperationContract (AsyncPattern = true)] και να επιστρέψει ένα IAsynchResult, όπως ακριβώς θα κάνατε αν ήσασταν κάνει BeginIvoke () με WinForms. (διαβάστε περισσότερα εδώ <http://msdn.microsoft.com/en-us/library/ms734701.aspx> )


Μπορείτε να κάνετε δημοσιεύσεων / συνδρομών με κάτι που ονομάζεται επανάκλησης Συμβόλαιο (αν im δεν είναι σίγουρος για την εφαρμογή αυτή σε άλλες πλατφόρμες) Δεν έχω μεγάλη εμπειρία με αυτά, αλλά δεν φαίνεται εξαιρετικά complected (μπορείτε να διαβάσετε περισσότερα εδώ [http: //dotnetaddict.dotnetdevelopersjournal.com/wcf\_alarmclock.htm](http://dotnetaddict.dotnetdevelopersjournal.com/wcf_alarmclock.htm) ) Υποθέτω ότι προσπαθείτε να κάνετε το περιβάλλον εντολή ως επιεικής δυνατόν. Αν αυτή είναι η περίπτωση, σας προτείνω να χρησιμοποιήσετε έναν αλγόριθμο παρόμοιο με αυτό:


1. Διαβάστε στο κορδόνι
	* Χωρίστε το string σε μάρκες
	* Χρησιμοποιήστε ένα λεξικό για να μετατρέψετε τα συνώνυμα σε μια κοινή μορφή
	* Για παράδειγμα, μετατροπή «χτύπησε», «γροθιά», «απεργία», και «κλωτσιά» όλα για να «χτυπήσει»
	* Εκτελέστε ενέργειες σε ένα μη διατεταγμένο, χωρίς αποκλεισμούς βάση
	* **Μη αριθμημένη** - «γροθιά τον πίθηκο στο πρόσωπο» είναι το ίδιο πράγμα όπως «το πρόσωπο στο γροθιά μαϊμού»
	* **Inclusive** - Εάν η εντολή είναι υποτίθεται ότι είναι «γροθιά τον πίθηκο στο πρόσωπο» και παρέχουν «μαϊμού γροθιά», θα πρέπει να ελέγξετε πόσες εντολές αυτή ταιριάζει. Εάν μόνο μία εντολή, να κάνει αυτή την ενέργεια. Θα μπορούσε ακόμη και να είναι μια καλή ιδέα να έχουμε προτεραιότητες εντολή, ακόμη και αν υπήρχαν ακόμη αγώνες, θα εκτελέσει την κορυφή δράση. Νομίζω ότι το κύριο πρακτικό πλεονέκτημα στη μάθηση πράγματα χαμηλού επιπέδου όπως η γλώσσα συναρμολόγησης, δείκτες και διαχείριση μνήμης είναι ότι όταν γράφετε ή την αναθεώρηση κώδικα υψηλού επιπέδου είστε σε θέση καλύτερα να ενστικτωδώς ή υποσυνείδητα ζητήματα τόπου ή άλλες παγίδες.


Ένα μέσο για την ανάπτυξη, θα μπορούσε να γράψει ένα απλό βρόχο και να σκεφτεί, «Αυτός ο κωδικός επαναλαμβάνεται σε ένα σύνολο ακεραίων και γράφει κάθε στην κονσόλα.»


Ένας προγραμματιστής ειδικός μπορεί να γράψει το ίδιο βρόχο και να σκεφτεί, «Αυτός ο κωδικός επαναλαμβάνεται σε μια σειρά ακεραίων, και έχει να κουτί κάθε στοιχείο για να καλέσετε τη μέθοδο toString και toString πρέπει να διαμορφώσετε το κορδόνι στη βάση 10, η οποία είναι κάπως μη τετριμμένη, και τότε τόσο το κουτί ακέραιο και η διαμορφωμένη κλωστή θα είναι σύντομα επιλέξιμες για τη συλλογή των απορριμμάτων, καθώς δεν αναφορές θα παραμείνει, και η πρώτη φορά που αυτή η μέθοδος λειτουργεί, θα πρέπει να JIT'ed ...»και ούτω καθεξής.


9 φορές από τα 10, μπορεί να μην έχει σημασία. Αλλά αυτό 1 ώρα στους 10, ο κύριος του έργου των εμπειρογνωμόνων είναι πιθανό να παρατηρήσετε ένα πρόβλημα στον κώδικα που ο μέσος προγραμματιστής ποτέ δεν θα σκεφτόταν να εξετάσει. Η προφορά στα μαθήματα είναι αμερικανική. Η αλήθεια είναι ότι για τις διάφορες γλώσσες του Duolingo όπου οι ηχογραφήσεις είναι τεχνητές, από λογισμικό και όχι από άνθρωπο, δεν είναι πάντα και οι καλύτερες. Παρ' όλα αυτά οι εκφωνήσεις της αγγλικής φωνής είναι ακριβείς και ως επί το πλείστον ακούγονται φυσιολογικές, όπως όταν μιλάς με κάποιον που έχει τα αγγλικά ως μητρική του γλώσσα. Αυτό μάλλον κάνει τα πράγματα δύσκολα, γιατί οι δάσκαλοι συνήθως ευκολοποιούν τα πράγματα για τους αρχάριους μαθητές.


Προσωπικά, για την προφορά ολόκληρων φράσεων, χρησιμοποιώ επίσης το παρακάτω site: [www.acapela-group.com](http://www.acapela-group.com) Έχει πραγματικές και τεχνητές φωνές, με διαφορετικές προφορές, και εκεί φαίνεται καλύτερα πώς ακούγονται οι λέξεις στην κανονική ομιλία, κάτι που ένα λεξικό δεν μπορεί να αποδώσει.


Επίσης, μία μικρή παρατήρηση: γενικά οι αναρτήσεις με κεφαλαία στο ίντερνετ θεωρούνται το αντίστοιχο του "βάζω τις φωνές", κατά συνέπεια μία μίξη πεζών και κεφαλαίων μπορεί να αποφύγει πιθανές παρεξηγήσεις. :) Για την λεκτικού μπορείτε να δείτε [Synedit του](http://synedit.sourceforge.net/) πηγαίου κώδικα για το highlighter Javascript. Ένα highlighter στο πλαίσιο Synedit είναι μια λεκτικού με ειδικούς γάντζους για την παροχή τονίζοντας στο συστατικό editor. Κοπή αυτά τα αγκίστρια και να πάρει ένα απλό λεκτικού είναι ένα ασήμαντο έργο.


Επίσης Synedit συντάκτης μπορεί να έρθει βολικό όταν μαθαίνουν πώς να οικοδομήσουμε lexers καθώς θα είναι μια βοήθεια για την οπτική δοκιμή lexers σας σε πραγματικό χρόνο. Μπορείτε να δείτε τις επιδείξεις ή να ζητήσει από τη λίστα αλληλογραφίας για περισσότερα. Πιστεύω ότι ήθελε ένα άρθρο στο σάντουιτς για να είναι σωστή η πρόταση: The man eats a/the sandwich. Επειδή δεν έβαλες άρθρο, σου πρότεινε ως πιο κοντινή λύση το sandwiches, το οποίο στέκει και χωρίς άρθρο. Πιστεύω ότι και οι δύο τύποι θα είναι ήδη αποδεκτοί, αλλά περίμενε μήπως το επιβεβαιώσει και κάποιος μοντερέιτορ. Στο μεταξύ άμα σου ξανατύχει αυτή η άσκηση δοκίμασε με άρθρο και ενικό να δεις τι θα γίνει. <p><strong> συνολικά: </strong></p><p>τόσο το put όσο και το post μπορούν να χρησιμοποιηθούν για τη δημιουργία.</p><p>πρέπει να ρωτήσετε "σε τι εκτελείτε τη δράση;" να διακρίνετε τι πρέπει να χρησιμοποιείτε. ας υποθέσουμε ότι σχεδιάζετε ένα api για να κάνετε ερωτήσεις. εάν θέλετε να χρησιμοποιήσετε το post τότε θα το κάνετε σε μια λίστα ερωτήσεων. εάν θέλετε να χρησιμοποιήσετε το put τότε θα το κάνετε αυτό σε μια συγκεκριμένη ερώτηση.</p><p><strong> μεγάλη και οι δύο μπορούν να χρησιμοποιηθούν, έτσι ποιο πρέπει να χρησιμοποιήσω στο restful σχεδιασμό μου: </strong></p><p>δεν χρειάζεται να υποστηρίζετε τόσο το put όσο και το post.</p><p>το οποίο χρησιμοποιείται παραμένει στο χέρι σας. αλλά θυμηθείτε να χρησιμοποιήσετε το σωστό, ανάλογα με το αντικείμενο που αναφέρετε στο αίτημα.</p><p>μερικές σκέψεις:</p><ul> <li>ονομάζετε ρητά τα αντικείμενα url που δημιουργείτε ή αφήστε το διακομιστή να αποφασίσει; εάν τους ονομάσετε τότε χρησιμοποιήστε put. εάν αφήσετε τον διακομιστή να αποφασίσει στη συνέχεια, χρησιμοποιήστε το post.</li> <li>put είναι idempotent, οπότε αν put ένα αντικείμενο δύο φορές, δεν έχει καμία επίδραση. αυτή είναι μια ιδιοκτησία της νίκαιας, οπότε θα μπορούσα να χρησιμοποιήσω το put όταν ήταν δυνατόν.</li> <li>μπορείτε να ενημερώσετε ή να δημιουργήσετε έναν πόρο με put με την ίδια διεύθυνση url αντικειμένου</li> <li>με το post μπορείτε να έχετε 2 αιτήματα που εισέρχονται ταυτόχρονα για τροποποιήσεις σε μια διεύθυνση url και μπορεί να ενημερώσουν διαφορετικά μέρη του αντικειμένου.</li> </ul><p><strong> ένα παράδειγμα: </strong></p><p> <a href="https://stackoverflow.com/questions/256349/what-are-the-best-common-restful-url-verbs-and-actions/256359#256359">έγραψα τα εξής ως μέρος μιας άλλης απάντησης σχετικά με το so</a> :</p><blockquote> <p><strong> post: </strong></p> <p>χρησιμοποιείται για την τροποποίηση και την ενημέρωση ενός πόρου</p> <pre><code>post /questions/&lt;existing\_question&gt; http/1.1 host: www.example.com/ </code></pre> <p>σημειώστε ότι το ακόλουθο είναι ένα σφάλμα:</p> <pre><code>post /questions/&lt;new\_question&gt; http/1.1 host: www.example.com/ </code></pre> <p>εάν η διεύθυνση url δεν έχει δημιουργηθεί ακόμη, δεν θα πρέπει να χρησιμοποιείτε το post για να το δημιουργήσετε ενώ καθορίζετε το όνομα. αυτό θα πρέπει να έχει ως αποτέλεσμα ένα σφάλμα 'πόρος δεν βρέθηκε' επειδή το <code>&lt;new\_question&gt;</code> δεν υπάρχει ακόμα. πρέπει πρώτα να τοποθετήσετε τον πόρο <code>&lt;new\_question&gt;</code> στον διακομιστή.</p> <p>θα μπορούσατε όμως να κάνετε κάτι τέτοιο για να δημιουργήσετε πόρους χρησιμοποιώντας post:</p> <pre><code>post /questions http/1.1 host: www.example.com/ </code></pre> <p>σημειώστε ότι σε αυτήν την περίπτωση το όνομα του πόρου δεν έχει καθοριστεί, η διαδρομή url των νέων αντικειμένων θα σας επιστραφεί.</p> <p><strong> σημειωση: </strong></p> <p>χρησιμοποιείται για τη δημιουργία ενός πόρου ή για την αντικατάστασή του. ενώ ορίσετε τους πόρους νέα διεύθυνση url.</p> <p>για έναν νέο πόρο:</p> <pre><code>put /questions/&lt;new\_question&gt; http/1.1 host: www.example.com/ </code></pre> <p>για να αντικαταστήσετε μια υπάρχουσα πηγή:</p> <pre><code>put /questions/&lt;existing\_question&gt; http/1.1 host: www.example.com/ </code></pre></blockquote> SetForegroundWindow υποτίθεται ότι θα κλέψει την εστίαση και υπάρχουν ορισμένες περιπτώσεις όπου θα αποτύχει.



> 
> Η λειτουργία SetForegroundWindow βάζει το νήμα που δημιούργησε το καθορισμένο παράθυρο στο προσκήνιο και ενεργοποιεί το παράθυρο. εισαγωγής πληκτρολογίου κατευθύνεται προς το παράθυρο
> 
> 
> 


Δοκιμάστε τη λήψη της εστίασης με [SetCapture](http://msdn.microsoft.com/en-us/library/ms646262.aspx) πριν από την πραγματοποίηση της κλήσης. Επίσης εξετάσουμε διαφορετικούς τρόπους να φέρει το παράθυρο προς τα εμπρός: SetForeGroundWindow, SetActiveWindow, ακόμη και προσομοίωση ένα κλικ του ποντικιού μπορείτε να το κάνετε αυτό. [Κόκκινο-μαύρο](http://en.wikipedia.org/wiki/Red-black_tree) είναι καλύτερο από το AVL για την εισαγωγή-βαριές εφαρμογές. Αν έχετε προβλέψει σχετικά ομοιόμορφη εμφάνιση-up, στη συνέχεια, κόκκινο-μαύρο είναι ο τρόπος να πάει. Αν έχετε προβλέψει μια σχετικά ισορροπημένη ματιά-up, όπου θεωρείται πιο πρόσφατα στοιχεία είναι πιο πιθανό να είναι ορατό και πάλι, θέλετε να χρησιμοποιήσετε [τα δέντρα άτεχνος](http://en.wikipedia.org/wiki/Splay_tree) . Σε ένα καθαρό λειτουργικό στιλ, δεν πρόκειται ποτέ να αντικαταστήσετε κάθε μεταβλητή.


Μια αναλογία θα ήταν να χωροχρόνο στη φυσική. Αν θεωρείτε τον κόσμο ως 3δ, τότε τα αντικείμενα δεν έχουν σταθερές θέσεις - κινούνται πάροδο του χρόνου. Για να φέρει τα μαθηματικά για να φέρουν στο φυσικό κόσμο, ως εκ τούτου, να προσθέσετε μια διάσταση χρόνου και να εξετάσει τις τιμές των διαφόρων ιδιοτήτων σε συγκεκριμένες χρονικές στιγμές. Με τον τρόπο αυτό, έχουμε κάνει τα αντικείμενα της μελέτης μας σε σταθερές. Ομοίως, στον προγραμματισμό, υπάρχει μια εννοιολογική απλότητα που θα είχε από την εργασία με αμετάβλητες τιμές. Αντικείμενα με μια ταυτότητα στον πραγματικό κόσμο μπορεί να μοντελοποιηθεί ως μία ακολουθία αναλλοίωτες αξίες (τα κράτη του αντικειμένου στην αύξηση φορές) και όχι ως μια ενιαία τιμή που αλλάζει.


Φυσικά οι λεπτομέρειες για το πώς να συνδέσει την ακολουθία των τιμών σε μια «ταυτότητα αντικειμένου» μπορεί να είναι λίγο τριχωτό. Haskell έχει [Μονάδες](http://en.wikipedia.org/wiki/Monad_(functional_programming)) που θα αφήσει το μοντέλο κράτους. [Λειτουργική Αντιδραστική Προγραμματισμός](http://en.wikipedia.org/wiki/Functional_reactive_programming) είναι μια πιο κυριολεκτική προσπάθεια μοντελοποίηση αντικειμένων στον κόσμο με καθαρό λειτουργικό ενημερώσεις, που πιστεύω ότι είναι μια πολλά υποσχόμενη κατεύθυνση για τον προγραμματισμό.


Θα σημειωθεί ότι Clojure, σε αντίθεση με Haskell, δεν είναι καθαρό, και μπορείτε να ενημερώσετε τις μεταβλητές, όπως προτείνατε. Αν κάνετε ενημέρωση μόνο μερικές μεταβλητές σε υψηλό επίπεδο, θα εξακολουθούν πιθανώς να απολαύσουν πολλές από τις εννοιολογικές οφέλη απλότητα του λειτουργικού προγραμματισμού.