• Как учиться быть руководителем?

    @Siberian_Bear
    mba... pmbook...
    Это все уже уровень. если вы менеджер в корпорации, еще и международной, то да.

    Если же в конторе 100+ человек, а вокруг вас вообще не больше 50, то избыточно это всё.
    Тут более подходит Стратоплан - он более приземленный. Даже скиллбоксы всякие и их аналоги более полезны в РФ, чем mba.
    Менеджмент в РФ - он не столь интернационален, как разработка. Тут приходится с другими сферами сталкиваться, более локальными, и зарубежные методики не всегда работают.

    Мне помогло такое: просто на ютубе открывать например канал TeamLead Conf и смотреть видяшки, в рамках факультатива. Включать что нравится по названию. Когда есть небольшой опыт, рассказы и мнения людей с конференций помогли мне дальнейшие векторы строить. Они упоминают, книги, методики, людей.
    Ответ написан
    2 комментария
  • Как учиться быть руководителем?

    Griboks
    @Griboks
    В отличии от программирования и подобных специальностей существуют три базовых способа изучить искусство управления:
    1. вуз
    2. специальные курсы + сертификация
    3. госты+стандарты+книги для расширенного понимания первых двух

    p.s.
    Alexander Lamdan утверждает, что
    Научиться быть руководителем это почти никак. Нужно к этому идти.


    Замечу, что это в корне неправильный подход, который ведёт к самодурству, неэффективной организации труда и коррупции. Вы действительно должны выработать свою точку зрения, но делать это самостоятельно и изолированно от обширных накопленных человечеством знаний займёт слишком много времени и других ресурсов - это путь в никуда для управленца.
    Ответ написан
    7 комментариев
  • Почему php разработчики используют .htaccess как часть системы?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    Незачем пытаться охватить все веб-серверы. Для урока авторы, видимо, решили, что «сойдёт и так» – на примере одного из популярных, Apache.

    Вы уже переросли песочницу тех уроков и знаете другие варианты. Значит, сумеете понять и перенести правила из .htaccess в конфиг NGINX. С помощью Google, SO и Habr.QnA )

    Популярен паттерн "front controller" — когда веб-сервер конфигурят, чтобы все запросы падали только на корневой /index.php, а там уже логика внутри PHP узнавала запрошенный URL /section1/page2 и отдавала соответствующий ответ. Такие решения универсальны относительно веб-сервера.

    Файл .htaccess иногда кладут в проект, потому, что это легкий невидимый файл, который не помешает. Но поможет понять ожидаемое поведение веб-сервера. Конфиги NGINX лежат отдельно от проекта, поэтому их не прилагают. Хотя иногда приводят пример в документации.
    Ответ написан
    Комментировать
  • Как запустить приложение на новом компьютере, так, чтобы оно думало, что запущено на старом?

    axifive
    @axifive
    Software Engineer
    Надо изучать само по и смотреть какие параметры проверяет. Да и непонятно под браузерным вы имеете ввиду Electron/CEF приложение или PWA, или расширение в браузере?
    У pwa гораздо меньше возможностей получить конфигурацию системы, они могут опираться на user-agent, местоположение, canvas, cookies, разрешение, особенности движков конкретных браузеров и другие условно уникальные параметры. Можете глянуть fingerprintjs который как раз и комбинирует все эти параметры для генерации идентификатора.
    У расширений чуть побольше, так как добавляется api (к примеру проверка закладок в браузере)
    У Electron/CEF помимо вышеперечисленного возможна проверка любых параметров системы и оборудования.
    Ответ написан
    Комментировать
  • Как запустить приложение на новом компьютере, так, чтобы оно думало, что запущено на старом?

    vabka
    @vabka
    Токсичный шарпист
    В общем случае - никак, тк мы не знаем нюансов работы првоерки компьютера контретно у вашего софта (который даже не назван).

    В худшем случае - оно проверяет всякие аппаратные идентификаторы устройств, и чем больше разных - тем сложнее подделать их в совокупности.
    Ответ написан
    2 комментария
  • В чем преимущества TS?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Во-первых, откуда вдруг на клиенте должны появиться огромные объёмы данных, которые будут генерировать эти ошибки и затруднять их поиск? Вы собрались логику на клиенте считать? Тогда у нас уже тут принципиальное несовпадение по вопросам "соответствующих инструментов". Клиент в вебе нужен только для представления. Ну ещё какой-то интерактив - формы, события... Всё.

    Как там в 2010?

    как мартышка ковыряешься с проставлением типов (а иногда это и не особо очевидно), а потом оказывается что какой-нибудь популярный плагин (условный слайдер) в твоей экосистеме - не типизирован. Ручками писать? Потрошить внутренности плагина? Искать аналог?

    Это уж как вам удобно. Вам в большинстве случаев понадобится типизировать от стороннего плагина несколько, а то и один метод и пару аргументов. Не хотите ручками? Идём на https://www.typescriptlang.org/dt/search/ и ищем готовое. А в большинстве случаев достаточно создать файлик типа modules.d.ts и там прописать строчку declare module 'ldapjs-type-parsers';, где подставить имя пакета, для которого нет типов.

    Вопрос звучит как "уговорите меня использовать TypeScript". В общем вас никто не заставляет. Если лично вам неудобно, то пишите на JS.
    P.S. Я уже молчу про удобство рефакторинга ))
    Ответ написан
    7 комментариев
  • Нормально ли хранить JSON в базе данных?

    @alexalexes
    Если потребуется делать join с одним из параметров внутри JSON, то это и будет показывать, что в данном варианте так делать не нужно.
    Если ни при каких обстоятельствах не возникнет ситуации, что потребуется разбирать JSON, чтобы связать данные таблиц, то храните JSON.
    Ответ написан
    1 комментарий
  • Как отправлять запрос каждые N секунд, пока в ответ не получу нужный статус?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Асинхронная функция, внутри бесконечный цикл, в цикле запрос. Если результат запроса нас устраивает - выходим из цикла. Задержка между итерациями цикла реализуется с помощью промиса, который резолвится по таймауту.

    async function() {
      let result = null;
    
      while (1) {
        result = await fetch(...);
    
        if (result тот, который нужен) {
          break;
        }
    
        await new Promise(r => setTimeout(r, 5000));
      }
    
      return result;
    }
    Ответ написан
    6 комментариев
  • Почему var_dump выводит больше, чем нужно?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Возможно, у вас просто не было приватных свойств.
    Вывод чистого var_dump() в версиях PHP 8.2.0RC4, 8.1.7, 8.0.20, 7.4.30, 5.6.40:
    object(Test)#1 (2) {
      ["name":"Test":private]=>
      string(16) "Васенька"
      ["age"]=>
      int(43)
    }

    Вывод var_dump() с установленным xdebug:
    class Test#1 (2) {
      private $name =>
      string(16) "Васенька"
      public $age =>
      int(43)
    }
    Ответ написан
    2 комментария
  • Допустимо ли сокращать названия переменных до 1 буквы или комбинации символа + буквы?

    vabka
    @vabka
    Токсичный шарпист
    Моё мнение - если тебе смысл переменной не очевиден, то нужно делать полноценное имя переменной.

    Короткое, например, имеет смысл для параметра в лямбде (array.filter(x => x % 2 === 0)) или в какой-нибудь функции наподобие
    function sum(a, b) {
     return a+b;
    }


    Если тебе к твоей однобуквенной переменной нужно ещё и комментарий писать, который её расшифрует - значит переменная точно не должна быть однобуквенной.

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

    Экономить ресурс нажатий на кнопки клавиатуры не надо, как и не надо экономить буквы на экране.
    Ответ написан
    Комментировать
  • Чем в PHP 8.2 теперь заменять функцию mb_convert_encoding()?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Комментировать
  • Как почистить каталог .git от ненужных файлов?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Файл .gitignore не предназначен для удаления файлов из репо, он лишь помогает не добавить случайно лишнее в репо. А если уже закоммитили, то игнор не поможет.

    Самый надёжный способ вычистить репозиторий от файла — использовать скрипт filter-repo
    # клонируем репозиторий в соседний каталог
    # иначе придётся использовать ключ --force
    git clone --no-local . ../clonerepo/
    # переходим в свежий клон
    cd ../clonerepo
    # чистим
    git filter-repo --path "path/to/file" --invert-paths
    # проверим что файл исчез
    git log --oneline --name-status -- "path/to/file"
    Коммиты в гите неизменяемые, но мы можем их пересоздать заново. Фактически получится новый репозиторий, но сохранится история. Всем участникам проекта придётся клонировать новый проект заново.
    Ответ написан
    3 комментария
  • Как можно улучшить модерирование?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Разумеется, он не знает местных заморочек, и накосячил.

    Абсолютно все перед регистрацией ставят галочку, что прочитали и приняли правила.

    А не давать пинка под зад, "Пшёл вон, дурачина", молча удаляя вопрос.

    При удалении вопроса, его автор получает уведомление с указанием причины удаления.
    Ответ написан
    Комментировать
  • Почему кв.матрица — nxn?

    @deliro
    Это троллинг такой? У квадрата все стороны равны, верно? Вот и у квадратной матрицы количество столбцов равно количеству строк. А причём тут индекс — я могу только догадываться. Почему трёхэтажный дом по 3 квартиры на каждом этаже называют девятиквартирным, если у каждой квартиры есть свой номер?
    Ответ написан
    2 комментария
  • Почему объекты созданные через класс не наблюдаются mobx?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Рекурсивная наблюдаемость объектов (выставляемая по умолчанию в makeAutoObservable и успешно примененная в bStore) не залетает в пользовательские классы. Считается, что класс (в твоем случае AStore) должен сам настроить внутри себя наблюдение.

    об этом написано в документации https://mobx.js.org/observable-state.html
    ctrl+F "primitives and class instances are never converted to observables"
    Ответ написан
    Комментировать
  • Что означает «код не как у сениора»; и как его подтянуть?

    HighTechLowLife
    @HighTechLowLife
    Если опустить паттерны / SOLID и прочую архитектуру и открыть любой рандомный php-файл, то сразу можно увидеть хороший код или шляпу. Обычно у меня такие критерии последнего:
    1. Отсутствие кодсайла PSR или другого. Убогое форматирование. Двойные-тройные пустые строки; Лишние пробелы; Или, наоборот, код слеплен без единой пустой строки, которая логически бы отделяла блоки.
    2. Отсутствие scrict-сравнения; Всегда стараюсь писать через ===, declare(strict_types=1), добавлять true в конец in_array и подобных;
    3. Отсутствие type-hint'ов; хотя бы в phpdoc; Отсутствие указания области видимости метода / поля / константы;
    4. Неадекватные названия переменных и методов, по которым непонятно, что это. Лишние переменные. Или отсутствие пемененной, где она была бы полезной, для улучшения понимания кода;
    5. Тупые и очевидные комментарии ради комментариев;
    6. Длинные портянки. Если метод, условно, больше 80 строк, то, мб, надо задуматься о декомпозиции;
    7. Куча параметров в сигнатуре функции
    8. Неиспользуемые переменные / константы / методы "на будущее".
    9. Закомментированный код;
    10. Хард код. Какие-нибудь api url прям в коде в переменной, вместо конфига или хотя бы константы.
    11. Забивание на работу с ошибками. unserialize вернул false? Да неее, такое точно не произойдёт


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

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    У вас неправильная оценка. Если убрать новичков останется максимум 10 миддлов
    Ответ написан
    Комментировать
  • Как реализовать такое нижнее подчеркивание?

    DanArst
    @DanArst Куратор тега HTML
    Гриффиндор в моде при любой погоде!
    Зачем отключать свойства? Это ведь эффект при hover-е. Так откройте devTools, выберите интересующий вас элемент и посмотрите на его стили, далее нажмите правой кнопкой мыши на него и в контекстном меню выберите Force state -> Hover и снова смотрите стили.
    На сайте из вашего вопроса сделано так:
    Ответ написан
    1 комментарий
  • Почему сайт может очень долго грузится?

    den_rad
    @den_rad
    PHP разработчик
    Для начала стоит разобраться, сайт медленно работает из-за передачи данных (медленный канал), большой нагрузки на PHP или нагрузки на базу данных ?
    Ускорить загрузку можно, если пустить сайт через Cloudflare, например.
    Посмотреть, сколько времени генерируется страница можно с помощью профилирования
    Ответ написан
    Комментировать
  • Почему PermissionError: [Errno 13] Permission denied на хостинге?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Немного странно спрашивать "в чем может быть проблема", если это написано прямо в заголовке вопроса.
    Ошибка Permission denied является совершенно стандартной, переводится как ошибка прав доступа к файлам/папкам.
    ".htaccess" (как и sqlite) здесь совершенно не при чем
    Пользователь, под которым выполняется веб-сервер, не имеет права на запись в папку app/static/images/goods/
    Надо разобраться, под каким пользователем создана папка и под каким пользователем выполняется веб-сервер. В самом тупом случае поставить папке права 777, но лучше всего конечно сделать так, чтобы веб-сервер выполнялся от имени пользователя
    Ответ написан
    5 комментариев