All streams
Search
Write a publication
Pull to refresh
65
0
Petr Myazin @PQR

Разработчик

Send message
Из интересного, что сам недавно узнал, даже в мире 1С разработки продвинутые ребята внедряют Continues Integration процессы: silverbulleters.org
Я пользуюсь Bitbucket Pipelines, действительно очень простой, хорошо интегрирован в хостинг репозиториев bitbucket. Более подробно рассказывал про него в подкасте: 5minphp.ru/episode29
Docker Weakly последний раз выходил 7 февраля 2018 (до этого еженедельно). Docker умирает?
По мотивам этой статьи я как раз недавно всё обернул в Docker: github.com/pqr/docker-apache-1c-example

И сопроводил подробной статьёй-пояснением: infostart.ru/public/810851
Типовое решение «1С: Документооборот», которым пользуются все сотрудники нашей фирмы, мы также используем с новыми, еще не выпущенными версиями платформы.

Около месяца назад обновили платформу до последней на тот момент версии 8.3.11.3034. Также используем последнюю версию документооборота 2.1.11.5, которая была выпущена 19 сентября 2017, и новых планируемых версий пока не видно.

Внезапно отвалился поиск (скриншот прилагаю), что порекомендуете?

После прочтения этой статьи я решил попробовать Яндекс Трекер.
Свой опыт рассказал в подкасте: 5minreact.ru/40-yandex-tracker-vs-youtrack
Пользуюсь YouTrack много лет, давно ждал обновлённого вида страницы задачи, радует, что проект не стоит на месте, молодцы!

Как раз вчера записал подкаст с кратким обзором/сравнением Яндекс.Трекера и YouTrack: 5minreact.ru/40-yandex-tracker-vs-youtrack и мой выбор по-прежнему — это YouTrack.
Точно такая же история — сначала взял эту библиотеку, но потом запарился вписывать свою логику в предполагаемую систему команд, хочется более гибкую/простую библиотеку, без навязанной архитектуры
Они ещё на Авито турникеты покупали
Статья вышла откровенно слабой.
А вот программа курса «Разработчик PHP» порадовала — хорошее расширение кругозора даже для опытного разработчика.
Действительно, очень напоминает платформу 1С — удобный «DSL» для описания интерфейсов и бизнес процессов. Сам по себе язык 1С, конечно, ближе к традиционным GPL, но при прочтении статьи постоянно возникали параллели с платформой 1С.
Планируются ли коробочные продукты вроде CRM, бухгалтерия, управленчиский учёт построенные на MPS?
Недавно занимался примерно тем же самым, только сайт не статический, поэтому не на S3, а на EC2 (на виртуалке с nginx + php).
Решил всё сделать через Amazon и вот пара подводных камней, о которых хочу рассказать:

1) Зарегистрировал новый домен с помощью сервиса Route 53, заплатил 11$ — пока всё ок

2) Иду регистрировать бесплатный сертификат с помощь ACM, указал домен, далее нужно подтвердить своё право владения, перейдя по ссылке, которая отправлена на admin@domain.com, webmaster@domain.ru и т.п. Но постойте, у меня нет этих почтовых ящиков, я только лишь зарегистрировал домен в Route 53! По наивности думал, если купить домен в Amazon, то он сообразит, что у меня есть права на этот домен и сертификат выпишут в один клик. Оказалось, что не выпишут. Как завести почту? Пошел быстренько подключил яндекс.почту для домена, потом в Амазоне нажал кнопку «отправить письмо повторно», получил письмо, перешел по ссылке, сертификат выписан.

3) Я заказал сертификат на *.domain.com чтобы покрыть всё сразу. Но оказалось *.domain.com покрывает только поддомены, но не сам domain.com — вещь достаточно известная для тех кто сталкивался, но для новичка будет не очевидно. Чтобы действительно покрыть всё, нужно выписывать сертификат сразу на две позиции: domain.com и *.domain.com с помощью кнопки «Add another name to this certificate». Кстати, скриншот в этой статье показан не удачный, там видно что добавлена всего одна позиция "*.domain.com", не забудьте добавить вторую позицию «domain.com»!
(хотя по описанию из статьи автор на самом деле выписывал сертификат как надо на две позиции)
image

4) В Amazon можно получить бесплатный сертификат, но его не получится установить на nginx на своей EC2 виртуалке, они просто не отдают приватные ключи. Чтобы воспользоваться этим бесплатным сертификатом придётся купить сервис балансировщика ELB к которому можно привязать только что выписанный сертификат, и который будет терминировать HTTPS трафик, а к нашей конечной EC2 виртуалке с nginx будет приходить обычный HTTP запрос. Получается сэкономили на сертификате, но заплатили за ELB. В сколько именно мне обойдётся этот ELB я пока не разобрался.

