• Как быстро подтянуть свой уровень веб-разработчика, чтобы соотвествовать требованиям работодателей?

    5angel
    @5angel
    Фронтенд-лид
    Давайте обратимся к данной публикации, чтобы понять примерные тренды, потому что наиболее выгодный вариант – это все же фронтендер.

    Вкратце, полноценный клиентский разработчик должен знать:
    – html5/css3 + bootstrap
    – один-два препроцессора (less/stylus)
    – чистый js и пару-тройку клиентских библиотек или фреймворков (knockout/backbone/angular/react)
    – немного node.js, чтобы уметь пользоваться пакетным менеджером (npm) и билд-менеджером (gulp/grunt)

    Этот список покрывает большинство клиентских задач в средней студии или стартапе.

    В реальности, от разработчика требуется только одно – уметь быстро накостылять какую-нибудь фичу к релизу, который должен был быть вчера. Собственно, если внимательно посмотреть на список, который я привел, можно заметить, что все эти вещи направлены на максимально быструю разработку – тут костыль, там костыль – и в продакшн. Как бы ни пытались нагнать пафоса на собеседовании, в бою будет именно так.

    Другой вопрос – что со всем этим делать.

    Я обычно предлагаю попытаться начать свой маленький проект. Какой-нибудь простенький личный сайт, игру на js (тот же flappy bird или 1048 – много ума здесь не нужно). Посложнее – свою тему или библиотечку. Это будет хорошим практическим опытом, который не стыдно описать в резюме.

    Обязательным навыком является быстрое чтение документации (желательно на английском) и понимание того, что происходит в коде, который вы видите первый раз в жизни. Советую потренироваться на различных проектах с открытым исходным кодом.

    Если говорить о личном опыте, то я неплохо подтянул js с помощью codewars – задачки начинаются от самых простых (преобразование строк, перебор массива), до очевидно тяжелых (собственные интерпретаторы и преобразование данных изображения).

    А вот попытка спихнуть на верстальщика UI/UX – это уже экономия со стороны отдельных контор, которые по какой-то причине не хотят нанимать отдельного дизайнера/проектировщика в штат или по контракту. Тут, к сожалению, придется мириться и смотреть статьи по теме – тот же GoodUI.
    Ответ написан
    10 комментариев
  • Какой язык выбрать для api сервера?

    viktorvsk
    @viktorvsk
    Сайт буду просматривать пользователи, и делать всякое разное. он должен быть максимально быстрым.

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

    Api будет выполнять ресурсоёмкие задания: вычисления, запись из бд в файл и наоборот, и прочие функции которые не выдержит сайт.

    API не делает задания. А вычисления и запись из бд в файл - не являются ресурскоемкими операциями в общем случае. Да и сайт их обычно тоже не производит. В таком контексте сайт - это, скорее, фронтенд. А вычисления будут производиться на сервере.

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

    Тут вообще не понял. Многопоточность зависит от типа и настроек вебсервера (например, который стоит на nginx-ом). Чем не угодила асинхронность - тоже не понятно. И как она зависит с возможностью обрабатывать много и сразу - так же неясно. Очень упрощенно можно сказать, что с помощью асинхронности можно создать у пользователя впечатление, что сайт реагирует мгновенно (работает очень быстро)

    Возможно, это все потому что 3 (4) часа ночи и вы переварили очень большой объем информации. Тогда попробуйте конкретизировать.

    Если по существу:
    1. Неважно, какой язык выбирать. Тот - который лучше всего знаешь. На любом языке можно реализовать что угодно. Большинство "производительности" достигается не за счет быстродействия стандартной библиотеки языка, а за счет кеширования, оптимизации sql запросов, настройки веб-сервера и базы данных и использования очередей.
    2. Видимо, для вас важен вопрос: "Стоит ли разносить API сервера и клиент приложения на разные приложения, языки, инстансы?". Здесь ответить сразу не получится, потому что все зависит от задачи. Смотря как вы будете использовать свои инстансы. Какие вычисления будут проводиться и т.д. - больше конкретики по предметной области.
    Ответ написан
    5 комментариев
  • Сервис для генерации ТЗ программистам, где найти?

    @Bushizzle
    Думаю, никто кроме вас не знает лучше что конкретно вы желаете получить от программистов. Если какой-то сервис составит за вас ТЗ для программистов, то не факт, что оно будет понятно вам. В таком случае что же делать с обратной связью, которая будет такой же непонятной как ТЗ?

    Я вижу здесь два выхода: либо найм менеджера, умеющего вести подобные проекты, либо ваше личное обучение по необходимой тематике.
    Ответ написан
    Комментировать
  • Как в Django сделать AND фильтрацию на основе M2M связи?

    Не уверен в правильности, но может быть, попробовать вот так?

    Item.objects.filter(code__zip=1).filter(code__zip=2).filter(code__zip=3).filter(code__zip=4)


    По идее, это даст эффект операции AND.

    Если не сработает, существует ещё одно решение. Если не против, разобьём его составление на шаги, мне самому так проще писать.
    1. Делаем запрос на промежуточной таблице отношения ManyToMany, которая связывает Item и Code, выбирая те пары Item - Code, для которых item__zip входит в нужное множество.
    qs = Item.code.through.objects.filter(code__zip__in=[1, 2, 3, 4])


    2. В результирующем запросе значения item_id будут повторяться. Нам нужно найти те значения, для которых число строк равняется четырём.
    from django.db.models import Count
    qs = qs.values('item_id').annotate(count=Count('id')).order_by().filter(count=4)


    Надеюсь, что больших ошибок не допустил.
    Ответ написан
    6 комментариев
  • Почасовая работа: уволить фрилансера или оставить и провести разъяснительные беседы?

    buttersmai
    @buttersmai
    С одной стороны, на мой взгляд, отвлекающие факторы снижают продуктивность при программировании. Музыку послушать еще ладно, а вот видео смотреть или методички читать-наверное, перебор. Это мое мнение, как программиста. Я, когда включаю тайм-трекер, привык полностью погружаться в работу.

    С другой стороны, если бы мне заказчик вот именно таким языком написал, а потом еще на тостере бы выкладывал переписку, скриншоты, и писал фразы "гнать в шею" и "воспитательные беседы", я бы сто раз подумал, хочется ли мне с таким работать. Почасовая оплата это хорошо, конечно, но должно быть обоюдное уважение. Стоило бы уточнить, может на его продуктивность это влияет положительно(как пишут многие выше)
    Ответ написан
    3 комментария
  • Что будет правильно использовать PHP или jquery(AJAX)?

    Scorpi
    @Scorpi
    Хочу суп, что лучше, вода или овощи?
    Ответ написан
    Комментировать
  • Каким способом вы предпочитаете реализовывать AJAX в Django приложениях?

    sim3x
    @sim3x
    Идеально:
    restframework + angular

    В реальности:
    колбаса из статики, jQ и custom json response
    Ответ написан
    Комментировать
  • Fine Uploader, GNU GPL 3, как понимать лицензию?

    Как работает GPL3.
    Коммерческий проект - это проект, цель которого получение прибыли. Если проблемы с целью, то тут надо смотреть законодательство. В Вашем случае лучше считать что коммерческий, думаю так.
    Вот тут можно почитать про открытый исходный код. В Вашем случае, если открытая часть ПО используется как модуль, то открывать можно только эту часть. Остальное выпускается Вами под любой лицензией.
    Ответ написан
    Комментировать
  • Какое время фрилансеру оплачивать?

    pavel_salauyou
    @pavel_salauyou
    Symfony2 & Angular разработчик
    а почему заказчик не должен оплачивать коммуникацию и фикс багов??? это что не процесс разработки? вот из-за таких заказчиков и не хочется работать с местными работодателями.
    Ответ написан
    16 комментариев
  • Как работать с фрилансерами?

    Wott
    @Wott
    Как проводить оценку сроков? Например я заказчик, я не владею матчастью сколько та или иная функциональность может разрабатываться, можно ли доверять исполнителю назначать сроки?

    Сложно вам придется. Как правило люди слишком оптимистичны и сроки названные кем угодно постоянно срываются.
    Нужно самому оценивать реалистичность и накидывать сверху на риски

    Вопрос фрилансерам — часто ли заказчик соглашается на Ваши сроки?

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

    Оговорен фикс за работы, сроки, но очередная поставка (кода, дизайна) срывается в срок, частично уже что-то сделано.
    Т.е. итерация не первая, качество работы хорошее — что делаете? Сдвигаете срок? Снижаете премиальный бонус?

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

    От фрилансеров хотелось бы узнать наиболее распространенные причины почему так произошло.

    Стандартно — недооценка обьема работ.
    Потом банальная прокрастинация.
    Потом всякие форс-мажеры и другие более важные для исполнителя работы, занятия
    Ответ написан
    Комментировать
  • Обнаружить среди посетителей сайта автоматический парсер

    Wott
    @Wott
    Можно обойти любую фильтрацию, но есть некоторые признаки, которые могут отсеять явных ботов
    1. переменные окружения — почему-то ленятся скопировать результат запроса типичного браузера
    2. скорость клика — боты либо быстрые, либо регулярные. Делаете порог для html запросов в минуту или считаете вариативность задержек между запросами.
    3. скачивание/нескачивание контента — обычный браузер качает картинки, css и прочее, но тут есть тонкости — например некоторые браузеры стали оптимизировать и не запрашивают невидимый контент. Но явно нужный css например хороший триггер для человека
    4. Прокликивание ссылок — делаете ссылку со страницы, которую пользователь не может нажать и готовый триггер для бота. Для надежности делаете рандомные место, класс и параметры ссылки
    5. Javascript — большинство ботов его не выполняет, но есть и пользователи без него. Делаете по загрузке страницы запрос на css, например, что будет условным триггером для человека.

    В общем делаете фильтр, который проверяет кучу признаков и по сумме решает что это бот — дальше либо в сессии, если есть такие, выдаете ему всякую фигнгю, либо рубите. Если нет сессий, то создавайте правило в iptables/pf/ipfw что у вас там для данного ip на час-два-сутки.

    Надо сказать пару слов о нужных ботах — спайдеров поисковых машин, можно предварительно отфильтровать ip адреса по user-agent, но есть вероятность что под них маскируются ненужные боты. Так что их надо модерировать, прежде чем заносить в белый список.
    Ответ написан
    Комментировать