reb er en Python IDE. Python reb vigtigste mål er at give funktioner som auto-fuldførelse, refactorings, indhold assistance, og skitserer.
Refactoring: I de senere år refactoring er blevet en grundlæggende opgave for hverdagens programmering, specielt i java samfund. I de agile programing metoder, ligesom Extreme Programmering, Refactoring er et af de centrale praksis.
Nogle IDE'er understøtter nogle grundlæggende refactorings som 'PyDev «(som bruger cykel reparation mand). Disse IDE'er har et begrænset sæt refactorings og mislykkes, når du laver refactorings, der har brug for at vide, hvilken type objekter i kildekoden (specielt for relativt store projekter). reb forsøger at give et rigt sæt af refactorings. Nogle af refactorings kræver typen inferencing som beskrives senere.
Auto Afslutning: Et af de grundlæggende træk i moderne IDE'er er tilgængeligheden af auto-fuldførelse. Nogle Python IDE'er har støtte auto-fuldførelse, men i en begrænset form. Da type af mange variabler ikke kan udledes simpel analyse af kildekode. Auto-udfylde moduler navne, klasse navne, statiske metoder, klasse metoder, funktionsnavne og variable navne er let. Men auto-udfylde de metoder og attributter af et objekt er hårdt. Fordi IDE brug for at vide, hvilken type af objekt, der ikke kan opnås let det meste af tiden i dynamiske sprog. reb bruger Type inferencing algoritmer til at løse dette problem.
Type inferencing: En ulempe ved dynamiske sprog som Python er, at du ikke kan vide, hvilken type variabler ved en simpel analyse af programmets kildekode det meste af tiden. Kendskab til type variabler er meget afgørende for at levere mange af de refactorings og auto-færdigbyggede. reb vil bruge typen inferencing at overvinde dette problem.
Statiske type inferencing bruger program kildekode at gætte, hvilken type objekter. Men typen inferencing python programmer er meget hårdt. Der har været nogle forsøg men ikke meget vellykket (eksempler: psycho: kun str og INT typer, Starkiller: ikke blev frigivet og ShedSkin: god, men begrænset). De hvor det meste rettet mod fremskynde Python programmer ved at omdanne sin kode til andre maskinskrevne sprog frem for at bygge IDE'er. Sådanne algoritmer kan være nyttige.
Der er en anden tilgang til typen inferencing. Det er analysen af kørende programmer. Denne dynamiske tilgang registrerer typer variabler er tildelt under udførelsen af programmet. Selv om denne fremgangsmåde er meget lettere at implementere end alternativet, er det begrænset. Kun de dele af programmet, som udføres analyseres. Hvis udviklerne skrive unit test og bruge test drevet udvikling denne fremgangsmåde virker meget godt
Hvad er nyt i denne udgivelse:.
- codeassist: bedre håndtering af unicode i docstrings
- codeassist: håndtering builtin ubekendte, såsom sys.stdout
- codeassist: forslag dækningsområder og typer reviderede
- fscommands: Håndter hg besætning UI ændringer
- patchedast: håndtere ExtSlice node
Hvad er nyt i version 0.9.2:
- Autoimport modulet understøtter nu caching alle undermoduler af et modul.
- Rekursion ved indlæsning moduler er blevet rettet.
- Der er tilføjet Grundlæggende støtte til setuptools.
- Ekstrakten Metoden er blevet ændret til at håndtere betingede variable opdateringer.
Hvad er nyt i version 0.9.1:
- Der er tilføjet den import_dynload_stdmods variabel at reducere størrelsen af extension_modules variabel.
- Nogle Windows-specifikke bugs blev rettet.
Hvad er nyt i version 0.9:
- Ændringer siden 0.8.4:
- understøtter Git VCS
- håndtering af filer med mac line-slutter
- ikke at søge alle filer, når indbygningen en lokal variabel
- fast cygwin sti problemer Nogle af ændringerne siden 0,8:
- inlining variabel i andre moduler
- tilføjet `rope.contrib.findit.find_definition ()`
- bedre udvidelsesmodul håndtering
- tilføjet `rope.contrib.findit.find_definition ()`
- tilføjede GIT støtte fscommands
- indbygning parametre
- tilbage importere understregede navne i træk
- tilføjet `codeassist.get_calltip ()`
- tilføjet `libutils.analyze_modules ()`
- tilføjet `` soa_followed_calls`` projekt config
- `libutils.report_change ()` læser `automatic_soa`
- håndtering ejendom dekoratør
Krav :
- Python
Kommentarer ikke fundet