Dziś rozwijam się na dość złożonym komputerze, ma wiele rdzeni, dyski SSD i co nie. Mimo to przez większość czasu programuję komputer, nic nie robiąc. Kiedy muszę skompilować i uruchomić / wdrożyć nieco skomplikowany projekt, w najlepszym razie zajmuje to kilka sekund. Dlaczego? Teraz, gdy żyjemy coraz bardziej w „erze błyskawicznej”, dlaczego nie mogę nacisnąć F5 w Visual Studio i natychmiast uruchomić / wdrożyć moją aplikację?
Kilka sekund może nie brzmieć tak źle, ale wciąż tarcie poznawcze i czas się sumują, i szczerze mówiąc, sprawia, że programowanie jest mniej zabawne. Jak więc kompilacja może być natychmiastowa?
Cóż, ludzie mają tendencję do edytowania plików w różnych zestawach, co jeśli Visual Studio / IDE stale kompiluje / i buduje wszystko, co zmodyfikowałem w dowolnym momencie, gdy może to być odpowiednie. Heck, gdyby chcieli iść naprawdę zaawansowani, mogliby dokonać kompilacji dla poszczególnych klas. Kompilacja może nie działać, ale może po prostu dyskretnie nic nie robić (oprócz dodawania komunikatów o błędach do okna błędów).
Z pewnością dzisiejszy komputer może poświęcić rdzeń lub dwa na to zadanie, a jeśli ktoś uzna to za irytujące, można je wyłączyć opcjonalnie. Wiem, że prawdopodobnie istnieje tysiąc problemów technicznych i wymyślne kopiowanie w tle, które należałoby rozwiązać, aby było to płynne i praktyczne, ale z pewnością sprawi, że programowanie będzie bardziej płynne.
Czy jest jakiś praktyczny powód, dla którego ten scenariusz nie jest możliwy? Czy zużycie ciągłego pisania plików binarnych byłoby zbyt duże? Czy zespoły nie mogą być przechowywane w pamięci, dopóki nie zostaną wdrożone / uruchomione?
źródło
Odpowiedzi:
Eclipse wykonuje automatyczne kompilowanie i budowanie. Możesz sprawdzić, jak oni to robią. To jest open source. Myślę, że kompiluje się za każdym razem, gdy zapisujesz plik.
źródło
Czy zastanawiałeś się kiedyś nad liczbą naciśnięć klawiszy, zanim plik osiągnie stan, w którym można go skompilować? Poważnie, spójrz, co by się stało, gdybyś spróbował skompilować klasę f, klasę fo, klasę foo itp. Kiedy chcesz, aby IDE powiedział ci, żebyś poprawił literówkę, a nie tylko pozwolił jednemu dokończyć pisanie? Chciałbym zapytać, jak dobrze to przemyślałeś, tworząc coś od zera, ponieważ w tym momencie widziałem, że to naprawdę bardzo bolesne.
źródło
Program Visual Studio nie udostępnia funkcji automatycznej kompilacji. Ale tak, niektóre środowiska IDE, takie jak Eclipse, wykonują automatyczną kompilację po zapisaniu dowolnego pliku. Mam nadzieję, że w przyszłych wersjach Visual Studio Microsoft doda tę funkcję.
źródło
Zgadnij, co ... jeśli używasz nowoczesnego środowiska IDE, które wyświetla ostrzeżenia, kompiluje się w tle. W ten sposób wie, że te elementy nie będą się kompilować w obecnej postaci.
źródło
Zawsze możesz podzielić projekt na wstępnie skompilowane komponenty. Wolę, aby mój komputer kompilował się na polecenie. Tarcie poznawcze jednego człowieka to czas drugiego człowieka na refleksję i zdobycie kawy.
źródło
Jeśli korzystasz z programu Visual Studio i tworzysz w języku c # lub VB Reshaper, możesz to zrobić za Ciebie. http://www.jetbrains.com/resharper/ Oszczędzam dużo czasu, znając wszystkie miejsca, w których moje zmiany w interfejsie łamią kod bez konieczności ręcznej ponownej kompilacji.
(Myślę też, że Resharper to gówno z wielu innych powodów.)
źródło
Nie wiem, lubię kompilować rzeczy. To trochę tak, jakbym dzierżył mój kod i mówił komputerowi: „ Hah! Zobaczymy, jak to odrzucasz! ”
Potem pojawia się błąd kompilacji, napraw go, a następnie: „ Hah! A teraz zobaczymy, że odrzucasz TO! ”
Potem się kompiluje i biorę kawę. Dobrze się czuć. :)
źródło
Uwaga: Zostało to zaczerpnięte z mojego doświadczenia z Netbeans (Java), więc może to nie dotyczyć Visual Studio
TMK odbywa się to nieco w tle, gdy zaczynasz edytować plik. O ile IDE nie zna każdego pojedynczego błędu kompilacji i sposobu jego wykrycia, zakładam, że kompiluje klasę w tle, a następnie zgłasza wszelkie błędy.
Problem polega na tym, że chcesz zbudować cały projekt. Czasami myślę, że nie wszystkie błędy można uchwycić dzięki tej kompilacji „na żywo”, więc po prostu wszystko odbudowuje. Może się również zdarzyć, że skompilowana na żywo klasa zawiera dodatkowe informacje, których IDE potrzebuje, ale nie powinna być dystrybuowana w postaci binarnej.
źródło