• Говно-код с использованием MVC фреймворков?

    А у многих программистов почти весь код, написанный не ими априори говнокод. И тот, что написан ими год назад тоже.
    Ответ написан
    1 комментарий
  • Говно-код с использованием MVC фреймворков?

    RomaZveR
    @RomaZveR
    CEO AlertMoney, PHP/Golang Developer
    Говнокодят все, а кто утверждает обратное - говнокодит ещё больше.
    Ответ написан
    1 комментарий
  • Коллекцию элементов преобразовать в массив?

    devellopah
    @devellopah
    если ты не используешь транспайлера(babel, к примеру), то лучше
    var items = Array.prototype.slice.call( document.querySelectorAll('div') )

    в противном случае ie и opera будут плакать
    Ответ написан
    2 комментария
  • Быстренький вопрос о БЭМ?

    Igooooood
    @Igooooood
    junior Front-end developer
    is-active - является модификатором (Блок Элемент Модификатор), по этому нужно так "pagination__link_is-active", но мне больше нравится другое написание вот такого вида "pagination__link--is-active". На мой взгляд так лучше выделяется и не сливается.
    Ответ написан
    Комментировать
  • Почему не работает return?

    @ig0r88
    Нужно передавать аргумент по ссылке:

    function my_func (&$a){
        $a += 10;
    }
    
    $a = 10;
    
    my_func($a);
    echo $a;
    Ответ написан
    Комментировать
  • Почему не работает return?

    qonand
    @qonand
    Software Engineer
    Почему не работает return? На экран будет выведено 10, а не 20(как задумано.

    потому что Вы и не выводите результат функции, Вы выводите значение переменной $a, а результат выполнения можно вывести например так:
    echo my_func($a);

    И еще: можно ли решить эту задачу без использования return внутри функции?

    можно если использовать указатели, но на Вашем примере смысла в этом мало
    Ответ написан
    Комментировать
  • Что делать если команда говнокодит?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Если Вы можете понять код, просто объясните им проблему, укажите на ошибки и научите: это проще и дешевле, чем искать новых и "притираться" долгое время.
    2. Пусть пишут текстом: для чего создан каждый объект и каждый из его методов.
    3. Если не поможет - пусть изначально рисуют блок-схему.
    Ответ написан
    Комментировать
  • Что делать если команда говнокодит?

    Мы стараемся не запускать эту проблему посредством code review, пытаясь распределить нагрузку по ревью между наиболее опытными участниками. Если в коде есть проблемы - тикет возвращается на доработку с замечаниями. Даже если банально не мержится с главной веткой. Попробуйте наладить этот процесс.

    Также мы всё собираемся настроить Continuous Integration. Jenkins может прогонять по коду проверку на соблюдение стандартов и покрытие тестами, а затем показывать результаты в красивом виде. Если чей-то коммит показывает более чем N ошибок в расчёте на единицу объёма кода - можно возвращать на исправление.

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

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


    Мне думается, что чистота и красота кода должны быть пунктами культуры в команде разработчиков, ценностями, если угодно. Нужно не только ругать за ошибки, но и не забывать похвалить товарища за красивое решение, за хороший код, за внимательность.

    Ну и важно, чтобы у самих разработчиков была установка на хороший код, профессиональная гордость. У фрилансеров её, бывает, нет, а есть отношение "тяп-ляп, лишь бы работало и лишь бы часы оплатили, а там хоть потоп". Учитывая, что их заказчики занимаются code review нечасто, развитие такого отношения закономерно. Но всё-таки хочется писать красивые программы. Такое желание обязано быть.

    Я, конечно, сам не волшебник, я только учусь, и работа с командой - такая штука, которой надо постоянно учиться. Видимо, вы тоже учитесь; успехов в этом.
    Ответ написан
    2 комментария
  • Есть ли существенная разница между GitHub и BitBucket?

    @balamyt92
    ; select * from users; --
    GitHub и BitBucket это сервисы хостинга репозиториев, они не как не определяют работу программы git. Кстати есть еще gitlab.com например.
    Ответ написан
    6 комментариев
  • Что за стрелочная функция?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    Если аргумент один, то скобки можно опустить.
    // ES6+
    nameFunction(array, (item) => console.log(item)); // тоже самое


    // ES5
    nameFunction(array, function(item) {
      return concole.log(item);
    });
    Ответ написан
    Комментировать
  • Что выбрать, слайдер на чистом CSS или с использованием JS?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Что выбрать, слайдер на чистом CSS или с использованием JS?

    Ответьте на следующие вопросы и ответ придет сам собой:
    • Можете ли вы в слайдере на чистом CSS сделать поддержку touch-устройств (свайпы)?
    • Можете ли вы в слайдере на чистом CSS сделать поддержку клавиатуры (фокус на весь слайдер и переключение слайдов стрелками)?
    • Можете ли вы в слайдере на чистом CSS адекватно останавливать его на hover, чтобы юзер мог прочитать написанное на слайде?
    • Можете ли вы в слайдере на чистом CSS легко добавить или убрать слайд, не сломав все остальное?


    P.S.: Как человек, создающий всякое на чистом (и не очень) CSS, понимаю ваше стремление, но продукт делается в первую очередь для пользователей.
    Ответ написан
    Комментировать
  • Как узнать индекс элемента с большим значением?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    var arr = [ 1, 3, 2, 3, 6, 2 ];
    var maxIndex = arr.indexOf( Math.max.apply(null, arr)); // 4, считается от 0


    1. Math.max() возвращает наибольшее значение из аргументов.
    2. чтобы передать массив вместо списка, используется apply()
    3. получив само наибольшее значение, остаётся найти его индекс в массиве через метод массива indexOf().


    Не очень эффективно, т.к. фактически массив перебирается дважды: в поиске максимума и в поиске индекса. Можно сделать за один проход, запоминая вместе с найденным максимальным значением его позицию:
    var arr = [ 1, 3, 2, 3, 6, 2 ];
    
    function index_max(arr) {
      var i, maxV, maxP;
      for( i = 0; i < arr.length; i++) {
        if( typeof maxV === "undefined" || arr[i] > maxV ) {
          maxV = arr[i];
          maxP = i;
        }
      }
      
      return maxP;
    }
    
    index_max(arr) // 4
    Ответ написан
    1 комментарий
  • Как правильно оценить проект?

    GriNAME
    @GriNAME
    Front-End Developer, Android Developer
    Кроме оценки по времени, можно использовать и другие методы расчета стоимости. В основном все новички не могут адекватно оценить время, за которое они сделают ту или иную работу. Да и у опытного мастера такое тоже может быть иной раз. Все зависит от проекта и самого человека. Так же не игнорируем индивидуальные особенности. А клиенту желательно знать точную или приблизительную цену перед началом работ, а не когда она завершится и будет зафиксировано потраченное время для расчетов. Поэтому я начинал с оценки по секциям вёрстки, а не времени за работу. Каждая секция 800 рублей (ценник для джуниора). И считаем, хедер, футер, разные блоки. Цена получается очень адекватная для обоих сторон и ее легко посчитать.

    Сейчас я считаю не секции а БЭМ сущности. Мне это удобнее чем, оценка времени (касательно верстки, какие-то работы оцениваю по времени, выше в ответе про временную оценку очень хорошо все описано) Я верстаю по БЭМ и весь проект разбираю на независимые блоки. Например верстка какой-нибудь карточки, а она используется в 5 местах на сайте с 2-3 видами кастомизаций, в зависимости от размещения, но я то благодаря БЭМ верстаю ее только один раз. Потом только готовые классы расставляй. Поэтому считаю БЭМ сущности, если они много раз повторяются ещё накидываю небольшую сумму.

    По посадке (также внедрение) верстки все зависит от того как вы работаете с бекендом. Думаю для вас подойдёт 50-100% от стоимости верстки брать за посадку. В зависимости от сложности.

    Совет рабочий, так я считал начиная со второго своего заказа. И после первого неудачного, где оценил очень дёшево, все пошло хорошо. И заработок и клиенты) поиск клиентов это отдельная тема)

    И мой совет, как работать быстро и качественно. Изучайте современные инструменты для работы. Сборщики проектов, препроцессоры, БЭМ и так далее. По своей натуре я этими вещами начинаю интересоваться ещё до того как получил хорошую базу знаний и мне это помогло очень быстро выполнять свою работу качественно, в короткие сроки, современно и удобно. Каждая работа не выглядит как очередная рутина. За счёт всех этих современных инструментов каждый раз работать очень интересно.

    Ещё если вы сами и дизайны рисуете, то изучите восьми пиксельную сетку
    https://habrahabr.ru/company/everydaytools/blog/31...
    Или расскажите об этом дизайнеру с которым работаете.
    А так же атомарный дизайн. Принцип тот же что и БЭМ, только применительно к дизайну. И оценку очень легко делать и верстать
    Ответ написан
    13 комментариев
  • Как различить события wheel, чтобы браузер понимал, когда крутят вверх колесо, а когда вниз?

    Machinez
    @Machinez
    window.addEventListener('wheel', function(e) {
      if (e.deltaY < 0) {
        console.log('scrolling up');
      }
      if (e.deltaY > 0) {
        console.log('scrolling down');
      }
    });
    Ответ написан
    1 комментарий
  • Какие типы приложений нужно написать, чтобы изучить GOLANG?

    @rustler2000
    погромист сикраш
    Посмотри https://awesome-go.com
    Ответ написан
    Комментировать
  • Как записать в json на ruby on rails?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Вы просто не хотите читать документацию а люди не желают разжевывать вам азы.
    POST запрос в рельсах это хэш массив, читаем руби доки про json и там сразу-же получите ответ.
    Ответ написан
    Комментировать
  • Не работает php скрипт (Страница не работает) как исправить?

    @errogaht
    PHP developer
    чтобы решить это проблему нужно разбираться. открыть пхп файл и ставить в разные места var_dump() и искать проблему. вам ни кто не даст ответа как решить при такой постановке вопроса. нету ни чего. это тоже самое что в интернете написать на форум врачей "у меня короче есть проблема, помогите пожалуйста"
    Ответ написан
    Комментировать
  • Где используется canvas, помимо игрушек?

    Negwereth
    @Negwereth
    lvivcss.com.ua
    Графики, например. Обработка изображений реалтайм, те же эффекты можно на изображение через канвас накладывать.
    Ответ написан
    Комментировать