πώς να προφέρει plagiarize;
pla-gia-rize
<p>δεν περιγράφετε κλίμακα για να ταιριάζει. περιγράφεις την εμφάνιση. (έχω επεξεργαστεί την ερώτησή σας σε αυτό το θέμα.) η υποβολή γίνεται όσο το δυνατόν μεγαλύτερη, διατηρώντας παράλληλα την αναλογία της και προσαρμόζοντας εξ ολοκλήρου μέσα στον γονέα της.</p><p>τέλος πάντων, μπορείτε να το κάνετε αυτό με αυτόματη διάταξη. μπορείτε να το κάνετε εξ ολοκλήρου στο ib από xcode 5.1. ας ξεκινήσουμε με μερικές προβολές:</p><p><img src="https://i.stack.imgur.com/hhdxr.png" alt="some views"></p><p>η ανοιχτή πράσινη όψη έχει αναλογία διαστάσεων 4: 1. η σκούρα πράσινη προβολή έχει αναλογία διαστάσεων 1: 4. πρόκειται να δημιουργήσω περιορισμούς έτσι ώστε η μπλε όψη να γεμίζει το πάνω μισό της οθόνης, η ροζ όψη να γεμίζει το κάτω μισό της οθόνης και κάθε πράσινη προβολή να επεκτείνεται όσο το δυνατόν περισσότερο, διατηρώντας παράλληλα τον λόγο διαστάσεων και προσαρμόζοντας την δοχείο.</p><p>κατ 'αρχάς, θα δημιουργήσω περιορισμούς και στις τέσσερις πλευρές της μπλε όψης. θα το περάσω στον κοντινότερο γείτονα σε κάθε άκρη, με απόσταση 0. φροντίζω να απενεργοποιήσω τα περιθώρια:</p><p><img src="https://i.stack.imgur.com/yo2jf.gif" alt="blue constraints"></p><p>σημειώστε ότι το i <strong> δεν ενημερώνει </strong> το πλαίσιο ακόμα. θεωρώ ότι είναι ευκολότερο να αφήνετε χώρο μεταξύ των απόψεων κατά τη δημιουργία περιορισμών και απλά να ορίσετε τις σταθερές στο 0 (ή οτιδήποτε άλλο) με το χέρι.</p><p>στη συνέχεια, κλίνω το αριστερό, το κάτω και το δεξί άκρο της ροζ εικόνας στον πλησιέστερο γείτονά της. δεν χρειάζεται να ρυθμίσω έναν ανώτατο περιορισμό edge επειδή η άνω άκρη του είναι ήδη περιορισμένη στο κάτω άκρο της μπλε όψης.</p><p><img src="https://i.stack.imgur.com/spins.gif" alt="pink constraints"></p><p>χρειάζομαι επίσης έναν περιορισμό ισοδύναμων μεταξύ των ροζ και μπλε απόψεων. αυτό θα τους κάνει να γεμίσουν το ήμισυ της οθόνης:</p><p><img src="https://i.stack.imgur.com/oelrv.gif" alt="enter image description here"></p><p>αν λέω στο xcode να ενημερώσει όλα τα πλαίσια τώρα, έχω αυτό:</p><p><img src="https://i.stack.imgur.com/9fbwl.png" alt="containers laid out"></p><p>έτσι, οι περιορισμοί που έχω δημιουργήσει μέχρι τώρα είναι σωστοί. ανεξάρτητα από αυτό και να αρχίσετε να εργάζεστε με την ανοιχτό πράσινη όψη.</p><p>η τοποθέτηση σε πτυχές της ανοιχτής πράσινης προβολής απαιτεί πέντε περιορισμούς:</p><ul> <li>απαιτούμενος λόγος αναλογίας διαστάσεων προτεραιότητας στην ανοιχτό πράσινη όψη. μπορείτε να δημιουργήσετε αυτόν τον περιορισμό σε xib ή storyboard με xcode 5.1 ή νεότερη έκδοση.</li> <li>ο περιορισμός της απαιτούμενης προτεραιότητας που περιορίζει το πλάτος της ανοιχτό πράσινης όψης να είναι μικρότερο ή ίσο με το πλάτος του δοχείου.</li> <li>ένας περιορισμός υψηλής προτεραιότητας που καθορίζει το πλάτος της ανοιχτής πράσινης όψης να είναι ίσο με το πλάτος του δοχείου.</li> <li>ο περιορισμός της απαιτούμενης προτεραιότητας που περιορίζει το ύψος της ανοιχτής πράσινης όψης να είναι μικρότερο ή ίσο με το ύψος του δοχείου.</li> <li>ένας περιορισμός υψηλής προτεραιότητας που θέτει το ύψος της ανοιχτής πράσινης όψης να είναι ίσο με το ύψος του δοχείου.</li> </ul><p>ας εξετάσουμε τους δύο περιορισμούς πλάτους. ο περιορισμός που δεν είναι ο ίδιος, είναι επαρκής για να καθορίσει το πλάτος της ανοιχτής πράσινης όψης. πολλά πλάτη θα ταιριάζουν με τον περιορισμό. δεδομένου ότι υπάρχει ασάφεια, το autolayout θα προσπαθήσει να επιλέξει μια λύση που ελαχιστοποιεί το σφάλμα στον άλλο περιορισμό (υψηλής προτεραιότητας αλλά όχι υποχρεωτικό). η ελαχιστοποίηση του σφάλματος σημαίνει ότι το πλάτος είναι όσο το δυνατόν πλησιέστερο στο πλάτος του κιβωτίου, ενώ δεν παραβιάζεται ο απαιτούμενος περιορισμός που δεν είναι μικρός ή ίσος.</p><p>το ίδιο συμβαίνει και με τον περιορισμό του ύψους. και επειδή απαιτείται επίσης ο περιορισμός της αναλογίας πλευρών, μπορεί να μεγιστοποιηθεί το μέγεθος του υποβιβασμού κατά μήκος ενός άξονα (εκτός αν ο περιέκτης έχει την ίδια αναλογία διαστάσεων με την υποέκθεση).</p><p>έτσι πρώτα δημιουργώ τον περιορισμό της αναλογίας διαστάσεων:</p><p><img src="https://i.stack.imgur.com/4ihow.gif" alt="top aspect"></p><p>στη συνέχεια, δημιουργώ ίσους περιορισμούς πλάτους και ύψους με το δοχείο:</p><p><img src="https://i.stack.imgur.com/vycag.gif" alt="top equal size"></p><p>πρέπει να επεξεργαστώ αυτούς τους περιορισμούς ώστε να είναι λιγότερο από-ή-ίσους περιορισμούς:</p><p><img src="https://i.stack.imgur.com/bc7rh.gif" alt="top less than or equal size"></p><p>στη συνέχεια πρέπει να δημιουργήσω ένα άλλο σύνολο ίσων περιορισμών πλάτους και ύψους με το δοχείο:</p><p><img src="https://i.stack.imgur.com/u9hkm.gif" alt="top equal size again"></p><p>και πρέπει να θέσω τους νέους αυτούς περιορισμούς λιγότερο από την απαιτούμενη προτεραιότητα:</p><p><img src="https://i.stack.imgur.com/i7dte.gif" alt="top equal not required"></p><p>τελικά, ζητήσατε να είναι κεντραρισμένο το υποπεριοχή στο δοχείο του, οπότε θα ρυθμίσω αυτούς τους περιορισμούς:</p><p><img src="https://i.stack.imgur.com/4dtr1.gif" alt="top centered"></p><p>τώρα, για να δοκιμάσετε, θα επιλέξω τον ελεγκτή προβολής και θα ζητήσω από το xcode να ενημερώσει όλα τα πλαίσια. αυτό έχω:</p><p><img src="https://i.stack.imgur.com/kmtoy.png" alt="incorrect top layout"></p><p>ωχ! το subview έχει επεκταθεί για να γεμίσει πλήρως το δοχείο του. αν το επιλέξω, μπορώ να δω ότι στην πραγματικότητα διατηρείται η αναλογία του, αλλά κάνει μια πτυχή - <strong> συμπληρώστε </strong> αντί για μια πτυχή - <strong> ταιριάζει </strong>.</p><p>το πρόβλημα είναι ότι σε έναν λιγότερο από ή ίσο περιορισμό, έχει σημασία ποια είναι η άποψη σε κάθε άκρο του περιορισμού, και το xcode έχει δημιουργήσει τον περιορισμό απέναντι από την προσδοκία μου. θα μπορούσα να επιλέξω καθέναν από τους δύο περιορισμούς και να αντιστρέψω το πρώτο και δεύτερο στοιχείο. αντ 'αυτού, θα επιλέξω μόνο το subview και θα αλλάξω τους περιορισμούς ώστε να είναι μεγαλύτερο από-ή-ίσο:</p><p><img src="https://i.stack.imgur.com/mh4xm.gif" alt="fix top constraints"></p><p>το xcode ενημερώνει τη διάταξη:</p><p><img src="https://i.stack.imgur.com/srvqg.png" alt="correct top layout"></p><p>τώρα κάνω όλα τα ίδια πράγματα με τη σκούρα πράσινη θέα στο κάτω μέρος. πρέπει να σιγουρευτώ ότι η αναλογία πλευρών είναι 1: 4 (το xcode το μείωσε με περίεργο τρόπο αφού δεν είχε περιορισμούς). δεν θα δείξω τα βήματα ξανά, αφού είναι τα ίδια. εδώ είναι το αποτέλεσμα:</p><p><img src="https://i.stack.imgur.com/kdj1r.png" alt="correct top and bottom layout"></p><p>τώρα μπορώ να το εκτελέσω στον προσομοιωτή iphone 4s, ο οποίος έχει διαφορετικό μέγεθος οθόνης από τον ib που χρησιμοποιείται και δοκιμή περιστροφής:</p><p><img src="https://i.stack.imgur.com/hpa6w.gif" alt="iphone 4s test"></p><p>και μπορώ να δοκιμάσω στο iphone 6 προσομοιωτή:</p><p><img src="https://i.stack.imgur.com/otbq9.gif" alt="iphone 6 test"></p><p>έχω ανεβάσει τον τελικό πίνακα ιστορικού μου στο <a href="https://gist.github.com/mayoff/d9320088ab4025c95e40">αυτό το gist</a> για την ευκολία σας.</p> Η σύντομη απάντηση είναι: Να είναι φοβερό.


