• Почему на позицию Junior HTML-верстальщика такие требования?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    1. Почему многие компании в своих вакансиях на позицию джуна html указывают в требуемых умениях знания PHP(либо базовые либо средние)
    По тому, что два феерически популярных шаблонизатора, таких как Blade и Twig наипсаны на PHP. И сам по себе PHP - отличный шаблонизатор, достаточно скачать и положить куда-нибудь на диске (т.е. ставить не обязательно) PHP, запустить встроенный сервере и использовать его в купе с gulp->browser-sync, получается отличная связка без всяких Apache'ей, для разработки - идеально. Так же, применение подобных связок позволяет не писать например, 8 раз 1 и тот же блок, а просто засунуть его в цикл и вывести 8 раз. Итог - меньше кода, проще работать.

    MySQL, работу с БД
    По тому, что при умении работать с MySQL - хотя бы базовом, а так же при помощи дюжины строк кода PHP, вы можете доставать данные прямо из БД и выводить их в макете, работая с реальными данными, а не с "Lorem ipsum'ами".

    Можно ли назвать человека, проработавшего более года в офисе на коммерческих проектах джуном?
    Проекты бывают разные, например в средней по размерам фирме, где я сейчас работаю, меня назначили тех. директором (т.к. почти 20 лет опыта и всё такое). Если бы я пошел работать в Google, наверное, там бы я был джуном... если бы вообще кем-то был :D (условно конечно, но думаю Вы понимаете о чём я). Другой пример, когда я устраивался на работу в международную IT-компанию, там среди требований на сеньёра была такой список знаний, что я немного прифигел, среди прочего было свободное владение английским и желательно ещё каким-то (кроме родного) языком, к знанию PHP добавлялось отличное знание кардинально противоположенного языка, например, Java, C++ или C#, отлично знание линукса и сетей и т.д. С другой стороны, человек работающий в фирме "3 разраба", на должности "Сеньёр", не обладает даже 10% знаний, озвученных в другой фирме на эту же должность (в эту фирму я тоже пытался устроиться). Т.е. фирмы бывают разные и требования тоже.

    Почему на именно на джуна столько требований, я честно говоря, точно сказать не могу. Т.к. джунов обычно набирают, что бы "воспитать" себе разработчика нужной категории. Выше озвученные мной эпитеты скорее являются ответами на все остальные вопросы, кроме вопроса "зачем всё это именно джуну". Но, возможно это показывает желание человека развиваться в целом, а не зациклится на чем-то одном и "свято верить в чудеса". Люди, которые "научились делать что-то одно", в профессиональном IT обычно долго не держатся, наглухо увязая в массах себе подобных, которые тоже умеют делать "что-то одно" а потом бегают по фрилансам и депмят цены до такой степени, из начального бюджета, который и без того, был не велик (например, 5тыс. руб.) он порой превращается в 200-300руб., лишь бы урвать кусок работы. Можно "делать что-то одно", а знать в общей сложности нужно всё, т.к. дизайнер без знания основ работы браузера - очень хреновый дизайнер. А верстальщик, без знания основ фотошопа - очень плохой верстальщик.

    P.S. Зачем в требованиях пишут "умение рисовать в фотошопе" - я даже приблизительно себе представить не могу, т.к. именно "рисовать" - это на 100% задача дизайнера/художника, и это на 97% та задача, которая к верстальщику не относится вообще никак, почти так как умение штукатурить стены, к вёрстке не имеет вообще никакого отношения, даже косвенного.
    Ответ написан
    2 комментария
  • Какой набор инструментов порекомендуете для работы с картами на Python?

    • Для хранения геоданных: PostgreSQL/PostGIS. django.contrib.gis обеспечивает родную поддержку, плюс библиотеки geos, geopy для расчётов расстояний и прочего.
    • Для взаимодействия с front-end - Django REST Framework со сторонними модулями, которые обеспечивают ей понимание gis-полей.
    • Для рисования карт на front end: js-библиотека Leaflet с использованием свободно доступных слоёв (google maps или open street map) и своим кодом, взаимодействующая с back end через вышеупомянутый API.
    Ответ написан
    1 комментарий
  • Java или Kotlin для разработки Android приложений?

    zagayevskiy
    @zagayevskiy Куратор тега Android
    Android developer at Yandex
    Java всё ещё актуальна, бóльшая часть кода написана на ней. Kotlin стали поддерживать(добавили плагин в AS 3.0, которую ещё не зарелизили) вот только-только. Как говорят сами создатели Котлина, знать джаву всё ещё нужно, потому что много примеров и доков есть только для неё. Но Котлин будет набирать популярность сейчас ещё сильнее.
    С другой стороны, Java для Андроида остановилась на 6 +синтакический сахар из 7-8 с костылями. Кажется, что Java 9 в Андроиде не будет. А Котлин - очень современный, с крутыми плюшками.
    Так что каждый решает за себя пока.
    Мы у себя решили, что в скором времени начнём писать тесты на Котлине, затем посмотрим на скорость компиляции, и, вероятно, втащим его в основной код.
    Ответ написан
    3 комментария
  • Какой стек технологий вы бы выбрали для данной задачи?

    @artinnok
    бекенд-программист
    Задача интересная для старта, но будет немного тяжело - готовьтесь к этому :)

    Вам необходимо сделать следующие шаги:
    1. Понять какая у вас БД стоит на АБС (PostgreSQL, MySQL, MSSQL, SQLite и т.д.)
    2. Понять поддерживат ли Django выбранную базу
    3. Прочитать статью про легаси базы
    4. Сгенерировать модели на основе таблиц АБС
    5. Порефакторить необходимые модели + протестировать работу ORM
    6. Начать разрабатывать веб-интерфейс

    Веб-интерфейс не советую писать на Angular, React - потому что у вас не было даже опыта разработки с помощью обычных джанговских шаблонов, не говоря уже об опыте проектирования REST API и знаний JavaScript.

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

    Если все реализуете, будет время на апгрейд - почувствуете, поймете, в каком направлении развивать проект, и вообще, стоит ли его развивать.
    Ответ написан
    Комментировать
  • Какими средствами делается рассылка пользователям (нотификации)?

    2ord
    @2ord
    Рассылка писем в RoR делается при помощи ActionMailer (руководство на англ.).
    Такие сервисы как Mailgun, SendGrid и т.д. позволяют заниматься массовыми рассылками.
    На сайтах этих сервисов можно почитать о лучших практиках в рассылке.
    Ответ написан
    3 комментария
  • За сколько реально освоить Yii?

    copist
    @copist
    Empower people to give
    Я изучал около 3х месяцев до трудоустройства и год после :) Никто за тебя оценку по времени не сделает.

    ... дали тестовое задание по Yii


    Сделай задание правильно (как требуется по заданию), потом получи оценку, потребуй сделать review. Переделай, если что-то им не понравилось. В следующий раз то же самое будешь делать быстрее. А тонкости фреймворка изучишь по мере работы.
    Ответ написан
    Комментировать
  • Где применятся Windows server?

    Jump
    @Jump
    Системный администратор со стажем.
    Где применятся Windows server?
    Сфер применения очень много -чаще всего в качестве офисного сервера небольшой организации - AD, файлопомойка, терминал. Зайдите в любой офис и скорее всего он там используется.
    Для организации корпоративной инфраструктуры - серверы хранения данных, серверы БД, виртуализация.
    Для организации облачной инфраструктуры, для хостинга веб сервисов.

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

    Либо через php задать права на чтение и запись, либо через консоль
    php: chmod ('uploads', 0644)
    консоль: chmod 644 uploads

    Подробнее про права:
    linuxway.ru/pervye-shagi/komanda-chmod-primery-isp...
    Ответ написан
    1 комментарий
  • Как лучше делать админку на laravel?

    @D3lphi

    Как лучше делать админку на laravel?

    Слово "лучше" в данном контексте совершенно не уместно. Почему? Смотрите ниже.


    стоит ли использовать различные готовые пакеты


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


    Правильно ли я понимаю, что бэкенд (админка) должна быть совершенно отдельно от фронта?


    Что в вашем понимании "отдельно"? Поместить ее в другую папку?


    Я так понял, что даже модели должны быть разные, как для фронта, так и для бэкенда, правильно ли я понял?


    Отдельные модели? Это еще для чего? То есть, для пользователя у вас будут 2 разные модели? Нет, модели одни и те же.


    AdminLte это всего лишь вьюшка для админки или он имеет какой то функционал?

    Только шаблон. Функционала нет, прикручивать нужно самому.

    Вот, кстати, отличная админ-панель Voyager. Создана специально для Laravel'а. Она, в отличии, от admin lte так же имеет богатый функционал. Да и выглядит отлично.
    Ответ написан
    5 комментариев
  • Golang подходит ли для создания сайтов?

    @dinegnet
    Golang используют для создания сайтов да. Только дорогих сайтов. Скажем есть у меня проектик - хозяин ввалил в него уже стоимость Ленд Круизера свежего и все продолжает платить и платить.
    Вы - не тот человек, которого будут для этого нанимать.
    А в дешевой нише вы не сможете конкурировать по цене с ПХПистами.

    1. Как обстоят дела с производительностью в сравнении с php смотрел benchmark go выигрывает у php в 2 раза по скорости
    (возможно мне стоит и дальше сайты создавать на php)


    Одни из самых высоконагруженных сайтов в мире сделаны с PHP - Facebook, примеру.
    Или Vkontakte

    Формально Go быстрее. Если ваш сервер и клиент разделяет только 10 метров.
    Но в мире веба очень большие задержки - это связь между сервером и браузером, там совсем другие расстояния и другой порядок задержек. А это от языка программирования не зависит.

    На их фоне, если вы нормально запрограммировали сайт - не должно тормозить ни на PHP ни на Go.

    2. Влияет ли как-то golang на seo оптимизацию-выдачу
    (если для frontend не админ панели взять angularjs то сайт не будет весь индексироваться)


    Вам с таким уровнем понимая рано что-то решать.
    Делайте то, что старшие скажут.

    3. Какую выбрать связку для сервера возможно имеется nginx или apache в поддержке для golang (или у go имеется свой сервер и как он в сравнении с остальными)


    Это не связано с языком. Это связано с администрирование, проектированием, архитектурой системы, но не языка.

    4. Поддерживает ли golang mysql и какая скорость


    Да.
    Скорость работы с СУБД ограничена, как правило, самой этой СУБД - это узкое место всегда.
    От языка программирования, использующего ту или иную СУБД - зависит слабо.

    5. Возможно имеются хорошие фреймворки написанные на golang для создания именно сайтов


    Revel, Beego.me, gin и еще десяток.
    Только они не нужны.
    Все что нужно уже входит в стандартную библиотеку Golang.
    Для облегчения работы стоит глянуть на фреймворки - Gorilla, Martini....

    6. Подойдет ли вообще golang для мелких или для крупных сайтов

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

    7. Имеются ли подводные камни при разработке

    Для тебя - важно, что мало информации, а особенно мало - на русском.
    Ответ написан
    8 комментариев
  • Golang подходит ли для создания сайтов?

    @MadridianFox
    Web-программист, многостаночник
    1) Go компилируемый, само собой скорость выше, но если вы на маленьком сайте упираетесь в скорость исполнения кода, то проблема скорее в коде, и выбор более быстрого языка избавит вас только от симптома, но не от болезни
    2) на seo влияет только то ЧТО вы отдаёте пауку. Не важно на каком языке пишется программа, которая отдаёт html
    3) Программа написанная на go сама работает как сервер. Более того, это не какой-то сервер приложений, как например tomcat, нет, вы сами будете писать цикл обработки входящих соединений - т.е. вам необходимо этот самый серер реализовать. В отличие от php+apache, где в качестве сервера выступает apache, который при необходимости вызывает php. Ставить ли apache или nginx перед go сервером вы решаете сами.
    4) Поддерживает. На скорость работы СУБД не влияет то, на каком языке написана программа, которая к ней обращается.
    5) Фреймворков уровня Yii2 или Symfony не наблюдается. Ситуация такая же как и с NodeJS - что-то есть, но комбайнов нет.
    6) Если что-то может слушать соккет - на этом можно написать сайт. Любой. Другое дело, что сайты визитки на Go не пишут (только ради забавы), а крупные сайты вообще имеют сложную архитектуру, такую что язык уже не имеет значения.
    7) Для php разработчика - да. Как минимум вы меняете скриптовый язык на компилируемый. Это значит что любое изменение кода требует компиляции, остановки работающего сервера, загрузки бинарника на его место и запуск. Кроме того вы меняете Stateless модель работы кода на полноценно работающую программу. Если на php у вас скрипт запускался заново при каждом http запросе, то программа на go запускается один раз и после этого принимает множество запросов.
    Ответ написан
    10 комментариев
  • Какие самые распространённые уязвимости на YII 2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Это openSource проект, если бы кто-то знал уязвимости уже бы исправили. Про те которые были, можно прочитать тут:
    https://github.com/yiisoft/yii2/blob/master/framew...

    Но стоит отметить, что большинство уязвимостей в проектах на yii2, да и на других framework-ах это кривость разработчиков этих проектов, а не самого framework-а.
    Ответ написан
    1 комментарий
  • Python Django junior?

    @svetlov97
    Сделай себе портфолио. Придумай себе что-нибудь интересное, реализуй это, выстави исходники на GitHab, и покажи свой код на собеседовании. Даже если ты не подойдешь, собеседование ты в любом случае не у уборщицы проходить будешь, а у программиста, спросишь что ты должен знать чтобы попасть на работу. В принципе смотря как себя покажешь на собеседовании, возможно тебя возьмут и обучат.
    Ответ написан
    1 комментарий
  • Как освоить магию url в Django?

    Получив запрос на ссылку /post_list/, url matcher проходит по всем шаблонам в urls.py по очереди. Первй, который подходит - это:

    url(r'', include('blog.urls')),

    Поскольку регулярное выражение пустое, то Django берёт весь ваш URL и начинает искать его в blogs.urls, находя:

    url(r'^$', views.index, name='index'),

    Вам нужно как минимум ссылку на index убрать из blogs/urls.py в projectname/urls.py.
    Ответ написан
    1 комментарий
  • Как освоить магию url в Django?

    @AlexandrBirukov
    urlpatterns = [
        url(r'^admin/', include(admin.site.urls)),
        url(r'', include('blog.urls')),
        url(r'^post_list/', include('blog.urls')),
    ]

    вот тут url(r'^post_list/', include('blog.urls')) убираем, смысла подключать два раза одно и тоже нет

    urlpatterns = [
        url(r'^$', views.index, name='index'),
        url(r'^$', views.post_list, name='post_list'),
    ]

    а тут второй урл делаем уникальным, вообще ищется первое совпадение, остальные игнорятся
    Ответ написан
    1 комментарий
  • Django. Как защитить форму от множественной отправки?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    class FloodSafeMixin(object):
        def __init__(self, *args, **kwargs):
            request = kwargs.pop('request', None)
            if request:
                self._user = request.user.username if request.user.is_authenticated() else None
                self._ip = get_ip(request)
                self._period = OrderedDict()
                self._period['days'] = kwargs.pop('days', None)
                self._period['hours'] = kwargs.pop('hours', None)
                self._period['minutes'] = kwargs.pop('minutes', None)
                self._period['seconds'] = kwargs.pop('seconds', None)
                self._period['milliseconds'] = kwargs.pop('milliseconds', None)
                if not any(self._period.values()):
                    self._period = {'minutes': 1}
                else:
                    self._period = OrderedDict([(k, v) for k, v in self._period.items() if v])
            else:
                self._ip = None
            super(FloodSafeMixin, self).__init__(*args, **kwargs)
    
    
        def clean(self):
            cleaned_data = super(FloodSafeMixin, self).clean()
            sender_id = hashlib.md5((self._user if self._user else self._ip).encode('utf-8')).hexdigest()
            if sender_id:
                class_name = self.__class__.__name__
                cache_name = 'last-submit.{0}.{1}'.format(class_name, sender_id)
    
                now = datetime.now()
                last_submit = cache.get(cache_name, now - timedelta(days=1))
                if (now - last_submit) < timedelta(**self._period):
                    cache.set(cache_name, now)
                    period = ' '.join([u'{0} {1}'.format(v, _p('genitive', k)) for k, v in self._period.items()])
                    raise forms.ValidationError(_('Form submitted less than %(period)s ago'), code='flood',
                        params={'period': period})
                else:
                    if not self.errors:
                        cache.set(cache_name, now)
            return cleaned_data
    
    
    class FeedbackForm(FloodSafeMixin, forms.Form):
        ...
    
    
    class SomeFormHandlerView(FormView):
        def get_form_kwargs(self):
            kwargs = super(GenericFormHandlerView, self).get_form_kwargs()
            kwargs['request'] = self.request
            kwargs['minutes'] = 2
            return kwargs
        ...
    Ответ написан
    Комментировать
  • Как добраться до базы данных?

    bogdan_uman
    @bogdan_uman
    шлЫмазл неукЪ-поцЪ
    Ну как-бы рельсы не запускают сервер для БД, а только конектятся, настройки которые делаются с файле "config/database.yml". В SQlite нету сервера, вот что пишет вики
    то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а предоставляет библиотеку, с которой программа компонуется, и движок становится составной частью программы.
    Ответ написан
    Комментировать
  • Как добраться до базы данных?

    HighQuality
    @HighQuality
    ☁ Ниндзя девелопер
    Тут нужно разобраться не в Ruby/ROR, а в том как устроена и работает SQLite база - точно так же она может работать и для yii2, если верно настроить приложение.

    Базу sqlite не нужно поднимать, демонов на сервере нет (хотя кто их знает..).
    Ответ написан
    Комментировать
  • Как обновить изображения в Yii2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    В одном аттрибуте должно содержаться имя файла в другом сам файл.
    Допустим в базе у Вас 'imagename', на него вешаем валидатор string
    добавляем в модель другой атрибут public $file; вешаем на него валидатор image и его используем в форме, а 'imagename' дергаем только если есть что-то в $_FiLES
    видео урок: загрузка фото в yii2
    Ответ написан
    1 комментарий