• Как научиться писать большие javascript приложения?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Большое приложение не является монолитным. Оно состоит из набора маленьких приложений, которые выполняют свои маленькие задачи. Любая большая программа начинается с маленького прототипа, который потом вырастает до галактических размеров. Ну, если получается. Получается не очень часто. Часто получается выбрасывать прототип и писать новый. Со временем учитесь правильной архитектуре с самого начала и тогда разработка большого приложения идёт несколько быстрее.
    Например, я вчера получил ошибку в архитектуре, которую программировал три дня на c#. Пришлось исправлять несколько часов. Знаете какое ощущение? Отличное! Я все-таки решил задачу!
    Ответ написан
    3 комментария
  • Разработка сайта на WordPress и git (github)?

    zorca
    @zorca Куратор тега WordPress
    Посмотрите на структуру Bedrock для профессиональной разработки: Bedrock .
    Ядро лежит отдельно и в гит само собой не попадает, плагины подтягиваются не через админку, а через Composer, и не требуют сохранения в гит. Что еще стоит включать в гит, зависит от проекта. Возможно папку аплоада, за исключением откровенно мусорных кешей и прочего. Базу можно дампами выкладывать в корень проекта, через тот же wp db export. Миграции до Wordpress еще не доползли, я пока не знаю как решать этот вопрос.
    Ответ написан
    Комментировать
  • Как правильнее сверстать такие элементы?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Ничего сложного не вижу в верстке. Запарная, но вполне реализуемая. Чего в комментариях ноет народ? Или Вам интересно 3 блока в ряд flex'ом закидать - "Ху*к-ху*к, и в продакшн"?
    Делим на три блока: светлый, текст по центру, темный блок. Текст через shapes форматируем, форму каждого блок через clip-path, svg... Позиционируем чуть-чуть(много). Получаем итог. Ну a с нижней все понятно - transparent: skew, clip-path...

    Вот хороший пример shapes - https://www.sarasoueidan.com/blog/css-shapes/
    clip-path - https://developer.mozilla.org/en-US/docs/Web/CSS/c...

    А мобильную пусть кидает макет дизайнер. Или он на полпути оставил Вас?

    ps с поддержкой надо поиграть, но тоже ничего такого....
    psps скинь макет. Ночью будет свободное время - сделаю.
    Ответ написан
    8 комментариев
  • Как выйти из рабочего коматоза?

    fedorez
    @fedorez
    Хатуль мадан
    Сходите к доктору, проверьтесь. Вдруг витаминов с минералами каких-то не хватает, или гормональное что-то.
    Социализация, друзья(не собутыльники), хобби.
    Спорт.
    Бег. Универсальный пылесос для мозга.
    Как вариант.
    Ответ написан
    2 комментария
  • Как организовать full-stack (веб) разработку новичку?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Вы не совсем понимаете стэк технологий, которые собрались изучать. Ваши рамки понимания фронтэнда и бэкэнда крайне размыты.
    Ваша первая ошибка в том, что вы, как вы выразились собираетесь заниматься компонентной разработкой с помощью php и gulp. Это в корне не верно, ибо gulp был задуман исключительно для сборки front-end части проекта.

    Постараюсь расписать вам примерный туду-лист на будущее:
    1. Бэкэнд разработка на PHP - Laravel.
    2. Фронтэнд сборка - Webpack + Laravel Mix
    3. Фронтэнд разработка - ES6 + Vue.js

    И никогда, ни в коем случае, как бы этого вам не хотелось - не смешивайте фронтэнд и бэкэнд, это совершенно разные области технологий и стэка, не занимайтесь порнографией.
    Ответ написан
    1 комментарий
  • Как организовать full-stack (веб) разработку новичку?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Одна из главных ошибок, это использовать тут или иную технологию, для того что бы использовать технологию. Технология должна упрощать что-либо или ускорять и т.д. Должен быть прозрачный и ощутимый эффект. Вы, я так понимаю, просто используете технологии ради технологий. Это не верно. Это возможно для обучения, но тогда вопрос
    К чему это все приведет, когда проект разрастется?
    не логичен. Не надо делать ерунду ради обучения на живом проекте. Освойте технологию, потом принимайте решение, стоит ли ее использовать в том или ином проекте.
    Вы сами сможете ответить на все свои вопросы, когда освоите эти технологии. Но не стоит это делать на рабочем проекте.
    Ответ написан
    2 комментария
  • Как грамотно разбить index.html на составные файлы при работе c gulp?

    @alex-85
    Я делаю с помощью pug.

    Для структурирования всех файлов и имен использую методологию БЭМ (не принципиально, вы можете организовать ваши файлы как угодно)

    Я делаю так - создаю папку blocks, в ней подпапки с нужными блоками, к примеру header, carousel, footer и т.д.
    В каждой папке лежат фалы этого блока. К примеру папка header:
    header.pug
    header.scss
    header.js
    header.jpg
    и т.д.

    блоки могут содержать вложенные в них блоки. К примеру папка header может содержать блок menu.

    Можете почитать про БЭМ про https://ru.bem.info.
    Ответ написан
    2 комментария
  • Gulp и его будущее?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    Мне коллега сказал что Gulp умирает и поддерживаться больше не будет

    где пруфы?

    p.s. это тот самый вопрос который ты должен был задать коллеге.
    Ответ написан
    4 комментария
  • Как на Тостере смотреть вопросы по уровню сложности?

    Nomad_77
    @Nomad_77 Куратор тега Тостер
    Product manager at habr.com
    В данный момент действительно никак. Эту функцию Вы увидите чуть позже.
    Ответ написан
    Комментировать
  • С чего начать изучение Laravel?

    laracast.com отличный ресурс
    Ответ написан
    Комментировать
  • Почему выведет "Вася"?

    Stalker_RED
    @Stalker_RED
    let name = "Вася"; // переменная в области видимости window
    function sayHi() {
      alert(name);
    }
    
    setTimeout(function() { // анонимная функция
      let name = "Петя"; // переменная видна только внутри этой анонимной функции
      sayHi();
    }, 1000);
    Ответ написан
    Комментировать
  • Как можно закрепить своё понимание нового стандарта ES6?

    Stalker_RED
    @Stalker_RED
    Пару месяцев назад приняли ES8, а вы закрепляете ES6?

    Начните уже писать код, больше кода, разного. Все эти новшества - это инструменты, облегчающие вам работу. Можно пользоваться бензопилой, можно электропилой, можно ручной пилой. Если вам нужно спилить одну небольшую ветку, а осваивать бензопилу сложно и страшно - пилите ручной. Если вам нужно спилить 500 веток, то есть смысл разобраться с более быстрым и удобным инструментом.

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

    Также не стоит забывать, что браузеры при реализации этих "фич" могут запаздывать на годы. Те-же промисы не работают в IE и никогда работать не будут.
    Ответ написан
    1 комментарий
  • Где найти примеры очень сложных работ на Javascript/React/Angular/Vue?

    d1monster
    @d1monster
    Front-End Developer
    На гитхабе есть целые репозитории с примерами для разных языков, фреймворков и тп.
    Искать по запросу «real world» : https://github.com/search?utf8=✓&q=real+world
    Ответ написан
    5 комментариев
  • Расскажите о профессии верстальщик (в офисе)?

    dom1n1k
    @dom1n1k
    С версткой ситуация очень неоднозначная.

    С одной стороны, верстка обычно считается не самой престижной, не самой интеллектуальной и одной из самых низкооплачиваемых специализаций в веб-разработке.
    Но при этом действительно классных верстальщиков на рынке - единицы. Процентов наверное 90 - это кодеры херак-херак-в-продакшен, которые думают, что знание тегов html, бутстрапа, препроцессора и ещё пары подобных слов делает их верстальщиками. Когда я вижу их произведения, мне плакать хочется, потому что через весь монитор я вижу огроменный болт, который лежит поперек стараний дизайнера. Ну а чо? Примерно похоже ведь. (Среди дизайнеров тоже немало дилетантов-рукожопов, но это отдельный разговор).

    Что тут есть причина, а что следствие - сказать сложно. Наверное, взаимно.

    И получается, что на рынке ощущается дефицит хороших верстальщиков. Но при этом, если ты хороший верстальщик - ещё нужно найти место, где тебя оценят и предложат соответствующие задачи. В большинстве "обычных" мест скорее подумают что-то в духе - ну да, я вижу, что чувак хорош, но столько платить не видим смысла, потому что нас устроит и студент за 30-50% той суммы :)

    Можно ли вырваться из этого порочного круга? Думаю, что да, но это нелегко. Лучше всего искать серьезную продуктовую компанию. Скорее всего, в провинции это сделать будет нелегко.
    Ответ написан
    2 комментария
  • Расскажите о профессии верстальщик (в офисе)?

    Тут я вижу 2 пути роста:
    1) Дизайнер - верстальщик
    2) Фронтенд-разработчик (Уклон в JS, вёрстка не нужна)

    Просто верстальщики не нужны.
    Ответ написан
    10 комментариев
  • Расскажите о профессии верстальщик (в офисе)?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Чистый верстальщик - тупик карьеры
    Ответ написан
    2 комментария
  • Объясните что такое полиморфизм простыми словами ?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Да ладно, парни. Ну хватит уже, к чему такие сложности? Берём и читаем. Вообще совсем не обязательно читать про архитектуру и абстракции именно по своему языку, хотя javascript в этом плане родился уродом.

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

    Собственно, представим себе рядом стакан, кружку, чайник, кофемашину, велосипед и скейт. Что между ними всеми общего? Ну как минимум то, что они есть. То есть это - объекты, которые были созданы. Но как они были созданы? Скорее всего на заводе производителя по чертежам. Ок, чертежём назовём конструктор. Ну а класс? А что это такое? А его нет в нашей вселенной - эта сущность есть абстракция, что живёт лишь в наших мыслях. В реальном мире её нет и никогда не будет, такова уж физика - ей по барабану, что птицы и млекопитающие имеют дальних родственников - она лишь обеспечивает возможность естесственного отбора. А уж родственников друг другу находим мы, люди.

    С объектами и классами разобрались, а что же там с нашими стаканами и велосипедами. Мы уже поняли, что всё это объект, то есть грубо можно все объекты наследовать от какого-нибудь суперпредка, суперкласса, что и реализовано в некоторых языках. Но что другого общего между скейтом и стаканом, например? Конечно, можно углубляться и считать, что они все из молекул, и они все из твёрдых веществ. Однако это всё бред и СПГС, так что ответ прост - да ничего. То есть это совершенно разные объекты с совершенно разным функционалом. Более того - естесственно компьютерные модели и иерархии будут сильно отличатся от физик и химий. И это нормально, вопрос об адекватностях моделей ставиться лишь когда модель неадекватна, а до тех пор пилить можно что угодно, лишь бы работало.

    Вот. У нас есть супер-предок Object, от которого дефолтно наследуются все объекты. Допустим, то что объекты состоят из атомов и есть то, что наследуют все объекты. Но все дополнения и правки - полиморфизм. Так, из атомов мы слепили колёса и приделали на доску - ок, это скейт. На него можно встать и катиться, а сильно извернувшись и полетать в трёх метрах над землёй, прямо таки излучая своё яркое эго. В то время как стакан - это мы слепили из атомов плотную ёмкость, из которой вода не выливается под действием силы тяжести. И прямое применение стакана - налив воды опрокинуть его над ртом, чтобы вода вытекла прямо в желудок. Так делают настоящие пацаны, не заботясь об икоте или страхе утонуть, так что вот - полиморфизм.

    Однако что с остальным? У нас ещё абстракция, инкапсуляция и наследование. Ок, начнём с наследования, так оно наиболее близко. Вот что у нас общего между стаканом и кружкой? Ну в оба можно налить воду, но у кружки есть ручка чтобы держаться. То есть можно придумать некий общий класс - ёмкость. Однако что это за класс? Можно например за этот класс взять стакан, тогда все ёмкости по дефолту стаканы, а всё остальное - видоизменённые стаканы. Но кому-то больше нравяться кувшины, например некоторые чики насят их на голове, считая что это удобно. Ну и пусть носят, но как-то же решить надо, что главнее и идеальнее. Так вот - недостяжимый идеал и есть главный - это называется абстрактный класс. То есть ёмкость, что невозможно создать, для которого нет полного чертежа. А все чертежи, что дополнили до полного - есть наследованные классы от класса ёмкость.

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

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

    Таким образом, абстракция невозможна без инкапсуляции и наследовании, как невозможен полиморфизм без, собственно, наследования. Ну а полиморфизм невозможен ещё и без инкапсуляции, которая банально бесполезна без наследования и полиморфизма. Вот такие тут треугольники с пирогами. Жаль только про пирог наврали. И про день рожденье.
    Ответ написан
    3 комментария
  • Redux и MobX - плюсы и минусы, когда лучше что использовать?

    vahe_2000
    @vahe_2000
    4 причины использовать MobX
    1. 1 Легко научиться и использовать
    2. Меньше кода писать
    3. Полная поддержка объектно-ориентированного программирования
    4. Работе с вложенными данными легко
    2 Причины не использовать MobX
    1. Слишком много свободы
    2. Трудно отлаживать


    Я использую MobX сейчас, потому что я могу писать код в 3 раза быстрее, чем с Redux.

    Редукс в значительной степени зависит от принципов функционального программирования:
    На мобкс влияет объектно-ориентированное программирование и принципы реактивного программирования:
    Ответ написан
    Комментировать
  • Redux и MobX - плюсы и минусы, когда лучше что использовать?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Сразу скажу - не использовал MobX, но если вы читаете дальше - значит интересуетесь.
    Ответ про плюсы redux для меня лично - в самом конце.
    ---
    До React, писал на angular, и еще раньше на backbone. В ангуляр разработке у меня были места, которые я для себя объяснял: ок, так работает ангуляр (дайджест там, скоуп такой хитрый и т.д.) - факт был в том, что не все было прозрачно для меня лично.

    Начал разбираться с React и переписал часть рабочего проекта на React + Flux. В целом понравилось, но немного напрягало копирование однотипного кода. Появился redux, который (это важно) решил мою проблему. Все, тут я сделал остановку. Написал еще пару внутренних проектов - понравилось. Меня не напрягает ничего. Все уместно, код читается хорошо. Если я возвращаюсь к старому проекту - я очень быстро вникаю в "как это работает" и могу приступить к решению задачи.

    В процессе работы с Redux - появился Graph QL. Клево! Опять что-то новенькое - начал разбираться, и закрыл - так как быстро въехать не получилось, и попутно мне пришла простая мысль: зачем? Меня устраивает то, как работает связка React + Redux. Поэтому, я не стал вникать в saga, и пока что не хочется вникать в MobX. Возможно, это не правильно, ведь я их даже не смотрел, но свободное время от "вникания в новую технологию" я потратил на "дебри" технологий, которые активно использую.

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

    Главные плюсы redux для меня:
    + Если не трогал проект больше месяца - очень легко вспомнить что к чему.
    + Я пишу код. Я не вникаю в новое, я наращиваю знания по "старому" => я пишу быстро
    + Удобно тестировать

    Когда использовать:
    - когда хотите сделать одностраничное (SPA) приложение с нуля
    - когда хотите постепенно перевести старый проект на схему: вьюха (вся страница, или какой-то блок) + API запросы
    Ответ написан
    2 комментария