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

    RedEagle69
    @RedEagle69
    Html-верстальщик, Front-end разработчик
    Вот вам имена классов на все случаи жизни:
    https://github.com/yoksel/common-words#readme
    Ответ написан
    3 комментария
  • Какие существуют "общие" правила по верстке web страниц?

    @itsjustmypage
    Перевести блочную модель в привычный вид (*, *::before, *::after {box-sizing: border-box;}
    Подключить normalize.css (body margin 0 там тоже есть).
    Верстка семантическими тегами. Header, main, footer, section, article, aside, вот это всё. О том где и как их применять подробно в спецификации https://www.w3.org/TR/html/fullindex.html#index-el...
    Сохранять семантичность и доступность при кастомизации форм всех видов (input, button). Пример правильной кастомизации чекбоксов https://www.youtube.com/watch?v=E6kLaaQFctU
    Размечать документ, сохраняя правильную структуру заголовков (h1-h6), что такое правильная структура есть в спецификации https://www.w3.org/TR/html/sections.html#the-h1-h2...
    Использовать какую-либо методологию вёрстки (обычно БЭМ).
    Верстать модульно, максимально независимыми блоками (см пункт о методологии).
    Сжимать изображения, использовать SVG при возможности (векторные иконки, косые и криволинейные украшательства и т.д.)
    Использовать автопрефиксер для автоматического проставления префиксов в CSS.
    Стили для обработки пользовательского ввода (на случай, если текста будет слишком много/мало, длинные слова и т.д.)
    Как-нибудь обработать FOUT(мерцание нестилизованного текста)/FOIT(мерцание невидимого текста). Как правило это просто font-display: swap.

    Пока не знаю что ещё добавить, можешь погуглить чеклисты вёрстки, взять что-то из них.
    И здесь посмотреть webmasters.teamdev.com
    Ответ написан
    Комментировать
  • Является ли Docker/Vagrant сейчас стандартом для dev-окружения веб-разработчика?

    Sanes
    @Sanes
    Как раньше пользовались нативно, так и будет самым правильным. ИМХО конечно.
    В каждой компании свои извращения. За неделю покажут, расскажут и дадут попробовать.
    Ответ написан
    Комментировать
  • Чем отличается junior от middle? а Senior?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Вот как это выглядит с т.з. работодателя

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

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

    Синьор
    - собеседование
    указывает на ошибку в тестовом задании, предлагает два решения проблемы, над которой команда пыхтела последнюю неделю и альтернативный стек технологий, на который можно перевести проект
    - испытательный срок
    рефакторит проект, делает билд джун-устойчивым, по ходу дела пишет алгоритм для киллер-фичи, запланированной только на следующий квартал и под конец испытательного срока организует воркшоп, на котором представляет свои наработки "в свободное время" по переводу проекта на другой стек технологий, в которых уже реализована большая часть функционала следующего релиза.
    - работа
    пинками помогает команде в переходе на одобренный руководством новый стек, в чем его активно поддерживает джун, окрыленный тем, что теперь его накопившиеся косяки точно никто не заметит, переводит проект на новый стек, увеличивает производительность в два раза, через год переводит еще раз, периодически генерирует идеи новых продуктов, может пропасть на неделю и вернуться с новой фичей, а может уйти в накопившийся за несколько лет отпуск и больше не вернуться, т.к. случайно встретил старого знакомого, передложившего другой мега-проект с гига-зарплатой.
    Ответ написан
    4 комментария
  • Чем отличается junior от middle? а Senior?

    вы все знаете — Junior
    вы поняли что ничего не знаете — Mid
    вам все равно — Senior

    habrahabr.ru/post/231649/#comment_7826819
    Ответ написан
    2 комментария
  • RESTful API и MVC — что это?

    Основной посыл использования RESTful API - применение основной идеи Паутины для взаимодействия автоматических агентов (приложений), а не только людей.
    Основная идея Паутины - построение распределенной информационной системы путем публикации неких абстрактных ресурсов, выдачи им идентификаторов (в сегодняшнем вебе - иерархических), определения ряда простых и широко известных операций над ними, не зависящих от содержимого ресурса (те самые GET, POST, PUT и т.д.), и связывания этих ресурсов ссылками (это называется гипермедиа, и в частности, гипертекст, если речь идет о текстовой информации).
    Как люди с появления Веба публикуют информацию в нем для потребления другими людьми, так и RESTful веб-сервисы публикуют иерархически структурированные ресурсы для потребления клиентами. Разница только в представлении - для людей это plaintext/HTML, для автоматических агентов - это JSON/XML/прочие форматы, которые удобно обрабатывать.
    Таким образом, если вы хотите какую-то информацию опубликовать как RESTful API, вам необходимо представить ее как набор ресурсов, а все операции над этой информацией выразить через набор предопределенных операций. Фишка в том, что во многих задачах этих предпопределенных операций вполне достаточно, главное правильно определить ресурсы.
    Важно понимать, что "ресурс" это обычно некоторая сущность, "существительное". Как правильно заметил Антон Жуков , ресурс /getItems хоть и может существовать в принципе, говорит о неудачно спроектированном API (действие представлено как ресурс).

    Есть и другие подходы к архитектуре распределенных приложений, например архитектуры, основанные на RPC (удаленный вызов процедур). Информация в таких архитектурах также представлена в виде некоторого набора сущностей, однако операции над ними определяются конкретной задачей, и для каждой сущности будет свой набор. Это больше соотвествует классическому ООП-подходу. Таким образом, RESTful следует подходу много сущностей (ресурсов) - мало операций (и эти операции известны заранее), а RPC - немного сущностей, но много операций над ними.

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

    Сама архитектура REST не привязана к конкретным технологиям и протоколам, но в реалиях современного Веб, построение RESTful API почти всегда подразумевает использование HTTP и каких-либо распространенных форматов представления ресурсов, например JSON, или, менее популярного сегодня, XML.

    Смысл использования REST в том, что принципы, хорошо показавшие себя в "человеческом" веб и позволившие построить самую большую распределенную ИС, применяют и для "веба машин".

    Ответ длинноват, но как короче объяснить, чтобы не исказить понимание, не представляю. Если что непонятно - спрашивайте.
    Ответ написан
    7 комментариев
  • Как правильно организовать структуру SPA + Backend?

    @wearemieta
    BEWARE HIPSTERS
    Но бесит, что там нет единого собранного файла bundle.js

    В шаблоне webpack-simple все скрипты собираются как раз в один файл build.js. Обратите внимание, он подключается в сгенерированный index.html. vuejs-templates/webpack-simple.

    Этот файл недоступен в файловой системе при запуске dev сервера, потому что в режиме разработки он находится исключительно в памяти.

    так он еще создает кучи других непонятных файлов и при режиме разработки запускает ненужный 'hot-load'.


    Давайте разберемся, для чего нужен сервер в режиме разработки для Vue. При написания SPA приложения вы используете кучу библиотек, файлов в разных форматах и возможно еще обращаетесь к стороннему API(например twitter). Плюсом, вам хотелось бы использовать транспайлер, чтобы в js можно было красиво писать стрелочные функции и использовать другие вкусняшки ES2015. А еще это здорово было бы склеивать файлы одного формата в один большой для разных оптимизаций. Плюс, после того как вы измените что-то в одном файле, не пришлось бы тыкать каждый раз на перезагрузку страницы. Примерно эти вещи делает за вас dev сервер с webpack в режиме разработки.

    — с помощью webpack вы можете собирать ваши файлы каким угодно образом и складывать их в любое удобное место в фс.
    — вы можете их склеивать, минифицировать и использовать транспайлеры, препроцессоры, постпроцессоры и прочее.
    — вы можете обращаться к стороннему API с локалхоста.
    — если вам не нужен hot-load — отключите его в конфиге.

    Оставить в покое django под портом :8000, а VueJS под :8080. И в nginx как-то слушать их обоих, раздельно, таким образом четко разделить фронт от бэка. Не будет ли проблем?


    Проблем с проксированием nginx'ом? Не очень понятно что вы имеете в виду.

    Если вам нужен кастомный шаблон vue-cli то вы можете легко его разработать один раз и в дальнейшем использовать: Vue-cli custom templates

    Как правильно организовать структуру SPA + Backend

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

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

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

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

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

    Ваше приложение схематически выглядит так:

    Клиент: хочу авторизоваться => Сервер приложения: отправлю бизнес-логике => Бизнес-логика: спросим базу (данные для авторизации) => База данных: можно => Клиент: я авторизован

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

    Теперь, в вашем фронтенде на Vue, например, вы можете отображать нужные вам данные (а соотв. делать запросы в основную базу), только если пользователь авторизован.

    Теперь ваше приложение выглядит так:

    Клиент: хочу авторизоваться => Фронтенд-микросервис: отправляю микросервису авторизации => Микросервис авторизации: можно => Фронтенд-микросервис: я авторизован, хочу данные => Сервер приложения: отправлю бизнес-логике => Бизнес-логика: спросим базу (данные отображения авторизованному клиенту) => База данных: данные => Клиент: я получил данные

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

    Авторизация? — микросервис — auth0.com
    SQL База данных? — микросервис — Google CLOUD SQL
    Уменьшаем размер картинок? — микросервис — AWS Lambda

    Что получается в сухом остатке? Вам требуется лишь написать SPA из которого вы будете обращаться к вашим микросервисам. То есть, вы получаете приложение, которое можно хостить как статический сайт, переложив на микросервисы большинство задач, которые вам требуются в вашем приложении.

    Конечно, это решает определенные проблемы, но и создает новые, поэтому, повторюсь, все зависит от ваших задач.

    Давайте посмотрим на ваш пример с Django. Если я все правильно понимаю, то вы хотите использовать все плюсы Django, типа ORM, API доступа к БД, etc, заменив лишь систему шаблонов на Vue?

    В таком случае, на мой взгляд, вам нужно реализовать на Django классический REST API и из SPA на Vue обращаться к endpoint'ам вашего API.

    Ссылки по теме:
    Архитектура микросервисов
    SPA-архитектура для CRM-систем: часть 1
    SPA-архитектура для CRM-систем: часть 2
    AWS Lambda и никаких серверов
    Ответ написан
    Комментировать
  • Софт/сервисы для рисования графиков/схем (для разработки софта)?

    zamboga
    @zamboga
    Бизнес-аналитика, фин. моделирование, дашборды
    Софт для прототипирования, создания эскизов, макетов, скетчей, мокапсов, схем и т.п.

    1. Draw.io — бесплатный аналог Visio
    2. https://moqups.com/  (2 проекта на бесплатном акке)
    3. balsamiq.com (desktop бесплатно 30 дней, web версия бесплатная)
    4. ninjamock.com — отличный бесплатный софт для скетчей и макетов
    5. gotiggr.com
    6. pencil.evolus.vn/Default.html
    7. www.teehanlax.com/blog/2010/06/14/iphone-gui-psd-v4
    8. www.lumzy.com
    9. mockupbuilder.com (14 дней бесплатно)
    10. www.axure.com/download
    11. bohemiancoding.com/sketch
    12. Mockups.com = https://moqups.com
    13. https://wireframe.cc (триал 7 дней)
    14. mockups.me (триал-версия действует 30 дней)
    15. www.hotgloo.com (15 дней бесплатно)
    16. https://gomockingbird.com (1 проект на бесплатном акке)
    17. iplotz.com (в бесплатном тарифе возможность работать над 1 проектом, только 5 экранов)
    18. www.protoshare.com (триал-версия работает 30 дней)
    19. www.mockflow.com (1 проект на бесплатном акке)
    20. wireframesketcher.com/features.html
    21. https://www.yworks.com/products/yed
    Ответ написан
    5 комментариев
  • Как выставить dpi в Photoshop?

    zergone
    @zergone
    дизайнер
    Эй-эй, чудо-мастера... Коротко (везде имею в виду исходный размер картинки, если делать сильное масштабирование картинки, получите мыло; чтобы менять размер картинки не меняя ее физически снимите галку "ресамплинг", тогда при изменении разрешения будет пропорционально меняться размер в мм, это позволит быстро сообразить, какой размер на печати позволит сохранить качество):
    47666c493b9843c98f5760232db92f6b.gif
    1) В стандартной полиграфии (офсет, цифровые машины) используют разрешение 300 dpi (обычно в диапазоне 400-225 dpi можно не заморачиваться и оставлять как есть (отличия для многих будут малозаметными), если конечно нет особых требований). Причем картинки типа "скриншот" (с очень резким контрастом пиксел) лучше оставить как есть, без какого-либо масштабирования (только 100%) -- потяните на 300 dpi или другое разрешение, будет отвратительное мыло (это касается линков в ИнДизе или Илле например).
    Кроме того советую при масштабирование в Фотошопе выбирать правильно режим пересчета (ресамплинга) -- там из названий пунктов меню понятно.
    2) Касательно широкой печати... При изготовлении больших плакатов ориентируйтесь примерно на объем пустого тифа в CMYK примерно 500 Мб -- обычно это дает хорошее качество картинки. Если плакат маленький (а ля 600х900 мм) -- размер в байтах может стать меньше (на широких принтерах редко пользуют больше 200 dpi). Если плакат очень большой -- десятки метров, то конечно файл может быть и 1-2 Гига, даже при 5-10 dpi.
    3) Нет железно заданных цифр разрешения картинок для печатных устройств. Есть близкие к оптимальным (например 600 dpi для обычного офсета не только утяжелят файл в 4 раза, но и скорее всего дадут более мыльную картинку после РИПа). Сомневаетесь -- звоните в печатную контору, спросите их дизайнера (часто это имеет смысл, поскольку техника и рабочий процесс везде разные).
    Ответ написан
    1 комментарий
  • Как правильно настраивать дев-окружение для веб-разработки?

    piromanlynx
    @piromanlynx
    Системный администратор в Perfect Solutions
    Используйте puppet/ansible/... и не думайте об этом вообще
    Ответ написан
    Комментировать
  • Как правильно настраивать дев-окружение для веб-разработки?

    @xfg
    Не думайте о доменах. Вы смешали администрирование и программирование. Не нужно никакого dev сервера. Делайте работу на локальной dev машине, отправляйте изменения в удаленный репозиторий и всё. Можете вообще не устанавливать nginx/apache и т.д. на локальную dev машину, чтобы не забивать голову всякими доменами, а проект запускать под встроенным PHP сервером например из корня проекта и тогда будете обращаться к вашим сервисам по адресу localhost:port/service1/index.php, localhost:port/service2/index.php и т.д.

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

    server {
      server_name company.com;
      root /home/www/company/frontend;
     ...
    }
    server {
      server_name admin.company.com;
      root /home/www/company/backend;
     ...
    }
    server {
      server_name service1.company.com;
      root /home/www/company/service1;
     ...
    }
    server {
      server_name service2.company.com;
      root /home/www/company/service2;
     ...
    }


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

    Так и делают. Разработчикам не нужен никакой dev сервер. Они клонируют репозиторий, делают что-то локально у себя и отправляют изменения в удаленный репозиторий. Для тестеров и всяких менеджеров просто поднимают так называемый stage-сервер где они и тестируют приложение, но это тоже самое что и продакшн сервер, просто доступ к нему только внутри компании. Можно настроить continuous integration чтобы все изменения из репозитория в master ветке автоматически бы приводили к деплою приложения на stage и продакшн сервера. Примерно так в общих словах устроена веб разработка.
    Ответ написан
    22 комментария
  • Как правильно настраивать дев-окружение для веб-разработки?

    rpsv
    @rpsv
    делай либо хорошо, либо никак
    Развернуть GIT?

    Идеальной на мой взгляд будет схема:
    • [branch].company.com
    • [branch].service1.company.com


    И собственно ветка будет не для разработчика, а для фичи/фикса/дева
    Про структуру репозитория почитать можно тут: https://habrahabr.ru/post/106912/
    Как это реализовать, я не подскажу, так что это не более чем концепт.

    P.S. как по мне, если разработчики правят один и тот же файл, то тут дело в постановке задач для них.
    Ответ написан
    5 комментариев
  • Какие флексбокс сетки вы используете?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Вы при верстке используете готовые сетки на их основе

    Использовал самописную на основе FlexboxGrid. Простая сетка, без излишеств, в 99% случаев ее достаточно.

    или верстаете применяя флексбоксы в css

    Недавно открыл для себя LostGrid - очень приятная вещь, советую посмотреть.
    Ответ написан
    Комментировать
  • Где смотреть лучшие практики по верстке элементов?

    @GreatRash
    Вообще такого ресурса нет, но есть несколько полезных ресурсов на которых стоит пастись постоянно. Это:

    css-live.ru - сделали два моих знакомых, люди очень увлечённые вёрсткой, там в основном переводы зарубежных статей (статьи подбираются вручную, только самое интересное), но есть и оригинальные статьи

    tympanus.net/codrops/category/blueprints - это сборник концептов, далеко не все решения кроссбраузерны, но зато там можно найти неисчерпаемый источник вдохновения не только верстальщикам, но и дизайнерам.

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

    https://css-tricks.com/ - тоже ресурс, не нуждающийся в особом представлении, сборник туториалов, небольших статей, справочников, тематических блогов, сниппетов, в общем всего.
    Ответ написан
    Комментировать
  • Best practics о верстке и организации?

    Nemisidis
    @Nemisidis
    Frontend Developer
    На сегодня есть два популярных направления организации flie tree (smacss, bem).
    Идея в корне разная.
    Smacss основан на классическом подходе (разбиение проекта по технологиям), Bem же ориентирован на разбиения проекта на элементы и так же имеют громадное количество инструментов.
    Все выше перечисленное имеет значения в зависимости от сложности проекта.
    Разработку поддержка безусловно ускоряет если вы понимаете что вы делаете.
    И так же советую ознакомится с сборщиками проекта (например gulp)
    Gulp один из самых простых и быстрых.

    https://smacss.com/ , https://ru.bem.info/.
    Ответ написан
    Комментировать
  • Может ли продление домена стоить дороже регистрации?

    bagau
    @bagau
    Фронтент разработчик
    Как я перевел свои домены к другому регистратору и продлил 2 домена не за 800 рублей, а за 200.

    Сейчас в 2domains стоимость продления 399 рублей, продление 2 доменов за 798 рублей совсем не радовало.

    В итоге перевел на regname24.ru, там стоимость продления также 99 рублей.
    У одного домена уже вышел срок регистрации, но он еще не был освобожден (месяц не прошел), до конца регистрации другого домена оставалось 4 дня.

    regname24.ru является реселлером у 2domains, надо написать в 2domains , чтобы они перенесли домены к regname24.ru, потом написать письмо regname24.ru и домены появятся.

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

    Если что спрашивайте.

    Таким образом я сэкономил 600 рублей.
    Хостингом пользуюсь Радиусхост, тоже доволен, стоимость в год всего 950 рублей. Искал дешевле, но они все какие-то не такие, если дешевле.
    Ответ написан
    2 комментария
  • Изучение python не для новичков, с чего начать?

    @yociyavi
    "Я прочитал 10 книг по езде на велосипеде, но так и не научился ездить на нем".
    Для того чтобы научится что-то делать, нужно это делать. Параллельно почитывая теорию.
    Напишите пару сайтов для себя: блог, туду лист и прочие. За одно и портфолио будет.
    Ответ написан
    Комментировать
  • Django: CBV или функции?

    @evikbook
    DevOps
    Лучше CBV, на них меньше копипаста получается (а в идеале 0), больше продуктивность и КПД от каждой строчки кода. Единственное выделите день на то, чтобы мозги свои переконфигурировать под них (сделайте мини проект)
    Ответ написан
    Комментировать
  • Django: CBV или функции?

    @deliro
    Только CBV.
    Каждый метод имеет свой смысл, не всё вперемешку.
    Можно юзать миксины.
    Можно наследоваться.

    Не будет ли плохим тоном, если в одном views будут и классы, и функции?

    Я сразу отправляю переделывать.

    Чтобы добавить N элементов в контекст, нужно написать N+2 строки. Это всего на 1 больше, чем у вьюхи-функции:
    def get_context_data(self, **kwargs):
        kwargs['your_additional'] = 'context_here'
        return super().get_context_data(**kwargs)


    В большинстве случаев используются Generic Views или миксины вроде FormMixin. Очень редко я наследуюсь только от View.
    Ответ написан
    Комментировать
  • Как эффективно работать целый день?

    @sarathorn
    php программист, веб-дизайнер, коллекционер
    Мне 20 лет, живу отдельно от родителей, зарабатываю фрилансом. Самое важное - организовать свой день.

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

    В моём случае физическая нагрузка или простая прогулка не улучшают продуктивность, с другой стороны залипание в ютюб/вк или чтение статей могут свести все старания на 0.

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

    8 часов подряд кодить каждый день... Вы серьёзно? На этой неделе мои результаты такие: воскресенье - 12 часов кодинга, понедельник - 8, вторник - 8, среда - 6, четверг - 4, пятница - 3, суббота (сегодня) - нет ни малейшего желания, но очень надо хотя бы пару часов... Вы просто перегорите. Настраивайтесь на 4, максимум на 6 часов кодинга в день. Остальное время можно заполнить чтением документаций, проработкой прототипов на бумаге, обсуждениями с коллегами и боссом.

    Если ситуация требует 8-16 часов кодинга подряд (такое, увы, бывает), то меня спасают две вещи:
    1) Сериалы. Второй монитор, второй ПК, планшет или даже смартфон вам в помощь. Берёте сериал, который УЖЕ смотрели и включаете. Он должен быть интересный, но уже знакомый, это два обязательных требования. Так он не будет отвлекать от работы (сюжет же уже знаком, а половину реплик вы можете произнести вместо актёров), но создаст иллюзию отдыха. В моём случае можно всё привести к такому выражению: 60 минут кодинга = 80 минут кодинга под сериал. НО! Так я могу выдерживать 12-16 часов без особых усилий. Что в итоге даёт больше результата, чем 6-8 часов чистого кодига после которых я просто убитый на пару дней.
    2) Кофеин. Обычный кофеин. Кофе я не пью, а энергетики слишком дорогие для регулярного применения. Есть замечательная альтернатива - Кофеин-бензоат натрия. ~30рублей в аптеке за 6 таблеток. Максимальная разовая доза - 6 таблеток, она же 300мг кофеина. 1-2-3 таблетки мой организм может не заметить, а при шести я начинаю разговаривать сам с собой. Грань очень тонкая, но при правильной дозировке получается неплохой boost к производительности. Внимание! Кофеин может повышать давление и пульс, а также имеет ряд побочных эффектов. Передозировка может убить. Я не несу ответственности за последствия приёма кофеина.

    Смесь кофеина и прогулки (зима, 3 часа ночи, -20C) может породить тонну гениальных идей, увы, лишь 1 из сотни имеет шанс на успех в реальном мире.

    Вообще, я для себя вывел важную закономерность. Мотивация - фигня. Желание получить больше денег и когда-нибудь улететь на неделю на Мальдивы не приведёт к результату, рано или поздно, но мозг решит, что гораздо правильней работать в 2 раза меньше, но отдохнуть на местном водоёме с друзьями и шашлыками. Гораздо интереснее обстоит дело с чувством вынужденной необходимости. Проще говоря, с кнутом. Я не сделаю работу и меня уволят. Я не успею вовремя и меня лишат премии. Я облажаюсь и все будут смеяться надо мной... Вот это работает.

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

    Непосредственно программирование (как и дизайн) идёт легче, если есть план и схемы. В моём случае при работе над back-end у меня 70% времени уходит на проектирование и проработку мелочей на бумаге, лишь 30% времени это сам кодинг. При работе с фронт-эндом я где-то 60-70% времени работаю, а 30-40% проектирую. Я так понимаю, вас не заставляют именно кодить 8 часов. Вас заставляют 8 часов сидеть на рабочем месте. Вот и прикиньте, что из них лишь где-то 3-4 часа будут самим кодингом. Хотя... Если работы очень много, вы не единственный кодер в конторе и есть более опытные, которые и берут на себя всё проектирование... ух... тогда остаётся только монотонно стучать по клаве...

    Ещё очень важный момент. ОБЯЗАТЕЛЬНО ОТДЫХАЙТЕ! В выходные не должно быть ни единой мысли о работе, после работы займитесь хобби, уберитесь дома, погуляйте, сходите в спорт зал, почитайте книгу, посмотрите кино, поспите в конце-концов. Никакой работы за пределами рабочего места. Этот трюк заставит мозг ассоциировать рабочее место с рабочим процессом, а значит уже не нужно будет самому его мотивировать работать. Это работает крайне просто. Если вы видите очень красивую девушку да ещё и без одежды, то кое-что что происходит с одним очень важным органом и мозг начинает работать совершенно иначе. И вот теперь в поле зрения попадает ваше кресло и ваш рабочий комп, мозг пробегается по ассоциациям и понимает, что надо работать. В паре с состоянием вынужденной необходимости всё сработает на ура.

    Перерывы - спорный момент. Мне проще проработать, например, 6 часов без перерывов (только если на отойти до туалета или до кухни, чтобы налить воды и стащить печеньку), чем 6-8 с перерывами. Я очень много времени и сил трачу на переключение с одного вида деятельности на другой.

    По поводу еды. В момент приёма и пищи и где-то следующий час я способен только читать и смотреть, но никак не творить.
    Ответ написан
    10 комментариев