Сегодня я занимаюсь разработкой на довольно сложном компьютере, он имеет несколько ядер, SSD-накопителей и тому подобное. Тем не менее, большую часть времени я программирую на компьютере, ничего не делая. Когда мне нужно в лучшем случае скомпилировать и запустить / развернуть несколько сложный проект, это все равно занимает пару секунд. Почему? Теперь, когда мы все больше и больше живем в «век мгновений», почему я не могу нажать F5 в Visual Studio и сразу же запустить / развернуть мое приложение?
Пару секунд может показаться не таким уж плохим, но все равно это когнитивное трение и время, которые складываются, и, честно говоря, это делает программирование менее увлекательным. Так как же сборка может быть мгновенной?
Люди склонны редактировать файлы в разных сборках, что если Visual Studio / IDE постоянно выполняет компиляцию / сборку всего, что я модифицировал, в любое время, чтобы это было уместно. Черт возьми, если они хотят продвинуться вперед, они могут сделать компиляцию для каждого класса. Компиляция может не работать, но тогда она может просто ничего не делать (кроме добавления сообщений об ошибках в окно ошибок).
Конечно, современный компьютер мог бы посвятить ядро или два для этой задачи, и если кто-то нашел это раздражающим, это могло быть отключено выбором. Я знаю, что, вероятно, существует тысяча технических проблем и какое-то необычное теневое копирование, которые необходимо решить, чтобы это было беспроблемным и практичным, но это наверняка сделало бы программирование более плавным.
Есть ли практическая причина, почему этот сценарий невозможен? Будет ли изнашиваться постоянно пишущий двоичный файл слишком большим? Разве сборки не могут храниться в памяти до тех пор, пока они не будут развернуты / запущены?
источник
Ответы:
Eclipse выполняет автоматическую компиляцию и сборку. Вы можете проверить, как они это делают. Это с открытым исходным кодом. Я думаю, что он компилируется всякий раз, когда вы сохраняете файл.
источник
Задумывались ли вы о том, сколько нажатий клавиш вы нажимаете, прежде чем получить файл в состоянии, когда его можно скомпилировать? Серьезно, посмотрите, что произойдет, если вы попытаетесь скомпилировать класс f, класс fo, класс foo и т. Д. Когда вы хотите, чтобы среда IDE сообщала вам об исправлении опечатки, а не о том, чтобы просто закончить ввод? Я бы спросил, насколько хорошо вы продумали это, создавая что-то с нуля, потому что именно здесь я мог видеть, что это действительно очень больно.
источник
Visual Studio не предоставляет средства автоматической компиляции. Но да, некоторые IDE, такие как Eclipse, выполняют автоматическую компиляцию при сохранении любого файла. Надеюсь, в будущих версиях Visual Studio Microsoft добавит эту функцию.
источник
Угадайте, что ... если вы используете современную среду IDE, которая выдает предупреждения, она выполняет фоновую компиляцию. Вот как он знает, что эти элементы не будут компилироваться как есть.
источник
Вы всегда можете разбить проект на предварительно скомпилированные компоненты. Я предпочитаю, чтобы мой компьютер компилировался по команде. Познавательное трение одного человека - это время размышления другого человека и получения кофе.
источник
Если вы используете Visual Studio и разрабатываете на C # или VB Reshaper может сделать это за вас. http://www.jetbrains.com/resharper/ Я экономлю много времени, зная все места, где мои изменения интерфейса нарушают код без необходимости перекомпиляции вручную.
(Также я думаю, что Решарпер - это дерьмо и по многим другим причинам.)
источник
Я не знаю, мне нравится собирать вещи. Я вроде как владею своим кодом и говорю компьютеру: « Ха! Давайте посмотрим, как вы отвергаете ЭТО! »
Затем я получаю ошибку компиляции, исправляю ее, затем: « Ха! Теперь давайте посмотрим, как вы отклоните ЭТО! »
Затем он компилируется, и я беру кофе. Приятно. :)
источник
Примечание: это взято из моего опыта работы с Netbeans (Java), поэтому это может не относиться к Visual Studio
TMK это делается в фоновом режиме, когда вы начинаете редактировать файл. Если среда IDE не знает каждую отдельную ошибку компиляции и то, как ее обнаружить, я предполагаю, что она компилирует класс в фоновом режиме, а затем сообщает о любых ошибках.
Проблема в том, когда вы хотите построить весь свой проект. Иногда я думаю, что не все ошибки могут быть обнаружены с помощью этой «живой» компиляции, поэтому она просто перестраивает все. Также может случиться так, что живой скомпилированный класс содержит дополнительную информацию, которая нужна IDE, но не должна распространяться в двоичном виде.
источник