• Можно ли назвать данную верстку адаптивной?

    LucasKane
    @LucasKane
    Front-end Developer
    c14c65abb8a244cd9ac3a2f6acbfbf86.png
    И после исправления:
    050188851b7948189362ea3c25ccfcd7.png
    Чуть чуть подправить.

    А Проверить еще можно переполнением контента, текст скажем не две три строки, а 5-6. Еще можно в браузере размерами шрифта поиграть, если конечно шрифт не px.
    Ответ написан
  • Рисование нестандартного элемента или можно обойтись (необходимо изобразить "шкалу термометра" для выбора времени)?

    copist
    @copist
    Empower people to give
    1. Как бы не сделал, лишь бы выглядело как задумано
    2. Я бы весь этот градусник сделал на SVG
    3. На указанном pen codepen.io/anon/pen/ojevRd горячая зона у точек мелкая, приходится слишком точно прицеливаться в градусник. Надо побольше.
    4. А как должно выглядеть, если кликнуть 8am, 10am, 8pm, 10pm? Два один диапазон (с 8am до 10pm), два (c 8am до 10am + c 8 pm до 10pm)?

    P.S. Чуть чуть магии и SVG codepen.io/copist/pen/jbLbGV
    Ответ написан
    9 комментариев
  • Flexbox и колоночная сетка?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ответ написан
    Комментировать
  • Как ускорить запрос?

    можно так:
    UPDATE linestatuslog s, (SELECT * FROM linestatuslog ORDER BY startDate) n
    SET s.endDate = n.startDate
    WHERE n.line = s.line AND n.startDate > s.startDate
    Ответ написан
  • Можно-ли отобразить изображение без загрузки его на сервер?

    Есть в HTML 5 объект FileReader, который поможет это реализовать.
    Пример, jsfiddle.net/sLnLeLwg
    Документацию можно нагуглить.
    Ответ написан
    3 комментария
  • Какой SSH клиент имеет подсветку синтаксиса?

    @Goomfn Автор вопроса
    Вопрос решился здесь. Нужно включать цвета непосредственно на Linux, а Putty их сама отобразит.
    Ответ написан
    Комментировать
  • Как в Yii 2.0 получить версию браузера, в которой запускается приложение?

    @MilkyWay
    При чем тут Yii? Есть кондишиналс теги типа: <!--[if lt IE 8]> Которые как раз для таких случаев
    Ответ написан
    2 комментария
  • Как тестировать верстку в IE если работаешь под Mac OS?

    taliban
    @taliban
    php программист
    на сайте майкрософка можно скачать виртуалки голые с ие, совершенно бесплатно и легально
    Ответ написан
    Комментировать
  • Как лучше хранить телефонный номер в БД?

    @maxloyko
    Только строки.
    Попробуйте вставить номер телефона 001235489 в поле INT.
    Ответ написан
    6 комментариев
  • Как отобразить коммиты в GiHub, когда изменения залиты через SSH?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Коммиты в свой репозиторий не учитываются. Только пулреквесты, ишусы и т.д.

    UPDATE

    https://help.github.com/articles/why-are-my-contri...
    Ответ написан
    3 комментария
  • Что представляет собой тестирование ?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вообще вики можно для начала, а потом уже углубляться в литературу. Вот вам кратенькое описание, цель которого больше предоставить ключевые слова для поиска.

    Модульные, они же юнит тесты, предназначены для тестирования отдельных модулей/классов. Суть их в том, что мы тестируем поведение только одного класса за раз. Если класс ссылается на инстансы других классов - мы их мокаем. То есть подсовываем им фэйковый класс, который имеет тот же интерфейс, но внутри не реализациа методов, а проверка, вызывали ли метод, с каким аргументами, сколько раз вызывали и т.д. Так же методы мока могут возвращать стабы (заглушки), какие-то захардкоженные под какой-то кейс данные. То есть если мы пишем класс по работе с базой данных, сокет-сервер и т.д., нам стоит соединение с базой, сокеты и т.д. оборачивать в классы, что бы можно было потом подменить на моки это добро. Если у вас в юнит тестах идет реальная работа с файловой системой или что-либо в этом духе, то это уже попахивает интеграционными тестами. Подробнее можно почитать в документации к phpunit. Так же есть такая методология разработки как TDD, советую почитать "Экстримальное программирование" Кента Бэка в этом ключе.

    Сразу хочу отметить что юнит тесты это хорошо, но вот только рядовой разработчик на PHP редко пишет что-то, что стоит покрывать юнит тестами. Времени на их поддержку нужно не мало, а требования у заказчиков частенько меняются. В итоге тесты начинают комментить и толку от них становится ноль. А вот если вы пишите компонент/библиотеку, то тут юнит тесты обязательны (ну... не то что бы, но желательны). Так что я бы на вашем месте сконцентрировал внимание на первом этапе на интеграционных и приемочных тестах.

    Интеграционное тестирование - тестирование нескольких модулей в связке. То есть мы тестируем наш компонент или его самодостаточный кусок в реальных условиях. Если этот компонент для работы с файлами - разрешаем ему доступ к файлам. Если база данных - то даем реальное соединение с базой. А можем что-то и замокать. Это как говорится, зависит от задачи. Скажем обращение к сторонним апишкам стоит мокать и стабить. Главная цель этих тестов, удостовериться что модули вместе работают хорошо. Особенно важно это когда модули пишут разные люди.

    Функциональное тестирование - это тестирования всего приложения в сборе. Если это REST API, то у нас через curl дергаются реальные методы, отправляются более менее реальные запросы и валидируются ответы. Если web-страничка, то это UI тесты с силениумом/phantom.js/zombi.js или, если нам не нужно еще и js тестить, просто curl + какой виртуальный браузер на том же php. Вообще по хорошему функциональные тесты не допускают никаких моков и т.д. но опять же если очень хочется то можно (опять же обращение к сторонним сервисам, контроля за которыми у нас нету).

    Но реалии таковы, что UI тестами покрывать проект не слишком удобно. Вопервых UI может меняться, а поддерживать их так же нужно. Во вторых это скучно. В третьих тесты могут просто падать... вот взяли и упали. И потом начинается, так, тесты опять упали... что там упало? А, не страшно, можно релизить. Так же на больших проектах UI тесты отрабатывают долго, очень долго, некоторых их просто ночью гоняют. Толку от тестов при таком подходе не слишком много, ибо разработчику стоит знать о том что что-то сломалось как можно быстрее. А так он приходит, видит что тесты опять красные, чинит эти красные тесты, и запускает... ждет... проходит пол часа к примеру, и где-то в другом месте отвалилось... Короче сами понимаете.

    Приемочное тестирование - по сути те же функциональные тесты, но подаются в контексте фича-спеков. Если вы работали когда-нибудь с QA отделом, то возможно слышали про такие штуки как acceptance criteria. То есть это тот чек лист, который должен проверить тестировщик что бы удостовериться что все хорошо. На основе этого чек листа можно написать функциональные тесты. Так же есть инструменты вроде Cucumber/Behat, которые позволяют писать спецификации в виде стэпов. В этом случае спецификации для этих инструментов могут писать QA а вы просто имплементите для них степы. То есть уменьшается прослойка между "acceptance criteria" и готовыми к выполнению тестов. Более того, стэпы можно реюзать, комбинировать, масса стэпов есть готовых, вам же необходимо только предоставить стэпы подготвалливающие систему (загрузка/генерация фикстур и т.д.). Короче лепота и удобно. Но медленнее интеграционных, зато не такие жесткие как функциональные, за счет этого их проще поддерживать. QA пишут спеку, реализуем тесты под эту спеку, пишем код под тесты, тесты зеленые - функционал готов.

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

    Ну и опять же, есть такая вещь как здравый смысл. Некоторые вещи скажем можно вообще забить и не покрывать тестами, некоторые стоит покрыть. Некоторые не полностью, некоторые с как можно большим покрытием.... Скажем тестить UI (именно как выглядит, где какой элемент) вообще бессмысленно. На это нужно куча ресурсов. Хотя может и есть проекты где это оправдано.

    Короче почитайте про TDD и ATDD (можно и BDD затронуть, но тут не только от программиста зависит, менеджеры, заказчик или продукт-оунер тоже должны быть вовлечены, по сути этот подход хорошо работает в рамках продукта какого-то, на фрилансе и в аутсорсе редко можно встретить) , Continious Integration и Continious Delivery.
    Ответ написан
    Комментировать
  • Как настроить ssh для git?

    copist
    @copist
    Empower people to give
    Git для Windows:
    страница проекта git-scm.com
    страница выбора дистрибутива git-scm.com/download/win

    После установки появится появится возможность через консоль gitbash выполнять команды unix
    В частности создать папку для ключей и сгенерировать обычные Unix ключи

    mkdir -p /c/project/.ssh
    ssh-keygen -f /c/project/.ssh/id_rsa -C any_comment


    При этом сгенерируется пара ключей, и публичный надо будет указать в github для доступа к вашему репозиторию

    Публичный читается так:
    $ cat /c/project/.ssh/id_rsa.pub


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

    touch ~/.ssh/config
    notepad ~/.ssh/config


    Туда нужно внести такие строки

    Host github.com
    HostName github.com
    Port 22
    IdentityFile /c/project/.ssh/id_rsa


    Далее нужно клонировать ваш репозиторий с использованием SSH : пример получения ссылки take.ms/h3QCp

    git clone git@github.com:sample-username/sample-repo.git


    В общем то никакой магии
    Ответ написан
    6 комментариев
  • Какую книгу по AJAX выбрать для изучения?

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

    anton.shevchuk.name/jquery-book
    Ответ написан
    Комментировать
  • Чем отличается junior от middle? а Senior?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Вот как это выглядит с т.з. работодателя

    Джун
    - собеседование
    изъясняется исключительно на сленге (большую часть которого не может внятно объяснить), готов в одиночку за неделю написать новую ОС, или две - за полторы, если только для этого не придется учить ассемблер, несмотря на юный возраст уже обладатель прав на обе версии и один бэкап личного сайта с фотографией кошки в розовой рамке и знает, что синглтон - это абсолютное зло, хотя и не может написать его без ошибок.
    - испытательный срок
    долго мудохается с настройками рабочего места, которые регулярно слетают под тяжестью многотысячных плагинов, шелов и скринсейверов, донимает админов, находит две (орфографические) ошибки в документации проекта и один быстрый альтернативный способ сделать форк из SVN, после которого проект, к сожалению, не билдится не только у него, но и у всей команды. Берется все немедленно исправить с помощью другого чудотворного плагина, (неожиданный баг в котором приходится фиксить двум миддлам), после чего насильственно лишается рута, плагинов и шелов и начинает изучать проект под чутким контролем матерящихся миддлов.
    - работа
    научился билдить проект, писать тесты и коммитить, не роняя этим билд, понял смысл многих сленговых выражений, подружился с миддлами и админами, не путается в названиях ключевых технологий, радикально сократил число плагинов, удалил сайт с кошкой, работает.

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

    Синьор
    - собеседование
    указывает на ошибку в тестовом задании, предлагает два решения проблемы, над которой команда пыхтела последнюю неделю и альтернативный стек технологий, на который можно перевести проект
    - испытательный срок
    рефакторит проект, делает билд джун-устойчивым, по ходу дела пишет алгоритм для киллер-фичи, запланированной только на следующий квартал и под конец испытательного срока организует воркшоп, на котором представляет свои наработки "в свободное время" по переводу проекта на другой стек технологий, в которых уже реализована большая часть функционала следующего релиза.
    - работа
    пинками помогает команде в переходе на одобренный руководством новый стек, в чем его активно поддерживает джун, окрыленный тем, что теперь его накопившиеся косяки точно никто не заметит, переводит проект на новый стек, увеличивает производительность в два раза, через год переводит еще раз, периодически генерирует идеи новых продуктов, может пропасть на неделю и вернуться с новой фичей, а может уйти в накопившийся за несколько лет отпуск и больше не вернуться, т.к. случайно встретил старого знакомого, передложившего другой мега-проект с гига-зарплатой.
    Ответ написан
    4 комментария
  • Как сделать «умную» загрузку страницы?

    mlnkv
    @mlnkv
    JavaScript Developer
    как только загрузился DOM прятать все элементы , у которых стоит определенный аттрибут, проверяем, есть ли там элементы, которые должны загрузиться:
    img -
    var img = new Image ()
    img.src = obj.src
    return !img.complete

    css, в которых требуется загрузка картинки -
    var cssImageProps = [
      'backgroundImage',
      'borderImage',
      'borderCornerImage',
      'listStyleImage',
      'cursor'
    ]
    var cssUrlRegex = /url\(\s*(['"]?)(.*?)\1\s*\)/g

    (проверяется регуляркой, используется ли картинка в стиле, то есть, есть ли строка типа url(../......))
    и т.п.

    В общем, если все готово и загружено - показываем элемент
    Ответ написан
    1 комментарий