πώς να προφέρει transitory;
tran-si-to-ry
<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> Νομίζω ότι μπορείτε να αποφύγετε μια δεσμευτούν σενάριο γάντζο σε αυτή την περίπτωση με τη χρήση του `svn:eol-style`ακινήτου, όπως περιγράφεται στο SVNBook:


* [Στο τέλος της γραμμής Ακολουθίες χαρακτήρων](http://svnbook.red-bean.com/en/1.7/svn.advanced.props.file-portability.html#svn.advanced.props.special.eol-style)
* [Ιδιότητες Subversion](http://svnbook.red-bean.com/en/1.7/svn.ref.properties.html)


Με αυτό τον τρόπο SVN να ανησυχείτε για καταλήξεις γραμμή σας για σας.


Καλή τύχη! Υποθέτω ότι προσπαθείτε να κάνετε το περιβάλλον εντολή ως επιεικής δυνατόν. Αν αυτή είναι η περίπτωση, σας προτείνω να χρησιμοποιήσετε έναν αλγόριθμο παρόμοιο με αυτό:


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


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



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

```

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


EDIT: Είναι λίγο ασυνήθιστο να καλέσετε \_endthreadex, κανονικά θα αφήσουμε την επιστροφή διαδικασία εκκίνησης το νήμα και το χρόνο εκτέλεσης καλεί \_endthreadex για εσάς. Μπορεί να χρειαστεί να εξηγήσετε λίγο περισσότερο, αυτό που προσπαθούμε να κάνουμε για να μπορέσουμε να βοηθήσουμε. Μπορείτε να χρησιμοποιήσετε τη μέθοδο TransferText:



```
DoCmd.TransferText acExportDelim,,"myQuery", "D:\temp\myquery.txt"

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


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


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


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


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


Επίσης, μία μικρή παρατήρηση: γενικά οι αναρτήσεις με κεφαλαία στο ίντερνετ θεωρούνται το αντίστοιχο του "βάζω τις φωνές", κατά συνέπεια μία μίξη πεζών και κεφαλαίων μπορεί να αποφύγει πιθανές παρεξηγήσεις. :) **Εκφράσεις XPath δεν μπορούν να αξιολογηθούν agaist μη wellformed έγγραφο XML** , η οποία είναι ακριβώς η περιγραφόμενη περίπτωση.


Είναι δυνατόν να γίνει αυτό σε δύο αλυσοδεμένος στάδια, το πρώτο εκ των οποίων είναι να μετατρέψει τον κώδικα HTML για να wellformed XML και στη συνέχεια το δεύτερο - να εφαρμόσει την έκφραση XPath.


Ως εκ τούτου, το ερώτημα θα μπορούσε να αναφέρεται ακριβέστερα ως «Πώς να μετατρέψετε HTML σε XML, έτσι ώστε οι εκφράσεις XPath μπορούν να αξιολογούνται με βάση το».


Εδώ είναι δύο καλά εργαλεία:


1. **[TagSoup](http://home.ccil.org/~cowan/XML/tagsoup/) , ένα πρόγραμμα ανοιχτού κώδικα** , είναι ένα Java και SAX - based εργαλείο, που αναπτύχθηκε από [**τον John Cowan**](http://home.ccil.org/~cowan/) . Αυτό είναι ένα SAX-συμβατό πρόγραμμα ανάλυσης γραμμένο σε Java που, αντί για την ανάλυση καλοσχηματισμένα ή έγκυρη XML, αναλύει HTML καθώς βρίσκεται σε άγρια κατάσταση: φτωχή, άσχημη και βίαιη, αν και αρκετά συχνά μακριά από σύντομη. TagSoup είναι σχεδιασμένο για ανθρώπους που έχουν να επεξεργάζονται αυτά τα πράγματα χρησιμοποιώντας κάποια ομοιότητα ενός ορθολογικού σχεδιασμού της εφαρμογής. Παρέχοντας μια διεπαφή SAX, επιτρέπει τυποποιημένα εργαλεία XML για να εφαρμοστεί ακόμη και το χειρότερο HTML. TagSoup περιλαμβάνει επίσης έναν επεξεργαστή γραμμής εντολών που διαβάζει αρχεία HTML και μπορεί να παράγει είτε καθαρά HTML ή καλοσχηματισμένα XML που είναι μια στενή προσέγγιση με XHTML. Taggle είναι ένα εμπορικό λιμάνι C ++ της TagSoup.
2. **[SgmlReader](http://code.msdn.microsoft.com/SgmlReader)** είναι ένα εργαλείο που αναπτύχθηκε από τη Microsoft για [**Chris Lovett**](http://www.lovettsoftware.com/) . SgmlReader είναι ένα XmlReader API σε οποιοδήποτε έγγραφο SGML (συμπεριλαμβανομένων ενσωματωμένη υποστήριξη για HTML). Ένα βοηθητικό πρόγραμμα γραμμής εντολών Παρέχεται επίσης η οποία εξάγει το καλά σχηματισμένες αποτέλεσμα XML. Κατεβάστε το αρχείο zip, συμπεριλαμβανομένης της αυτόνομο εκτελέσιμο και τον πλήρη πηγαίο κώδικα: [**SgmlReader.zip**](http://code.msdn.microsoft.com/SgmlReader/Release/ProjectReleases.aspx?ReleaseId=1442)
3. **[Το καθαρό XSLT 2.0 Αναλυτής της HTML](http://www.dcarlisle.demon.co.uk/htmlparse.xsl)** γραμμένο από [**τον David Καρλάιλ**](http://dpcarlisle.blogspot.com/) . Η ανάγνωση του κώδικα θα είναι μια μεγάλη άσκηση μάθησης για τον καθένα από εμάς.


Από την περιγραφή:


«D: htmlparse (συμβολοσειρά) δ: htmlparse (συμβολοσειρά, namespace, html-mode)


Η μορφή ένα επιχείρημα είναι ισοδύναμη με) δ: htmlparse (συμβολοσειρά, ' <http://ww.w3.org/1999/xhtml> ', true ()))


Αναλύει τη συμβολοσειρά ως HTML ή / και XML χρησιμοποιώντας κάποια ενσωματωμένη heuristics να) ελέγχου σιωπηρή άνοιγμα και το κλείσιμο των στοιχείων.


Δεν έχει πλήρη γνώση της HTML DTD, αλλά δεν έχει τον πλήρη κατάλογο των κενών στοιχεία και πλήρη κατάλογο των ορισμών οντότητας. Οι HTML οντότητες, και αναφορές χαρακτήρα δεκαδικό και δεκαεξαδικό όλες δεκτές. Οι σημείωση html-φορείς αναγνωρίζεται ακόμα κι αν html-mode = false ().


Τα ονόματα των στοιχείων lowercased (αν html-mode είναι αλήθεια ()) και τοποθετείται στο χώρο ονομάτων που καθορίζεται από την παράμετρο ονομάτων (που μπορεί να είναι «» για να υποδηλώσει όχι-ονομάτων, εκτός αν η είσοδος έχει explict δηλώσεις namespace, οπότε αυτά θα τιμηθεί .


Τα ονόματα ιδιοτήτων lowercased αν html-mode = true ()»


Διαβάστε μια πιο λεπτομερή περιγραφή [**εδώ**](http://www.dcarlisle.demon.co.uk/htmlparse.xsl) .