• Как учиться новому после рабочего дня?

    x67
    @x67
    Как вариант, пренебречь профессиональным отношением к работе что-ли.. И прямо там, с утреца, пока котелок варит, час-полтора посвящать чему-то новому. Да, некрасиво.. Но нанимая человека за хлеб и еду на 9часовой день, они поступают еще менее красиво. Это вас не оправдает, просто каждая из сторон будет стараться быть эгоистичнее.
    Ответ написан
    11 комментариев
  • Как эффективно изучать JS?

    @Scribblex
    Я рекомендую изучать JS примерно таким путем:
    – чтение learn.javascript.ru (чтение и, естественно, практика);
    – параллельное прохождение модулей по JS на codeschool;
    – держите перед глазами актуальные вопросы для собеседования JS-разработчика (habrahabr.ru/post/239065/), стараясь на них ответить;
    – читайте хороших авторов: Дуглас Крокфорд, Джон Рейзиг, Стоян Стефанов;
    – найдите на GitHub людей, которые согласятся ревьюить Ваш код, я серьезно!

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

    Желаю успеха!
    Ответ написан
    10 комментариев
  • Как эффективно изучать JS?

    iliapro
    @iliapro
    Веб-разработчик
    По опыту знаю, что учишь-учишь, но без опыта экспертом не станешь. Придумай себе какой-нибудь проект, в ходе работы будут появляться вопросы, придётся ползти в справочники или искать решение на форумах, только так сможешь выучить язык в совершенстве.
    Ответ написан
    6 комментариев
  • Как оптимизировать процесс установки пакетов NPM/Gulp/Grunt?

    @enricoz
    Самое главное это локальная папка node_modules. Копируйте папки node_modules из проекта в проект, можно смешивать с другими. Можно часть установить, часть скопировать из другого проекта. Я так и делаю - из проекта в проект переношу папку через перенос в far или total commander.
    Уверен, что и у вас 90% зависимостей одинаковые на любом проекте.
    Ответ написан
    1 комментарий
  • Какую литературу можно найти по golang?

    d1monster
    @d1monster
    Front-End Developer
    Марк Саммерфильд "Программирование на языке Go" наверное на данный момент единственная рускоязычная книга по Go. Есть на Рутрекере.

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

    @ProstoAndrei
    Я бы от себя еще мог порекомендовать ngdocs. Особенно учитывая что у вас angular. Поддерживает по моему почти все что есть в jsdoc. У себя настраивал генерация документации через gulp.
    Ответ написан
    Комментировать
  • Как правильно писать unit тесты?

    @thyratr0n
    Непонятно, что вы хотели получить в ответ, ибо не задали четкого вопроса.

    Во-первых, вы, конечно, "удачно" выбрали Yii первой версии в качестве примера. Эта фреймворка не очень приспособлена для изготовления "тестопригодного" кода, ибо содержит на всех стадиях функционирования большое количество "магии". Не верите? Попробуйте что-то наваять на базе CActiveRecord и запилить юнит-тесты. У вас получится что угодно, но не то, что надо.
    Самый главный аспект юнит-тестирования состоит в том, что один тест (метод класса-теста) должен решать строго одну задачу, а не проверять в фоне целую подсистему.
    На одном из своих проектов я решил эту проблему, написав целую свору заглушек.
    Во-вторых, все зависит от задач. Грубо говоря, юнит-тесты проверяют код как есть. Следующий уровень тестов (не берусь его называть, ибо я их постоянно путаю) проверяет бизнес-сценарии. И самый высокий уровень проверяет все это дело в связке с внешними интерфейсами.
    И в-третьих, один тест не должен включать код других тестов, ибо каждый тест должен быть изолирован, считая, что весь остальной код работает. Именно поэтому, когда вы пишете, например, тест для мелкой модельки, не нужно гонять работу с БД: считается, что вся подсистема взаимодействия с БД _работает_.

    Да, и еще. Очень часто путают моки и стабы.
    Стаб - это заглушка - код, который "глушит" выполнения другого. Цель заглушки - проверка того, _что_ возвращает объект в своей работе. В вашем случае нужен какой-то объект, который не позволит коду выполняться далее LoginForm::login(). Как это сделать? При статической типизации кода - никак. Нужна надстройка, которая будет динамически использовать данные объекты, чтобы их можно было заменить на стабы.
    Мок - это надстройка над тестируемым объектом, целью которой является проверка того, _как_ работает объект внутри, именно поэтому моки всегда строятся на Reflection.
    Ответ написан
    4 комментария
  • Удалёнка - куда легче попасть?

    @AndreyMyagkov
    На удаленке джуниоры нафиг не нужны и спрос с удаленщика двойной (человека не видно, значит по умолчанию не работает, в офисе человек тычет по клаве - значит по умолчанию работает) и удаленно сложнее набраться опыта. Поработайте сначала в офисе под присмотром опытного человека, а там и решите для себя куда податься, а может и в офисе понравится.

    По именно фронтэнду конкуренции нет, есть дикий дефицит спецов. По верстке да, большая конкуренция.
    Ответ написан
    2 комментария
  • Как правильно оценивать время на тестирование?

    @azShoo
    Первое, что стоит сказать: на такой вопрос нельзя ответить правильно, т.к. слишком размытая формулировка. Это как "как правильно писать код?".

    Касательно самих оценок.
    Как уже выше озвучивали, есть вариант с оценкой на тестирование исходя из времени на разработку. Хотя с формулой:
    QATime = (DevTime*0.35)*0.3;

    Я категорически не согласен. Более реальной оценкой выглядит 0.3 от времени на разработку.

    Второй вариант - отталкиваться от количества тестовых сценариев.
    Я предпочитаю рассчитывать именно так.
    1) Оцениваем объемы задачи.
    2) Прикидываем примерное количество тест-кейсов (проверок) на данную задачу.
    3) Умножаем кол-во на примерное среднее время прохождение кейсов (для веба это в районе 4х минут, дальше зависит от специфики отрасли).
    4) Закладываем риски в 0.66 от оценки

    Ну, в целом как-то так.
    Ответ написан
    Комментировать
  • Порекомендуйте литературу а так же интернет-ресурсы для тестирования?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Рекомендую сперва посмотреть Software QA Course от Михаила Портнова. Затем почитать про "жесткое обращение с багами", так и писать в гугле.
    Ответ написан
    2 комментария
  • Порекомендуйте литературу а так же интернет-ресурсы для тестирования?

    God-emperor
    @God-emperor
    create a golden path
    Рекс Блэк. Ключевые процессы тестирования
    Ответ написан
    Комментировать
  • Как правильно тестировать взаимодействия микросервисов?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Все это делается при помощи заглушек, которые вместо реализации отдают правдоподобные данные, просто захардкоженные. Сервисы, будь они хоть SOA, хоть микросервисами, они вообще не должны быть привязаны к портам. Сервис - это фасад, закрывающий от внешнего мира реализацию серверной логики, при запуске сервис из настроек берет порт, хост, адреса доступа к другим сервисам, и любые другие параметры. Для того, чтобы стартовать несколько сервисов на одной машине, имитировать серверное окружение, несколько серверов, можно использовать контейнеры docker или виртуальные машины. С разных портов сервисы можно объединять в один пучек при помощи nginx или другого реверс-прокси с URL-реврайтингом. Или есть вариант использовать сервер приложений, который скрывает от разработчика задачу запуска и объединения сервисов в один пучок.
    Ответ написан
    2 комментария
  • Что можно написать на Node.js?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js

    Часто применяется для:

    1. Локальные приложения и утилиты командной строки
    • Сборщики и трансляторы
    • Пакетная обработка и сценарии отложенной обработки
    • Скрипты, CLI (интерфейсы командной строки)
    • Генерация документации, отложенное формирование отчетов
    • Сценарии тестирования для других систем

    2. Серверы
    • Серверы веб-приложений и SPA
    • Серверы и API для мобильных приложений
    • Любые другие веб-API (RPC, JSON, REST)
    • Серверы сообщений и трансляция событий (чаты, игры, интерактив)
    • Заплаты на уже готовые системы, написанные на других языках, для реализации вебсокетов, SSE, лонг-пулинга и т.д., т.е. для затыкания дыр, для решения проблем в узких местах уже работающих систем.

    3. Клиенты
    • Оконные приложения (nw.js, node-webkit)
    • Кравлеры, парсеры и сбор данных

    4. Железо
    • Программирование микроконтроллеров (arduino, espruino, tessel)
    • Промышленная автоматизация

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

    И плохо подходит:
    • Вычисления и моделирование, со скоростью математических операций нода и JS, как не типизированный язык, не дают хороших показателей
    • Научные приложения (по тем же причинам)
    Ответ написан
    10 комментариев
  • "else path not taken" в проверке покрываемости кода (istanbul code coverage). Как исправить?

    @iKBAHT
    Это означает, что в ваших тесты ни разу не заходили в else ветку. Придумайте такой тест, чтобы попасть туда и ошибка уйдет
    Ответ написан
    Комментировать
  • BDD для Javascript под Windows

    @magic_ball
    Посмотри на mocha. Сейчас это самый популярный и удобный фреймворк для тестирования js приложений. Замечательно подходит как для client так и для server side.

    Поддерживает BDD интерфейс для написания тестов visionmedia.github.io/mocha/#interfaces

    Насчет windows на 100% утверждать не могу, не работаю с ним, но у коллег проблем не возникало.

    Также советую при выборе моки взять полный стек смежных с ней фреймворков:
    mocha - непосредственно для тестов
    chai - assertion framework для mocha, позволит использовать все многообразие BDD проверок chaijs.com/api/bdd
    sinonjs если необходимы моки для ajax запросв
    grunt и плагин для mocka чтобы облегчить запуск тестов, с плагином grunt-contrib-watch позволит автоматически перезапускать тесты при любом изменении js файлов и/или тестов
    и karma или testem для запуска тестов сразу в нескольких браузерах
    Ответ написан
    3 комментария
  • Масштабирование NodeJS приложения?

    Tenkoff
    @Tenkoff
    Ну так оффтопиком.

    1) Не используйте node.js в качестве балансировщика, для этого есть haproxy, nginx
    2) Попробуйте github.com/nodejitsu/haibu или github.com/substack/fleet (мне понравился больше)
    3) Не используйте mongo для сессий и хранения простых данный key/value, для этого есть redis, leveldb

    Вообще вам нужно понять для чего вы хотите масштабировать, для отказоустойчивости или для производительности.
    Ответ написан
    2 комментария
  • CouchDB: частое обновление

    @1nd1go
    Я могу ошибаться, но во-первых, каждый раз когда вы обновляете документ, создается его новая версия. Это значит, что при добавлении id будет новая версия документа. Из-за частых добавлений, может перестраиваться B+ дерево записей, что может сказываться на перфомансе

    Кстати, у вас, я правильно понял, что id обновляется в объектах принадлежащих одному документу? Тоже может быть, что вы раз записав кому-нить id, пытаетесь в цикле обратиться к еще старому документу.
    Ответ написан
    3 комментария