Nowoczesne IDE mają wiele sztuczek, które pomagają w pisaniu kodu, refaktoryzacji, wyszukiwaniu. Wszystko to jest bardzo pomocne, ale rzadko któryś z nich wygląda jak prawdziwa „magia” i sprawia, że myślę „Wow! Jak to wymyśliłeś?”
Czy potrafisz wymienić imponujące funkcje automatyzacji kodu IDE (lub inne), które zaskoczyły Cię po raz pierwszy?
ide
automation
serg
źródło
źródło
Odpowiedzi:
Debugowanie wstecz
Visual Studio 2010 (a teraz 2012) pozwala mi debugować wstecz za pomocą IntelliTrace.
Nigdy więcej nie będę musiał ponownie przeżywać momentu, w którym uderzyłem F10 jeden raz zbyt wiele i musiałbym ponownie uruchomić debugowanie.
źródło
Uzupełnianie kodu
Gdy wszystko, co widziałeś, to edytor tekstów, robi to wrażenie
źródło
Zdolność ReSharpera do odgadnięcia, co chcę o nazwie zmiennej, nadal mnie zadziwia. Oto bardzo prosty przykład, ale masz pomysł.
źródło
foreach(var matche in regex.Matches(str))
. Ustawia równieżmatche
jakoobject
raczej niżMatch
mało przydatny.MatchCollection
jest to kolekcja bez typów. Dla prawidłowych kolekcjivar
działa świetnie. (Nadal mi się to nie podoba)Byłem pod dużym wrażeniem narzędzi refaktoryzacyjnych Eclipse, kiedy je pierwszy raz spotkałem. Zdolność do wyodrębnienia metod (które, kiedy uczysz się lepszego projektowania, jest częstym zjawiskiem) z dużej części kodu i obsługiwać wszystko dla mnie było całkiem fajne.
źródło
Code Bubbles. http://www.andrewbragdon.com/codebubbles_site.asp
Uwielbiam Visual Studio i Eclipse za narzędzia, które dają mi do zmiany kodu, ale Code Bubbles naprawdę mnie podnieca, że mogę nawigować i przeglądać mój kod. Szkoda, że nie jest publicznie dostępny = - {
źródło
Najbardziej imponującym środowiskiem programistycznym, o jakim kiedykolwiek słyszałem, jest system operacyjny Genera.
Możesz kliknąć dowolny widżet w systemie okienkowym i uzyskać pełny odczyt kodu źródłowego i dokumentacji produktu. Będąc dynamicznym językiem programowania (Lisp), możesz edytować źródło widgetu w locie.
ZMACS ze świata Lisp Machine wciąż jest uważany za lepszego edytora niż Emacs, który jest środowiskiem edytorskim bez rówieśników.
źródło
Wizualne przedstawienie struktury programu (programy / funkcje / procedury / ...)
źródło
Zdolność ReSharpera do refaktoryzacji.W pełnym ujawnieniu, mogę być za zakrętem, ponieważ uważam, że Java z Eclipse ma ten rodzaj funkcjonalności od pewnego czasu, ale nie pracuję regularnie z Javą.
Delta możliwości, którą ReSharper dodaje do Visual Studio, jest tak wielka, że niewiarygodna. Wiem, że brzmię jak reklama, ale nie sądzę, żebym kiedykolwiek mógł wrócić do zwykłej instalacji programu Visual Studio bez ReSharpera na wierzchu.
Mówiąc bardziej ogólnie, semantyczne zrozumienie kodu oderwałoby się od zwykłego, starego edytora tekstu każdego dnia. Prowadzi to do takich rzeczy jak „znajdź użycie zmiennej” lub „funkcja wbudowana” lub „możliwość użycia wzorca idiomatycznego” itp.
źródło
Debuger Smalltalk:
W Smalltalk normalne jest spędzanie większości czasu na pisaniu kodu z poziomu debuggera.
(Pamiętam, że zostałem oszołomiony przez uruchomienie metody, zobaczenie czegoś złego, zmianę tego i ponowne uruchomienie metody bez ponownego uruchamiania aplikacji z powrotem za pomocą Visual Age for Java ... ponieważ VA4J został napisany w Visual Age dla Smalltalk.)
Wyszukiwarka metod Smalltalk
Wyszukiwarka metod pozwala zapytać „jaką wiadomość mogę wysłać, aby wziąć te parametry i uzyskać ten wynik?” Zapytaj,
'abc'. 'def'. 'abcdeb'.
a powie ci'abc' , 'def' --> 'abcdef'
. Zapytaj#(0 1 2 3)
i powie#(0 1 2 3) sum --> 6
. * Nadawcy, realizatorzy wszystkiego, aby znaleźć wszystkich (*) nadawców wiadomości lub wszystkie obiekty, które implementują tę wiadomość.(*) Z wyjątkiem sytuacji, w których robisz takie rzeczy, jak tworzenie nazw wiadomości w czasie wykonywania:
self perform: (#foo, #bar)
aby wysłać sobie wiadomość#foobar
- w takim przypadku wiesz, co robisz, i nie masz nic przeciwko potencjalnej możliwości zdobycia własnej petardy.źródło
Whyline
Whyline for Java naprawdę zrobiło na mnie wrażenie, kiedy go zobaczyłem. Jest to narzędzie do dynamicznej analizy, które pozwala zadawać pytania dotyczące wyników programu, a nie tylko tekstu, ale także grafiki. Na przykład możesz zapytać „dlaczego ta linia była czerwona?” lub „dlaczego nie wywołano metody malowania?”
Działa poprzez instrumentowanie programu i rejestrowanie przebiegu. Załóżmy na przykład, że istnieje błąd, który można odtworzyć. Instrumentujesz swój program za pomocą Whyline, uruchamiasz swój program w Whyline, aby odtworzyć błąd, a następnie po wyjściu z programu możesz użyć Whyline do sprawdzenia historii wykonania.
To nagrywanie i odtwarzanie nie jest niczym nowym, ale sposób, w jaki implementuje go Whyline, jest całkiem sprytny. Możesz przeglądać historię według określonych zdarzeń (np. Skupiając się tylko na zdarzeniach przeciągania myszą lub tylko na zdarzeniach klawiszowych). Kojarzy także dane wyjściowe z tym, która część programu je wydrukowała, dzięki czemu można przechodzić od danych wyjściowych do kodu.
Do pracy wykorzystuje krojenie programu, dzięki czemu można skupić się na tych częściach kodu, które są rzeczywiście odpowiednie. CMU ma teraz na to patent i nie wiem, jakie są ich plany, ale mam nadzieję, że zobaczymy więcej tego w produkcji. To świnia pamięci, ale prawdopodobnie jest to prototyp i można go ulepszyć.
Powinieneś zobaczyć wersję demonstracyjną online, ale powinieneś również wypróbować ją sam, aby uzyskać pełne wrażenia. Jeśli już, dema online podważają ten pomysł.
źródło
Myślę, że najbardziej imponującą funkcją IDE, jaką widziałem, jest SyncEdit , który AFAIK jest dostępny tylko w Delphi.
źródło
W IDE chciałbym zobaczyć następujące funkcje:
sheet[A3]
) i rysunki w kodzie i uzyskać do nich dostęp jak każdą zmienną.if
warunków w sposób tabelaryczny (wciąż szukanie linku).źródło
Sprawdzanie typu dla języków dynamicznych
Dopóki twój kod nie otrzyma zbyt „meta”, IDE dla Ruby lub Python powinno być w stanie uruchomić zadanie w tle, które:
Nie widziałem jeszcze IDE, które to robi.
źródło
Jestem wielkim fanem możliwości kliknięcia alt-line w Vs2010 najlepszej rzeczy, jaką znalazłem na temat nowej wersji.
źródło
Auto Build Eclipse to funkcja, którą najbardziej podziwiam .... 7 lat temu. Teraz po prostu biorę to za pewnik.
źródło
Xcode 4 naprawia średniki i literówki oraz używa strzałek, aby pokazać, jak wystąpił błąd.
Na przykład:
Strzałka będą pochodziły
[a release]
aby[a length]
pokazać, dlaczego nie można używać[a length]
.źródło
Szablony i rozszerzenia kodu, takie jak CodeRush DevExpress. W C # a
DependencyProperty
jest poważnym problemem do stworzenia, ponieważ składnia może być pełna, ale po prostu wpisanie „dp” wywołuje coś podobnego do fragmentu kodu, w którym wpisujesz typ, nazwę i wartość domyślną, a wszystko inne jest zrobione - w tym dodawanie wszelkich niezbędnych instrukcji „using” i ewentualnie referencje projektu, jeśli pamięć służy.Korzyścią jest tworzenie własnych szablonów, dla kodu często ponownie używanego lub przepisywanego, na przykład prostych implementacji
INotifyPropertyChanged
właściwości, w których wystarczy podać szablonowi nazwę i typ właściwości (jeśli inny ekspander nie obsługiwał go), którego chcesz użyć , i obsługuje resztę, w tym tworzenie zmiennej bazowej.źródło
Pex wykonuje całkiem niezłe generowanie automatycznych testów jednostkowych. Śledzi kod, określa punkty rozgałęzienia, używa solwera warunkowego do generowania danych wejściowych, które trafiają do każdej możliwej gałęzi, a następnie pozwala eksportować wyniki jako powtarzalne testy jednostkowe. Może upokorzyć złożony kod obsługi ciągów.
źródło
W Eclipse Generuj SEttery i pobieraj automatycznie, podobnie twórz metody w implementacji klasy z interfejsu
źródło
Wsparcie JPA przez IntelliJ Idea
Wspomnij, że masz DatabaseEntity:
teraz masz kilka zapytań JPA
Po pewnym czasie widać, że zrobiłeś literówkę w swoim Jednostki i zdecydować byłaby lasname do lastName .
To IDE refaktoryzuje również zapytanie JPA.
źródło