Как лучше всего использовать консоль при разработке?

StackOverflow https://stackoverflow.com/questions/32537

  •  09-06-2019
  •  | 
  •  

Вопрос

Что касается скриптовых языков, то какой наиболее эффективный способ использования консоли при разработке?Есть ли способы быть более продуктивным с консолью, чем язык только "компиляции и запуска"?

Добавлено уточнение:Я больше думаю о 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, и консоль - идеальное место для такой разработки.На самом деле мне нужен редактор только в качестве резервного хранилища для того, как я в них разбираюсь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top