Задать вопрос
  • Git - объясните, пожалуйта, зачем придумали add? Почему нельзя было сразу делать commit (Без add)?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Зачем указывать в поле адресата, кому отправлять электронное письмо?
    Пусть после написания письмо всем уходит, кто есть в адресной книге...
    Ответ написан
    Комментировать
  • Кто нибудь пробовал улучшить/повысить условия на работе из за того что предлагают условия лучше?

    Maksclub
    @Maksclub Куратор тега Карьера в IT
    maksfedorov.ru
    Повышать можно и нужно, так вы сами начинаете работать лучше (то есть делайте как лекарство)
    др. дело насколько вы важны, ценны и стоите тех денег, которых в итоге требуете

    Под аргументами могут быть как и предложения от др компаний (несколько раз видел),
    так и просто ваши требования — я так недавно повысил себе зп (просто сказал, чток сожалению не могу за старую цену работать)

    Через месяц — если показали себя и вообще на начальном этапе вполне можно просить, если у вас были договоренности по зп "для начала"

    Как мне известно, удержания сотрудника это ихняя обязанность

    это ваши сказки... никто ничем не обязан, если это не предусмотрено в трудовом и не перечит ТК РФ
    Ответ написан
    Комментировать
  • Как правильно создать таблицу MySQL?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Вам нужно разделить данные на несколько таблиц, согласно 3 нормальной формы (изучите отдельно)

    • Города (поселки) — отдельная таблица
    • Участки — отдельная таблица
    • Жители — отдельная таблица

    Связи 1 к 1 тут в основном (хотя житель может гипотетически жить в нескольких участках)

    Совсем недавно на похожую тему давал советы, там совсем др тематика,
    но попробуйте вникнуться:
    Делать 1 большую таблицу или разбивать на части?
    Какие таблицы БД должны быть в таком онлайн справочнике(ссылка внутри)?
    Ответ написан
    4 комментария
  • Делать 1 большую таблицу или разбивать на части?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Чтобы не громоздить тонны колонок и делать по канонам 3 нормальной формы — разделяют сущности, атрибуты и их значения отдельно.

    Свойства обычно хранят отдельно( у них могут быть свои поля)
    5a68a3b0baf0c785050166.png
    а значения к ним тоже отдельно (EAV)
    product_id, feature_id, value (где featured_id — id свойства из таблички выше)

    пример с моего интернет-магазина — 1 товар, много характеристик
    5a68a6c2b19f2067082314.png

    Пример запроса:
    SELECT   p.id, p.url, p.name
    FROM e_products p		
    WHERE 1 
    AND p.id in (SELECT product_id FROM e_options WHERE feature_id=8 AND value in('Бежевый','Белый') )
    AND p.id in (SELECT product_id FROM e_options WHERE feature_id=1 AND value in('Лето 2011') )
    время выполнения запроса — 0.019 s для 10 тыс товаров, 100тыс значений свойств и десятка свойств

    В запросе два параметра фильтра (1 значение коллекции и 2 значений цвета, выше можете увидеть в табличке)
    как понимаете — строку с нужным свойством подставляете в зависимости от GET запроса...

    * Можно упростить — вместо feature_id хранить сразу название параметра, но лучше сразу разделите... чтобы можно было параметру поставить напрмиер поле включать или нет его в фильтр и задать порядок, или нужно будет выводить поля в саму форму фильтра (гонять большую таблицу — так себе решение)
    Ответ написан
    3 комментария
  • Как сделать выборку из трех таблиц одной БД?

    Maksclub
    @Maksclub
    maksfedorov.ru
    SELECT hosting.user_id, client.name, client.email, client.phonenumber, product.packagename
    
    FROM tblhosting hosting
    LEFT JOIN tblclients client ON client.id=hosting.user_id
    LEFT JOIN tblproducts product ON product.id= hosting.packageid
    
    WHERE hosting.domainstatus = 'Terminated'
    AND hosting.packageid IN ('1' , '2' , '3')


    А насчет логики работы JOIN мне пока не понятно, все запросы, которые я пытался сделать - вообще не работали.
    Пишите сначала один селект, потом присоединяете таблицу, потом в выборку добавляете данные с новой таблице и так по чуть-чуть усложняете запрос....
    Ответ написан
    3 комментария
  • Хранение и вывод городов из БД Mysql методом closure table?

    Maksclub
    @Maksclub
    maksfedorov.ru
    делайте как вам в прошлом вопросе посоветовали

    сделайте таблицы:
    • s_regions
    • s_regions_path

    s_regions
    +-----------------------------+
    |  id   |         name        |  
    +-----------------------------+
    |   1   |         Россия      |
    +-----------------------------+
    |   2   |  Московская область |
    +-----------------------------+
    |   3   |        Москва       |
    +-----------------------------+


    Я мог немного напутать с полем level, так как только вчера сам узнал о таком алгоритме и не реализовываал его еще
    s_regions_path
    +-----------------------------------+
    | region_id |  path_id  |   level   |
    +-----------------------------------+
    |      2      |      1    |    1    |   <-- Тут мы храним связь Мособласти, указываем связь с Россией
    +-----------------------------------+
    |      3      |      2    |    1    |   <-- Тут мы храним связь  Москвы указывая на Мособласть
    +-----------------------------------+
    |      3      |      1    |    2    |   <-- Тут мы храним связь Москвы с Россией
    +-----------------------------------+


    Достать всех детей России (id=1):
    SELECT r.id, r.name
    FROM s_regions r
    LEFT JOIN s_regions_path l ON l.region_id=r.id
    WHERE l.path_id=1


    Достать только города Мособласти (id=2), то есть только следующий уровень (не уходя глубже):
    SELECT r.id, r.name
    FROM s_regions r
    LEFT JOIN s_regions_path l ON l.region_id=r.id
    WHERE l.path_id=2
    AND l.level=1


    Получить все зависимости для Москвы (id=3) и отсортировать по возрастанию уровня:
    SELECT r.id, r.name
    FROM s_regions r
    LEFT JOIN s_regions_path l ON l.region_id=r.id
    WHERE l.region_id =3
    ORDER BY l.level DESC
    Ответ написан
  • Как правильно разобрать stdClass?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru

    UPD: чутка поправил

    // Выводим все ХВС
    foreach($array as $obj)
    {    
        if(strpos($obj->Meter->ServiceName, 'ХВС') !== false){
             echo($obj->Meter->ServiceName . PHP_EOL);
        }
    }
    
    
    // Выводим все ГВС
    foreach($array as $obj)
    {    
        if(strpos($obj->Meter->ServiceName, 'ГВС') !== false){
             echo($obj->Meter->ServiceName . PHP_EOL);
        }
    }


    UPD 2: Код писал прямо в редакторе, попробуйте... возможны ошибки...
    но "ХВС" и "Г" может быть рандомным

    // Получаем наши ГВС (или что-то рандомное из нашего массива)
    function getValues($array, $value)
    {
        $values = []; 
        foreach($array as $obj)
        {    
            if(strpos($obj->Meter->ServiceName, $value) !== false){
                 $values[] = $obj->Meter->ServiceName;
            }
        }
        return $values;
    }
    
    // Получаем наши ГВС, где $metrics наш массив в вопросе
    print_r(getValues($metrics, 'ГВС'));
    print_r(getValues($metrics, '12ХВС'));
    print_r(getValues($metrics, 'Что-то'));
    Ответ написан
    9 комментариев
  • Где можно найти middle/seniour php (symfony) разработчика на удаленку?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Нужно смотреть на вашу вакансию, есть мысль, что вы просто описали треборвания и условия, но ни грамма не написали о компании (какие крутые, ссылка на видео с командой и прочее), то есть кроме денег?

    Смотрите как сделал Sky|eng:
    Работа в самой большой онлайн-школе английского в Восточной Европе
    Мы предлагаем вам расти вместе со школой. Sky|eng растет в 3 раза каждый год, сотрудники растут быстрее. Возможности для развития и роста безграничны

    https://novosibirsk.hh.ru/vacancy/22508043

    К слову даже без описания в вакансии я хотел у них работать, когда они на конференции рассказывали, как за год до релиза 4 версии Symfony они пробовали перенести на нее свои сервисы... да и просто они крутые...

    основная часть обращений идет от junior'ов

    Возможно вы из тех, кто считает стажеров джуниорами, а полноценные джуниоры (младшие инженеры) не проходят фильтр ваших фантазий...
    Возможно не хватает убедительности по сложности... хотя в любом случае будет поток "мимо"

    В любом случае нужно смотреть пациента, а универсальный способ — сделайте как у других (не как у всех, и не самых крутых), а туех ,ку кого крутые вакансии...
    Ответ написан
    Комментировать
  • Есть ли хорошие аналоги Visual Studio (на Windows) для Mac OS?

    Maksclub
    @Maksclub
    maksfedorov.ru
    https://jetbrains.ru/products/rider/

    MacOS, Windows, Android(самые важные для меня платформы)

    Брат, да ты привередливый
    Ответ написан
    Комментировать
  • Почему не импортируются модули js?

    Maksclub
    @Maksclub Куратор тега Веб-разработка
    maksfedorov.ru
    у main.js такой код
    import {one, two} from "./nums";

    • во-первых import появился только в ES6 и в браузерах вроде не доступен
    • во-вторых вы импортировали, но не подключили nums.js — в браузере посмотрите, подгрузился ли он, я сразу скажу — нет, вам нужно собра
    ть исходники (например через webpack)
    Ответ написан
    Комментировать
  • В чём преимущество разработки интернет-магазина на laravel по сравнению с движками?

    Maksclub
    @Maksclub Куратор тега Веб-разработка
    maksfedorov.ru
    Фрейм нужен, если цель — постоянная доработка под задачи бизнеса:
    • через 3 месяца прикрутить совместные покупки
    • через 6 месяцев прикрутить оптовую систему
    • через 9 месяцев внедрить внутренюю ЦРМ
    • через год связать с внешним коллцентром
    • через 1,5 года перевести систему с 1С на свою
    • через 2 года -- сделать 2 мобильных приложения
    • через 3 года -- внедрить партнерку и прочее
    • внедрить мультигорода с разной ценой и менеджерскими кабинетами и разными программами

    ... поняли вектор? Если бизнесу нужно решение задач, будет много узких и широких интеграций и изменений, если есть ИТ-отдел (или внешний, не суть), который постоянно бы работал с одной системой, то всем кодерам было бы очень глупо изучать ЦМС и костылять или ее перепахивать, особенно глупо это делать, если собираетесь брать профи... я даже не представляю "возьмем 3 мидлов и 1 сеньора и возьмем ЦМС :)"

    Вот пример — целая система (опт, совместные покупки, и куча всего), где интернет-магазин лишь внешняя часть айсберга... фрейм вроде Джанго тут
    и сложные сущности:
    https://star-tex.ru/tkani_dlya_odezhdy/zhakkard-at...


    Почти всегда нужна ЦМС
    А вообще магазин и правда сейчас лучше сделать на ЦМС, если это не масштабная какая-то система... ТЕм более большое количество бизнес-задач современные системы закрывают.

    Если нужно разово сделать и чутка допиливать... ЦМС подойдет, но как-только захотите сделать АПИ (как я сейчас), то 10 раз матюкнетесь (у меня выбора не было, бизнес (в котором работаю) и сейчас морально на фреймворк не готов, и бюджета нет и компетенций), и опять же — в некоторых ЦМС REST тоже уже в коробке есть

    Бизнес сам поймет, когда ему не подходит ЦМС, как правило когда у руководителя компании появляется портянка бизнес-планов и задач и появляются компетенции, то фреймворк и ИТ-отдел нарисовывается довольно естественным способом.
    Ответ написан
    5 комментариев
  • Как вывести все записи по parent_id MYSQL?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Если вам в программе нужна иерархия, то нужно рекурсией выводить...
    Но знайте — в 2018 году это не есть гуд, только если у вас немного категорий, если много и вы только-только проектируете БД, то сделайте через Nested Sets (изучать придется дольше, но работоспособность дикая)

    По вопросу:
    Если рекурсией — это делается на бекенде (например в PHP) написать функцию, которая вызывает саму себя и в каждой итерации будет к каждой категории записывать детей...

    Запрос будет тогда максимально простым:
    SELECT t.id, t.name
    FROM test t
    WHERE t.parent_id=2
    ORDER BY t.parent_id


    Забавно
    Вчера помогал человечку на форуме Simpla CMS наоборот уйти от рекурсии, тк там 50 тысяч категорий и как раз проблема вылезла с рекурсией... почитайте о проблеме:
    forum.simplacms.ru/topic/13311-%D0%BE%D0%B3%D1%80%...
    При таких объемах данных — проблемы полезут сразу и на стороне запросов и на стороне бекенда
    Ответ написан
    Комментировать
  • Можно ли узнать на чем сделан сайт (если фреймворки, то какие)?

    Maksclub
    @Maksclub Куратор тега Веб-разработка
    maksfedorov.ru
    tr1ck1,
    instacart.com


    5a641385b7dd2274753028.pngИсточник: https://stackshare.io/instacart/instacart

    • бекенд сделан на Ruby on Rails в виде Rest API
    • фронт на фреймворке React, до этого был на Backbone, потому видимо кусками и тот и другой есть в продакшне...
    • работают на Amazon AWS

    Источники информации:
    статья https://www.mobindustry.net/the-technology-behind-...
    подробная техническая статья про кишки вашего сервиса https://stackshare.io/posts/the-tech-behind-instac...


    Также видимо у них много внутренних сервисов написано на Питоне, так как много вакансий по анализу данных и искусственному интеллекту на их сайте: https://careers.instacart.com/?page_id=176

    И в описании вакансии для Senior Software Engineer они тоже пишут про Питон:
    https://boards.greenhouse.io/instacart/jobs/271424...

    В целом это большой проект и по своей структуре он сделан так, что и не важно как он сделан... если хотите аналог -- берете любой фрейм и пилите
    Ответ написан
    1 комментарий
  • Какие полезние шорткоды есть в PHPShtorm?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Целый сайт таких:
    phpstorm.tips/tips
    Ответ написан
    Комментировать
  • В каком городе России и СНГ оптимально открыть офис разработки?

    Maksclub
    @Maksclub Куратор тега Веб-разработка
    maksfedorov.ru
    Новосибирск
    • сильное ИТ-сообщество — большой рынок технических специалистов
    • очень дешевые офисы
    Ответ написан
  • Какую библиотеку иконок посоветуете для Bootstrap 4?

    Maksclub
    @Maksclub Куратор тега Веб-разработка
    maksfedorov.ru
    Если нужно немного иконок (например магазин):
    evil-icons.io

    5a62be42b2353834376166.png
    Ответ написан
    Комментировать
  • Yii2, можно ли сделать ссылку в стартовой странице без user/login?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Можно указать:
    • в urlManagerm, как посоветовал slo_nik
    • или указать в настрйоках 'defaultRoute' => 'default/index',


    Также у вас могут на стартовую страницу стоять права "Для залогиненных", это значит, что если пользователь не залогинен — его перебросит на страницу ввода данных,
    Ответ написан
    Комментировать
  • Насколько близкое знакомство должен иметь PHP-программист с какой-либо СУБД, например, MySQL или PostgreSQL?

    Maksclub
    @Maksclub Куратор тега Веб-разработка
    maksfedorov.ru
    Знать должен хорошо, особенно:
    - 3 нормальная форма (система для правильной связи сущностей в БД)
    - запросы и синтаксис (команды) SQL
    - оптимизация и профилирование запросов
    - в 2018г уметь работать с денормализацией

    Что под коробкой творится не обязательно, но дает прирост зарплаты....

    Работа с БД перманентная — все приложения работают с БД...то есть абсолютно вся работа почти будет связана с этим. Даже работая с фреймворком так или иначе приходится обращаться к голым запросам, строя в ORM вы тоже должны понимать какого запроса достигаете...
    Ответ написан