• Что нужно и на чем сделать надежный чат, обмен сообщениями?

    ap0stal
    @ap0stal
    Web-разработчик
    Быстрый и современный способ установить соединение с клиентом – WebSocket

    Для PHP хорошая либа - Ratchet
    Ответ написан
    3 комментария
  • Как организовать поиск среди миллиона и более изображений?

    riky
    @riky
    Laravel
    взять N серверов и сделать шардирование, главное чтобы на каждом памяти хватало.

    тем более насколько я понимаю каждый вектор нужно проверять отдельно (индексы не катят) сложность O(1), то тем более при увеличеннии колич картинок в одной базе начнет расти время только для поиска, не считая загрузку с диска. при шардированиии время не будет расти, так как поиск будет параллельный.
    Ответ написан
    2 комментария
  • Как бороться с плагиатом мобильного приложения?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Вы базу защищали в роспатенте или оформляли авторское свидетельство через депонирование кода и документации?
    Если нет - самое время! logo.svg(сервис проверил лично, 5% скидка!)
    Ответ написан
    1 комментарий
  • Почему нет вывода результата функции в консоль при использовании Go-рутин?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    package main
    
    import (
    	"fmt"
    	"net/http"
    	"sync"
    	"time"
    )
    
    var wg sync.WaitGroup
    
    func getResp() {
    	defer wg.Done()
    	res, err := http.Get("http://ya.ru")
    	if err != nil {
    		fmt.Println(err)
    	} else {
    		fmt.Println(res.Status)
    	}
    }
    
    func main() {
    	start := time.Now()
    	for i := 0; i < 10; i++ {
    		wg.Add(1)
    		go getResp()
    
    	}
    	wg.Wait()
    	elapsed := time.Since(start)
    	fmt.Println("Время выполнения  ", elapsed)
    }
    Ответ написан
    Комментировать
  • Какие CMS движки для создания landing pages вы используете или знаете?

    @motomac
    Я себе делал статический сайт через Jekyll. Нужна была мультиязычность и ещё чуток динамики. Если это не нужно, то, как говорили выше, HTML, CSS, JS самый простой вариант.
    Ответ написан
    Комментировать
  • Что значит хорошо знать фреймворк?

    @YuryBorodkin
    Android dev
    Довольно просто, хорошо знать - значит знать ЧТО гуглить, чтобы решить проблему. Учить его - да что за дичь? он устареет через год, потом будет еще стопицот других, еще моднее.
    Ответ написан
    Комментировать
  • Что значит хорошо знать фреймворк?

    romy4
    @romy4
    Exception handler
    это значит, что когда тебе сказали запили фичу, то ты не сидишь ломая голову и изучая чужие примеры, пиля костыли, спрашивая на этом форуме, а делаешь сам зная какие модули надо использовать и как, знаешь мануал на столько, что тебе не нужны подсказки вроде "а как мне сделать такую-то шнягу?", ты просто знаешь, что её можно сделать так и так двумя-тремя способами, надо только глянуть на страницу мануала подсмотреть синтаксис функций.
    Ответ написан
    Комментировать
  • Из чего состоит окружение продвинутого php разработчика?

    nonlux
    @nonlux
    Поправил ответ, так будет логичнее.
    Ниже приведены инструменты, которые использую лично я и причины почему.

    1. docker-окружение
    (в 90% случаев для веб-разработки достаточно php -S 0.0.0.0:8000)
    виртуальные машину становятся нужны:
    - когда надоест переустанавливать хост-систему из-за обилия хлама
    - когда работаешь с несколькими проектами имеющие специфические (разные) настройки окружения(php, web-сервер, база)
    - когда надоест решать проблемы в команде из-за того что по разному настроено окружение

    2. git - система контроля версий
    Помнить что ты и когда изменял, должен не человек, а машина.
    Это необходимо:
    - чтобы не испортить всю работы за прошедший год нажав del
    - чтобы определить кто из команды злодей и все испортил
    - чтобы не думать как перенести свежую версию проекта с одной машины на другую

    3. composer - пакетный менеджер для php
    Нужно, когда лениво помнить все ссылки на все php библиотеки, самому качать их, подключать в автозагрузку

    4. behat + phpspec
    Тесты нужны:
    - когда хочется почувствовать себя безопасности и для сладко спать ночь, забыв о кошмарах о сломанном коде
    - когда в production все снова сломалось
    - когда ты написал одну новую фичу, а сломал три

    5. zsh
    Хорошей консолью приятно пользоваться, работа идет быстрее.
    Консоль есть жизнь, жизнь есть shell.

    6. tmux
    Мало одно окошка в консоли, тогда tmux идет к вам.
    В качестве бонуса получите возможность парного программирования совершенно бесплатно

    7. tmuxinator
    Надоело каждый раз открывать кучу окон для tmux, попробуйте его )
    8. vim
    - Потянуло на что-нибудь необычное?
    - Хочется эффективнее писать код ?
    Ну что открыли vim? В первый раз? Поздравляю закрыть вы его не сможете )
    Вызывает зависимость при частом потреблении


    9. continuous integration сервер
    Вообще ci сервер это одушевленная машина. Это твой тамагочи, ты кормишь его хорошим кодом, он радуется и ты видишь приятный зеленый огонек. Если ты дал с код от скажет что не вкусно. Ну а если ты ему, что гнилое он будет долго на тебя орать плохими словами. Со временем он растет и учится делать более серьезные вещи, и начнет помогать тебе:
    Его скилы:
    - он может сам выполнить 10 минутные тесты
    - подготовить и опубликовать проект
    - рассказать о твоем коде, даже то что ты не знаешь
    Он легко обучается и ты легко сможешь научить его удивительным вещам.

    10. куча линтеров на pre commit hook
    Чтобы ci не кормить плохими продуктами, хорошо бы проверять что ты сделал до отправки на сервер. Что бы не забыть это сделать git сам работу.

    11. gulp
    gulp - это еще один твой помощник.
    как если использовать, как watcher файлов + livepreview, можно забыть о F5 в браузере

    12. bower
    Тоже что и composer но для управления ассетами. Это я о всяких jQuery и Bootstrap

    666. Линукс
    Даже если не хочется ставить как хост-систему, его все равно надо знать. Ваш код будет работать на нем )
    Ответ написан
    16 комментариев
  • Что должен знать и уметь front-end разработчик при ставке 20$ в час?

    @Alexey_Kutepov
    Разработчик программного обеспечения
    Продавать себя за 20$ в час
    Ответ написан
    Комментировать
  • Почему не все серверы пишутся на Node js?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. Принципиальных качественных преимуществ у node.js перед остальными языками нет, как впрочем и недостатков. Просто yet another язык со своими особенностями. Соответственно если в вопросе заменить node.js на php/ruby/python итд - ничего не изменится.
    Вопрос по сути абстрактный "почему все не перешли на язык %%%%%"

    2. Ответ на абстрактный вопрос:
    а) Потому что существует огромное количество legacy кода который нужно поддерживать. Работы по поддержке и развитию существующего кода на порядок больше чем написания с нуля нового
    б) Потому что у разработчиков есть свой стек любимых технологий, изменять который без явных экономических причин основная масса не готова
    в) Потому что умные технические менеджеры выбирают стек технологий проекта исходя из имеющихся под рукой разработчиков и легкости поиска и заменимости оных.

    UPD
    hbrmdc
    У NodeJS есть уникальные и очень весомые преимущества, которых нет ни у одного другого языка. Например то, что это JS, и, следовательно, нет необходимости разучивать лишние языки - можно весь webapp писать на js.
    Личные предпочтения обоснованные привычками - это не имеющий значения аргумент в данном вопросе.

    1) Есть отличия, да. Только не те о которых Вы пишите. То что это "JS" вообще ни на что не влияет.
    JS хорошо знают фронтендщики - а кто пустит фронтэндщика к внутренней архитектуре? Там подход совершенно другой нужен, другие навыки, другое понимание как это все работает. Просто пересадить человека с фронта на бек - нельзя.

    На самом деле основные отличия другие:
    Постоянно живущий процесс, фактическая однопоточность. В зависимости от задачи - это может быть и плюсом и минусом. Условно для какого нибудь сокет-сервера - плюс (активно используем на живых проектах). Для middleware - я бы подумал. Для нагруженного сервиса с расчетами - точно нет.

    2) Личные предпочтения обоснованные привычками это основной аргумент.
    Я вот умею в php, умею в ноду, умею в еще десяток умных слов.
    Мне нужна новая команда на новый проект.
    Я открываю hh и что я вижу: node.js 279 резюме из которых половина фронтэндщики.
    PHP - 9613 резюме. Даже если 90% разработчиков PHP на hh - уроды которых к коду нельзя подпускать на пушечный выстрел - останется все равно в 3 раза больше чем есть node.js.
    Собственно на этом выбор и закончен.

    На малопопулярных языках пишут в случаях:
    a) это мелкий сервис с неявными перспективами который можно переписать за неделю
    б) это проект "для души" разработчика.

    Получается замкнутый круг на самом деле.
    Менеджер смотрит резюме, резюме на node.js нет =>
    Менеджер не начнет проект на node.js =>
    Не возникнет вакансия на node.js =>
    Разработчик анализируя вакансии не увидит вакансий на node.js =>
    Разработчик будет учить что то другое =>
    Менеджер смотрит резюме, резюме на node.js нет...

    Переломить ситуацию могут только очень крупные игроки обладающие возможностями формирования рынка (например Apple и Swift), и то не со 100% гарантией (samsung&c и Tizen)
    Ответ написан
    13 комментариев
  • Какие Вы знаете источники знаний о PHP?

    miraage
    @miraage
    Старый прогер
    php.net/manual
    Там порой очень хорошие комментарии оставляют.

    Я в своё время начинал с "PHP5 в подлиннике" Дмитрия Котерова.
    Ответ написан
    5 комментариев
  • Вменяемый Docker Web UI?

    fadeev2010
    @fadeev2010
    Работаю в planiro.com
    Я пользуюсь dockerUI
    https://registry.hub.docker.com/u/dockerui/dockerui/

    Запустить можно сразу как контейнер
    docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui

    В основном поьзуюсь для удаления старых контейнеров и имеджей, так же удобно смотреть логи по контейнерам, параметры.
    Ответ написан
    Комментировать
  • Вменяемый Docker Web UI?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Я пока не пользуюсь, но вам должен понравиться Rancher. Умеет overlay сеть поднимать и линковать даже контейнеры на разных серверах.
    К тому же есть балансировщик нагрузки и прочие удобности, Open Source.
    Контейнеры будет видно только те, которые через UI запускались, тут ничего не поделать.
    Ответ написан
    2 комментария
  • Как организовать защиту от парсинга сайта?

    Написал довольно много различных парсеров и автоматизаций веб разной сложности, и могу сказать, что единственный вариант - это не публиковать информацию вообще. Думаю следующее поможет отбить желание парсить сайт или как минимум повысит стоимость разработки\поддержки парсера:
    1. Система мониторинга поведения пользователя (движение мышки, координаты нажатия на кнопки и т.п.) для того чтобы вычислять ботов.
    2. Не использовать Id и name или другие атрибуты, по которым можно вычислить контент.
    3. Обфусцировать СSS и делать имена классов динамическими.
    4. Динамически добавлять различный мусор в разметку.
    5. Использовать веб-фреймворк, и не светить методы наружу.
    6. Использовать капчу, от разных вендоров и с динамически генерируемым url, причём загружать её так, чтобы её нельзя было вытащить из кэша браузера (от перехвата запроса это не спасёт, но жизнь автоматизаторам подпортит).
    7. Переодически менять вёрстку.

    Загружать контент через Ajax я бы не рекомендовал: перехватить реквест от браузера не такая уж большая проблема, зато сразу сужается область поиска контента.
    Ответ написан
    Комментировать