ksdaemon
0

Дополню пару слов про третий вариант.
Мы используем https://github.com/db-migrate/node-db-migrate. Это аналог упомянутых инструментов на node.js. Умеет работать из коробки с mysql, postgresql, sqlite3 и mongodb.


Из плюсов:


  • Миграции можно писать как в js файлах используя ORM, так и в sql файлах
  • Есть scopes. То есть можно сделать несколько областей (dev, prod, test) и раскидать все миграции по соответствующим скоупам. Это дает возможность в каждом окружении запускать только необходимые миграции.

Из минусов:


  • нет pre- и post- скриптов. Но это не так критично.

В итоге, у нас работа построена следующим образом:


  • Мы активно используем хранимки, в коде приложений нет никаких запросов, только вызов хранимок.
  • Всё, что касается БД (и структуру и хранимки) разрабатывают программисты БД.
  • Каждый разработчик БД внося изменения в структуру базы, сам пишет небольшую миграцию (это довольно удобно, у db-migrate есть cli, который подготавливает для вас костяк, остаётся только заполнить 2 sql файла с миграцией вверх и вниз)
  • У нас 2 репозитория касательно БД: в одном живёт вся структура с нуля, статические справочники и все хранимки (по одному файлу на каждую сущность, будь то таблица, вьюха, хранимка и прочее), в другом живут только миграции.
  • Дальше у нас руками написан небольшой шелл скриптик, который подготавливает оба варианта развертывания базы для продакшн.
  • В итоге, если БД разворачивается с нуля — используется один скрипт, если же происходит обновление существующей БД, то накатываются только отсутствующие миграции и перенакатываются хранимки (ну просто потому что хранимки завязаны на структуру таблиц и нет смысла их держать в миграциях, а проще после накатить актуальные сразу, которые точно будут консистентны со структурой)

Как-то так, если вкратце.

ksdaemon
–1
Вот это да!!! Охренеть! Прям открыли глаза на такие полезные инструменты! А то мужики-то все напрямую в бинарных файлах базы всё правят и не знают про /* Подставить любой из вышеперечисленных инструментов */
Простите, не сдержался :) Понедельник — день тяжелый!)
ksdaemon
+4
Кстати, про Symfony Workflow Component Алексей Медведев делал доклад на девятой встрече SymfoniacsMSK! Вот видео
ksdaemon
0
Народ, а покажите какие-нибудь реальные примеры API, описанных в RAML? И сгенерированные html'ки тоже было бы интересно увидеть.
И Самый главный вопрос: как поддерживать актуальность RAML-спецификаций и кода, который этот самый API реализует? Насколько я понял, надо только ручками после изменений апишки править RAML…
ksdaemon
+2
Ну а для тех, кто хочет послушать про Котлин уже сейчас, буквально на днях я записал SDCast с Андреем Бреславом: https://sdcast.ksdaemon.ru/2016/03/sdcast-41/ :)
ksdaemon
+1
Кстати, про Tarantool, почему LUA, новый вид апп-серверов на базе nginx и tarantool'а и прочее мы общались с Костей Осиповым у меня в SDCast'е #20: sdcast.ksdaemon.ru/2015/03/sdcast-20
ksdaemon
+1
В Ratchet используется WAMP v1. Он уже считается устаревшим. Для v2, как верно заметил pronskiy надо юзать Thruway
ksdaemon
+1
Ну коли пошла такая пьянка, скажу про 3 моих реализации WAMP'а:
  • Wapmy.js — JS клиент для браузера
  • Wiola — Роутер на Lua на базе Nginx
  • Loowy — клиент на LUA

А еще есть слайды с моего выступления на MoscowJS: «Пара слов про WAMP».
Вдруг кому-то пригодится.
ksdaemon
+2
Честно говоря, вообще не согласен. У меня есть опыт перевода разного рода документации на маркдаун. При чем тех людей, которые никогда не были программистами. И они вполне себе освоились. И уж это точно проще, чем писать тэги html.
Если интересно, вот моя заметка по этому поводу: Вы все еще пишете ТЗ в Word? — Тогда мы идем к Вам!
ksdaemon
–2
Да, как-то много очень неприятных ляпов в заметке. Это расстраивает.
ksdaemon
+3
Кажется это баловство… Но студентам-стажерам можно подарить, как стимул и шпаргалку два-в-одном
ksdaemon
+7
АА!!! Книжка про FreeBSD!!! У меня есть такая! :)
ksdaemon
0
Спасибо! Да, есть мысли и эту тему затронуть.
ksdaemon
0
Спасибо, приятно.
ksdaemon
+1
Кстати, вопрос: как вы учитываете вопрос временных трудозатрат? Одно дело, это оценка времени выполнения задачи постановщиком (менеджером, или ведущим разработчиком), другое — что скажет конечный исполнитель? И опять же, очень хочется понимать, сколько реально времени тратится на те или иные задачи, чтобы накапливать статистику и в дальнейшем иметь возможность пользоваться ей для более точных (адекватных) прогнозов. Есть возможность указывать временные трудозатраты прям в коммит-сообщениях, но даже это программисты нифига не делают. Да, можно требовать принудительно проставления, но это тоже не всегда верно/нужно…
ksdaemon
0
Интересная и познавательная статья. Мы тоже используем у себя связку redmine+gitlab, но несколько с другим подходом. Кому интересно, подробнее можно прочитать вот тут: blog.ksdaemon.ru/2014/02/v-poiskakh-optimalnykh-sredstv-soprovozhdeniya-razrabotki-chast-tretya-schaste-blizko/

