corda è un IDE Python. L'obiettivo principale di corda Python è quello di fornire funzionalità come il completamento automatico, refactoring, l'assistenza dei contenuti, e contorni.
Refactoring: Negli ultimi anni refactoring è diventata un compito fondamentale della programmazione quotidiana, specialmente in comunità Java. Nelle metodologie di programmazione agile, come Extreme Programmazione, refactoring è una delle pratiche fondamentali.
Alcuni IDE supportano alcuni refactoring di base come 'PyDev' (che usa la bicicletta riparazione uomo). Questi IDE hanno un numero limitato di refactoring e falliscono quando facendo refactoring che hanno bisogno di conoscere il tipo di oggetti nel codice sorgente (specialmente per relativamente grandi progetti). Corda cerca di fornire un ricco set di refactoring. Alcuni dei refactoring richiedono tipo di inferenza che è descritto in seguito.
Auto Completamento: Una delle caratteristiche fondamentali di IDE moderno è la disponibilità di auto-completamento. Alcuni IDE Python hanno il supporto auto-completamento, ma in una forma limitata. Poiché il tipo di molte variabili non desumibile dalla semplice analisi del codice sorgente. Auto-completando moduli nomi, nomi di classe, metodi statici, metodi di classe, i nomi di funzione ei nomi delle variabili sono facili. Ma auto-completamento dei metodi e attributi di un oggetto è difficile. Poiché l'IDE deve conoscere il tipo di oggetto che non può essere raggiunto facilmente la maggior parte del tempo in linguaggi dinamici. corda utilizza algoritmi Tipo Deduzione per risolvere questo problema.
Tipo Deduzione: Uno svantaggio di linguaggi dinamici come Python è che non si può conoscere il tipo di variabili da una semplice analisi del codice sorgente del programma la maggior parte del tempo. Conoscendo il tipo di variabili è molto essenziale per fornire molte delle refactoring e auto-completamento. corda userà tipo inferenza per superare questo problema.
Static tipo di inferenza utilizza programma il codice sorgente di indovinare il tipo di oggetti. Ma i programmi di tipo inferenza Python è molto difficile. Ci sono stati alcuni tentativi anche se non di grande successo (esempi: tipi solo str e Int, Starkiller:: psycho non è stato rilasciato e ShedSkin: buona, ma limitati). Essi dove per lo più rivolte ad accelerare i programmi Python, trasformando il suo codice ad altre lingue digitati piuttosto che costruire IDE. Questi algoritmi possono essere utili.
C'è un altro approccio verso il tipo di inferenza. Questo è l'analisi dei programmi in esecuzione. Questo approccio dinamico registra i tipi di variabili sono assegnati durante l'esecuzione del programma. Anche se questo approccio è molto più facile da implementare che l'alternativa, è limitata. Solo le parti del programma che vengono eseguite vengono analizzati. Se gli sviluppatori scrivono i test unitari e utilizzano test driven development questo approccio funziona molto bene
Cosa c'è di nuovo in questa versione:.
- codeassist: migliore gestione del unicode in docstring
- codeassist: movimentazione incognite incorporate, come sys.stdout
- codeassist: proposte ambiti e tipi di revisione
- FSCommands: gestire le modifiche equipaggio hg ui
- patchedast: gestire nodo ExtSlice
Cosa c'è di nuovo nella versione 0.9.2:
- Il modulo Autoimport ora supporta la memorizzazione nella cache tutti i sotto-moduli di un modulo.
- ricorsione durante il caricamento dei moduli è stato risolto.
- È stato aggiunto il supporto di base per setuptools.
- Il metodo estratto è stato modificato per gestire gli aggiornamenti delle variabili condizionali.
Cosa c'è di nuovo nella versione 0.9.1:
- La variabile import_dynload_stdmods è stato aggiunto per ridurre le dimensioni della variabile extension_modules.
- Alcuni bug di Windows-specifici sono stati fissati.
Cosa c'è di nuovo in versione 0.9:
- Cambiamenti dalla 0.8.4:
- supporto Darcs VCS
- la gestione dei file con mac di fine riga
- non una ricerca di tutti i file quando inlining una variabile locale
- problemi di percorso Cygwin fisso Alcune delle modifiche dal 0,8:
- variabile inlining in altri moduli
- aggiunto `rope.contrib.findit.find_definition ()`
- migliore modulo di estensione manipolazione
- aggiunto `rope.contrib.findit.find_definition ()`
- ha aggiunto il supporto GIT in FSCommands
- parametri inline
- indietro importare nomi sottolineati in movimento
- aggiunto `codeassist.get_calltip ()`
- aggiunto `libutils.analyze_modules ()`
- aggiunto `` project soa_followed_calls`` config
- `libutils.report_change ()` `legge automatic_soa`
- Movimentazione proprietà decorator
Requisiti :
- Python
I commenti non trovato