Компания TISS

[+]
Более подробно о моем участии в проекте (для российских работодателей) …

Компания TISS — один из ведущих дистрибьюторов автозапчастей в России. Официальный представитель международной торгово-закупочной группы Nexus.

  • На рынке более 27 лет
  • Более 200 брендов в портфеле
  • Около 10 000 оптовых клиентов
  • Более 1 000 сотрудников
  • Филиалы в 25 городах России
  • В ассортименте компании около миллиона товаров

Технологии обучения

Я проработал в этой компании около полугода, но проекты, которые я выполнил были достаточно сложные и интересные. У компании были очень крупные заказчики, сообщаю только о тех с которыми я работал:

  • Эльдорадо/М-Видео
  • Билайн
  • Альфа-Банк (Казахстан)
    были еше небольшие проекты у довольно серьезных заказчиков, но эти три наиболее интересны. Я не могу дать ссылки на сайты или страницы, все проекты были внутренними, в подробном описании я не привожу скриншотов и развернутой информации в силу понятных причин.
    Компания работала только с технологией WebSoft, это система управления персоналом, более подробно о ней можно узнать здесь.
    В своих проектах мне приходилось использовать API WebSoft, я делал backend и frontend на Vue, также создавал внутрениие модули системы и новые сущности. В технологию были встроены XAML и ExtJS, которыми я владею и поэтому приходилось делать сложные вещи на сервере и клиенте.
  • Проект MUSICALION (Германия)

    Проект представляет собой коммерческий музыкальный сервис, члены которого могут публиковать свои произведения, а также произведения других авторов в собственном исполнении и/или оранжировке. Я работал над проектом с июля 2019 года по июнь 2021 года в качестве программиста. К моему большому сожалению за это время я выполнил все поставленные передо мной задачи и работать стало не с чем, эпидемия ковида также добавила негатива в этот бизнес, что привело к его сильному сокращению и отмене изветсных музыкальных конкурсов для которых проект являлся организатором.
    В связи с тем, что я связан с моими бывшими работодателями соглашением NDA (Confidentiality Agreement), я не могу подробно остановиться на задачах, которые выполнялись мной в рамках этого проекта и технологиях на которых это было выполнено. Вы можете посмотреть на часть сайта проекта, которая есть в открытом доступе, это довольно большой его кусок, по роду своей деятельности я так или иначе принимал участие в модификации практически всех страниц а часть модулей и функций создал с нуля, в проекте их не было.
    Вкратце можно перечислить следующие направления моей деятельности:

    CRM Sigma

    [+]
    Более подробно о моем участии в проекте (для российских работодателей) …

    Краткие сведения о проекте:

  • Клиентская база: более 30 миллионов человек
  • Объем продаж: до 500 000 почтовых отправлений в месяц
  • Размеры рекламной деятельности: рассылка до 4 миллионов писем в месяц
  • Размер базы данных: более 300 GB
  • Количество таблиц в базе данных: около 300
  • Количество пользователей системы: около 500
  • CRM ЕШКО (Россия)

    [+]
    Более подробно о моем участии в проекте для российских работодателей …

    Проект по доработке CRM-системы компании.

  • Размер базы данных: 70Gb
  • Количество клиентов: более 6 миллионов
  • Сфера деятельности: Российская Федерация
  • Представлена на рынке: с 1996 года
  • Штаб квартира: в Голландии
  • Филиалы: 8 филиалов в Европе и странах СНГ
  • Многоязыковая поддержка WordPress


    Данный подход используется на этом сайте, он прост в реализации, но имеет некоторые недостатки и ограничения.
    Это не идеальный код, это просто демонстрация способа, как можно включить многоязыковую поддержку для WordPress.
    Приведенные тексты программ подразумевают поддержку двух языков: английского и русского, языков может быть больше.

    Недостатки:

    • Всегда должны быть русская и английская версия текста во всех местах.
    • В административной панели заголовки выглядят нечитабельно.
    • Нельзя использовать такую разметку для категорий и тегов, если планируется их прямой вывод через функции wp_list_[…] и им подобные.
    • При использовании текста в дополнительном коде PHP всегда необходимо вызывать функцию-транслятор.
    • Поисковики будут всегда получать текст для языка по умолчанию. На сайте я использую свой дополнительный плагин для редиректов при включенном английском языке и поэтому поисковики видят обе версии страницы.

    Данный подход является очень упрощенным и годится для несложных сайтов.

    Использование в постах и страницах:

    • [ru]Русский текст[/ru]
    • [en]English text[/en]

    Использование в коде PHP:

    
    <?php 
    //-- echo --
    stringTranslate('[en]English text[/en][ru]Русский текст[/ru]'); 
    //-- value --
    $text = stringTranslate('[en]English text[/en][ru]Русский текст[/ru]', false); 
    ?>
    
    

    Реализация:

    common.js (файл javascript с вашим кодом):

    
    function changeLanguage(ob) {
      if (ob == "ru") {
        if (!confirm("Please, confirm changing language interface to English.")) {
          return;
        }
        document.cookie = "lang=en";
      }
      else {
        if (!confirm("Подтвердите, пожалуйста, смену языка интерфейса на Русский.")) {
          return;
        }
        document.cookie = "lang=ru";
      }
      location.reload();
    }
    
    

    На своем сайте для старой темы я использую простую схему Wodpress, т.е. тут нет шаблонов, дополнительных файлов и т.д. Поэтому привожу пример только для основного файла схемы. Этот блок отображает две иконки для переключения языков, подобные тем, которые вы можете видеть на этом сайте. Пример использования функции отображения данных в коде приведен выше.

    index.php:

    
    //.... HTML markup before
    <img src="<?php bloginfo('template_url'); ?>/images/en.png" 
      <?php echo (($lang == "en")?("title='English language is setting now.'"):
      ("style='opacity: 0.2; cursor: pointer;' onclick='changeLanguage(\"ru\");' 
      title='Set English as interface language.'")); ?>/>
    <img src="<?php bloginfo('template_url'); ?>/images/ru.png" 
      <?php echo (($lang == "ru")?("title='Русский язык интерфейса сейчас установлен.'"):
      ("style='opacity: 0.2; cursor: pointer;' onclick='changeLanguage(\"en\");' 
      title='Установить русский язык интерфейса.'")); ?>/>
    // HTML markup after ...
    
    

    functions.php:

    
    add_filter( 'the_content', 'content_translate' );
    
    function content_translate ($content) {
      return stringTranslate($content, false);
    }
    
    function stringTranslate($str, $isEcho = true) {
      $rez = $str;
      if ($_COOKIE['lang']) {
        $lang = $_COOKIE['lang'];
      }
      else {
        $lang = 'en';
      }
      $rStr = 'ru';
      if ($lang == 'ru') {
        $rStr = 'en';
      }
      $am = 0;
      while (true) {
        $pos1 = strpos($rez,"[".$rStr."]");
        if ($pos1 === false) {
          break;
        }
        $pos2 = strpos($rez,"[/".$rStr."]");
        if ($pos2 === false) {
          $pos2 = strpos($rez,"[".$lang."]",$pos1);
          if (!$pos2) {
            $pos2 = strlen($rez);
          }
        }
        else {
          $pos2 += strlen("{/".$rStr."}");
        }
        $rez = str_replace(substr($rez, $pos1, $pos2 - $pos1), "", $rez);
        //-- decline endless cycle --
        $am++;
        if ($am > 100) {
          return "Cycle error!";
        }
      }
      if ($isEcho) {
        echo str_replace('[/'.$lang.']', "", str_replace('['.$lang.']', "", $rez));  
      }
      else {
        return str_replace('[/'.$lang.']', "", str_replace('['.$lang.']', "", $rez));      
      }
    }
    
    

    Вот собственно и все, желаю всем удачи.

    Перенос данных для ЕШКО-Россия

    [+]
    Более подробно о моем участии в проекте для российских работодателей …

    Проект по переносу данных из старой CRM-системы компании (Clipper-DBF) в новую (Oracle, HTML, JavaScript).

  • Объем данных: 30Gb
  • Объем результирующей базы (с индексами): 65Gb
  • Количество результирующих таблиц: 60
  • Максимальное количество записей в таблице: 90 миллионов
  • Таблиц с количеством записей более миллиона: 25
  • Длительность процесса переноса: более суток
  • Возможность перезапуска с середины процесса в случае ошибки: предусмотрено
  • Останов процесса трансформации из интерфейса: предусмотрен
  • Количество шагов процесса: 9
  • Пропуск шагов при трансформации в настройках интерфейса: предусмотрен
  • Сервер Oracle: 11G 64bit
  • Механизм переноса данных: Oracle heterogeneous services (MS Access DBF driver)