• Что такое enterprise разработка на самом деле?

    @miksir
    IT
    Enterprise разработка - это разработка, направленная на решение проблем бизнеса. В отличии от разработки для решения проблем конечных пользователей.

    На самом деле нет каких-то зафиксированных принципиальных характеристик, которые присущи только EA. По-этому, в разговорной речи понятие "энтерпрайз" может значить весьма разные вещи. С одной стороны энтерпрайз - не про увлечение модой с переписыванием всего, как только появится новый тренд. Ибо это _дорого_, так как цена ошибки дорога. С другой стороны - совсем не обязательно, что это 20-летние технологии. Конкретный бизнес сам для себя выбирает модели развития и обновления стека технологий. С одной стороны - это сложность ПО, бизнес-логики. С другой - сложность понятие весьма относительное.

    Но если все же пытаться выделить какие-то характерные черты, я бы назвал несколько:
    * устойчивость к трендам (использование их, когда они пройдут стадию моды и перейдут к стадии заинтересованности крупными игроками, ибо никому не нужны технологии, которые через год умрут и их поддержка будет дорожать каждый день).
    * сложная и непостоянная бизнес-логика, давление на нее из множества источников
    * результат сложной переменчивой бизнес-логики в совокупности с длительным использованием продукта приводит к целям снижения стоимости поддержки за счет стоимости первоначальной разработки, производительности и потребляемых ресурсов. ООП, SOLID, Unit Test/TDD, DDD - все эти популярные буквы - последствия "энтерпрайза", когда мы готовы серьезно подходить к написанию кода для облегчения его последующего изменения.
    * слабо заметный вклад конкретного программиста, проистекает из сложности ПО

    Требования к программисту... ну я бы сказал, усидчивость, вдумчивость, исполнительность... хм, а что, в каких-то других областях другие требования к программистам? Хотя, конечно, в противоположность, можно назвать способ разработки "быстро-быстро и в продакшн". Но, к слову, такие ситуации могут и в энтерпрайзе возникнуть.

    По-этому, стоит рассматривать не энтерпрайз/не энтерпрайз, а конкретные компании с конкретными требованиями и циклами разработки.
    Ответ написан
    1 комментарий
  • Как лучше продвинуть сайт?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Нуу... насчет выбора CMS || CMF || Frameworks нет правильного ответа.
    Есть лишь конкретная задача, которую нужно реализовать и бюджет, которым клиент располагает.
    Нужен CMS для ИМ - WordPress + Woocommerce или OpenCart
    Нужен CMF - ModX
    А если нужен фреймворк, то тут зависит от ЯП и ваших предпочтений / навыков - Yii2, Laravel, Symfony и другие.
    Буду благодарен, если подскажите, что влияет на поисковую оптимизацию и плюсы с минусами у сайта на WP и самописного.

    Зависит от вашего навыка... Если напишете самописный Г* сайт, то не сможете оптимизировать его... Точно также любую CMS можно изг**нять.
    Правила оптимизации одинаковы для всех сайтов независимо от CMS, CMF фреймворков:
    - подключите SSL
    - меньший вес сайта (ориентируемся на pagespeed)
    - меньше элементов в DOM
    - оптимизированные картинки
    - наличие турбостраниц и amp версии сайта
    - наличие карты сайта
    - наличие качественного и уникального контента
    - отсутствие домена в списке блокировок и т.д.
    - наличие robots.txt
    - мощный сервер расположенный ближе к основному источнику трафика
    - наличие фавикон
    - наличие разметки для сайта, меню и т.д.
    - грамотный SMM
    - реклама на сторонних сайтах
    - наличие качественных постоянных ссылок на других ресурсах
    и т.д.
    Ответ написан
    Комментировать
  • Как лучше продвинуть сайт?

    ReactorHeart
    @ReactorHeart
    SEO аналитик
    Собираюсь писать сайт для продажи сумок

    Из готовых решений:
    1. если нет бюджета, то бесплатные CMS для интернет-магазинов (вариантов достаточно). WB не стоит брать, ибо он априори заточен под контентные проекты и делая из него магазин вы пытаетесь превратить лодку в автомобиль.
    2. если есть бюджет, то в пределах 30 тыс руб можно найти коробочную версию CMS заточенную только под магазин (не Битрикс!), в нагрузку могут дать 1-2 шаблона для ваших разработок. Но надо иметь ввиду, что будут расходы на модули, расширяющие функционал, чтобы самому не пилить. Если конечно, ваша цель не продажи, то можно без модулей и/или самостоятельно.


    А другие - что лучше самому написать

    "Другие" преследуют свои цели - упиваться собственной значимостью, утверждаться за счет того, что изобрели очередной велосипед, не замечая очевидного - он точно такой же, как и все остальные (два колеса, руль и рама).
    Поэтому вам надо определиться, какова цель создания магазина - продажи/бизнес или развитие навыков в PHP.

    что влияет на поисковую оптимизацию

    Влияет качество реализации внутренней и внешней оптимизации, которые зависят от компетенции SEO специалиста и программиста. Пользователь "azerphoenix" подсказал вам базовый список с припиской "и т.д.", а весь актуальный перечень знает толковый SEO специалист + он может поставить ТЗ и проверить правильность его выполнения, что часто упускают из вида, хотя проверка и тесты - это важная часть, влияющая на конечный результат.

    Есть два варианта действий:
    1. Вариант №1 заниматься самостоятельно и созданием сайта (программингом) и оптимизировать сайт (внешняя и внутренняя оптимизация). Плюсы есть, но минусов больше. Велика вероятность сделать ни то и ни так, как надо, а так же сделать не всё, что надо, не считая массу затраченного времени на то, чтобы изучить SEO и тем более понять, что из этого действительно работает. И в результате всё-равно приходится тратить время и средства на консультации или на услуги по продвижению.;
    2. Вариант №2 делать свою работу - создавать сайт, а специалиста по SEO подключать только на необходимых этапах работы над проектом. Например, для создания ТЗ в начале создания проекта и аудита после окончания создания/запуска. Тогда экономится масса времени на основную часть (программинг), что позволяет более глубоко проработать функционал сайта, сделать его более удобным для будущих клиентов.


    И дело не в том, что я топлю за заказ услуг специалиста. А в том, что объединяя в одном лице, например программиста/SEO/маркетолога/админа/копирайтера и проч., мы получаем на выходе человека-оркестр, который вроде играет что-то похожее на музыку и вроде даже живенько, но он так и останется уличным бродягой, в отличие от тех, кто занимается игрой только на одном музыкальном инструменте, оттачивая навык годами.
    Ответ написан
    Комментировать
  • Как спарсить страницу через PHP cURL с текущими куками браузера?

    DevMan
    @DevMan
    код будет выполняться У МЕНЯ в браузере
    вы изобрели способ выполнения пхп в браузере? o_O

    изучите как работает пхп и поменяйте подход.
    Ответ написан
    4 комментария
  • Как выйти из обработчика сообщений в telegram bot?

    dummyman
    @dummyman
    диссидент-схизматик
    Необходимо обозначить регулярку как значение переменной чтобы использовать несколько раз. Каждое последующее использование метода onText() с тем же параметром регулярки отменяет прошлый обработчик.
    var rx=/(.+)/;
    var emptyFn=function(){};
    bot.sendMessage(this.userId, 'Where do you want to know the weather forecast?')
       .then(() => {
           this.onText(rx, msg => {
                 console.log(msg);
                 this.onText(rx, emptyFn);
           });
      });
    Ответ написан
    3 комментария
  • Как переписать POST запрос PHP на Node js?

    AntiStream
    @AntiStream
    Потоковый программист
    getPostResponse ничего не возвращает в данном случаи, тут надо использовать промис для такого, а саму функцию вызывать c помощью async/await...

    (async () => {
        console.log(await getPostResponse());
    })();
    
    function getPostResponse() {
        return new Promise((resolve, reject) => {
        request.post({
            url: 'https://rustxt.ru/api/index.php',
            form: {
                method: 'getSynText',
                text: 'Синонимизация текста совершенно бесплатно'
            }
        }, (err, response, body) => {
            if (err) {
                return reject(err);
            }
    
            resolve(body);
        });
        });
    }
    Ответ написан
    Комментировать
  • Хостинг для бота ВК PHP?

    @zkrvndm
    Софт для автоматизации
    Для тестов подойдёт этот:
    https://beget.com/ru/free-hosting

    Для реальной работы берите у них платный тариф. Лично я все сайты раззмещаю у них. Это один из самых стабильных по качеству услуг хостеров в России. Только имейте в виду, что на бесплатном хостинге мощностей процессора выделяется в 8 раз меньше, чем на платном хостинге.
    Ответ написан
    Комментировать
  • Хостинг для бота ВК PHP?

    @Jetronic
    Я использую бесплатный idomax.ru там 250мб халявного пространства с php, базами данных и ssl и без рекламы. Я у них держу своих ботов уже месяц и без проблем
    Ответ написан
    Комментировать
  • Почему VK API метод video.search не возвращает прямые ссылки на видео?

    pstn
    @pstn
    Веб-разработчик
    Если в Вашем приложении используется прямая авторизация, возвращается дополнительное поле files, содержащее ссылку на файл с видео (если ролик размещен на сервере ВКонтакте) или ссылку на внешний ресурс (если ролик встроен с какого-либо видеохостинга).

    Документация video.search
    Ответ написан
    Комментировать
  • Long polling - готовые решения?

    @Number_11
    1. Ставишь composer, далее переходишь в папку с проектом через командную строку (cd c://bot - пример), выполняешь код:
    "composer require guzzlehttp/guzzle".
    2. Создаешь init.php, в этой папке, с содержимым:
    <?php
    // Инклуды)
    use GuzzleHttp\Client;
    include('vendor/autoload.php');
    include('telegramBot.php');

    //Получаем данные
    $telegramApi = new TelegramBot();

    // Вычный цикл, обработчик
    while (true) {
    sleep(2);
    $updates = $telegramApi->getUpdates(); // Получаем обновление, методом getUpdates
    foreach ($updates as $update){
    if (isset($update->message->text)) { // Проверяем Update, на наличие текста

    $text = $update->message->text; // Переменная с текстом сообщения
    $chat_id = $update->message->chat->id; // Чат ID пользователя
    $first_name = $update->message->chat->first_name; //Имя пользователя
    $username = $update->message->chat->username; //Юзернейм пользователя

    print_r($chat_id);
    print_r($username);

    if ($text == '/start'){ // Если пользователь подключился в первый раз, ему поступит приветствие
    $telegramApi->sendMessage($chat_id, 'Привет'. ' ' . $first_name . '!'); //Приветствует Пользователя
    } else {
    $telegramApi->sendMessage($chat_id, $first_name . '! Как дела?' ); // Спрашивает как дела

    }
    }
    }
    }

    3. Создаешь telegramBot.php, в этой папке, вот содержимое:
    <?php
    // Подключение библиотеки
    use GuzzleHttp\Client;
    use Telegram\Api;

    class TelegramBot
    {
    protected $token = "ТОКЕН_БОТА";
    protected $updateId;
    // Функция собирает URL
    protected function query($method, $params = [])
    {
    $url = "https://api.telegram.org/bot";
    $url .= $this->token;
    $url .= "/" . $method;
    if (!empty($params))
    {
    $url .= "?" . http_build_query($params);
    }

    $client = new Client([
    'base_uri' => $url
    ]);

    $result = $client->request('GET');

    return json_decode($result->getBody());
    }

    // Получаем обновления
    public function getUpdates()
    {
    $response = $this->query('getUpdates', [
    'offset' => $this->updateId + 1
    ]);
    if (!empty($response->result)) {
    $this->updateId = $response->result[count($response->result) -1]->update_id;
    }
    return $response->result;
    }

    // Отправляем сообщения
    public function sendMessage($chat_id, $text)
    {
    $response = $this->query('sendMessage',[
    'chat_id' => $chat_id,
    'text' => $text
    ]);
    return $response;
    }

    }

    4. Что бы запустить его, там же в командной строке запускаешь файл:
    php init.php

    Там же в консоли увидишь Id пользователя и его юзернейм)
    Вот такой не много туповаты пример, но работает.
    Ответ написан
    2 комментария
  • Хостинг для бота ВК PHP?

    @driverx18
    Хостил какое-то время на бесплатном 000webhost, при том что пользовались ежедневно ботом по 20000 пользователей, по итогу хостинг заблочил. Если вам нужен фри хостинг чтобы тестить бота, подойдет любой. Если вы хотите использовать на проде, сразу лучше берите VPS любую (не DigitalOcean). За своё время создал много ботов, и уверенно заявляю, не используйте хостинги, а еще хуже бесплатные хостинги на проде, а сразу берите VPS
    Ответ написан
    2 комментария
  • Хостинг для бота ВК PHP?

    @KingstonKMS
    Любой vps, vds. Например на hetzner, на firstvds
    Ответ написан
    Комментировать
  • Нужен ли хостинг для чат-бота в телеграм?

    @stdio96
    Можете воспользоваться repl.it. Насколько мне известно, тут сервер выключится при бездействии более 30 минут. Но есть решение uptimerobot. Настраивается до неприличного просто. Данный сервис пингует бота (сервер) каждые n-минут за счет чего создается иллюзия активности и бот работает +-вечно :). У меня так уже простенький бот-парсер работает почти 2 месяца.

    И да, это оба сервиса бесплатные (есть и платные версии, но это уже зависит от вас).
    Ответ написан
    2 комментария
  • PHP отправка нескольких файлов на почту. Неправильный цикл?

    Вы в цикле меняете boundary, а он должен быть одинаковым между всеми частями. HTML-часть тоже должно быть только одна. Чтобы исправить, вот эту часть
    $boundary = "--" . md5(uniqid(time()));
    
                $headers = "MIME-Version: 1.0;\r\n";
                $headers .= "From: Robot\r\n";
                $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
                     
                $multipart = "--$boundary\r\n";
                $multipart .= "Content-Type: text/html; charset=UTF-8\r\n";
                $multipart .= "Content-Transfer-Encoding: base64\r\n";
                $multipart .= "\r\n";
                $multipart .= chunk_split(base64_encode($html));

    надо поднять выше, оставить внутри else но вынести из цикла по файлам, т.к. она должна выполняться только один раз.
    Ответ написан
    4 комментария
  • Писать форму регистрации самому?

    @Dolosweb
    Конечно самому, оно вам надо передавать доступы третьим лицам. Нести отвественность будете вы
    сделать самому проще, чем морочиться с login api.
    Ответ написан
    Комментировать
  • Писать форму регистрации самому?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Зависит от проекта и ситуации. Где-то можно взять готовое, где-то надо делать ручками :-)
    Ответ написан
    Комментировать