Как лучше всего использовать консоль при разработке?
Вопрос
Что касается скриптовых языков, то какой наиболее эффективный способ использования консоли при разработке?Есть ли способы быть более продуктивным с консолью, чем язык только "компиляции и запуска"?
Добавлено уточнение:Я больше думаю о Ruby, Python, Boo и т.д.Языки, которые используются для полномасштабных приложений, но также позволяют запускать небольшие фрагменты кода в консоли.
Решение
Я больше думаю о Ruby, ...
Что ж , для Руби irb
интерактивная подсказка - отличный инструмент для "отработки" чего-то простого.Вот что я упомяну о irb, чтобы дать вам представление об эффективном использовании:
Автоматизация.Вам разрешено
.irbrc
файл, который будет автоматически выполнен при запуске irb.Это означает, что вы можете загружать свои любимые библиотеки или делать неважно вы хотите полностью использовать Ruby автоматически.Чтобы понять, что я имею в виду, ознакомьтесь с некоторыми из них по адресу dotfiles.org.Автоматическое завершение.Это даже упрощает написание кода.Не можете вспомнить этот строковый метод для удаления новых строк?
"".ch<tab>
получается котлета и чавканье. ПРИМЕЧАНИЕ:вы должны сами включить автозаполнение для irbРазделяй и властвуй.irb делает мелочи действительно простыми.Если вы пишете функцию для манипулирования строками, возможность интерактивного тестирования кода прямо в командной строке экономит массу времени!Например, вы можете просто открыть irb и начать запускать функции в строке примера, и у вас уже будет готовый рабочий и протестированный код для вашей библиотеки / программы.
Обучение, Эксперименты и Взлом.Тестирование чего-то подобного на C / C ++, даже Java, заняло бы очень много времени.Если бы вы попытались протестировать их все сразу, у вас могла бы возникнуть ошибка, и вам пришлось бы начинать все сначала.
Здесь я просто учусь тому, как
String#[]
функция работает.joe[~]$ irb >> "12341:asdf"[/\d+/] # => "12341" >> "12341:asdf"[/\d*/] # => "12341" >> "12341:asdf"[0..5] # => "12341:" >> "12341:asdf"[0...5] # => "12341" >> "12341:asdf"[0, ':'] TypeError: can't convert String into Integer from (irb):5:in `[]' from (irb):5 >> "12341:asdf"[0, 5] # => "12341"
Тестирование и бенчмаркинг.Теперь их приятно и легко выполнять. Здесь это чья-то идея эмулировать Unix
time
функция для быстрого бенчмаркинга.Просто добавьте его в свой.irbrc
файл и он всегда там!Отладка - Я сам не часто этим пользовался, но всегда есть возможность отладить код вот так.Или вытащите какой-нибудь код и запустите его в irb, чтобы посмотреть, что он на самом деле делает.
Я уверен, что мне чего-то не хватает, но я затронул свои любимые моменты.У вас действительно нет ограничений в оболочках, поэтому вы ограничены только тем, что вы можете придумать, чтобы сделать.У меня почти всегда работает несколько снарядов.Bash, Javascript и irb от Ruby - вот лишь некоторые из них.Я использую их для многих вещей!
Другие советы
Я думаю, это зависит от консоли.Полезность консоли CMD в Windows ничтожна по сравнению с консолью Powershell.
Вы не сказали, какую ОС вы используете, но в Linux я использую оконный менеджер с вкладками (wmii) в течение года или около того, и это радикально изменило способ, которым я использую приложения - консольные или иные.
У меня часто есть четыре или более консолей и других приложений на виртуальном рабочем столе, и с wmii мне не нужно возиться с изменением размера Windows, чтобы выровнять все именно так.Я могу тривиально переставить их в вертикальные столбцы, расположить вертикально, чтобы они занимали равное количество вертикального или горизонтального пространства, и перемещать их между экранами.
Допустим, вы открываете две консоли на своем рабочем столе.Вы бы получили это (с извинениями за оформление cronkey).:
----------------
| |
| 1 |
| |
----------------
----------------
| |
| 2 |
| |
----------------
Теперь я хочу, чтобы они были рядом.Я ввожу SHIFT-ALT-L в окне 2, чтобы переместить его вправо и создать два столбца:
------- -------
| || |
| || |
| 1 || 2 |
| || |
| || |
------- -------
Теперь я мог бы открыть другую консоль и получить
------- -------
| || 2 |
| || |
| | -------
| 1 | -------
| || 3 |
| || |
------- -------
Затем я хочу временно просмотреть консоль 3 в полный рост, поэтому я нажимаю в ней ALT-s и получаю:
------- -------
| | -------
| || |
| 1 || 3 |
| || |
| || |
------- -------
Консоли 2 и 3 теперь сложены в стопку.
Я мог бы также дать теги Windows.Например, в консоли 2 я мог бы сказать ALT-SHIFT-twww + dev, и эта консоль была бы видна на виртуальных рабочих столах "www" и "dev".(Рабочие столы создаются, если они еще не существуют.) Еще лучше то, что консоль может иметь различную визуальную конфигурацию (например, многоуровневую и полноэкранную) на каждом из этих рабочих столов.
В любом случае, я не могу здесь отдать должное оконным менеджерам с вкладками.Я не знаю, имеет ли это отношение к вашему окружению, но если у вас будет шанс попробовать этот способ работы, вы, вероятно, не будете оглядываться назад.
Я добавил ярлык в свою комбинацию клавиш Control-Shift-C, чтобы вызвать консоль Visual Studio 2008.Одно это сэкономило мне бесчисленное количество секунд при необходимости зарегистрировать библиотеку dll или выполнить любую другую команду.Я полагаю, что если вы используете это с помощью другого командного инструмента, то, возможно, значительно повысите производительность.
Ты шутишь?
В моей среде Linux консоль - это источник моей жизненной силы.Я хорошо разбираюсь в bash-скриптинге, поэтому для меня консоль очень похожа на работу в REPL для Python или Lisp.Вы можете буквально делать все, что угодно.
На самом деле я пишу инструменты, используемые моей командой, в bash, и консоль - идеальное место для такой разработки.На самом деле мне нужен редактор только в качестве резервного хранилища для того, как я в них разбираюсь.