• Как заработать начинающему веб-программисту с опытом в python/Django и js?

    @FoxInSox
    Необходимо устроиться на работу.
    Ответ написан
    Комментировать
  • Что такое Less и Sass?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Лень двигатель прогресса. Хороший пример - принцип DRY - Don't repeat yourself. Я весьма подозреваю что вы стараетесь соблюдать этот принцип когда делаете макеты или чем вы там занимаетесь. Так же я весьма уверен что вы хотя бы пытались чуть автоматизировать рутину своей повседневной работы. Так же у вас могли быть ситуации когда вы переиспользовали какие-то элементы. Мало ли.

    Так вот... CSS это тупая таблица стилей. Селектор и стили, ничего сверх умного тут придумать нельзя. Лет 5-10 назад было довольно модно держать один мегажирный CSS файл на 10К+ строк и радоваться жизни внося все больше изменений и т.д. Соответственно даже если вы соблюдаете всякие правила модульной верстки и все такое, у вас возникает несколько проблем:
    • организация стилей, то есть держать все в одном файле не удобно особенно когда проект длится годами
    • Дублирование стилей и селекторов. По мере развития проекта появляются какие-то снипиты которые можно реюзать. Так же у вас может появиться масса однообразных селекторов отличающихся лишь немного. При модульных подходах вложенности редко имеет место быть но все же имеет. Но не будем забывать что большинство фигачит селекторы просто так. В итоге если мы переместили блок или переименовали класс какого-то блока нужно отредактировать еще массу селекторов.
    • Привязка размеров и параметров к другим стилям, например у вас в стилях задана ширина блока, от нее зависят другие параметры, отступы для других блоков и т.д. Да, в css3 появился calc для этого но это было относительно недавно и только с недавних пор можно почти без опаски использовать эту штуку.
    • Таблицы стилей, как и HTML ориентированы на удобный разбор этого добра машиной, но не человеком. Человек же существо ленивое и как-то вот лень лишний раз скобку поставить или точку с запятой. Просто лень.


    Есть так же хорошее правило, или идея если хотите.... Если код можно сгенерить - его лучше сгенерить. То есть для решения всех выше перечисленных проблем придумали препроцессоры. Они как бы были и раньше всех этих scss/less/stylus но как-то не решали всех проблем и т.д. Что в итоге было предложено (перечисляю в том же порядке что и в списке выше).

    • У CSS есть такая штука как @ import. Но не очень круто импортировать сотню стилей в продакшене. Стоит сделать так что бы все стили были склеены при сборке проекта. Эта идея в итоге развилась и если разработчик использует это дело правильно, можно зайти в любой файл со стилями и увидеть список всего от чего зависят эти стили. Какие стили подключаются и т.д. Причем один файл с зависимостями может быть подключен в нескольких файлах а препроцессор сам разберется как и куда все вставлять сгенерив максимально оптимизированный по структуре файл. А разработчик получил четкую структуру файлов и возможность быстро найти где что и от чего зависит.
    • С селекторами проблему предложили решить наиболее логичным вариантом. Если у нас есть вложенные селекторы, то имеет смысл определять их внутри блока этого селектора. Это существенно упрощает поддержку стилей. Так же для управления снипитами и прочим добавили миксины - эдакие параметризованные или нет функции которые выплевывают шматок CSS. До появления штук вроде autoprefixer это был единственный способ писать поддерживаемые стили, использовать плюшки CSS3 и вообще новые плюшки и не сойти с ума от префиксов. Префиксы это только пример, там могут быть самые разные штуки позволяющие грамотно производить реюз стилей
    • Проблему зависимостей значений стилей друг от друга решили... собственно самым очевидным способом - переменные. Это удобно, легко поддерживать и в умелых руках это мощный инструмент. Нужно поменять базовые цвета - не нужно лазить по 100500 блоков и править значения руками, можно поправить переменные и все будет хорошо.
    • Насколько я помню SCSS/LESS не стремились решить эту проблему. Какие-то решения образовывались сами собой с течением времени. В плане минимализма и выразительности пожалуй сейчас самая крутая штука это stylus.


    Что в итоге произошло. В один прекрасный момент какие-то там рубисты придумали SCSS (они вообще не любят все что не в стиле ruby в плане минимализма и выразительности). Затем чуваки подумали и сказали, SCSS это круто но почему-то они используют синтаксис знакомый именно Ruby разработчикам а не обычные для CSS конструкции. В итоге реализовали LESS, причем его уже реализовали на javascript, что с наличием node.js позволило это все добро еще на одной платформе собирать. А так как под эту платформу и так плодили препроцессоры оно удачно вписалось.

    Далее уже шли какие-то модификации дальнейшие, вроде того же Stylus, где синтаксис упростили просто до нельзя.

    Личное мнение. На сегодняшний день я не вижу смысла использовать чистый CSS хоть на малых хоть на больших проектах. Вот вообще никакого.
    Ответ написан
    3 комментария
  • Есть ли у вас советы для начинающих фрилансеров?

    noys
    @noys
    красноглазик
    Как вы в первый раз выполнили работу по front-endу, и сколько за вашу первую работу Вам заказчик заплатил?


    1. контент-сайт для себя и посетителей, на понравившуюся тему.
    2. сайт компании, в которой трудился, стоимость не вспомнить, быть может 10000 рублей, сайт делался на базе готового шаблона с templatemonster.com.

    Можно ли делать front-end работы, не применяя back-end'a, и во сколько такая работа обычно, обходится?


    Да, но это более трудоемкий процесс (сайт на чистом html) чем элементарнейший самописный движок без админки или же CMS (гляньте MODX, освоить на начальном уровне можно за пару дней практики - очень удобный и продуманный движок, визитки как из пулемета можно строчить)

    И как вообще правильно подходить в том или ином формате к заказчикам в первый раз?


    Что вы имеете ввиду, не совсем ясно.

    Как вы ведете диалог с заказчиками, какие советы можете дать новичку?


    1. Корректная письменная речь без ошибок. Будьте учтивы, вежливы и корректны.
    2. Субординация, не ставьте себя на первое место. Вы трудитесь на заказчика а не он на вас. Потом когда наберетесь опыта и можете и понаглеть немного и повыпендриваться но в разумных пределах.
    3. Не переходите на "ты".
    4. Не обсуждайте личных (посторонних) тем. Работа есть работа. Потом как наберетесь опыта сможете нарушить это правило в разумных пределах - тут важно научиться разделять рабочее и личное.
    5. Будьте хорошо организованы, последовательны и пунктуальны.
    6. Научитесь доносить свою мысль с первого раза заказчику любого уровня понимания того чем вы вместе занимаетесь.
    7. Читайте книжки по мастерству делового общения, по мастерству общения вообще.
    8. Научитесь разбираться в людях, учитывать мелочи в общении.
    9. После того как научитесь разбираться в людях совершив ряд ошибок, не работайте с долбоебами. Никогда.

    Удачи!
    Ответ написан
    Комментировать
  • Как в bootstrap создать сетку на 16 колонок?

    eLmore
    @eLmore
    Заходите в getbootstrap.com/customize
    и в поле @grid-columns ставите 16.
    Ответ написан
    Комментировать
  • В чем была или есть ошибка при попытке уйти на Фриланс?

    инфо о себе: без портфолио уволился со старой работы, несвязанной с вебом. на следующий день начал фрилансить на fl.ru - начинал с копеечных проектов (от 50 уе за визитку), недостатка проектов не было, профессиональный уровень был ниже вашего. Через год проекты уже были от 500 уе за те же визитки. Параллельно мне предложили должность программиста в местной фирме (жил я на тот момент в обл. центре), в которой я проработал два года, параллельно фриланша (доход поровну складывался из офисной зарплаты и фриланса). По прошествии двух лет я понял, что уровень текущей работы меня уже не устраивает ни с профессиональной точки зрения ни с финансовой (на фрилансе кстати уже проекты были от 1000 уе), и собственно пойти было некуда в обл.центре и через две недели у меня уже было предложение от московской фирмы.

    К чему я это? Вполне такой возможный путь: фриланс - не тупик, работать там можно; в офисе поработать можно, набираясь опыта и заканчивая вуз (я кстати также сделал); рвануть в большой город тоже ума много не надо - дело техники.
    А вот бросать программирование не стоит (особенно при вашем багаже из различных знаний) - поверьте, программистом намного удобнее и вольготнее работать во многих фирмах, чем непрограммистом)
    Ответ написан
  • Где взять готовые psd и html шаблоны?

    mlnkv
    @mlnkv
    JavaScript Developer
    Комментировать
  • Зачем в gulp(grunt) разделять сборки на public и build?

    nalomenko
    @nalomenko
    Руководитель отдела разработок в студии «Lava»
    Есть различные идеологии сборки проектов. Будь то папки dev, dist, public, production или еще какие либо. Но в основном отличие этих сборок следующее: в приведенном примере, предположительно, public — сборка проекта для отладки, а build — для продакшна, где исходные файлы минифицирются (например, JavaScript), и при этом процесс отладки сильно усложняется, когда вместо привычного Вам пойнтера на баг выдаётся пойнтер на неизвестную минифицированную точку кода.
    Ответ написан
    Комментировать
  • Зачем в gulp(grunt) разделять сборки на public и build?

    ZloDeeV
    @ZloDeeV
    Верстаю в своё удовольствие
    В public будут скомпилированы файлы из SASS/LESS/HAML/..., но в читаемом виде, это делается для ускорения самого процесса компиляции и редактирования.
    В build файлы не только компилируются, но еще и минифицируются, картинки ужимаются, SASS проходится автопрефиксером и прочим.
    Ответ написан
    2 комментария
  • Как задеплоить django?

    ali_aliev
    @ali_aliev
    Разработчик на Django/Python, JavaScript
    где конфиги? почему не связка nginx + uwsgi + supervisor? по моему тут проще некуда.

    Ставим uwsgi: sudo pip install uwsgi
    Ставим supervisor: sudo apt-get install supervisor

    создаем .env в директории в корне проекта командой: virtualenv .env
    source .env/bin/activate

    ставим зависимости вашего проекта
    pip install -r requirements.txt

    File: /etc/supervisor/conf.d/yoursite.conf
    [program:yoursite]
    command=uwsgi --ini /etc/uwsgi.ini
    autostart=true
    autorestart=true
    stderr_logfile = /tmp/uwsgi-err.log
    stdout_logfile = /tmp/uwsgi.log


    File: /etc/uwsgi.ini

    [uwsgi]
    chdir           = /home/projectroot
    wsgi-file          = /home/projectroot/wsgi.py
    home            = /home/projectroot/.env
    logto           = /var/log/uwsgi.log
    
    master          = true
    processes       = 10
    socket          = /tmp/yoursite.sock
    vacuum          = true
    touch-reload    = /tmp/yoursite.reload


    File: /etc/nginx/sites-enabled/yoursite.conf

    server {
        listen   80;
        server_name  yoursite.com;
        access_log  /home/var/log/nginx/yoursite.nginx.access.log;
        error_log  /home/var/log/nginx/yoursite.nginx.error.log;
    
        location / {
            uwsgi_pass   unix:///tmp/yoursite.sock;
            include uwsgi_params;
        }
        location /static/ {
            alias /home/yoursite/assets/;
        }
    }


    перезагружаемся: sudo /etc/init.d/nginx/restart
    sudo supervisorctl reload
    sudo supervisorctl restart yoursite
    Ответ написан
    8 комментариев
  • GIT: Как подсчитать вклад каждого разработчика?

    @barbarisbk
    просто количество коммитов по пользователях
    git shortlog -s -n
    Ответ написан
    Комментировать
  • Какие актуальные книги есть по python, django?

    @PaleSun
    Ответ написан
    Комментировать
  • Какие существуют интересные для веб-разработчиков каналы на youtube?

    @nick88hello
    https://tech-mail.ru Обучающие видео-материалы , созданные разработчиками mail.ru для студентов МГТУ им. Баумана .
    Ответ написан
    Комментировать
  • Какие актуальные книги есть по python, django?

    @nikita-b
    Что мне нравится:
    1. Курс Real Python. Он крутой, его постоянно дорабатывают, но он платный. 60$. За три книги, первая основы Python, вторая обзор основных фреймфорков(Django, Flask, webapp2....), третья другие темы.
    Если хотите могу помочь со скидкой:
    https://realpython.com/

    2. chimera.labs.oreilly.com/books/1234000000754
    Вообще одна из лучших книг по программированию, которую я видел. Онлайн версия бесплатная. Правда он скорее по Django для тех, кто уже знает Python.

    И то и то, наверно можно просто найти в интернете.
    Ответ написан
    Комментировать
  • Как работать с django на vps и вообще как ведется разработка проекта для продакшена?

    @romamo
    Архитектура. Highload. Data mining
    1. БД на сервере. Доступ к ней с сервера и с локальной машины.
    2. Заводим репозиторий проекта в git.
    3. Ставим virtualenv на сервер
    4. Настраиваем среду на сервере
    5. Работаем в PyCharm, умеет сам аплоадить все файлы по ssh.
    6. Запускаем на сервере запускаю вручную (чтобы видеть лог и ошибки). Если нужно, то поверх nginx.
    7. Если код неплатформозависимый, то запускаем локально: серьезно экономит время, не нужно ждать пока зааплоадятся файлы, удаленная БД дает небольшой оверхед.
    8. Платформозависимый - запускать локально в виртуалке.
    9. В довиртуальные времена я использовал отдельный компьютер с настроенной средой и бд, аналогичными продакшену.
    10. На продакшн выкладывается из репозитория. Тут каждый придумывает свою схему деплоя.
    11. virtualenv везде, причем отдельный для разработки, для тестирования, беты и продакшена.
    Часто обновляется внешний пакет, добавляется на дебаг, дорабатывается код, далее внешний пакет обновляется на бете, тестируется и потом только попадает на продакшен.
    Ответ написан
    Комментировать
  • Как заставить стабильно функционировать молодую веб-студию?

    renat79
    @renat79
    dude with laptop
    Совсем недавно я вывел для себя такое понятие, как "надежная" и "ненадежная" прибыль.


    У молодой веб-студии в любом случае будут на начальном этапе только "проектные заработки".
    Если вы любите свою работу и делаете ее качественно - работа у вас всегда будет. Позже при удачном раскладе вы сможете создать постоянный финансовый поток за счет "поддержки" и cross-sale. На западе студии зарабатывают именно на этом. Пробуйте продавать сопутствующие услуги - хостинг, SEO продвижение, SMM, консультируйте по автоматизации клиентского бизнеса - например, продавайте ему сервисы по управлению клиентами или сервисы по управлению задачами.

    Экономьте вначале максимально. Вам не нужен офис, бухгалтер и тд. Главное придите на встречу в чистой одежде).

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

    Отладьте весь процесс работы с заказчиком.
    • Продумайте и пропишите в договоре схему оплаты такую, чтобы в любом случае, если ваш клиент "спрыгнет" - вы были бы в плюсе. Это важно.
    • Продумайте основные проблемные моменты, из которые могут возникнуть задержки - очень часто это контент со стороны заказчика, к примеру. Пропишите их в договоре
    • Фиксируйте переписку с заказчиком обязательно. Никаких правок по телефону. Лучший вариант -используйте сервис типа бейскемп или аналог. Мы у себя пользуем русскоязычный ворксекшен


    Тут еще ключевой момент вспомнился - если ВДРУГ клиент хочет и готов заплатить - немедленно ломитесь за деньгой)) завтра может быть уже поздно )

    Ну и потом, когда вы устанете от неадекватных заказчиков - вы будете делать "свой" проект, зуб даю )

    Удачи вам, Ренат
    Ответ написан
    Комментировать
  • Какие существуют интересные для веб-разработчиков каналы на youtube?

    @dake1231
    loftblog.ru прикольный
    Ответ написан
    Комментировать