• Как найти программистов и сделать свой штат программистов?

    newross
    @newross
    Product owner
    4 года - это слишком долго для решения стандартной проблемы роста. В голову сразу приходит 3 вопроса:
    1. А есть ли вообще ресурсы на формирование команды?
    2. Почему за 4 года ни разу не обратились хотя бы каким-то консультантам? Условные 50к, оплаченные за работу консультантам могли сэкономить годы времени, а новые продукты принести прибыли в 1000 раз больше.
    3. Не страшно ли завязывать все процессы и продукты на единственного разработчика, поведение которого вам непонятно?
    Ответ написан
    Комментировать
  • Как найти программистов и сделать свой штат программистов?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Очевидно, что проблема в том единственном твоём любимом программисте. Наверное, он не терпит конкуренции более сильных разработчиков и тогда надо гнать его в шею.
    Варианта два: уволить его, либо воспользоваться услугами профессиональных нанимателей, HR
    Ответ написан
  • Как отключить кэширование браузером index страницы?

    sasha-hohloma
    @sasha-hohloma
    Fullstack Developer
    Вам нужно добавлять hash в названия файлов. При изменении содержимого будет меняться hash рядом с именем файла скриптов/стилей и после нового релиза пользователи без сброса кэша будут видеть обновления. Совсем отключать кэш нежелательно, т.к. тогда постоянным пользователям нужно будет каждый раз грузить файлы и каждый раз ждать окончание загрузки.
    Для реализации такого подхода нужно настроить Webpack, подробнее можно глянуть в документации или в пример ниже для Webpack 5 с одного из рабочих проектов:

    const path = require('path');
    const htmlPlugin = require('html-webpack-plugin');
    
    const publicPath = path.join(__dirname, 'build');
    
    module.exports = {
        entry: './source/index.tsx',
        output: {
            path: publicPath,
            filename: '[name].[contenthash].js',
            chunkFilename: '[name].[chunkhash].js',
            publicPath: '/',
        },
        devServer: {
            static: publicPath,
            historyApiFallback: true,
            hot: true,
            port: 6790,
        },
        resolve: {
            extensions: ['.ts', '.tsx', '.js', '.jsx', 'ttf'],
        },
        module: {
            rules: [
                {
                    test: /\.(ts|tsx)$/,
                    include: path.resolve(__dirname, 'source'),
                    loader: 'ts-loader',
                    options: {
                        transpileOnly: true,
                    },
                },
            ]
        },
        plugins: [
            new htmlPlugin({
                publicPath: '/',
                template: './source/index.html',
                favicon: './source/assets/images/favicon.png'
            }),
        ],
    };
    Ответ написан
    Комментировать
  • Как сжать папку .git?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    1. git хранит всю историю. Но встроенный garbage collector может удалять коммиты, которые не привязаны ни к какой ветке. Поэтому для начала:
    * Удалите ненужные бренчи.
    * Выполнте "git gc --aggressive --prune" после удаления бренчей.

    2. Затем нужно разобраться с тем, что у вас занимает место. Если вы напихали крупных файлов в ваш гит репо и они присутствуют в активном бренче, то никак их не удалить. Точнее можно попробовать удалить сами файлы вручную или при помощи bfg-repo-cleaner, но при этом надо синхронизировать это со всеми участниками. Если у вас гит репо локальный и никто им не пользуется, это проще. Но при этом вы ломаете коммиты - откатиться на них уже будет нельзя.

    3. Наконец следует потратить вечерок и почитать про git-flow, или даже посмотреть 3-4 ютуб ролика от разных авторов которые показывают разные флоу работы с гитом. Там вы поймете почему и зачем люди пользуются rebase, squash, зачем удаляют ненужные ветки и содержат dev/master в хорошем состоянии, когда там нет промежуточных коммитов с commit message типа "апечатка" "забыл" "еще" и подобного мусора. И гит репо занимает минимальный объем.
    Ответ написан
    Комментировать
  • Как правильно настроить связку PhpStorm + OpenServer + Composer?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    Как-то уже показывал тут, но напишу еще раз.

    Настраиваем path OpenServer
    eded6-clip-61kb.png?nocache=1

    Добавляем закладку на PhpStorm
    67a2d-clip-33kb.png?nocache=1

    Запускаем PhpStorm через OpenServer
    26de1-clip-23kb.png?nocache=1

    Используем встроенную в PhpStorm консоль и получаем удовольствие от работы
    d4094-clip-30kb.png?nocache=1
    Ответ написан
    16 комментариев
  • Как передать значение переменной из php-скрипта в javascript?

    nowm
    @nowm
    Первый способ: Отдельный AJAX-запрос к PHP-файлу, который вернёт что-нибудь вроде JSON-данных, которые потом будут доступны из JS.

    Второй способ: В PHP-файле можно определить какую нибудь переменную во время генерации страницы, а потом из любых скриптов к ней обращаться. Например так:

    PHP-файл:
    <?php
    $a = 'text for js_variable';
    ?>
    <!DOCTYPE html>
    <html>
      <head>
        <script>
          //Определяется переменная, которая будет доступна для 
          // всех JavaScript, подключаемых на данной странице
          var js_variable = '<?php echo $a; ?>';
        </script>
        <!-- 
          В файле /scripts/myscript.js происходит обращение 
          к переменной js_variable 
        -->
        <script src="/scripts/myscript.js"></script>
      </head>
      <body>blah-blah-blah</body>
    </html>


    Файл /scripts/myscript.js:
    // Выскочит алерт с текстом «text for js_variable».
    alert(js_variable);


    Вот. В HEAD-части HTML-страницы вы определяете переменную, которая будет доступна для остального JS-кода. Главное — нужно её определять до того, как будут подключены скрипты, которые будут её использовать.

    Третий способ: Если ваш web-сервер — Apache, то можно добавить в .htaccess в корне сайта такие строки:
    AddType application/x-httpd-php .js
    AddHandler x-httpd-php5 .js
    
    <FilesMatch "\.js$">
    SetHandler application/x-httpd-php
    </FilesMatch>


    Тогда вы сможете прямо в JS-файлах выполнять PHP-код. Но выполняться он будет только в тех JS-файлах, которые находятся в папке с сайтом. Если будут загружаться скрипты со сторонних ресурсов, там PHP-код работать не будет.
    Ответ написан
    Комментировать
  • Как верстать изогнутые секции?

    RAX7
    @RAX7
    SVG + 2 маски, одна пропорционально растягивается, другая непропорционально. Отрицательным margin загнать секции одна на другую.
    Ответ написан
    6 комментариев
  • Как сделать всплывающий блок при выделении текста?

    mrusklon
    @mrusklon Автор вопроса
    Не получается? Яростно гугли!
    var getSelectedText = function() {
            var text = '';
            if (window.getSelection) {
                text = window.getSelection().toString();
            } else if (document.selection) {
                text = document.selection.createRange().text;
            }
            return text;
        };
    
        $('.класс у которого происходит выделение').on('mouseup', function(){
            var text = getSelectedText();
            if (text != ''){
                alert('действие при выделении');
            }
        });


    тадамс :)
    Ответ написан
    10 комментариев