Задать вопрос
  • Как командно разрабатывать php проект?

    copist
    @copist
    Empower people to give
    Инфраструктура
    * Создайте репозиторий на Bitbucket или GitHub.
    * Создайте себе локально копию репозитория и локально поднимите базу данных с одинаковой структурой
    * Если в базе требуются изменения, создавайте "миграции", которые обновят структуру данных или сами данные.
    * Свои изменения по коду, так же как и миграции, отправляйте в репозиторий

    Ещё есть возможность создания виртуальных серверов для разработки или использование online IDE. Решает кучу проблем, если интернет быстрый.
    * https://compilr.com/ Полноценная среда разработки
    * https://koding.com/ Среда разработки с предустановленным веб-сервером и элементами социальной сети
    * online-php.com Online IDE
    * https://codeanywhere.com/ Среда разработки. Код можно хранить в облаке, а также в Dropbox, Google Drive, FTP, github.
    Другие тулзы для совместной работы в online

    Промежуточные версии
    Если вы географически недалеко друг от друга, то просто периодически показывайте, что у вас получается.
    Если нет, пользуйтесь Skype Shared Screen, Join.me и другие аналогичные продукты, чтобы вместе смотреть и обсуждать голосом. А лучше TeamViewer, чтобы можно было вместе и посмотреть, и поправить.

    Обновление сервера
    Изменения на сервер устанавливайте из того-же репозитория. Не забудьте про миграции. Озаботьтесь вопросами безопасности. Хотя бы так: скрыть файлы .git
    Ответ написан
    Комментировать
  • Что необходимо установить для того, чтобы удобно программировать при изучении Python?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    "Без труда не вынуть рыбку из пруда" (с) не мое.
    Я к тому, что избегая одних трудностей не надо создавать другие. При изучении язык для Вас должно быть важным изучить язык так, чтобы Вы могли им пользоваться и мыслить в его терминах. Чтобы голова думала о решении проблемы, а не о том, как это можно выразить с помощью языковых конструкций. Исходя из этого думайте не о том как бы проще написать, а как закрепить языковые конструкции и идиомы в Ваши пальцы!

    Моя рекомендация: Python 3.4 + Sublime Text 3 + Far3 . Консоль и метод "пристального взгляда" в качестве отладочного способа привьет Вам понимание языка. Рекомендую так, потому что на первых порах Вам врядли удастся сделать очень большие приложения. А при небольших по размеру приложений пристальный взгляд и printf-отладка куда лучше закрепляет навыки чем быстрое тыкание в IDE
    Ответ написан
    Комментировать
  • Кто-нибудь использует много веб-фреймворков в новой разработке?

    copist
    @copist
    Empower people to give
    Во-первых, это вопрос личных предпочтений и предпочтений команды.
    Во-вторых, это требования обстоятельств при промышленной эксплуатации.

    На старте, обычно, выбирается то, что лучше знаешь. Да хоть бы и без фреймворков. Переключаться на старте - это тратить время впустую. Главная задача - получить MVP.

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

    Через некоторое время после начала промышленной эксплуатации могут возникнуть проблемы, связанные с неверно выбранной архитектурой или недостаточной производительностью. Команда выбрает путь: допилить текущее решение, использовать альтернативное решение или написать ещё раз с учётом возникших обстоятельств.

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

    syschel
    @syschel
    freelance/python/django/backend
    Поищите ТЗ на всяких сайтах фриланса. Сделайте пару проектов, пускай только для себя, не на заказ. Ну или устройтесь на пол года в какую-нибудь компанию по разработке. Будет опыт и немного портфолио.
    Так же как говорили выше, возьмите готовые вещи и сделайте свой аналог.
    Но вообще, портфолио это плюс, но на фрилансе не всегда нужен, можно начинать и без портфолио. Главное скилы подтверждённые тестом. Хотя без опыта чего либо созданного, говорить об умениях - глупо. Все умения это опыт, а не прочитанные книжки.
    Ответ написан
    Комментировать
  • Что сделать, что бы наполнить портфолио?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Open Source проекты на GitHub. Занимайтесь, развивайте, если пойдёт, они будут лучшим портфолио, чем реальные тупые инет-магазины.
    Ответ написан
    4 комментария
  • Как объединить два цикла for?

    @ATNC
    Full-stack web\python developer
    вы можете получить объекты, которые "привязаны" к вашей модели добавив related_name.
    Например:

    models.py
    class ItemAttributeValue(models.Model):
        att1 = .....
        att2 = .....
        item = models.ForeignKey(ItemAttribute, related_name='attribute')


    views.py
    characteristics = ItemAttribute.objects.get(category=3)


    index.html
    {% for i in characteristics %}
    {{ i.name}}
    ...
    {{ i.attribute.att1}}
    ...
    {% endfor %}
    Ответ написан
  • Какой способ валидации в моделях Ruby on Rails является предпочтительным?

    Jeiwan
    @Jeiwan
    Второй способ устаревший. Стайлгайды не одобряют (https://github.com/bbatsov/rails-style-guide#sexy-...), Хаунд ругается.
    ИМХО, первый способ читать удобнее, так как все валидации, относящиеся к одному полю, лежат в одной строчке — удобнее искать, ведь если мы хотим проверить валидацию поля, то будем искать её по названию поля.

    Предпочтительнее использовать тот, который используют в вашем проекте. Если пилите что-то для себя, и код кто-то увидит (потенциальный работодатель), то лучше придерживаться наиболее распространенных стайлгайдов (опять же https://github.com/bbatsov/rails-style-guide), так как это может показать вашу дисциплинированность и желание следовать лучшим практикам. Если пилите для себя, и код никто не будет смотреть, то пишите, как хотите.
    Ответ написан
    1 комментарий
  • PHP Development. Как осовременниться?

    @djay
    Композер - это всего лишь утилита, которая достаёт из чужого (или своего) репозитория какой-либо компонент. Затем:

    1) скачивает его
    2) ложит в папку с вендором
    3) автоматически регистрирует автолоадер (PSR-0/PSR-4)

    И делается это все одной командой. Можно конечно делать это всё вручную, но очень не удобно (а что если несколько библиотек / компонентов нужно подключить? - волокита и геморой). Причина популярности композера именно в этом. Например Laravel - он использует компоненты Symfony, следовательно при инсталляции он будет брать те самые компоненты с репозитория Симфони.

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

    Вдаватся в дополнительные подробности (например в синтаксис composer.json), здесь не имеет смысла, т.к это все есть на официальном сайте.
    Ответ написан
    7 комментариев
  • Объясните мне кто-нибудь, как вообще работать с фреймворками?

    Adamos
    @Adamos
    По-моему, правильное начало работы с фреймворками выглядит примерно так:
    - начинаешь работать с CMS, плюешься от того, как все через задницу
    - везде, где возможно, пишешь простые решения сам, игнорируя функционал CMS, потому что там кромешный оверхед
    - переходя к более комплексным задачам, начинаешь городить свои велосипеды для того, что требуется постоянно, начиная понимать, что типовые задачи примерно ложатся в одни и те же ходы и решения, а решение этих задач с прицелом на расширяемость, универсальность и безопасность требует достаточно сложных, но одних и тех же схем
    - начинаешь читать документацию по фреймворкам, где эти самые схемы воплощены без тех ошибок, которых ты нагородишь, пытаясь создать что-то свое
    - пользуешься тем фреймворком, который показался наиболее логичным и подходящим под задачи.
    Ответ написан
    Комментировать
  • Сложная валидация в Laravel?

    BbFlaMe
    @BbFlaMe
    Full stack web developer
    $rules = array(
        'url' => 'required|unique:products,url,{{$id}}',
    );

    public function validate($data, $id = null)
        {
            $rules = $this->rules;
            foreach($rules as $keys => $value) {
                $validations = explode('|', $value);
                foreach($validations as $key => $value) {
                    $validations[$key] = str_replace('{{$id}}', $id, $value);
                }
                $implode = implode("|", $validations);
                $rules[$keys] = $implode;
            }
            
            return \Validator::make($data, $rules);
        }
    Ответ написан
    1 комментарий
  • Стоит учить Django для Python 2 если учу Python 3?

    sim3x
    @sim3x
    Проблема в том что книги даже на англиском отстают на пару версий от текущей стабильной
    Так что забивай на переводы и переходи на документацию и SO

    Вцелом, глобальных различий мало
    Ответ написан
    Комментировать
  • Как передать значение в textarea?

    @DragorWW
    Front-end Developer
    $('.name').on('click.replayToComment',function(){
        var name = $(this).data('name');
        $('textarea').val(name);
    })

    <div class="name" data-name="Имя">Имя</div>
    <textarea></textarea>


    Вот на jQuery, код сами поправите как вам нужно, это же очень просто. Если нужно сохранять текст уже введеный там просто добавите логику вставки.
    Ответ написан
    Комментировать
  • Куда перейти геймдеву, чтобы начать получать деньги?

    @Elizavetta
    Matroid: gamedev/js-разработка
    1. Front-End (верстка + JS).
    + Легко устроиться
    - Неблагодарная, грязная и скучная работа


    Я тут уже устала писать, что frontend!== верстка. К сожалению, в последнее время у работодателей действительно тенденция совмещать интерфейсы, но в общем случае фронтендер - это не интерфейсщик.

    Если не любите php, зачем себя насиловать, нужно рассмотреть python/RoR/java.

    С опытом Unity стоит подумать о дальнейшем развитии в этом направлении, заказов хватает в данном направлении. Я думаю, эффективно будет заняться направлением unity + native (Android или iOS)
    Ответ написан
    Комментировать
  • Куда перейти геймдеву, чтобы начать получать деньги?

    besteto
    @besteto
    Release engineer at Zillion Whales
    Судя по основным сайтам поиска работы, спрос по Украине есть:
    hh.ua/search/vacancy?text=unity&area=5
    rabota.ua/jobsearch/vacancy_list?keywords=unity
    www.work.ua/jobs-unity
    , хотя там и требуется опыт, но ваши завершённые проекты - это весомо. Попробуйте откликнуться. Ещё вариант - прибиться к команде аутсорсной разработки, их по Украине достаточно (поспрашивайте в Unity-чатиках/сообществах).

    Далее, что именно вам нравится в геймдеве? По фразе
    Работал в среде Unity3d, писал на C#, делал дизайн всего UI и примитивные 3д модельки.

    можно предположить, что вам можно порекомендовать посмотреть на профессии UI/UX-дизайнера и 3D-моделлера. Программисты, безусловно, соль земли, но, возможно, в смежных областях вы быстрее найдёте работу. Так сделала я, когда почти не было опыта, но срочно нужна была работа - устроилась в большую IT-компанию на маленькую и скучную должность, параллельно училась, брала на себя всё более сложные обязанности.

    Ну и как выше написал Илья Андриенко , попробуйте фриланс. Тут вам открыты и небольшие Unity-проекты, и модельки + всё это можно попробовать продавать в Unity Asset Store.
    Ответ написан
    2 комментария
  • Куда перейти геймдеву, чтобы начать получать деньги?

    EvolMate
    @EvolMate
    Developer
    Фронтенд - это не и не столько верстка! JS восхитителен. Учитесь. В JS и геймдеву место будет и спрос.

    Ежели вам так не нравится фронтенд - вот вам путь PHP-шника. Не единственно верный, заметьте.

    - Почитайте www.phptherightway.com/.
    - Почитайте Зандстру. Не помешает.
    - Учите PSR - https://github.com/php-fig/fig-standards/tree/mast...
    - Учите Yii2, Symfony2 и Laravel.
    - Практикуйтесь. На фрилансе, что ли. С почасовой оплатой ищите. 7-8 евро это нормальная цена за час для начинающего.
    - Через полгода идите на собеседование в крупную компанию сразу мидлом. Скоро PHP7 выйдет, есть шанс, что через годик будут заходить проекты под него.

    Ай да, и зарплату сразу больше 600 баксов просите. 650 хотя бы :-D

    Там не всё так плохо как вам кажется. PHP не такое говно, как все (эти все - как правило некомпетентны и просто холиварят) говорят. Весьма и весьма "приятный ЯП".

    Оффтоп: боюсь, у вас в целом неверное представление о состоянии рынка. Вас консультировало какое-то днище. Все специалисты нужны. Если они хорошие специалисты. А если вам кажется что вас эксплуатируют - всегда можно сменить место работы. Или поговорить с начальством о прибавке - это, как правило, помогает.
    Ответ написан
    6 комментариев
  • Python/Django-кидди, SQL-мартышка, Web-негр — что перспективнее (Ага, «Pre-Junior»)?

    copist
    @copist
    Empower people to give
    Мне очень понравился твой вопрос. Это лучший вопрос новичка, который я видел на Тостере, я бы дал "Приз Года", честно, без сарказма. Ты уже сделал выбор, когда начал искать место, куда пристроиться. Мне кажется, у тебя получится пробиться дальше, даже если ты сейчас *нечаянно* выберешь не то место для старта.

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

    И меняй работу (ага) регулярно, скажем так через год-два. Не через месяц-три, а именно через год-два. Чем ты будешь заниматься эти два года - частично зависит от работодателя, а больше от тебя лично. А запись "2 года честно оттрубил от рассвета до заката" помогут тебе в будущем.

    P.S. В Краснодаре удалённо работает мой коллега по компании Icons8 - ничто не мешает ему жить в краю с тёплым климатом и получать хорошую зарплату. До этого мёрз на Дальнем Востоке.

    P.P.S. Кроме твоего вопроса меня также удивило то, кто именно тебе здесь отвечает. Сотрудники (бывшие?) тех организаций что ли здесь? Никогда с таким не сталкивался.
    Ответ написан
    1 комментарий
  • Существует ли книга для новичка, в которой показывают разработку реального проекта?

    @Kuzmichik
    Заправляю корабли и жду их возвращения...
    "Test-Driven Development with Python" by Harry Percival. С помощью TDD (разработка через тестирование) автор разрабатывает на Django веб-приложение To-Do lists (список дел).

    P.S. Harry Percival не имеет отношения к Гарри Поттеру.
    Ответ написан
    2 комментария
  • Какими средствами разрабатываются онлайн-опросники, как, например, typeform.com?

    copist
    @copist
    Empower people to give
    1. Очень импонируют онлайн-опросники вроде typeform.com, но хочется сделать похожее свое. Не совсем понимаю, какими средствами на backend и frontend это делается.

    Фронтенд typeform.com
    * underscore.js
    * jQuery
    * собирали и сжимали возможно через Gulp
    * CSS возможно скомпилирован их SCSS или LESS
    * CSS/JS фреймворков не вижу. Писали с нуля?

    Бакенд
    * ОС Ubuntu (по заголовкам ответа)
    * Apache 2.2 (по заголовкам ответа)
    * nginx 1.4.6 (по заголовкам ответа)
    * Язык программирования, возможно, PHP (по наличию куки PHPSESSID) но может быть что-то другое
    * Кэширование на уровне nginx и HTTP
    * Возможно кэширование в memcached/redis или иначе
    * Сжатие в gzip

    2. Где правильнее хранить полученные от опроса данные? Может имеет смысл сразу куда-то результаты отправлять (на мыло), а не хранить их?
    База данных реляционная (MySQL или PostgreSQL), но может быть смесь SQL + noSQL.
    На мыло можно посылать копию, но хранить где-то надо, чтобы посмотреть если мыло потеряется.

    3. Как это правильнее реализовать? ЦМС не нужна по сути?
    Я бы для такой одноразовой задачей вообще Google Forms воспользовался или вот же typeform.com

    На самом деле это проект включает просто уйму технологий.
    Вот их скрытое меню навигации: take.ms/sfRHZ (дурацкое скажу меню)
    Я только часть пометил стрелками. Эти стрелки выделяют части проекта, которые сделаны на разных технологиях или платформах.
    Есть какая-то система управления контентом (CMS) для публикации цен и других небольших страниц, а может быть это статические страницы.
    Блог на "тумблере" hellotypeform.tumblr.com
    Есть API для подключения сторонних сервисов + документация на API и консоль для тестирования docs.typeform.io/v0.3/page/sandbox написано на node.js + фреймфорк Express
    Есть какая-то внутренняя система биллинга, а платежи принимают через https://stripe.com/
    Подключена какая-то система работы с пользователями helpcenter.typeform.com (Zendesk?)

    Вот нашёл ещё информацию об их стеке технологий: stackshare.io/typeform
    Ого-го список!

    И ещё информацию о финансировании: https://www.crunchbase.com/organization/typeform
    Проект TYPEFORM.COM с 2012 года, в прошлом году получили $1.4 миллиона баксов и за это время они могли с любых костылей уже переписать всё с нуля.
    Ответ написан
    2 комментария
  • Стоит ли пробовать работать удаленно, не имея приличного опыта?

    Удаленка постоянка - это возможно. Невозможен фриланс на odesk.

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

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

    В любом случае, несомненно, для этого надо уже уметь очень быстро и творчески соображать.

    Вообще я бы посоветовал тебе удаленно проходить разные хорошие курсы. Для того, чтобы получить опыт. Но это должны быть действительно - крутые курсы, нацеленные на это. Например, по rails - это thinknetica.com

    Удачи!

    upd:
    Еще должна быть для этого инженерная хватка. Те, чтобы ты умел взять и ... сотворить нечто, чего не было. Короче, про таких говорят - руки из нужного места растут.
    Ответ написан
    Комментировать
  • Как сделать удаление постов (flask)?

    @andreypaa
    Вот взял пример кода из своего проекта, не претендую на супер точность, но вроде все работает норм.
    Соответственно, некоторые вещи придется заменить, но в целом думаю понятно как сделать.

    @blueprint.route("/event/delete/<int:event_id>", methods=['GET'])
    @login_required
    def event_del(event_id):
        event = Event.query.filter_by(id=event_id, user_id=current_user.id).first()
        if event:
            event.delete()
            flash("Event is deleted", 'success')
        else:
            flash("Event can not deleted", 'error')
    
        return redirect(url_for('events_list'))
    Ответ написан
    1 комментарий