Задать вопрос
  • Ваши действия, если джуниор не успевает выполнить задачу?

    @PolkovnikBrumel
    Контролировать в процессе исполнения, а не когда уже сроки поджимают.
    Ответ написан
    6 комментариев
  • Что посоветуете еще подучить что бы тянуть на Junior PHP разработчика?

    Decadal
    @Decadal
    чтобы тянуть на джуна, нужно вовремя закрывать задачки. Работа джуна - просто закрывай задачки которые тебе выдают. Поэтому списки технологий и все эти стеки - одна большая условность, фильтр для вакансии. Ну что значит "знать jquery"? или "знать ajax"? Работайте и запоминайте, где что и для чего используется, а если попросят экзотику - вы её, что поделать, выучите.
    В конечном счёте, всё упирается во время и компанию, на которую собираетесь работать. Для джуна в известной крупной компании нужно действительно хорошо натаскаться в тех стеках, которые они перечислили (не факт что они пересекаются с перечисленными здесь, так что нет смысла заучивать всё подряд),
    для джуна в какой-нибудь компании может не понадобиться вообще ничего кроме базовых знаний, а всё остальное вы приобретёте на ходу.
    Ответ написан
    Комментировать
  • Сколько Nodejs сервер должен есть памяти сервера?

    По умолчанию процесс Node.js расчитывает, что ему доступны аж 1.5 Gb памяти.

    Параметр --max_old_space_size задаёт максимальный размер т.н. Old Space – части Heap, куда попадают неактивные и не нужные данные. Это, на практике, область, занимающая наибольшую память. Именно её есть смысл ограничить, чтобы процесс Node занимал поменьше памяти.

    Но у меньшей памяти есть и своя цена: чаще будет запускаться «сбор мусора» (garbage colleciton) – процесс очистки из памяти неиспользуемых данных, к которым более нет ссылок из глобальных или активных локальных переменных. Это блокирующий процесс – Node полностью останавливается на время очистки памяти, не реагирует на запросы и не выполняет никаких действий.

    Итого, чтобы занимать меньше памяти, нужно запускать Node с параметром:
    node --max_old_space_size=128 index.js
    Тут указано занимать под old data не более 128 Mb памяти, т.е. весь Node займёт незначительно больше.

    Можно задать переменную окружения WEB_MEMORY которой установить доступный процессу node.js объем памяти в Mb: WEB_MEMORY=128 bash startup.sh , если использовать для запуска node приложения скрипт, предложенный автором статьи (на англ.), откуда я всё это только что сам узнал )
    Ответ написан
    1 комментарий
  • Что использовать на backend для SPA приложений?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Мне не понятно что использовать на сервере для обработки API запросов приложения

    www.yiiframework.com/wiki/748/building-a-rest-api-...

    Сейчас я понимаю в необходимость SPA архитектуре

    Возможно в этом и есть необходимость, но из описания не очевидно

    Вот если я буду использовать Yii2 или другой php фреймворк, то какой вообще в нем смысл

    Создание REST api почти в две строчки кода

    Есть вариант использовать Node.js

    Да есть такой вариант

    использовать базу mySql или же переходить на mongoDB

    Зависит от архитектуры данных. В том или ином проекте будет оправдано использовать ту или другую базу. В yii есть поддержка монги, но сообщество с ней работает редко, так что спросить совета будет не у кого. Надо будет самому разбираться.

    Что лучше на данный момент использовать на бэкенде и что на практике используют чаще

    Лучше использовать то что знаешь и то что подходит под проект. А вот чаще используют wp, но вряд ли это значит, что стоит его использовать.
    Ответ написан
    Комментировать
  • Как быстро попробовать себя в разных сферах?

    AlexanderShapoval
    @AlexanderShapoval
    PHP maker
    начни с веб разработки. эти знания пригодятся при создании мобильных приложений. порог вхождения само собой ниже. главное не задерживайся на самописах, начни использовать фреймворки где это только возможно, это сэкономит годы. хотя да, что бы стать более-менее специалистом в этой области - придется потратить 1.5-3 года, так как это пожалуй самая разношерстная область ИТ.
    Из советов - ни в коем случае не пользуйся материалами с сайта Русакова, это дно. Лучше искать инфу на официальных форумах, сайтах
    Ответ написан
    Комментировать
  • Где искать middle/senior backend программиста?

    TheTalion
    @TheTalion
    Я так понял, вам не просто senior backend нужен, а senior backend + senior architect?
    Таких людей с горящими глазами нет В ПРИНЦИПЕ.

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

    У вас вариант только один - искать финансирование. Стартапы, зачастую, дико скучная для обучения сфера. Это не создание игр, где местами весело.
    Ответ написан
    9 комментариев
  • Как правильно и быстро определить тень из photoshop'a?

    iamd503
    @iamd503 Куратор тега CSS
    Верстальщик
    Посмотреть в стилях слоя.
    Ответ написан
    Комментировать
  • Что посоветуете еще подучить что бы тянуть на Junior PHP разработчика?

    Я бы не назвал ваш уровень Junior. Если вы в состоянии самостоятельно
    - развернуть девелоп-среду
    - вести гит
    - писать код и обкладывать его тестами
    - настроить деплой

    то значит, в состоянии самостоятельно ставить себе задачи. А это уже на Миддла тянет )
    А у Миддла способ развиваться только один - практика. Самообучаемость, как видно, присутствует. Не зацикливайтесь на парадигмах, фреймворках и ЯП - берите проекты и выполняйте их
    Ответ написан
    1 комментарий
  • Что посоветуете еще подучить что бы тянуть на Junior PHP разработчика?

    gobananas
    @gobananas
    finishhim.ru
    Да всё у вас в порядке для джуна, дальше только опыт. Всё правильно выше сказали про требования конкретной компании - этого не угадаешь. Где-то mongodb нужен где-то postgresql где-то трейты юзают и php7 а кто-то на 5.3 сидит ещё. Ваших знаний считаю достаточно.
    Ответ написан
    Комментировать
  • Как удалить директорию в Git?

    @fathom
    Если вы случайно закоммитили ненужный файл или папку в git-репозиторий и уже сделали push, то чтобы удалить все следы этого файла или папки в том числе и из истории, достаточно выполнить команду:

    git filter-branch --tree-filter "rm -rf PATH" HEAD

    где PATH - это относительный путь до файла или папки.
    После этого выполните (чтобы перезаписать историю изменений):

    git push origin master --force
    Ответ написан
    1 комментарий
  • Как "ВКонтакте" умудряется обходиться без "CloudFlare"?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    примерно такой + ФСБ не разрашит через зарубеж трафик пускать, какой тут Cloudflare ?
    Ответ написан
    7 комментариев
  • Как и в каких случаях использовать DI в Yii2?

    SamDark
    @SamDark
    Yii2 core team
    DI именно в вашем случае не при чём. Это способ реализации, а не сама идея. Идея состоит в том, что вам нужно реализовать принцип инверсии зависимостей. То есть начать работать с интерфейсами, а не с конкретными реализациями.

    Чтобы быть универсальным и переносимым, модуль не должен знать о моделях извне себя. Вместо этого он должен выражать свои требования в виде интерфейса, а внешние модели этот интерфейс должны реализовывать.

    Для вашего примера делаем в модуле Article делаем интерфейсы:

    interface ArticleInterface
    {
        public function getTitle();
        public function getAuthor();
    }
    
    interface ArticleAuthorInterface
    {
        public function getName();
        public function getID();
    }


    Далее в пределах модуля используем только интерфейсы, а не сами модели:

    public function renderArticle(ArticleInterface $article)
    {
        return $this->renderPartial('_article', [
             'author' => $article->getAuthor(), 
             'title' => $article->getTitle()
        ]);
    }


    Вне модуля нам придётся реализовать интерфейсы в моделях:

    class Article extends ActiveRecord implements ArticleInterface
    {
       // ...
    }
    Ответ написан
    34 комментария
  • Как правильно организовать внешние ключи в MySQL?

    @Vicom
    Следующий вопрос,как организовать передачу этого самого id_people в таблицу комментарии?

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

    PS чтобы подойти с нужной стороны определите сначала для себя в голове такие понятия как:
    - реляционная СУБД
    - структура таблицы реляционной СУБД
    - поля таблицы
    - колонки таблицы
    - внешний ключ (одна из тех самых колонок, связывающий те самые поля одних таблиц с другими через их значение)

    доки из моих закладок по JOIN
    100 различных вариантов толкования одного и того же (максимально доходчивых для меня)
    - MySQL немного о JOIN'ах
    - Наглядное объяснение принципа объединения таблиц в...
    - Объяснение SQL объединений JOIN: LEFT/RIGHT/INNER/OUTER
    - MySQl: использоваение операторов JOIN на примерах
    - Разработка → MySQL и JOINы

    ну и когда подтянитесь уже - Top 20+ MySQL Best Practices

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

    удачи!
    Ответ написан
    1 комментарий
  • Проектирование сервиса на YII2. Как грамотнее?

    vyachin
    @vyachin
    Ищу работу
    У нас для каждого клиента свой поддомен и своя база данных. Клиенты регистрируются после бюрократической процедуры - заключения договора. Если хранить всех клиентов в одной базе - вы все равно придете к процедуре партиционирования таблиц, иначе все будет Очень медленно работать.

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

    private function getDsnAttribute($name, $dsn)
        {
            if (preg_match('/' . $name . '=([^;]*)/', $dsn, $match)) {
                return $match[1];
            } else {
                return null;
            }
        }

    Использование в любом месте:
    $this->getDsnAttribute('dbname', Yii::$app->getDb()->dsn);

    Использование в модели:
    $this->getDsnAttribute('dbname', static::getDb()->dsn);

    $this->getDsnAttribute('dbname', ModelName::getDb()->dsn);

    тогда функцию запихнуть в хелпер какой-нибудь, но если вам миграцию написать, тогда зачем вам модель?
    В миграции:
    $this->getDsnAttribute('dbname', $this->db->dsn);
    Ответ написан
    Комментировать
  • Как осуществить доступ в базу mongodb через пароль и логин?

    Shutik
    @Shutik
    Погромист халявщик
    Как ни странно, в документации монги все это описано.
    создать пользователя:
    mongo
    >>use  "db name"
    >>db.createUser(
    	{
    		user: "user_name",
    		pwd: "user_passwd",
    		roles: [{role: "readWrite"}]
    	}
    )

    чтобы требовалась авторизация, следует в конфиге монги указать
    auth=true
    Ответ написан
    Комментировать
  • Какой необходимый уровень знаний для junior React.js Разработчика?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    UPDATE: реальные тестовые задания и разборы здесь, ответы на все вопросы из поста в моем блоге об обучении react.

    не включая основы js

    Извините, но стандартная задача, про "напишите функуцию add, которая при вызове add(1)(2) вернет 3" - многих положила на лопатки =) Поэтому будьте готовы..

    React
    0) Какую проблему решает react ?
    1) Мгновенно ли срабатывает setState? Если нет, то как выполнить код, который 100% выполнится после того, как новый state будет установлен?
    2) Зачем многие постоянно пишут в constructor: this.FUNCTION_NAME = this.FUNCTION_NAME.bind(this) и отсюда вопрос вытекает чему равно this в разных местах вашего компонента...
    3) в каких методах жизненого цикла стоит выполнять xhr запросы? В каких стоит "обновлять state на основе props"?
    4) Что будет если вызвать this.setState в render методе компонента?
    5) зачем нужен componenWIllUnmount, приведите пример..
    6) Контролируемые, не контролируемые компоненты
    7) Как организовать роутинг в реакт приложении? (ответ: взять react-router - подходит, но было бы круто, если бы вы рассказали, как он примерно работает)*
    8) Зачем нужны propTypes? Что происходит с ними в production сборке?
    9) Как можно удобно "отлаживать" чужой код приложения, написанного на react (намек в сторону React devtools)
    ...

    Redux
    0) Какую проблему решает redux?
    1) Зачем многие создают типы действий NAME_REQUEST / NAME_SUCCESS ? А заодно, что такое "действие", а что такое "создатель действия"...
    2) Что такое редьюсер? Можете написать простой редьюсер без react/redux?*
    3) Для чего нужен redux-thunk? Как он работает? Напишите (можно псевдокод) асинхронный создатель действия (либо, если надоело говорить "терминами" - асинхронный aciton)
    4) Как компоненты приложения получают "пропсы" из "стора"?*
    5) Можно ли (и считается ли это нормальным) использовать state, если используется Redux?
    6) Почему в reducer'ax мы возвращаем новые объекты? Приведите пример, когда вы возвращаете новый объект, а когда тот же самый.
    6.5) А так же, "как в js вообще это работает?". Например:
    let obj1 { name: 'Test', age: 100 }
    let obj2 = obj1
    obj2.name = 'Test_new'

    Что будет в obj1, почему? В каких случаях объекты могут быть равны?
    7) Что возвращает функция connect (из react-redux)?
    ...

    Общее:
    0) package.json
    1) Webpack, gulp, etc...
    2) node.js
    3) promise

    Что-нибудь практическое:
    1) Как бы вы валидировали форму, если ошибки валидации приходят после submit'a ее на сервер..
    2) Почему не работает следующий код, сделайте чтобы работало
    ...
    На истину не претендую, но такие вопросы имели место быть на собеседованиях. В беседе можно многое разузнать дополнительными вопросами и так далее. Так же, если часть вопросов вам неизвестна - не беда, многие и на половину ответить не могут.

    p.s. возможно дополню...
    p.p.s. звездочкой отметил, на мой взгляд не самые необходимые для junior-собеседования вопросы.
    Ответ написан
    31 комментарий
  • Tornado на Python, для чего он нужен?

    neatsoft
    @neatsoft
    Life is too short for bad software
    Его можно и нужно использовать параллельно с джанго.
    Чаты, уведомления, обновления страницы инициируемые на стороне сервера, long-polling, websockets, push-уведомления, и т. д. Все для чего плохо подходит традиционный MVC фрэймворк.

    "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user."
    www.tornadoweb.org/en/stable
    Ответ написан
    Комментировать