Εάν το λογισμικό σας αντιμετωπίζει πραγματικά ένα σημείο του πόνου και αντιμετωπίζει καλά, οι άνθρωποι θα έρθουν να με δική τους (υποθέτοντας ένα λογικό ποσό της προώθησης από την πλευρά σας) μέσω SourceForge / GitHub / κλπ., Το Google, και από στόμα σε στόμα. Εάν προσελκύσει μια κρίσιμη μάζα των ανθρώπων που έχουν ανάγκη ό, τι κάνει το λογισμικό σας και πρέπει να έχει νέα χαρακτηριστικά, συνεργάτες θα έρθουν.


Επίσης: Παραμονή ενεργό. Αν δεν έχετε ενημερώσει τον κωδικό σας σε 6 μήνες, ή αν η σελίδα σας στο SourceForge λέει το λογισμικό σας έχει στην Alpha για ένα χρόνο, πολλοί άνθρωποι πρόκειται να το αγνοήσετε και να προχωρήσουμε στο επόμενο αποτέλεσμα αναζήτησης. Πάρτε το λογισμικό για το πού είναι έτοιμο για τους άλλους να χρησιμοποιούν, και να το διατηρεί.


Το πράγμα για Open Source είναι ότι πρέπει πραγματικά να αναπτυχθούν οργανικά - είναι να πληρωθούν κανείς, κανείς δεν είναι υπό την απειλή της απόλυσης - οι άνθρωποι πρέπει να *νοιάζονται για το λογισμικό σας* για να αυξηθεί πέρα από ό, τι μπορείτε να κάνετε. Δεν πρόκειται ποτέ να πάρει συνεργάτες (ή τέλος πάντων, καλές) από την προσέλκυση τους - μόνο κάνοντας κάτι που ένας καλός προγραμματιστής θα βρείτε ενδιαφέρον να εργαστεί με. Θα ήθελα να μείνω μακριά από αυτό. Είναι ένα πολύ κακό παράδειγμα. Δεν καταλαβαίνω γιατί η Microsoft έθεσε στο διαδίκτυο. Πρώτα απ 'όλα για τους λόγους ασφαλείας, αλλά ο κώδικας είναι πολύ δύσκολο να διαβάσει για τους νέους σχεδιαστές. Χρησιμοποιώ asp.net MVC από την προεπισκόπηση 2, αλλά είναι ακόμα πολύ δύσκολο να διαβάσει αυτόν τον κωδικό, γιατί είναι κακό. Πολλές καλύτερα παραδείγματα που βρέθηκαν ή που χρησιμοποιούνται εδώ στοίβα υπερχείλιση. Προσωπικά προτείνω να παρακολουθείτε τα screencasts στην ιστοσελίδα Rob Connery ή για [Autumnofagile](http://www.autumnofagile.net)


