• Как подходить к организации кода для сайта?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Поиск в гугл (с кавычками!): "Веб-сайт: базис, архитектура, создание"
    Ответ написан
    2 комментария
  • Как подходить к организации кода для сайта?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    Полагаю, вы должны задать себе несколько вопросов на определённую тему.

    Как пользователь будет работать с сайтом? Предполагается больше мобильных устройств? Или десктопных? Пользователь попадет на одну страницу? Или предполагается несколько последовательных страниц? Все страницы однотипны? Или каждая и выглядит и работают по разному? Какой контент должен размещаться? Предполагается ли что пользователь будет периодически возвращаться на эти страницы? Нужен ли доступ offline?

    Отвечайте на эти вопросы. А дальше думайте о том, как добиться наилучшей производительности в описанном сценарии. Например, если предполагается Сайт визитка. В этом случае, у вас есть одна или несколько практически идентичных страниц. Весь контент статический. Вероятно пользователи будут часто возвращаться на этот сайт.

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

    • Так как весь контент статический, нет нужны в каких либо CMS или серверной генерации. Весь сайт можно скомпилировать в готовые html файлы которые будут максимально быстро отдаваться клиенту.

    • Так как предполагается, что пользователи будут время от времени возвращаться на ваш сайт, нужно настроить кэширование файлов.

    • Так как на сайте предполагается размещение контактов, важно предоставить возможность доступа к сайту offline.


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

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

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Как подходить к организации кода для сайта?

    В зависимости от задач, бюджета, времени и желания заказчика.

    Мне непонятно, как в зависимости от типа сайта, мы подбираем технологию для организации кода. Как понять, какая технология и для какого сайта уместна. И вообще, какие технологии существуют?

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

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

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

    "подходы разделение кода, шаблонизация, модули, МVC, state, организация кода, биндинг, реактивное программирование, SPA, MPA, Virtual DOM, Нода, Веб-компоненты, Templates, Custom Elements API.” … Что и откуда выходит? Есть ли какие-то блок схемы, на которых это можно увидеть... книги? Можно ли это всё описать одни словом - Паттерны?"

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

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

    Да, такая блок схема есть. В зависимости от выбранного Вами языка - она называется RoadMap. К примеру вы выбрали себе язык Java или PHP - ваш путь на Java Developer Roadmap или Php developer roadmap.
    Ответ написан
    3 комментария
  • Какой ресурс является лучшим, для обучения java и javascript?

    Добрый день! Для начала нужно понимать, что java и javascript совершенно разные языки программирования.
    Если речь идёт об android-разработке на java, есть хороший курс на ютубе
    Есть уже упомянутый в ответах ресурс
    А также на coursera есть неплохие курсы по java
    Если говорить о javascript, то есть следующие интернет ресурсы:
    удобный справочник по js
    документация
    Если говорить о курсах, то у Яндекса есть платформа Я.практикум, где размещены курсы по различным профессиям, в частности по веб-разработке. Там Вас научат и фронтенд- и бэкенд- разработке на javascript, обеспечат реальными проектами и дружеской поддержкой. Если интересно, посмотрите сами
    Ответ написан
    Комментировать
  • Что необходимо знать, чтобы парсить сайты?

    GreyCrew
    @GreyCrew
    Full-stack developer
    Для того что бы парсить эффективно в первую очередь нужно понимание, как работают сайты.
    Учите технологии, протоколы http/https, типы запросов, кроссдоменные запросы (cors), взайимодействие с внутренними окнами, iframe.

    Если вы хотите парсить с помощью Javascript, то нужно знание этого языка.
    Далее необходимы понимание инструментов парсинга, как сказал один мудрец, для того что бы спарсить сайт ты должен не просто думать как сайт, ты должен стать сайтом.
    В общем используйте технологии консольного браузерного движка webkit, так больше шансов, что у вас получится спарсить нужные данные и вы не застряните на какой то заглушке или капче. Для этого подойдет что то типа puppeteer
    Ответ написан
    5 комментариев
  • Что необходимо знать, чтобы парсить сайты?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Есть 2 типа парсинга, DOM и regexp

    У каждого типа есть свои преимущества и недостатки.

    только мне интересно как вы собираетесь бороться с

    Access to fetch at 'https://ya.ru/' from origin 'chrome-search://local-ntp' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.


    Или все же Node.js ?
    Ответ написан
  • Что необходимо знать, чтобы парсить сайты?

    @BATPYIIIKOB
    PHP, JS
    Действительно... Если хочешь парсить на JS - учи JS :). Не лишним будет освоить Node.js, вот под неё то уже есть готовые библиотеки для парсинга сайтов :)
    https://tproger.ru/translations/web-scraping-node-js/
    https://slimerjs.org
    Ответ написан
    4 комментария
  • Как при прохождение цикла по объекту узнать, является ли свойством объекта другой объект?

    erge
    @erge
    Примус починяю
    Можно ли дойдя с помощью цикла до свойства hosts понять, что оно является объектом?


    typeof()

    console.log(typeof({}));
    // object


    for (var key in data) {
      if(typeof(data[key]) == "object") {
        console.log (key + " is object");
      }
    }



    Просто мне необходимо в этом случае, добавлять в тело цикла(или условия) после самого объекта(в данном случае data), или .объект или [свойство].


    вообще не понял о чем вы говорите...

    Кстати, с помощью какого метода, я смогу это всё добавлять? Мне нужно добавить либо data.hosts либо data[свойство]


    добавлять ЧТО и добавлять КУДА??

    и записи data.hosts либо data["hosts"] равнозначны.

    добавить в data.hosts еще один элемент?

    см. JavaScript: Как добавить новый элемент в объект?

    data["hosts"][2] = {name: 'web3'}

    но тут возникает неудобство с определением следующего номера ключа, т.к. это НЕ массив!
    с массивом было бы проще.

    data["hosts"][data["hosts"].length] = {name: 'web3'}
    // или
    data["hosts"].push( {name: 'web3'} );


    Upd:

    По мотивам комментариев:
    Решение.... рекурсивная функция
    const data = {
      user: 'ubuntu',
      hosts: {
        0: {
          name: 'web1',
        },
        1: {
          name: 'web2',
          null: 3,
        },
      },
    };
    
    // классически на if
    function getIn(obj, parr) {
      if(typeof(obj[parr[0]]) == "undefined") {
        return null;
      } else {
        if(typeof(obj[parr[0]]) == "object") {
          if(parr.length > 1) {
            return getIn(obj[parr[0]], parr.slice(1))
          } else {
            return obj[parr[0]]
          }
        } else {
          return obj[parr[0]];
        }
      }
    }
    
    
    // защита от дурака (когда некорректные параметры) + switch case
    function getIn(obj, parr) {
      if (
        typeof(obj) != "object" ||
        typeof(parr) != "object" ||
        parr.length == "undefined" ||
        parr.length == 0
      ) return null;
      switch (typeof(obj[parr[0]])) {
        case "undefined":
          return null;
        case "object":
          return (parr.length > 1)? getIn(obj[parr[0]], parr.slice(1)):obj[parr[0]]
        default:
          return obj[parr[0]];
      }
    }
    
    // еще короче 
    function getIn(obj, parr){
      return !(
        typeof(obj) != "object" ||
        typeof(parr) != "object" ||
        parr.length == "undefined" ||
        parr.length == 0
      )?
        typeof(obj[parr[0]]) == "object" ?
          (parr.length > 1)?
            getIn(obj[parr[0]], parr.slice(1)):obj[parr[0]] :
             obj[parr[0]] ?
              obj[parr[0]]: null:
              null
    }
    
    // и стрелочной функцией
    const getIn = (obj, parr) => !(
        typeof(obj) != "object" ||
        typeof(parr) != "object" ||
        parr.length == "undefined" ||
        parr.length == 0
      )?
        typeof(obj[parr[0]]) == "object" ?
          (parr.length > 1)? getIn(obj[parr[0]], parr.slice(1)):obj[parr[0]] :
           obj[parr[0]] ? obj[parr[0]]:null :
        null;


    UPD2:

    Решение без рекурсивного вызова
    function getIn(obj, parr) {
      let o = obj;
      for(let i=0; i< parr.length; i++) {
        o = o[parr[i]];
        if(typeof(o)=="undefined") return null;
      }
      return o;
    }
    Ответ написан
  • Как посчитать уникальные символы в строке?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Что не так:
    1. цикл в цикле – лучше обойтись одним, если можно. Поиск можно заменить на indexOf()
    2. в качестве накопителя уникальных строка как-то нетрадиционна. Обычно массив, или ключи объекта. Или, изысканно, Set – и потом будет интересовать его длина (размер, size, кардинальность : )

    const text2 = 'You know nothing Jon Snow';
    
    function countUniqChars(str) {
      return new Set(str.split('')).size;
    }
    
    countUniqChars(text2) // 13
    Ответ написан
    Комментировать
  • Как посчитать уникальные символы в строке?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const countUniqueChars = str =>
      new Set(str).size;

    или

    const countUniqueChars = str => [...str]
      .reduce((acc, n) => (acc.includes(n) || acc.push(n), acc), [])
      .length;

    или

    const countUniqueChars = str => Array
      .from(str)
      .reduce((acc, n, i, a) => acc + (i === a.indexOf(n)), 0);

    или

    const countUniqueChars = str => Object
      .keys(Object.fromEntries([].map.call(str, n => [ n, 1 ])))
      .length;

    или

    const countUniqueChars = str => str
      .split('')
      .sort()
      .filter((n, i, a) => n !== a[i - 1])
      .length;

    или

    const countUniqueChars = str =>
      (str && str.match(/(.)(?!.*\1)/g)).length;
    Ответ написан
    1 комментарий
  • Какой сервис способен создать подобную структуру?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Можно в draw.io нарисовать подобное.
    Ответ написан
    2 комментария
  • Как настроить localStorage?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Как настроить localStorage?

    Никак. Надо его использовать, а не настраивать.Это простое key-value хранилище, где value хранится в виде строки.

    он смотрит по индексу

    он отмечал

    Он прекрасно работает с простым индексом

    Не режут глаз такие вопросы? Кто ОН?

    Вот так надо: https://codepen.io/yarkovaleksei/pen/rNNZxXV
    Ответ написан
    1 комментарий
  • Почему не получается скопировать текст с при помощи clipboard?

    KickeRocK
    @KickeRocK
    FrontFinish
    var btns = document.querySelectorAll('.btn');
      var clipboard = new ClipboardJS(btns);

    Так?
    Или так
    var btns = document.querySelector('.btn');
      var clipboard = new ClipboardJS(btns);

    А нет, вот так:
    var clipboard = new ClipboardJS('.btn');
    Ответ написан
    3 комментария
  • Как удалить класс при клике на элемент jquery?

    $('#viewed').on('click', function() {
      
     $(this).removeClass("forImg");
    });


    id может быть только один
    Ответ написан
    1 комментарий
  • Доработка с таблицей datatable?

    OTCloud
    @OTCloud
    Программирование и Архитектура ПО
    $(".groups tr").click(function(){
    	$(this).css( "background", "red" );
    })


    Этот код при клике на нужную строку выделит её, раз уж вы не решаетесь показать чекбоксы, перепишите обработчик под них самостоятельно
    Ответ написан
    Комментировать
  • Как правильно импортировать файлы?

    Xuxicheta
    @Xuxicheta
    инженер
    Вам нужен не вебпак, а шаблонизатор.
    Хотя и с помощью вебпака можно, вот, похоже это ваш случай https://habr.com/ru/post/350886/
    Но я бы лучше не стал заморачиваться подобным конструктом, а сразу взял бы что-то вроде Gatsby или Nuxt.js ssr, в общем любым серверным сборщиком на базе одного из популярных фреймворков.
    Ответ написан
    1 комментарий
  • Какая необходима база, для начала обучение java?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Добрый вечер! Прежде чем перейду к основной суть вопроса, небольшое, но важное отступление. Прошу вас прочитать весь вопрос. Для меня это очень важно.


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

    Я начинающий frontend-щик. Мне необходимо изучение того java, который отвечает за web-приложения. Вопрос такой задал потому, что мой друг, который является сис-админом, услышав, что я ищу курсы для изучения java, начал меня отговаривать, сказав, что не зная Алфавита(а именно Pascal и C++ минимум), я не должен приступать к изучению java. Что это будет сложно без хороших знаний базы.


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

    У вас огромное количество вопросов, которые спрашивают элементарные вещи. Готовые ответы уже существуют. Такое впечатление, что вы даже не пытаетесь их искать.

    Я с ним отчасти, конечно согласен! Java С-подобный язык! И не понимание процессов, которые происходят внутри системы, может затруднить работу над создание в будущем web-приложении, да и вообще работы в компании.

    Джава это конечно не javascript, но это совсем не С-подобный язык. Это отдельный язык. У него есть своя платформа - java, ее нужно изучать, когда изучаете java. Понимание процессов которые происходят в системе - происходят в системе, а не в паскале или Си, поэтому их нужно понимать и изучать, но это можно делать без Си и без Паскаля

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

    Да.

    С какими именно сложностями я могу столкнуться, если пренебрегу ?

    Судя по вашей сотне простейших вопросов, на которые в интернете уже есть ответы, сложности у вас будут все время, пока вы не будете просто больше искать, читать и естественно пробовать на практике. Базовый широкой кругозор в ИТ, у которого есть термин PC Essentials - дает интуицию в понимании как оно должно быть. Но это не относится непосредственно к знанию языков низкого уровня. Это относится на широте вашего понимания различных вещей в ИТ, типа что такое регистр процессора, или как работает https, и другое.

    На мнение авторов книг и курсов по java, я полностью довериться не могу, поскольку они заинтересованные лица) Они все пишут, что можно не иметь знании. Поэтому мне очень важно ваше мнение! Прошу подсказать! Может у вас или у вашего друга и т.д. был такой опыт...

    Ладно еще курсы. Но автора книг то тут причем?
    Не нужно искать лучший курс, лучшую книгу. Чтобы стать специалистом изучать нужно в любом случае гораздо больше, чем просто курс и книгу. Почитайте 2-3-5-10 книг, и будете сами уже понимать что читать а что пропустить.
    Ответ написан
    Комментировать
  • Какая необходима база, для начала обучение java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Приступить к изучению Java можно с полного нуля. Но вот "изучение того java, который отвечает за web-приложения" требует хорошего знания core java, как минимум.
    Ответ написан
    Комментировать