5) Сделать перенаправление http -> https средствами Route 53 или ELB не удастся, эту задачу придётся самому прописывать в конфиге nginx на EC2 (напомню, по условиям данной задачи мы говорим не про статический сайт на S3, а про сайт на виртуалке EC2). Фокус в том, что nginx на нашей виртуалке стоит за балансировщиком ELB и он теперь всегда получает голый http. Как в этом случает понять, по какому протоколу пришел реальный пользователь, http или https? Погуглив, обнаружил что этим вопросом задаются многие. Если трафик пришел через ELB, то мы можем проверить оригинальный протокол по специальному заголовку x-forwarded-proto:
server {
    listen 80;
    listen [::]:80 ipv6only=on;

    if ($http_x_forwarded_proto = "http") {
       rewrite ^(.*)$ https://$http_host$1;
    }

   #...
}


6) Наконец, на бэкенде за nginx у вас работает какое-то приложение (PHP/Ruby/Python/Node/...), в коде которого может быть дополнительная логика проверяющая протокол http/https. Поместив приложение за ELB с терминацией https, мы создали видимость, что у нас все запросы приходят чисто по http. Не забудьте проверить, помешает ли это вашему конкретному приложению и умеет ли оно читать x-forwarded-proto?
Поддерживаю, у меня схожие мысли.
Раньше были функции принимающие массив, когда заранее было не известно сколько элементов хочу передать, типа
$table->addColumns([$columnDescription1, $columnDescription2, $columnDescription3])


Затем я стал использовать функции с переменным числом параметров
$table->addColumns($columnDescription1, $columnDescription2, $columnDescription3)


Но при форматировании код вызывающий функцию с переменным числом параметров частенько оказывался многострочным (много параметров), а висячую запятую добавить после последнего нельзя. Когда хочешь добавить ещё один параметр в конец или передвинуть последний выше всё время приходится следить за последней запятой (которой не должно быть). + традиционная проблема с diff

$table->addColumns(
    $columnDescription1,
    $columnDescription2,
    $columnDescription3
);

с массивами удобнее:

$table->addColumns([
    $columnDescription1,
    $columnDescription2,
    $columnDescription3,
]);

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

Но есть другой момент. Практика показала, что эти параметры зачастую на столько динамичны, что их не удаётся выделить в отдельные переменные, они формируются на ходу, в зависимости от каких-то условий, например:

$columns = [$columnDescription1, $columnDescription2];
if ($x) {
    $columns[] = $columnDescription3;
}
$columns[] = $columnDescription4;

// В итоге опять передаём массивом
$table->addColumns($columns);


В итоге первоначальный энтузиазм по поводу функций с переменным числом параметров угас, а многое из того, что было написано в новом стиле скатилось обратно к массивам.
Если смотреть на эти гугл-тренды — все языки стагнируют! Так что выбираем язык, которые стагнирует медленнее других :)
trends.google.com/trends/explore?date=all&q=%2Fm%2F060kv,%2Fm%2F09gbxjr,%2Fm%2F02p97,%2Fm%2F07sbkfb,%2Fm%2F0jgqg
Пооптимизируем JS. Тут не очень богатый выбор. Есть UglifyJS, используйте его, других вариантов нет.

Если код имеет грамотные аннотации, то Closure Compiler может быть до 2х раз эффективнее, чем UglifyJS.
Верно подметили в начале про три категории и в данная статья полностью подпадает под первую: «Первая категория упоминаний блокчейн – это просто маркетинг. Модный новый термин используют для продажи всего, что есть в наличии.»
Servo — это только про рендеринг html/css.
JavaScript движок (SpiderMonkey) пока никто не переписывает на Rust и нет никакого автоматического распараллеливания https://github.com/servo/servo/wiki/Design#javascript-and-dom-bindings
А чем собираете, webpack'ом? Смотрели ли на Rollup, ведь с ним может компактнее получиться? Используете ли Babel или транспилируете сразу с помощью TypeScript?
Есть и критика новой структуры директорий в Symfony 4: http://paul-m-jones.com/archives/6564
Инициатива по стандартизации структуры PHP пакетов: https://github.com/php-pds/skeleton
Подтверждаю, работаю с пользователями на тонких клиентах, проблема с памятью актуальна! И именно поэтому мы используем Firefox — он меньше всех потребляет.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer
Lead
PHP
MySQL