D:\sideБлогСреда разработки

⚠️ Обращайте внимание на даты.
Этот блог больше не ведётся с 17 января 2023, и на тот момент с написания этой страницы (19.10.2014) прошло 8 лет.

Помните, я рассказывал про сравнение текстовых редакторов со средами разработки? Закончил я на той ноте, что это примерно одно и то же, отличия только в стартовой комплектации. Наверное, это всё выглядит несколько голословно, поэтому я здесь приведу кое-какие фрагменты того, из чего у меня состоит среда разработки. Только начну я издалека – аж с железа и установленных ОС. Некоторые изъявляли интерес, надеюсь на будущее отсечь такие вопросы, написав об этом здесь, подробно. Я постараюсь называть конкретных моделей и цен поменьше, потому что на момент прочтения часть уже может отсутствовать в продаже, а цены могут быть неактуальны (особенно сейчас, с рванувшим вверх курсом \(доллар/рубль\)).

Железо

Мой личный комп, пока единственный – ноутбук, ближе к бюджетному классу. Довольно своеобразное сочетание фич и неожиданных проблем для пользователя моего калибра. Денег своих вполне стоит, все наличествующие у него недостатки можно либо исправить, либо игнорировать. Его главные особенности – 15 дюймов, низкая цена, синий корпус (:3), полная клавиатура и две видеокарты.

Две видеокарты (сцепленные через nVidia Optimus) также являются источником внезапных проблем, хотя позволяют запускать довольно требовательные к ресурсам игры (всё-таки GT540M). Примерно в 80% случаев процесс проходит без приключений. В оставшихся 20% может приключиться всякое. Но в целом это всё же преимущество, дающее ноутбуку довольно серьёзное время работы от аккумулятора (из-за низкого энергопотребления). Если игры не включать. Но аккумуляторы всегда елись игрушками очень хорошо. Но я всё-таки не про игры поболтать пришёл, так что двинемся дальше.

Основная вычислительная часть была немножко обновлена по сравнению с изначальной сборкой. Сейчас это 2.1 ГГц-овый Core i3-2310M и 8 Гб оперативной памяти. Данные хранятся на 250 Гб SSD в паре с обычным жёстким диском на 1 Тб, который вставлен вместо DVD-привода. Я не сразу решился расстаться с DVD-приводом, но засёк месяц, и экспериментально выяснил, что я им не пользуюсь. Купил отсек-заменитель со слотом под жёсткий диск, вытащил DVD-привод, нащёлкнул на заменитель панель от ноутбука, вставил диск и воткнул эту комбинацию в компьютер. Две основные операционки, которыми я пользуюсь, работают с SSD, а потому очень быстро и бесшумно (инициализация дёргает диск), и результат не отвлекает во время работы. SSD мне обошёлся дорого, но результат считаю стоящим.

На этом с железками всё. Перейдём к софту.

Windows

Сейчас практически невозможно сохранять широкой сферу применения машины, не имея на борту ОС Windows. Поэтому да, у меня она присутствует: Windows Server 2012 R2. Неожиданный выбор? Ну… После допиливания это Windows 8.1, если не присматриваться. Большую часть серверных фич я отпилил напильником, получив хорошую систему для рабочих станций. Да, она показывает странности на программах недобросовестных разработчиков (Samsung Magician, например), но это скорее некритичное исключение. Почему именно такая? DreamSpark, выдающий серверные ОС студентам просто так. Но сейчас я использую её в основном как игровую систему, разрабатывать на ней мне не слишком нравится. Да, я играю на серверной ОС. Что? Я сумасшедший? Да, согласен.

Иногда спрашивают, как я отношусь к Windows 8. Здесь я обычно спрашиваю, “8 или 8.1”, на что частенько получаю ответ “а какая разница?”; разница всё же есть. Я считаю, что версия 8.1 и возможность бесплатного обновления до неё с 8 спасла ситуацию, потому что она делает много шагов к пользователям. 8 пыталась светить инновациями, в итоге пользователей (в том числе меня) слегка ослепило, и мы все не понимали, как можно пользоваться этой ОС. Меня особенно бесила хитро запрятанная кнопка отключения. Просто 8.х пользоваться нужно несколько иначе. И даже наплевать на приложения для Metro, я ими всё равно не пользуюсь. Держите рабочий стол чистым. Ярлыки к программам можно класть на стартовый экран, они там даже быстрее достаются. Не хотите захламлять его, но умеете быстро печатать? Win+S, первые буквы названия, Enter. Нужна панель управления? Сразу до конечной станции: Win+W, начинаем писать название, Enter. Скорость работы радует. А 8.1, наконец, позволила после загрузки показывать рабочий стол, ввела нормальную кнопку открытия стартового экрана, а также добавила просто великолепное меню, лежащее за Win+X. Там потрясающей полезности вещи: меню выключения (ДАААА), командная строка (в т. ч. администраторская!) и меню удаления программ. Всё в шаговой доступности. Microsoft в основном старается для людей, хотя иногда об этом и забывает.