Понравилась идея с «Как проверить». Но у нас основополагающий документ — это ТЗ. И соответственно, тестировщики проверяют продукт на соответствие ТЗ. И если это не так — то или правится ТЗ под существующие реалии, либо правится софт, чтобы соответствовал ТЗ. Кстати, именно по ТЗ, тестировщики пишут тест-кейсы, которые так же фигурируют в задачах/багах.
ksdaemon
+7
В продакшне — конечно же строго: serv1, gw2, db3 и т.д.
А для разработческого небольшого зоопарка, конечно же творчески.
У меня вот, например, серверы называются именами птиц/прочих летающих тварей: falcon, hawk, firefly, eagle и т.д. Скажешь, что БД на firefly'е и всем сразу все понятно.
ksdaemon
0
Клёвая идея! Надо будет поиграться на досуге.
ksdaemon
–1
Те, кто ни разу не был, но очень хочет, могут перейти по указанной ссылке и прочитать что там написано ;)
ksdaemon
0
Забавненько, а почему бы и нет. Хотя вообще для таких целей вероятнее всего нужен какой-ньть BPEL/SOA, на котором строится бизнес-логика.
ksdaemon
+4
А я раньше просто брал playtools и делал себе FF жизней и играл. Кстати, у меня на даче еще жива моя 80386SX4, и там стоит Prehistorik 1 & 2 и еще куча легендарных игрушек, типа Golden Axe и я иногда их запускаю :)
ksdaemon
+3
cp default_site_skeleton.conf my_brand_new_site.conf
vim my_brand_new_site.conf
:%s/skel_site_name/new_site_name/g
:wq
service httpd restart
не вариант?)
ksdaemon
+6
Я чего-то не понял: вся статья про то, как увеличить размер буфера в nginx?
ksdaemon
0
Всячески плюсую за то, что нашлись и желание и силы все это реализовать и поддерживать. Здорово!
ksdaemon
0
Что-то вы такое странное говорите… Во-первых, в гите есть submodules и subtree, если вы имеете в виду возможность работать с поддеревом одного большого проекта, как с отдельным компонентом, собственно для этого они и были придуманы. Во-вторых, если у вас и вправду бАльшое дерево, то переключение между ветками в SVN/CVS — это просто мука, долго и медленно. Впрочем, это вполне очевидные недостатки… Да и вообще, я не нашел ни одного плюса у svn по сравнению с git/hg. Но это, как говорится, уже совсем другая история. :)
ksdaemon
+4
А что, кто-то еще юзает svn?))

П.С. Ладно-ладно. Это была шутка. Понятно что есть куча легаси-кода и народу просто лень переводить все на git/hg. Но в любом случае, ни разу не было потребности увидеть активность коммитов в терминале…
ksdaemon
+1
боятся хабраэффекта )))
ksdaemon
+2
В Тоаде есть такая штука как PL/SQL Code Analysis. Там тоже показываются ошибки, предложения и замечания.
Вот видео про эту фичу.
+ В самом оракле 11g есть такая штука как PL/Scope. С помощью нее можно изучать код на предмет определения используемых переменных, местах вызовов и зависимостей. Подробнее можно прочитать у xtender, тут.
ksdaemon
0
Отлично! Знаю про такие штуки для оракла, а для мс-скуля как-то не встречал. Спасибо за инфу.
ksdaemon
0
Посмотрел с удовольствием! Было интересно и любопытно. Спасибо!
ksdaemon
0
Хорошая подборочка!
ksdaemon
0
Это конечно хорошо. НО лишняя проверка, даже две в каждом скрипте. А если у вас высоконагруженный проект? Не айс.
ksdaemon
0
не знаю конечно зачем, ну ладно, сделал.
ksdaemon
0
Нууу не совсем согласен с вами. Да, профилирование php, но вывод всего этого дела в браузере, а точнее в консоль firefox/firebug. Так что все-таки тут не только php.
ksdaemon
0
упс :) да. Ну тут получилось более наглядно. А по поводу дива с ссылкой — оно конечно удобнее, но, например, у нас в приложении большинство запросов — это ajax-запросы. А переписывать еще и js-логику не хотелось. Но там где можно — да, такой див будет удобен.
ksdaemon
+1
эй! А где наш карточный домик?!
ksdaemon
+3
Тогда и вас с днем рождения! :)
ksdaemon
0
Ну да, в стандартный репозиторий не входит, но собственно а должен ли? У оракла специально место это так и называется: Free and Open Source Software, он же oss.oracle.com, поэтому его можно без проблем подключить и использовать.
Кстати, при установке этот пакет все проделанные действия пишет в лог, который потом, если интересно, можно посмотреть и увидеть все сделанные изменения. Но зато время он экономит существенно.
А по вопросу — на всех или не на всех — на всех RHEL-подобных — точно работает. Да и там ведь нет никаких бинарников скомпилированных, там всего лишь правильные скрипты.

Нуу выдержка — это да, как говорится «до первого апдейта нельзя»…

Про заметки спасибо, записываем по возможности :)
ksdaemon
+5
На дворе 2012 год и на днях уже 12-я версия выйдет, а вы все про десятку рассказываете. Видимо по этой причине вы и не знаете, что есть например замечательный пакет oracle_validated который значительно упрощает процесс установки: он ставит нужные пакеты, конфигурит нужные параметры ядра, создает пользователя oracle. — это все не надо делать ручками.
Пользуясь случаем пропиарю свои заметки по теме установки и настройки оракла в разных ипостасиях, смотреть тут
ksdaemon
+2
Статья — самое то, для моей жены :)