Обновить
10

Пользователь

5
Подписчики
Отправить сообщение
> абстракция «внешний мир»… — чистой воды костыль… вызванный… непременным желанием любой ценой подогнать суровую действительность

Нет. Это, если хотите, часть соглашения о чистых функциях: есть некое внешнее хранилище состояний World, к которому можно обращаться только через монаду IO. Если сильно упростить — то функция, для работы которой монада IO не нужна, которая сама по себе ничего во внешнем мире изменить не способна — считается чистой, и ее можно лениво выполнять, безопасно параллелить итд. Как видите, тут «внешний мир» — хорошая, годная, даже необходимая абстракция.

> считаю радикалов, которые не хотят признать, что ни ФП, ни ООП, ни молоток не являются наилучшими инструментами

А такие вообще встречаются в дикой природе?
Эм… но почему упоротые? Random = во внешнем мире произошло какое-то (псевдо)случайное событие, и его состояние изменилось. Что вас собственно смущает?
Для не желающих понимать, почему их pull-request не будет принят, есть отличный ответ:
«Кнопка Fork справа вверху»
С кликами — это вероятно к DBeaver, хотя я не уверен.
Лично мне проще вызвать pg_dump, т.к. сам я консолью пользуюсь гораздо чаще, чем мышкой.
На постгри плотно сижу уже несколько лет, еще с 9.2. То, что появляется в новых версиях — просто не оставляет другим SQL-базам шансов, например JSON(B) / индексы по нему. Для очередного немаленького каталога, где у множества категорий товаров множество параметров (типа веса, размеров, цвета, диагонали, типа матрицы итп) можно просто использовать для хранения всего этого зоопарка JSONB в поле — вместо кучи костылей и велосипедов.
Для поиска по параметрам создаются индексы типа таких:
CREATE INDEX goods_width_size_index
  ON public.goods
  USING btree
  ((json ->> 'width'::text) COLLATE pg_catalog."default");

и всё, параметры (например цвет, ширину) можно смело использовать прямо в запросе:

SELECT id, title as name,
      json->'width' as width,
      json->'length' as length
   FROM goods WHERE category = '211' AND 
       json @> '{"color": "red"}' AND -- нужен красный цвет, да
       (json->>'width')::int >= 1200;  -- и широкий чтобы был!

Хоть и будет справедливо сказать, что я не пробовал Oracle устриц, но подобного я больше нигде не видел.
> накладные расходы планировщика запросов привели к ухудшению производительности на десяток процентов
У меня данные лежат по дням за последний год, каждый день — несколько миллионов записей (грубо говоря, логи траффика). При правильно сделанном индексе (в статье есть пример) запрос цепляет по две-три партиции максимум. Не затруднит вас показать create script?
познайте pg_partman. Вместо заката солнца вручную (что хорошо для понимания как оно внутри работает, но создает ад на продакшене) нужно всего-то дёрнуть три функции.
Офигенно!
(ставит в крон смену дизайна на 1 апреля 2015)
теги роскошные :)
К сожалению пока что получается купить только у немцев, за ~60 евро.
>1. Инкрементальные дифференциальные билды. Вы ещё кодите, а облако уже компилирует. При этом «вы» — это целая команда может быть.
При засилии скриптовых языков не слишком актуально. Даже если язык компилируемый — то скорее всего уже есть билд-сервер, который уже делает ровно то же самое.

>2. Билды на мощных облачных серверах — быстрее, чем на вашем лаптопе.
См. выше.

>3. Быстрый старт — не нужно 4 часа качать, деплоить и конфигурировать IDE, чтобы попробовать простой hello world. Всё готово сразу — и для разработчиков, и для ПМов, и для QA.
Нормально настроенная (за 4 часа) IDE работает месяцами, если не годами. 4 часа — это доли процента, за это у вас отберут моментальный отклик и полный контроль окружения. Ну если стоит задача быстро писать hello world'ы, тогда конечно. Интересно — а сколько на быстром написании hello world можно заработать?

>4. Легче делиться кодом.
Для этого придуманы и успешно используются VCS.

>5. Не нужно качать SDK.
Выигрывам те же доли процента, только вместо 4 часов — десятки минут.

>6. Не нужно загружать IDE.
А в браузере облачная IDE конечно сразу полностью с момента старта загружено.

> 7. Легче делиться ресурсами. Даже целыми виртуальными машинами.
Не вижу проблем делиться ими сейчас, безо всяких облаков.

>8. Безопасность. Не нужно хранить код на стороне разработчика.
А в чем проблема хранить код на стороне разработчика? Если уж мы подумываем о том, чтобы доверить свой код компании с непонятным TOS?
А как вам такая картинка — релиз нужно выпускать еще вчера, в приёмной уже юрист заказчика с исковым заявлением, код не хранится на стороне разработчика, а облако третий день как лежит? Да, такое бывает, даже у Amazon.

>9. Контроль над кодом.
Когда код у меня локально — я его контролирую лучше всего. В самолёте, в поезде, В Китае…

>10. Легко раздавать — можно сгенерить новое место разработчика по прямому линку. Клик — и ты в проекте.
Снова экономим доли процентов. Минимальное время, за который новый разработчик будет въезжать в более-менее сложный проект, займёт на порядки больше времени, чем разворачивание рабочего окружения.

>11. Улучшенная экосистема плагинов к Eclipse. 4000 уже установленных и ждущих подключения плагинов, маркет плагинов, обсуждение, комментарии, карма плагинов, сливы, ресеты, pay to win.
И все, теперь толко Eclipse? А если я его ненавижу и использую продукты JetBrains или вообще vim?
coursera.org

Из именно видео-уроков — запомнилась вот эта серия, настоящий триллер
<irony>Вот как решали подобную проблему в другой компании:</irony>
www.youtube.com/watch?v=msXRFJ2ar_E
Вроде уже некоторое время пилят реализацию на C++
А еще так:
:> <filename>
То же самое с существующим файлом сделает его пустым. Иногда так удобно вручную чистить логи.
Hakyll штука конечно же полезная, но гораздо познавательнее было бы почитать про создание блога на yesod, например.
Тем более что блог на очередном сочетании языка и веб-фреймворка — это сейчас такой hello world для веб-программиста :)
Тем не менее — большое спасибо за статью!
Банк — это такая организация, которая с радостью дает вам деньги, если вы можете доказать, что деньги вам не нужны (с)

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность