Как лучше всего использовать консоль при разработке? - PullRequest
2 голосов
/ 28 августа 2008

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

Добавлено уточнение: я думаю больше о Ruby, Python, Boo и т. Д. Языки, которые используются для полноценных приложений, но также имеют возможность запуска небольших фрагментов кода в консоли.

Ответы [ 5 ]

2 голосов
/ 28 августа 2008

Я думаю больше о Руби, ...

Хорошо для 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, и Ruby's irb, чтобы назвать несколько. Я использую их для многих вещей!

1 голос
/ 31 августа 2008

Вы не сказали, какую ОС вы используете, но в Linux я использовал менеджер окон с вкладками ( wmii ) или около того, и это радикально изменило способ использования приложений - консолей. или иначе.

У меня часто есть четыре или более консолей и других приложений на виртуальном рабочем столе, и с wmii мне не нужно возиться с изменением размеров окон, чтобы выстроить все в ряд просто так. Я могу тривиально переставить их в вертикальные столбцы, сложить их вертикально, сделать так, чтобы они занимали одинаковое количество вертикального или горизонтального пространства, и перемещать их между экранами.

Допустим, вы открыли две консоли на рабочем столе. Вы получите это (с извинениями за произведение cronkey):

 ----------------
|                |
|       1        |
|                |
 ----------------
 ----------------
|                |
|       2        |
|                |
 ----------------

Теперь я хочу, чтобы они были рядом. Я ввожу SHIFT-ALT-L в окне 2, чтобы переместить его вправо и создать два столбца:

 -------  -------
|       ||       |
|       ||       |
|   1   ||   2   |
|       ||       |
|       ||       |
 -------  -------

Теперь я могу открыть другую консоль и получить

 -------  -------
|       ||   2   |
|       ||       |
|       | -------
|   1   | -------
|       ||   3   |
|       ||       |
 -------  -------

Затем я хочу временно просмотреть консоль 3 в полный рост, поэтому я нажал на ALT-ы и получил:

 -------  -------
|       | -------
|       ||       |
|   1   ||   3   |
|       ||       |
|       ||       |
 -------  -------

Консоли 2 и 3 теперь сложены.

Я мог бы также дать теги windows. Например, в консоли 2 я мог бы сказать ALT-SHIFT-twww + dev, и эта консоль будет видна на виртуальных рабочих столах 'www' и 'dev'. (Рабочие столы создаются, если они еще не существуют.) Более того, консоль может иметь различную визуальную конфигурацию (например, с накоплением и на весь экран) на каждом из этих рабочих столов.

В любом случае, я не могу отдать должное оконным менеджерам здесь. Я не знаю, имеет ли это отношение к вашей среде, но если у вас будет возможность попробовать этот способ работы, вы, вероятно, не оглянетесь назад.

1 голос
/ 28 августа 2008

Я думаю, это зависит от консоли. Полезность консоли CMD на окнах Windows по сравнению с консолью Powershell.

0 голосов
/ 28 августа 2008

Ты что, шутишь?

В моей среде Linux консоль - моя жизненная сила. Я хорошо разбираюсь в bash-скриптинге, поэтому для меня консоль очень похожа на работу в REPL для Python или Lisp. Вы можете буквально сделать что угодно.

На самом деле я пишу инструменты, используемые моей командой в bash, и консоль - идеальное место для такой разработки. Мне действительно нужен только редактор в качестве резервного хранилища для вещей, как я их понимаю.

0 голосов
/ 28 августа 2008

Я добавил ярлык для комбинации клавиш Control-Shift-C, чтобы открыть консоль Visual Studio 2008. Одно это сэкономило мне бесчисленные секунды, когда мне нужно было зарегистрировать DLL или выполнить любую другую команду. Я полагаю, если вы воспользуетесь этим с помощью другого командного инструмента, и у вас может быть значительное увеличение производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...