[Karl Seguin πήρε το χρόνο για να συνοψίσουμε](http://codebetter.com/blogs/karlseguin/archive/2008/12/15/oxite-oh-dear-lord-why.aspx)


[Rob Κόνερι εργάζεται για τη Microsoft και δεν του αρέσει, είτε](http://blog.wekeroad.com/blog/some-thoughts-on-oxite/)


[Μια νέα λέξη είναι το όνομά του, αφού: Oxitis](http://frickinsweet.com/ryanlanciaux.com/post/Do-you-have-this-condition.aspx) Ήρθα προς την αντίθετη κατεύθυνση, από ένα φόντο EE πήρα στον προγραμματισμό και πήγε πίσω στο σχολείο για να πάρει ένα βαθμό CS. Θα ήθελα να συστήσω ξεκινάμε με κάτι που συνδυάζει και τα δύο, προκειμένου να καταστεί η μετάβαση λίγο πιο ομαλή. Υπάρχουν τόνοι των χομπίστα βιβλία όπως [γίνουν τα πράγματα Talk](http://rads.stackoverflow.com/amzn/click/0596510519) , και [Hardware Hacking έργα](http://rads.stackoverflow.com/amzn/click/0596003145) που κάνουν αυτό το πιο εύκολο. Θα ήθελα να συστήσω επίσης τη [Evil Genius](http://rads.stackoverflow.com/amzn/click/0071448810) σειρά από βιβλία σχετικά με την ηλεκτρονική και ρομποτική κυκλώματα.


Charles Petzold του [Κώδικα: Η κρυμμένη Γλώσσα Υλικό υπολογιστών και λογισμικού](http://www.charlespetzold.com/code/index.html) είναι ένα άλλο βιβλίο που κάνει σπουδαία δουλειά της σύνδεσης εννοιών του υλικού και του λογισμικού μαζί. Δεν μπορώ να το συστήσω ιδιαίτερα αρκετό, αν και μπορεί να λαμβάνει μια αντίθετη προσέγγιση από ό, τι είστε μετά. Ξεκινά με απλούς διακόπτες και τρανζίστορ και χτίζει μέχρι να δείξει πώς από όπου και αν συνδυάζονται για να κάνουν ένα προγραμματιζόμενο κύκλωμα. Από προεπιλογή, **πάντα απλά να δημιουργήσετε νέο φάκελο** μέσα στο ίδιο έργο


* Θα πάρετε μόνο τη συναρμολόγηση (χωρίς επιπλέον γυμναστικής ILMerge)
* Είναι πιο εύκολο να θολώνω (επειδή θα έχετε λιγότερες δημόσιες τύπους και μεθόδους, ιδανικά καθόλου)


Ο διαχωρισμός πηγαίο κώδικα σας σε πολλά έργα νόημα μόνο εάν ...


* Έχετε κάποια τμήματα του πηγαίου κώδικα που αποτελούν μέρος του προγράμματος, αλλά όχι να αναπτυχθούν από προεπιλογή ή σε όλα (δοκιμές μονάδα, επιπλέον plugins κλπ)
* Περισσότερα προγραμματιστές που εμπλέκονται και θέλετε να αντιμετωπίζουν την εργασία τους ως αναλώσιμο μαύρο κουτί. (Όχι πολύ συνιστάται)
* Εάν μπορείτε να διαχωρίζονται σαφώς το έργο σας σε απομονώνονται στρώματα / ενότητες και θέλετε να βεβαιωθείτε ότι δεν μπορούν cross-καταναλώνουν **εσωτερικά** μέλη. (επίσης δεν συνιστάται, διότι θα πρέπει να αποφασίσει ποια πλευρά είναι το πιο σημαντικό)


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


Διακλάδωση και tagging είναι ουσιαστικά η ίδια. Απλά αντιγράψτε ολόκληρο το φάκελο στο χώρο αποθήκευσης κάπου αλλού στο αποθετήριο χρησιμοποιώντας την `svn copy`εντολή.


Βασικά, αυτό σημαίνει ότι είναι κατά συνθήκη τι αντιγραφή ενός φακέλου σημαίνει - είτε πρόκειται για ένα αντίγραφο ασφαλείας, ετικέτα, υποκατάστημα ή whater. Ανάλογα με το πώς θέλετε να σκεφτείτε για τα πράγματα (συνήθως ανάλογα με το ποιο εργαλείο SCM έχετε χρησιμοποιήσει στο παρελθόν) θα πρέπει να δημιουργηθεί μια δομή φάκελο μέσα αποθήκευσης σας για να υποστηρίξει το στυλ σας.


Κοινή στυλ είναι να έχουμε ένα σωρό φακέλους στην κορυφή του χώρου αποθήκευσης σας ονομάζεται `tags`, `branches`, `trunk`, κλπ - που σας επιτρέπει να αντιγράψετε όλη σας `trunk`(ή υπο-ομάδες) στους `tags`ή / και `branches`φακέλους. Αν έχετε περισσότερα από ένα έργο μπορεί να θέλετε να αναπαράγουν αυτό το είδος της δομής κάτω από κάθε έργου:


Μπορεί να πάρει λίγο χρόνο για να συνηθίσουν στην ιδέα - αλλά δουλεύει - απλά φροντίστε να (και την ομάδα σας) είναι σαφείς σχετικά με τις συμβάσεις που πρόκειται να χρησιμοποιήσετε. Είναι επίσης μια καλή ιδέα να έχουμε μια καλή σύμβαση ονοματοδοσίας - κάτι που εξηγεί γιατί το υποκατάστημα / tag έγινε και κατά πόσο εξακολουθεί να είναι σκόπιμο - να εξετάσει τρόπους κλάδους αρχειοθέτησης που είναι παρωχημένες. Συμφωνώ ότι το φροντιστήριο είναι εσφαλμένη, ρίχνει τυχαία, ανεξήγητη κώδικα ακριβώς μπροστά από τα μάτια σας. Εισάγει έννοιες όπως το απόθεμα αυτόματης και προεπιλογές του χρήστη χωρίς να εξηγήσει γιατί θα τους θέλουν ( «αυτόματης κυκλοφορίας στην πισίνα για τη διαχείριση της μνήμης» δεν είναι καθόλου μια εξήγηση).


Εχοντας πεί αυτό…



> 
> Βασικά το μόνο που θέλω να κάνετε είναι να γράψετε εφαρμογές για το κακάο, χωρίς να χρειάζεται να μάθουν ObjC.
> 
> 
> 


Φοβάμαι ότι προς το παρόν, που *θα* χρειαστείτε μια βασική κατανόηση της ObjC, προκειμένου να επωφεληθεί από οποιαδήποτε γλώσσα που χρησιμοποιεί το κακάο. PyObjC, RubyCocoa, Nu και άλλοι είναι κόγχες, στην καλύτερη περίπτωση, και όλοι τους είχαν αναπτυχθεί από ανθρώπους στενά εξοικειωμένοι με το INS και outs της ObjC *και* κακάο.


Προς το παρόν, θα ωφεληθεί περισσότερο αν δείτε ρεαλιστικά αυτές τις γέφυρες ως χρήσιμο όταν γλώσσες προγραμματισμού πραγματικά λάμπει, αντί να προσπαθεί να χτίσει μια ολόκληρη εφαρμογή τους. Αν και αυτό *έχει* γίνει (με LimeChat, είμαι χρησιμοποιώντας ένα RubyCocoa-γραπτή app τώρα), είναι σπάνια και κατά πάσα πιθανότητα θα είναι για λίγο. Όχι, αυτό που κάνετε είναι μια χαρά. Μην αφήσετε αυτούς τους ανθρώπους να σας μπερδέψει.


Εάν έχετε γράψει τις διαδικτυακές υπηρεσίες με .net, στη συνέχεια, τα πληρεξούσια αναφοράς που παράγεται από .net πρόκειται να είναι αρκετά κατάλληλο. Η κατάσταση που περιγράφει (όπου θα είναι και παραγωγός και καταναλωτής) είναι η ιδανική κατάσταση.


Αν χρειαστεί να συνδεθείτε σε υπηρεσίες web που είναι *άγνωστο* κατά τη μεταγλώττιση, τότε θα θέλετε μια πιο δυναμική προσέγγιση, όπου μπορείτε να συναγάγει το «σχήμα» της υπηρεσίας web.


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


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


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


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


1. Πάρτε μια λίστα με όλα τα αρχεία
2. Ελέγξτε για «απαιτείται» αρχεία


Εσείς απλά θα πρέπει να προσθέσετε στο λεξικό σας μια λίστα με τα απαραίτητα αρχεία:



```
checker = {
  ...
  'required': ['file', 'list', 'for_required']
}

```

Όσον αφορά την ύπαρξη ένας καλύτερος / επεκτάσιμο τρόπο για να το κάνετε αυτό; Δεν είμαι ακριβώς σίγουρος. Θα μπορούσα μόνο να σκεφτώ έναν τρόπο για να ενδεχομένως να αποσύρει τις «πολλαπλές» κανονικές εκφράσεις και να οικοδομήσουν μακριά από την ιδέα του Sven για τη χρήση διαχωριστικό. Έτσι η στρατηγική μου θα ορίζει ένα λεξικό ως εξής (και λυπάμαι δεν ξέρω Python σύνταξη και είμαι ένα αγοράκι να τεμπέλης για να το ψάξει, αλλά θα πρέπει να έχει νόημα. Ο / regex / είναι συντομογραφία για ένα regex ):



```
check_dict = {
  'delim'    : /\-/,
  'parts'    : [ 'Show Name', 'Episode Name', 'Episode Number' ],
  'patterns' : [/valid name/, /valid episode name/, /valid number/ ],
  'required' : ['list', 'of', 'files'],
  'ignored'  : ['.*', 'hidden.txt'],
  'start_dir': '/path/to/dir/to/test/'
}

```

1. Χωρίστε το όνομα του αρχείου με βάση το διαχωριστικό.
2. Ελέγξτε καθένα από τα μέρη.


Επειδή μια ταξινομημένη λίστα του μπορείτε να καθορίσετε τι λείπει μέρη και αν ένα τμήμα δεν ταιριάζει με κανένα σχέδιο είναι ακατάλληλο. Εδώ η `parts`και `patterns`έχουν μια αναλογία 1 προς 1. Δύο σειρές αντί ενός λεξικού επιβάλλει την τάξη.


Αγνοήθηκε και απαραίτητα αρχεία μπορούν να αναφέρονται. Η `.`και `..`τα αρχεία θα πρέπει κατά πάσα πιθανότητα να αγνοηθούν αυτόματα. Ο χρήστης θα πρέπει να επιτρέπεται να εισόδου «globs» η οποία μπορεί να επεκταθεί κέλυφος. Σκέφτομαι εδώ `svn:ignore`τις ιδιότητες, αλλά globbing είναι φυσικό για την εγγραφή αρχείων.


Εδώ `start_dir`θα προεπιλογή στον τρέχοντα κατάλογο, αλλά αν θέλετε ένα ενιαίο αρχείο για να τρέξει αυτοματοποιημένη δοκιμή από μια δέσμη των καταλόγων αυτό θα ήταν χρήσιμο.


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


Είναι αυτή η στρατηγική σε αρμονία με αυτό που σκέφτεστε;