Из примечательного, у меня установлены Chocolatey (менеджер пакетов), Atom и Sublime Text (текстовые редакторы) и ext2fsd (драйвер для просмотра extX-разделов из Windows).

Linux

В отличие от многих линуксоидов, я не испытываю ненависти к Windows и Microsoft, хотя “слегка недолюбливаю” в отдельные моменты. Всё-таки основное, что Windows выводит в лидеры и одновременно портит – программное обеспечение. Его много, и оно (очень!) разного качества.

Я начал им пользоваться из любопытства в 10 классе, то был 2009 год. Хотел узнать, насколько сложно “продвинутому пользователю” погрузиться в этот мир. После перебора нескольких дистрибутивов (и удивления, насколько всё просто), я остановился на Linux Mint, поскольку он оказался первым, кто хорошо воспринял мою Wi-Fi-плату и был сколько-нибудь похожим на Windows. Тогда у меня был ещё другой компьютер (тоже ноутбук, 17"), и конкретной модели чипа я не помню. Только впоследствии я узнал, что Mint основан на Ubuntu, но мне нравился лёгкий консерватизм основателей дистрибутива в отношении рабочего стола: даже сейчас у них одна из основных редакций Mint снабжена окружением Mate. Примерно месяца два назад я начал осматривать другие окружения, целенаправленно. Хотел выяснить, что можно достать достаточно лёгкого и удобного в использовании. В итоге я остановился на XFCE, и самым развитым вариантом с ним был дистрибутив Xubuntu. С тех пор я пользуюсь им. Назвать себя труъ-линуксоидом я может и не могу, но зачем мне это?

Я иногда люблю подурачиться с внешним видом системы. Когда-то у меня на работе был красивый рабочий стол, отделанный под тёмный Solarized. Сейчас я выкрасил всё, что можно, под цветовую схему Monokai. Есть несколько вещей, которые позволяют красить систему в любой цвет: достаточно найти хорошую тему GTK2 (или покрасить другую на свой вкус), взять значки Any-Color-You-Like (в комплекте утилита, красящая значки с нужными вам эффектами и цветами) и поставить на свой вкус границу окон (Metacity или XFWM, смотря что у вас). Дальше сколько-то ковыряния в настройках, и у вас система с почти уникальным внешним видом! Это требует времени, но если душа просит разнообразия, ей не стоит перечить.

Доделывая себе рабочие окружения, я понял интересную вещь. Ошибки неизбежны. Но хорошая система должна снижать их вероятность. Поэтому в порядке эксперимента я поставил себе границу окон TillSummer, которая характерна почти полным отсутствием у окна границы, чтобы случайно не попадать по кнопкам в заголовке. Кнопок закрытия и разворачивания, соответственно, тоже. Что, лишнее подтверждение тому, что я сумасшедший? Не совсем. Я узнал несколько интересных клавишных комбинаций, резко с этим помогающих: Alt+F5 разворачивает окно по горизонтали, Alt+F6 по вертикали, а с зажатым Alt можно таскать любое окно за любую конечность. Эти сочетания, оказывается, были у меня в системе с самого начала, и я об этом не знал! Поскольку я типично держу по одному экземпляру каждой программы (в большинстве которых есть вкладки), название окна мне тоже без надобности.

Также я позаимствовал хорошую фичу из Windows, появившуюся в версии 7 – “прикрепление” часто используемых программ. Работает очень просто: если часто нужная вам программа открыта, вы видите её окно в панели задач. Если она не открыта, то вместо неё на панели кнопка её запуска: такой же значок, просто другое поведение. Это синтез списка окон и панели “быстрый запуск”, которая в Windows ещё как минимум с версии 98, и довольно часто список окон и эта панель содержали одинаковые элементы. Было разумно их смешать. У меня эта штука оформлена в виде элемента “панели задач” и предоставляется пакетом xfce4-dockbarx-plugin, доступная в PPA команды WebUpd8. Конечно, это мне довесило ещё и DockX, но я им не пользуюсь. Хотя кому-то (фанатам OS X?) может и понравится.

Основная работа у меня происходит в Linux. Поэтому речь пойдёт о рабочих инструментах именно в нём.

Рабочая область

В чём я, собственно, работаю? Основной инструмент – свежая сборка Sublime Text 3, текстового редактора. Инструмент, который в основе своей довольно прост (на вид), но уже после открытия файлов с настройками начинает казаться, что немалая часть богатства этого редактора на самом деле не видна. Если вы минималист, редактор вам понравится, потому что он позволяет убрать практически все элементы управления, что не особенно нужны. Прямо “из коробки” он поставляется с режимом “не отвлекающий” (distraction-free), включается по Shift+F11, и выглядит примерно вот так:

Скриншот "не отвлекающего" режима

Помните, что граница и заголовок окна у меня, фактически, отсутствуют, поэтому результат очень близок к тому, что вы видите.

Разумеется, на этот уровень минимализма выходят не сразу. Нужно свыкнуться с тем, как с таким окружением работать. В основном это привычка к сочетаниям клавиш. В Sublime Text практически нет кнопок, в которые можно тыкать мышью, как во многих IDE. Хотя автор Laracasts (видеокурсов по Laravel) собрал аналогичную картину из среды PhpStorm.

Предполагается, что вы неплохо знаете английский язык. Поскольку основной способ исполнения команд в редакторе – нажать Ctrl+Shift+P, откроется “палитра команд”, в которой можно набрать кусочек необходимой команды (можно пропускать буквы и пробелы), и нужная команда, скорее всего, будет первой в результатах. Команды, разумеется, на английском, и в самом редакторе лишь малая часть тех команд, которыми вы в итоге будете пользоваться.

Но давайте разберём окно редактора по частям. Я сейчас выведу всё, что только можно в редакторе вывести. И на вид результат вполне похож на IDE, для демонстрации некоторых дополнительных штук пришлось открыть стили сайта (секрета в них нет, у сайта открытый код):

Всё напоказ!

Давайте разбирать по порядку.

GitGutter

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

Что касается установленных у меня пакетов, пройдусь списком:

Lua с ошибкой

Теперь о настройках. Так вышло, что конфигурация претерпевала ряд изменений прямо во время написания этого поста, а теперь я Sublime Text не пользуюсь, поскольку перешёл на Atom. Поэтому, например, выше не указан пакет с темой, которая написана в конфигурации (Seti). Про Atom можно рассказать столько всего, что на отдельный пост хватит!

{
  // В боковой панели папки отмечать жирным шрифтов
  "bold_folder_labels": true,
  // Красивенный плавно мигающий курсор
  "caret_style": "phase",
  // Цветовая схема из Atom, захватившая мой моск
  "color_scheme": "Packages/User/Seti_orig (SL).tmTheme",
  // Рисовать код по центру (!)
  // ...выровненным по левому краю (О_о)
  // ...отсчитывая по самой длинной строчке
  // Это просто эстетически красиво, когда кроме этого на экране ничего нет
  "draw_centered": true,
  // Не скрывать выключатели сворачивания кусочков кода
  "fade_fold_buttons": false,
  // Шрифт. Довольно милый :3
  "font_face": "Meslo LG L DZ",
  // Размер шрифта. Очевидно.
  "font_size": 11,
  // Рисовать строку с курсором особым цветом, зависящим от цветовой схемы
  "highlight_line": true,
  // Эти пакеты есть, но выключены
  "ignored_packages":
  [
    // Это "режим vim". Я не фанат vim.
    "Vintage"
  ],
  // Немножко пустого места вокруг каждой строки, так легче читать
  "line_padding_bottom": 2,
  "line_padding_top": 2,
  // Эта опция действует ровно наоборот, чем гласит её имя
  // При true в заголовке окна только имя файла, не полное, без пути к нему
  "show_full_path": true,
  // Табуляция по два пробела
  "tab_size": 2,
  "translate_tabs_to_spaces": true,
  // Тема, тоже из Atom
  "theme": "Seti.sublime-theme",

  "word_wrap": true
}