Задать вопрос
  • Как облегчить запрос с множеством OR по поиску в одной таблице?

    @slavabars
    Веб программист
    Это же набор условий, никак.
    НО сделайте составной индекс для полей value и param_id и это ускорит ваш поиск
    Ответ написан
    Комментировать
  • Как разобрать короткий JS код и переделать на jQuery?

    rockon404
    @rockon404
    Frontend Developer
    $('.item-parent').append('<div class="item-decor"></div>');

    Демо: https://jsfiddle.net/sruyxars/
    Ответ написан
    Комментировать
  • Как отсортировать "случайно", с возможностью отсортировать так же в будущем?

    @Mercury13
    Программист на «си с крестами» и не только
    У генератора псевдослучайных чисел есть такое понятие, как «случайная затравка» (random seed). Затравку берут из истинно случайных мест вроде счётчика тактов процессора. Достаточно сохранить затравку — и последующие запуски генератора дадут те же результаты.

    Допустим, манипуляции с затравкой есть вот тут.
    php.net/manual/ru/function.mt-srand.php
    Ответ написан
    Комментировать
  • Как сделать overflow елемент перетаскиваемым мышью?

    @id_baton4eg Автор вопроса
    dragscroll.js
    Ответ написан
    Комментировать
  • Что должен знать каждый С++ программист?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Каждый C++ программист должен уметь пользоваться поисковыми системами.
    Особенно в тех случаях, когда он собирается задать вопрос, который за него уже задавали множество раз, и на который можно найти готовые ответы.
    Ответ написан
    Комментировать
  • Kак взятье все date где year = 2017?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    where datefield >= '2017-01-01' and datefield < '2018-01-01'

    Или если несподручно считать следующую дату:
    where datefield >= '2017-01-01' and datefield < '2017-01-01' + interval 1 year


    Только не надо делать якобы простое where year(datefield) = 2017, который будет перебирать всю таблицу потому что в принципе не может использовать индексы.
    Ответ написан
    1 комментарий
  • Можно ли изменять некоторые моменты в отображение сайта специально для поисковых ботов?

    @BorisKorobkov
    Web developer
    Можно ли изменять некоторые моменты в отображение сайта специально для поисковых ботов?

    - Все ли грибы можно есть?
    - Все. Но некоторые только один раз в жизни.

    https://ru.wikipedia.org/wiki/%D0%9A%D0%BB%D0%BE%D...
    Ответ написан
    Комментировать
  • Стартап: где найти человека, который контактирует с потенциальными клиентами?

    @asd111
    Делайте со своими сотрудниками интернет магазины, мобильные приложения и другие проекты на заказ для других, в том числе для других веб студий до тех пор пока не появятся деньги на отдел который будет заниматься стартапом. Когда занимаешься бизнесом важно начать зарабатывать прибыль даже если то чем занимаешься не полностью совпадает с мечтой.
    Инструмент для диетологов сложно продать. Лучше продавать его в составе большого продукта как Яндекс.Здоровье или типа того, где есть модель получения прибыли. Софт для больниц сложно продавать. Нужно быть большим как Яндекс иначе не воспримут всерьез.
    Ответ написан
    1 комментарий
  • Как использовать библиотеку с пространством имен?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Очевидно, что
    new title\lib();

    или
    use title\lib;
    
    new lib();


    Если не заработает - косяк в автолоадере.

    Как разберётесь - переходите к изучению PSR-0/PSR-4 и композеру.
    Ответ написан
    Комментировать
  • Что имеет смысл осваивать если есть желание уйти в "айтишники"?

    @jaxel
    Если вы планируете быстро срубить бабла, вам точно не сюда. 100+ платят людям с навыками выше среднего. И это как минимум 5 летний опыт коммерческой разработки, и больше 10 лет опыта в целом. Это прям самый-самый минимум. А с нулевым опытом сейчас серьёзная конкуренция.

    По моим ощущением расклад по ЗП/востребованности примерно такой:

    Junior и ЗП 30к+ - претендуют 10-20 человек на место.
    Middle и ЗП 100к+ - 2 места на человека
    Senior и ЗП 200к+ - 10 мест на одного человека
    Ответ написан
    Комментировать
  • Градация уровня знаний в языках программирования. Каковы различия и требования?

    petermzg
    @petermzg
    Самый лучший программист
    Не в знании тонкостей языка дело
    https://habrahabr.ru/company/alconost/blog/262831/
    Ответ написан
    Комментировать
  • Градация уровня знаний в языках программирования. Каковы различия и требования?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Градация джунов, мидлов и сеньоров - это часто возникающий на Тостере вопрос. Я на него уже несколько раз отвечал.

    Касательно конкретно сроков, это зависит как от области деятельности, так и самого специалиста. Чрезвычайно талантливый и трудолюбивый специалист может за 5 лет взлететь до сеньора Java EE, а другой может 15 лет угробить на рост до мидла в PHP.

    Я для себя решил так, буду себя сеньором считать тогда, когда на конференциях выступать начну.
    Ответ написан
    7 комментариев
  • Как структурировать классы в PHP по идеологии MVC?

    @santaatnas
    Java, Python, Php
    Если страница будет не одна, вам понадобится:
    1) Front Controller как единая точка входа, плюс Router c правилами маршрутизации
    2) Класс для соединения с бд, его обычно делают Singleton'ом, чтобы не плодить экземпляры классов соединения.
    3) Где-то надо будет хранить запросы к бд, чтобы инкапсулировать работу с базой, обычно это Repository
    4) Плюс всякие валидации форм, отправки почты, безопасность (тот же csrf, плюс защита от css)...

    В общем выходит, что вам придется написать фреймворк... а они уже есть готовые. И в зависимости от вашего кода они уже протестированы и продуманы, и туда вложены тысячи человеко-часов. Так что мой вам совет, возьмите какой-нибудь фреймворк с порогом входа по-проще, Yii2 например очень прост и дружелюбен к разработчиками... Либо Django на Python, тоже не сильно мудреный..
    Ответ написан
    Комментировать
  • Как в родительском классе указать не сколько таблиц для методов?

    qonand
    @qonand
    Software Engineer
    Если правильно понимаю у Вас две проблемы:
    1. Вы не знаете как считывать данные из параметров дочерних классов и подставлять их в Ваши запросы.
    2. Вы не знаете как заполнить данными параметры дочерних классов полученными из SQL-запроса
    За подобного рода преобразования должны отвечать дочерние классы, а родительские класс должен только использовать эти преобразования. Соответственно Вам нужно создать два абстрактных метода реализующих для каждого потомка свои механизмы преобразования.

    P.S. почитайте про паттерн Active Record, по сути дела Вы пытаетесь его повторить в некой своей интерпретации
    Ответ написан
    2 комментария
  • Как работает область видимости в JS?

    NightmareZz
    @NightmareZz
    Нищий разработчик из Симферополя
    Почитай первую попавшуюся статью в интернетах про различия между let и var. Там будет и про области видимости, и про всё, что тебе нужно.
    Ответ написан
    8 комментариев
  • Как защитить конструктор сайтов от копирования кода созданного сайта посетителем?

    solotony
    @solotony
    покоряю пик Балмера
    переживайте неприятности по мере их поступления. когда столкнетесь с тем что посетители "воруют" - тогда и займитесь этим. а пока вашей заботой должно быть "где достать посетителей"

    те кто может "скопировать весь код, созданный конструктором сайтов в результате действий пользователя и залить на свой домен" без проблем найдут другие подобные конструкторы
    Ответ написан
    7 комментариев
  • Как правильно получать данные в GridView?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    реализовать в Catalog метод, который выдает нужный массив, дернуть его в контролере, положить в переменную, передать во view, передать в gridView
    Ответ написан
    7 комментариев
  • Как конвертировать даты в behaviors?

    proudmore
    @proudmore
    Вот вам класс моего поведения на схожую тематику:
    <?php
    
    namespace common\behaviors;
    
    
    use yii\base\Behavior;
    use yii\base\InvalidConfigException;
    use yii\db\ActiveRecord;
    use yii\base\Event;
    
    /**
     * Class DateFormatTranslator
     * @package common\behaviors
     */
    class DateFormatTranslator extends Behavior
    {
        public $machineFormat = 'php:Y-m-d';
        public $humanFormat = 'php:d.m.Y';
        public $attributes;
    
        /**
         * @throws InvalidConfigException
         */
        public function init()
        {
            if(empty($this->attributes)){
                throw new InvalidConfigException('attributes can not be empty');
            }
            return parent::init();
        }
    
        /**
         * @return array
         */
        public function events()
        {
            return [
                ActiveRecord::EVENT_BEFORE_UPDATE => 'toMachineFormat',
                ActiveRecord::EVENT_BEFORE_INSERT => 'toMachineFormat',
                ActiveRecord::EVENT_AFTER_INSERT => 'toHumanFormat',
                ActiveRecord::EVENT_AFTER_FIND => 'toHumanFormat',
            ];
        }
    
        /**
         * @param $event Event
         * @var $owner ActiveRecord
         */
        public function toHumanFormat(Event $event){
            $formatter = \Yii::$app->formatter;
            $owner = $event->sender;
            foreach ($this->attributes as $attribute){
                if(!empty($owner->$attribute)){
                    $owner->$attribute = $formatter->asDate($owner->$attribute, $this->humanFormat);
                }
            }
        }
    
        /**
         * @param Event $event
         */
        public function toMachineFormat(Event $event){
            $formatter = \Yii::$app->formatter;
            $owner = $event->sender;
            foreach ($this->attributes as $attribute){
                if(!empty($owner->$attribute)) {
                    $owner->$attribute = $formatter->asDate($owner->$attribute, $this->machineFormat);
                }
            }
        }
    
    }
    Ответ написан
    1 комментарий
  • Как достичь большого КПД от выполняемой работы и заказов?

    Отвечу скорее всего как смежное звено, попытаюсь сам структурировать инфу, ну и может натолкну кого на мысли.

    У меня несколько человек, с которыми я постоянно работаю (около 7). От них идут постоянные заказы (довольно объемные и тд). Теперь к сути вопроса.

    Что я делаю:
    1. Все задачи, все заказчики мне кидают в Trello. Там же они обозначаются по степени важности.
    2. Бывает что это задачи что-то поправить и тд, мелочи в общем. Как раз на таких мелочах и тратится большая часть времени, поэтому указываем степень важности.
    3. Выполнил задачу, перенес ее в категорию Сделано. Клиент сам потом проверяет еще раз, все ли нормально, после чего там же, если нужно, пишет замечания и тд. Все это дело всегда мне доступно из приложения, либо с десктопа, уведомления и тд - полезная вещь. В общем на пустую болтавню время мы не тратим.

    Это что касается мелких задач. Если речь касается проектов.

    1. Присылается ТЗ, обсуждение. На этом этапе как раз львиная доля времени и тратится, но без этого никак. После чего просто по пунктам ТЗ я выполняю работу, что-то пропускаю, если тратится много времени и это можно пропустить.
    2. Отчитываюсь о промежуточной работе, присылаю тз с выделенными фрагментами, что сделал. Обсуждаю неясности, если они есть.
    3. Второй самый жрущий время этап - допиливание, тут обычно все дело затягивается на несколько дней (ждешь что-то от заказчика, он что-то ждет от дизайнера и тд). Как правило весь проект на этом этапе сделан, нужно только отрихтовать.
    4. Если проект действительно сделан и все мелочи остались за заказчиком, то делаю самые простые задачи из следующего проекта. Считаю что любой проект можно разбить на подпроекты, их в свою очередь еще на более простые задачи. В общем дробление - наше все.

    По тайм-менеджменту ничего толкового не скажу, сам пытаюсь с ним разобраться, однако советую:
    1. работать строго по определенному графику (обычный рабочий или ваш личный, главное чтобы кол-во рабочих часов было адекватным).
    2. бывает что нужно что-то делать в ночь, потому что что-то произошло, если вина ваша - работаете и все, если заказчик предлагает вам допилить в 5 утра новый модуль потому что он про него забыл, а сдавать уже в 7 утра, поднимаете цену за проект и работаете, либо отказываетесь это делать (чревато чем угодно).
    3. Для увеличения КПД вашего собственного нужно отдыхать. Обязательно прогулки на улице 1-1.5 часа в день. Помогает разгрузить голову и не будет проблем со здоровьем (как человек, который на этом попался и получил целый букет псих. расстройств - настоятельно рекомендую), физические нагрузки, и не забывайте про глаза. Каждый 40-60 минут дайте отдохнуть глазам (можно делать 5минутную гимнастику).

    По ценам и срокам, тут уже как каждый горазд. Я смог немного набить руку и просто прочитав тз озвучиваю цену + 10-15% на случай непредвиденных правок и тд. Кто-то рекомендует за каждый пункт тз назначать цену, но я считаю это не всегда выигрышным вариантом, потому что получить адекватное ТЗ - подарок.

    P.S мог многое упустить, поэтому отвечу уже в комментах, если потребуется.
    Ответ написан
    7 комментариев