Как я адаптировал свой Mac под разработку
Две недавние статьи на SitePoint рассказали о том, как люди создают свои среды разработки. Зак Уоллес говорил о настройке среды разработки для Windows, и Шаумик Дайтьяри рассказал о своем опыте работы с Ubuntu Linux.
В этой статье я хочу поговорить о том, как настроить среду разработки на Mac OS X. Но сначала немного о данных программы.
Я внештатный разработчик (фрилансер) программного обеспечения и технической документации. Учитывая это, мне нужно разнообразие средств на регулярной основе, будь они для разработки программного обеспечения, научных исследований, написания или экспериментов.
Это, безусловно, требует всего, начиная от управления кодом, доступа к удаленным серверам баз данных и управлении в письменной форме и просмотра содержимого. Тем не менее, большой особенностью Mac является то, что существует много инструментов, доступных для него.
Основные инструменты
Новые Маки содержат iWork suite, Safari, Preview и Unarchiver, среди ряда других инструментов с графическим интерфейсом. В командной строке они находятся с различными инструментами с открытым исходным кодом, такие как SSH, Wget и cURL. Тем не менее, их одних недостаточно. Чтобы создать правильную веб-разработку и технические записи, нам понадобится ряд других инструментов. В частности, я регулярно использую комбинацию следующих действий:
- Dropbox и Google Drive
- Firefox , Google Chrome и Chromium
- Pixelmator и Skitch
- Коллоквиум , Skype, Slack Evernote и Wunderlist .
Эти инструменты почти незаменимы в повседневной базе.
Dpopbox и Google позволяют мне обмениваться файлами с клиентами. Я бы мог использовать версии в браузере, но установка приложений упрощает синхронизацию.
И никакая среда разработки не будет полной без всех современных браузеров. Так как Internet Explorer не поддерживается на Мас, как Zack, я использую широкий спектр инструментов – таких как BrowserStack – для тестирования сайтов в IE.
Pixelmator и Skitch помогают легко редактировать и создавать аннотации к изображениям. Pixelmator не является бесплатным, но и не является также дорогим. Вместо него вы можете использовать GIMP, но я считаю, что его интерфейс оставляет желать лучшего.
Для создания и хранения заметок я использую Evernote. А все, что нужно для управления проектами – в Wunderlist. С его помощью я могу сделать все, что нужно для клиента, а также вести записи о беседах, которые мы провели и о том, что мне еще нужно сделать.
Редакторы
Но теперь давайте разберем более серьезную тему: редактирование. Я создаю два типа редактирования – содержание и код, итак мое обсуждение редакторов будет отражать это. Независимо от того, какой вы создаете, существует несколько очень хороших редакторов, доступных для Mac.
Когда я пишу, я пишу в формате Markdown. Он позволяет писать структурированные данные в любом текстовом редакторе без необходимости специального программного обеспечения (такой как Microsoft Word). Используя такие инструменты, как Pandoc, вы можете экспортировать содержимое в почти любой другой формат файла.
Текстовые редакторы
Для письма в Markdown, есть несколько доступных отличных родных приложений, в том числе MacDown, iA Writer и Writer Pro and Mou. Черт возьми, вы даже можете использовать TextEdit, хотя он не очень хорошо подходит для этой задачи. Кроме того, существуют различные онлайн редакторы Markdown, в том числе Gingko, Draft и Bruno Škvorc’s favorite, StackEdit.
Я пользовался ими и могу поручиться за всех из них, хотя я не использую их регулярно. Для меня, лучший инструмент – Vim, в идеале MacVim. Займет немного больше времени, чтобы установить и настроить его. Но сделав это, вы будете довольны. Более того – это бесплатно. Если вы заинтересованы, посмотрите мое хранилище конфигурации Vim на GitHub.
Приложения для кодирования
Далее код. Mac имеет ряд редакторов кода в наличии, независимо от того, являетесь ли Вы PHP, Python, Ruby, Go, Haskell или C ++ разработчик.
Там же всегда есть Sublime Text 3 отличного качества, которым я часто пользуюсь и рекомендую. Там также есть TextMate 3, который является легким, простым и расширяемым. Но моим выбором редактора является PhpStorm. Основываясь на IntelliJ, он делает многое; и для того, что он изначально не делает, скорее всего существует плагин. Это не бесплатно. Но цена на самом деле не так уж велика, особенно, когда вы взвешиваете преимущества.
Контроль версий
Далее, давайте посмотрим на систему управления версиями. Если я пишу или кодирую, я всегда использую контроль версий. И моим выбором контроя версий является Git. Для меня это очевидно. Тем не менее, вы можете с тем же комфортом использовать Mercurial. Если Вы используете Subversion, OK. Но я честно не могу поддержать CVS.
В использовании Git, на мой взгляд, есть несколько хороших инструментов для Mac на выбор. Во-первых, есть более упрощенный GitX. С открытым исходным кодом и бесплатный в использовании. И Mac Clone Of Linus Torvold’s GitK, оно обеспечивает ключевую функциональность, необходимую для управления хранилищем и предоставляет хороший встроенный в программу просмотр различий.
Далее хранилище исходных текстов. Если вы ищите одно приложение, которое делает все это, то не проходите мимо SourceTree. Я использовал его целую вечность (до этого я использовал Git из командной строки), и он превосходен.
Я также могу посоветовать SmartGit.
Из этих трех больше всего я пользовался Source Tree и очень рекомендую его. Однако, как и в случае с MacVim – моим выбором редактора, я управляю хранилищами Git из командной строки. (Я не говорю, что и вы должны использовать командную строку. Но скажу, что затраченное время стоит того, чтобы научиться использовать его, так как он поможет вам стать намного более продуктивным. Это, как говорится, если вы не человек командной строки, то SourceTreев помощь!)
Сервер
Для серверов, я беру один из двух вариантов. Я либо использую встроенные серверы, такие как с Ruby и PHP, и работаю без накладных расходов дополнительного программного обеспечения, или запускаю виртуальную машину. Я использовал VirtualBox и Ubuntu Linux для этого, но все больше и больше я создаю собственный, используя Ansible и Vagrant.
Там же целый ряд инструментов, к которым можно обратиться, и есть много языковых библиотек и расширений по умолчанию, которые не установлены на Mac, и даже версии, которые устанавливаются могут быть недостаточно новыми. Чтобы обойти эту проблему, я использую Homebrew, один из двух отличных пакетов менеджероввдля Mac.
Homebrew работает аналогично APT и yum на Linux, в котором Вы можете искать хранилище пакетов и устанавливать, обновлять и настраивать пакеты с помощью его. Для хорошего понимания того, как это работает, и что онj предлагает, просмотрите онлайн документацию Homebrew.
База данных
Для работы с базами данных, я в основном, использую MySQL. Я думаю, вы могли бы приписать это моему PHP наследию. Но я также регулярно работаю как с PostgreSQL, так и с SQLite. Для установки любой из этих баз данных, вы можете загрузить их с соответствующими поставщиками, с помощью ссылок.
Несмотря на то, что я хотел бы думать о себе как хардкор гуру командной строки, я не являюсь таковым, когда дело доходит до баз данных. Для этого я использую Navicat Lite в течение нескольких лет. Это отличный инструмент, который обеспечивает единый доступ к широкому ряду баз данных.
Navicat поддерживает не только MySQL, PostreSQL и SQLite, но также Oracle и SQLServer. Это позволяет безболезненно создать любой элемент схемы, создание и выполнение запросов вручную, поиска, создания и обновления записей – все, чего можно ожидать от инструмента управления базами данных.
Внешний доступ
Для внешнего доступа, я регулярно использую библиотеку инструментов SSH, будь то SSH на удаленном сервере, или копирование файлов в или из моей среды разработки. Вдобавок к этому, я также регулярно использую cURL и Wget для захвата файлов и для запуска запросов на API и выполнения взаимодействия с сайтом.
Но если вы не настолько склонны к командной строке, есть некоторые действительно хорошие инструменты с графическим интерфейсом. Там же почтенный FileZilla, а также более быстрый Cyberduck и Transmit. Каждый из этих трех инструментов позволит вам удаленно управлять файлами всего лишь при помощи мыши.
Подводя итоги
Вот как я устанавливаю среду со всеми инструментами, которые мне нужны. Я признаю, что использую командную строку довольно медленно. Но я также охватил ряд инструментов с графическим интерфейсом, которые можно использовать вместо них, если это ваш стиль работы.
Несмотря на частые насмешливые комментарии о Mac, не сомневайтесь – программного обеспечения, доступного для него много. И из-за его наследия BSD, он также имеет доступ к инструментам открытых исходных кодов и POSIX-совместимых. Поэтому независимо от того, каким путем вы следуете, работая и развиваясь при помощи Mac, у вас будет широкий спектр инструментов в распоряжении.
Итак, как моя установка сравнивается с вашей?
Источник
Личный опыт Web разработки в Mac OS X
Web сервер
Apache предустановлен в Mac OS и для локальной разработки его более чем хватает.
Маленькая хитрость – если не нужен виртуальный хост, то очень помогает вот такой трюк:
Осталось кинуть проект в
/Sites/%имя_проекта% и открыть в браузере localhost/
%user_name%/%имя_проекта%
На крайний случай, если нужна полная копия production окружения всегда можно установить Vagrant.
PHP предустановлен в Mac OS. Если его версия устраивает, то просто включаем загрузку модуля php5_module:
Если не устраивает, то можно установить PHP по мануалу отсюда php-osx.liip.ch. Эта версия не заменит системную, сама найдет Apache и вообще установится в /usr/local/php5. Установка предельно проста – одна строка в консоли (пример для PHP 5.5):
MySQL
Установить MySQL можно несколькими способами, например, через Homebrew. Но компилировать из исходников MySQL только потому что это позволяет пакетный менеджер? Мне кажется что проще взять DMG архив с официального сайта и установить. После установки в Системных настройках появится вкладка MySQL:
FTP/SFTP
Кроме работы над основным проектом приходится отвлекаться и исправлять/доделывать что-то у клиентов. Обычно это чужой хостинг с доступом по FTP. Значит нужен FTP клиент. Выбор пал на Cyberduck:
Почему Cyberduck? Потому что хранит пароли в Keychain, переведен на русский, бесплатен и поддерживает FTP, SFTP, WebDAV, Amazon S3, Google Cloud Storage и Rackspace Cloud Files.
MySQL клиент
Долго выбирал рать между MySQL Workbench и Sequel Pro. В силу легкости победил Sequel Pro.
Почему локальное приложение а не phpmyadmin или mysql в консоли хостинга? Потому что все курируемые базы в одном месте и не надо при задаче «посмотри что там в базе у клиента » открывать консоль, SSH и вспоминать пароли. Да, это удаленное подключение и MySQL на хостинге смотрит наружу. Но доступ по IP или SSH туннель спасают отца русской демократии.
Возможностей у программы достаточно много, лучше почитать на официальном сайте.
Sublime Text
Без него никуда. Маленькая хитрость в настройках:
По-умолчанию выставлено в TRUE и из-за этого Cyberduck открывает новые файлы в новом окне, а не в новой вкладке существующего окна.
Кроме этого, бывает что нужно быстро запустить небольшой кусок PHP кода, а делать это в IDE не удобно. Можно выполнить PHP код из Sublime Text, добавив новую Build System (Tools –> Build System -> New):
Теперь жмем CMD + B и результат работы кода появится в консоли Sublime Text.
Это удобный сборник документации, вот его особенности:
- Автообновление документации с официальных сайтов
- Оффлайн доступ
- Шпаргалки (Cheat Sheets)
- Создание своих сниппетов
- Интеграция в PhpStorm и Sublime Text
Конечно, можно еще начать петь дифирамбы тач-жестам и полноэкранному режиму приложений, но это выходит за рамки статьи.
Источник
Как собрать среду для веб-разработки под mac os x?
Подскажите пожалуйста как лучше собирать на mac os x среду с postgresql, python, pip, memcached, mongodb, и прочими пакетами?
В линуксе как-то все удобнее что все автоматом обновляется, все зависимости, а тут непонятно как такое организовать?
Т.е. если из исходников собирать то можно пропустить когда выйдет какая-нибудь новая пофикшенная версия и т.д.
через macports? brew? fink?
- Вопрос задан более трёх лет назад
- 7151 просмотр
>но тогда я не понимаю почему много разработчиков с макбуками? неужели они ставят виртуалку?
да, ставят, и сейчас расскажу как именно. чтобы все было по яблочному удобно.
самая главная проблема — это совместимость, понятно если ставится просто apache/php — то особых проблем нет,
но вот, если например проект серьезнее — nginx/zend server ce/mongodb+tomcat/memcache + imagemagik + модули на перле к nginx — с портами начинается ад
настроить все, чтобы работало также как на сервере — сложно, периодически появляются баги в устаревшей версии софта, порты обновляются явно реже.
я уж не говорю про баги самих портов (на 10.5 инсталл boost+python обновлял glibc и убивал макос).
вывод: порты держим только для малого количества программ (у меня порты вообще только для nmap и wget)
поэтому нам нужна виртуалка — плюсы очевидны:
— идентичность конфигурации с реальным сервером
— отсутствие проблем портирования\обновления софта
у меня из виртуалок живет VirtualBox. пробовал VMWare и Parallels — VB понравился больше, да и бесплатный он.
итак, при сетапе вируалки туда ставится таже ОС, что и на сервере — в моем случае это CentOS
на OS настраиваем все что нам нужно, а дальше — ставим NFS/Samba (можно конечно использовать и sshfs — но по скорости он явно проигрывает) — кстати Lion будет поддерживать NFSv4.
настраиваем key_authorization, чтобы не нужно было писать пароль при каждом логине, и прописываем алиес — sshvirt1 например, чтобы не приходилось постоянно писать айпи виртуалки.
далее — сохраняем образ, чтобы при сетапе новой вируалки нам не нужно было все повторять с начала.
запускаем вируалку, тестиш — все ок, монтируем сетевой диск — далее работаем с ним как со своим.
из среды — я пользуюсь Eclipse (и его производными)
для php у меня — zend studio, для python — aptana studio
можно конечно настроить аналог на чистом eclipse — но лень
еще из проблем связанных с портами — у меня мой пользовательский каталог зашифрован с помощью filevault (и бэкапится на iDisk через TimeMachine =)) — поэтому апач просто не имеет доступа. и как вариант — либо www_root держать за home, либо использовать виртуалку.
я бы написал подробную статью, как это все засетапить (с выходом лео, буду все это делать)
а там, сетап filevault2 с бэкапам на облако + настройка консоли и прочих плюшек, до я дико заминусован, так, что не знаю =)
Источник