• В чем превосходство Typescript?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Как бы это странно не звучало, но одно из главных преимуществ TypeScript - это ускорение разработки в несколько раз. Да, когда еще ничего нет - разработка незначительно замедлится, так как помимо логики нужно описать еще и типы. Но это только в начале. И это не только возможность писать большую часть кода с помощью автодополнения. Поддержка существующего кода занимает в десятки раз больше времени, чем его начальное написание. Стоит ли вложить несколько лишних часов на старте, чтоб сэкономить в последствии месяцы? Как по мне стоит.

    Еще одним огромным плюсом является возможность проектировать на типах. Познав дзен TypeScript'а я перестал пользоваться UML, так как типы дают мне ту же наглядность, но при этом еще и сокращают время, так как типы - это уже код. Ну и источник правды остается один. Бизнес требования выраженные в типах не дают отклонится от них при написании логики, исключая возможность неправильной трактовки задачи. Перенеся задачу в типы, я могу обсудить ее с коллегами и исправить неточности еще до написания кода, что опять же сильно экономит время.

    Ну и отвчечу на некоторые Ваши сомнения:
    TSLint в VSCode прям жутко тугой
    TSLint официально deprecated, вместо него стоит использовать плагин к eslint, заодно можете мой конфиг попробовать.

    Типы? Есть JSDOC
    JSDoc в плане типов не умеет и 10% того, что умеет TypeScript. Кроме того, никто в здравом уме не пишет JSDoc на приватную логику, а значит проверки типов там не будет. JSDoc не гарантирует корректность рефакторинга, а вот благодаря TypeScript я, опять таки, точно не забуду обновить JSDoc.

    многие библиотеки nodejs не имеют типов
    может лет 5 назад так и было, но сейчас встретить библиотеку без типов - скорее исключение. Если библиотека популярная, но не предоставляет типов, скорее всего их уже написал кто-то другой, достаточно просто установить одноименный модуль из npm скоупа types и все будет работать само.

    Поддержка браузерами скомпилированного кода? Да какбы почти весь JS имеет поддержку 95%+, тот же Babel уже забыл когда использовал.
    Вообще это не основная задача компилятора TypeScript, а опциональная возможность. И babel + preset-env с ней справляются гораздо лучше. И никто не мешает использовать их вместе. А еще думаю вопрос времени, когда кто-то напишет оптимизатор кода использующий информацию о типах из TS.

    Примерно в каждой второй есть инстансы, на которые смотришь - и чешешь репу - а как называется тип этой переменной в @types/?
    import {someObject} from 'some-library';
    
    type TypeFromValue = typeof someObject;
    const valueCopy: TypeFromValue = {
        ...someObject,
        type: 'overrides',
        with: 'type check',
    };
    и кстати, вот пример того что JSDoc типы не умеют.

    //@ts-check
    и почти везде останется бесполезный any.

    P.S. удачи такие типы на JSDoc описывать
    P.P.S. Еще прелести современного TypeScript невозможные у...
    Ответ написан
    8 комментариев
  • Как вставить большое количество dom-элементов на страницу?

    Snova_s_vami
    @Snova_s_vami
    JavaScript ES5-8, TypeScript, Angular
    Используйте WebWorker и вынесите туда всю логику по формированию виртуального дом, а когда сформируете перебором нужную строку, верните всё в основной скрипт и вставьте разом. Таким образом страница не будет подвисать из-за расчетов и уж тем более не следует в цикле менять DOM, 1 раз формируется, 1 раз вставляется.
    Ответ написан
    Комментировать
  • Как вставить большое количество dom-элементов на страницу?

    hzzzzl
    @hzzzzl
    container.innerHTML = [...Array(40000)].map(div => `<div> ${"содержимое дива"} </div>`).join('')


    попробовал тут на тостере, самое удивительное что даже ничего не развалилось и почти моментально выполнилось :D

    5ebfece0d7762853104469.png
    Ответ написан
    Комментировать
  • Как подобрать SSD для ноутбука?

    @kalapanga
    Добавлю, что хотя 2,5" SSD сейчас в большинстве своем имеют толщину 7 мм, но есть модели 10 мм (вроде даже 15 мм бывают). Такие модели могут в некоторые ноутбуки не встать.
    Ответ написан
    Комментировать
  • Как подобрать SSD для ноутбука?

    Jump
    @Jump Куратор тега Твердотельные накопители
    Системный администратор со стажем.
    как выбрать SSD? По каким критериям? Существуют ли разные совместимости
    Подойдет любой SSD 2,5дюйма с интерфейсом SATA.
    Лучше брать от известного производителя. В основном Samsung, если очень бюджетно надо - Kingston.

    Можно ли в ноутбук поставить одновременно SSD и HDD?
    Нужен вот такой контейнер, ставиться вместо DVD привода.

    Интересует обьем ~100Гб.
    Если оставите HDD, можно брать диски 120Гб, если HDD не будет, лучше 240Гб.
    SSD нельзя забивать под завязку, нужно чтобы постоянно было 20-30% свободного места.
    Ответ написан
    6 комментариев
  • Как подобрать SSD для ноутбука?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    как выбрать SSD? По каким критериям?
    Вам нужен 2,5" SATA SSD, производители ±пофигу, т.к. все делают достаточно надёжно. смотрите на объём/цену.
    Существуют ли разные совместимости(под мой ноут подойдет любой SSD или надо гуглить совместимость?
    Любой в формате 2,5" встанет вместо HDD, разъёмы и место в ноуте стандартные.
    Можно ли в ноутбук поставить одновременно SSD и HDD?
    Возможно, HP для ноутов делает специальный каркас, куда вставляется диск (лучше HDD, т.к. теоретически там скорость меньше), который устанавливается вместо оптического привода.

    P.S. Для владельцев других ноутбуков: существуют ноуты с отдельным mSATA/M.2 слотом специально для SSD, в такие встают соотв. формата. В 4540s 2 mSATA разъёма, в одном из которых WiFi/Bluetooth-модем, в другом под 3G-модем и он обычно не распаян и можно сказать отсутствует. mSATA закончили делать в 2013 году, SSD под них в 2014.
    Ответ написан
    Комментировать
  • Как вытащить стили конкретного класса DOM?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Можно попробовать обшарить document.styleSheets:

    const getClassStyles = className =>
      [...document.styleSheets].reduce((styles, { cssRules }) => {
        return [...cssRules]
          .filter(n => n.selectorText === `.${className}`)
          .reduce((styles, { cssText }) => {
            return (cssText
              .match(/[\w\-]+: [^;]+/g) || [])
              .map(n => n.split(': '))
              .reduce((styles, [ k, v ]) => (styles[k] = v, styles), styles);
          }, styles);
      }, {});
    
    
    const styles = getClassStyles('class-name');
    Ответ написан
    Комментировать
  • Как запретить загрузку сайта при отключенном javascript в браузере?

    @Dorothy
    Возможно,
    <html>
    <head>
    <noscript>
    <meta http-equiv="refresh" content="0;url=http://site/blank.html">
    </noscript>
    </head>
    </html>
    Ответ написан
    1 комментарий
  • Годится ли сегодняшний Adobe Muse для верстки лендингов на фрилансе?

    redpax
    @redpax
    Предприниматель
    Отлично подходит. Позволяет очень быстро делать лендинги, их всегда можно править даже самому заказчику. На лендинги СЕО трафик не идет никогда так, что на код плевать, а с совместимостью браузеров у мьюза полный порядок. Адаптивность работает отлично в послежних версиях.

    Самое главное не обращать на брызганье слюной любителей «красивого кода» и прочего дерьма которого заказчику не нужно. Вы всегда сможете свой же сайт за пару секунд визуально подправить сайт не тратя кучу времени на ковыряние в коде.

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

    Да и на счет СЕО не всё так печально, я легко выводил сайты на мьюзе в топ-1 в яндексе, яндекс очень хорошо код мьюза ботами понимает.
    Ответ написан
    Комментировать
  • Webpack к каждой html-странице подключает ВСЕ css-файлы?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    new HtmlWebpackPlugin({
        filename: 'index.html',
        template: path.resolve(PATH.source.pages, 'home/home.pug'),
        chunks: ['<тут имена необходимых чанков - например index>']
    })

    Дальше все это дело добавляется через цикл к массиву плагинов.
    https://github.com/jantimon/html-webpack-plugin#options
    Ответ написан
    1 комментарий
  • Верстка с нуля: какие основные этапы работы?

    Vlad_IT
    @Vlad_IT Куратор тега Вёрстка
    Front-end разработчик
    Использую vscode+webpack+pug+scss+бэм. Из физических инструментов, основной моник: lg ultrawide 29um69g, рядом прикручен моник от ноутбука повешенный вертикально, подключенный через универсальный скаллер.

    0) Запускаю Spotify :-)

    1) Произвожу установку всех необходимых модулей для сборки. В моем случае у меня набор конфигураций для webpack (отдельные файлы для pug, scss, static и.т.д., выбираю что нужно).

    2) Запускаю avocode, загружаю в него макет. Определяю в нем переменные (в то же время записываю их, чтобы сразу кинуть в scss файл) для цветов, размеров шрифтов и.т.д. чтобы при получении кусочков кода из него, он сразу расставлял переменные.

    3) Запускаю VS Code, открываю нужную папку.

    4) Пишу размету на Pug. Пишу с БЭМ, если встречаю повторяющийся блок, то открываю файл _mixins.pug, в который пишу миксины для повторяющихся блоков, например товаров, пунктов меню, каких-то блоков и.т.д. Pug умеет делать циклы, это ускоряет сильно.

    5) Когда HTML готов, начинаю делать каркас. Если дизайн сделан по сетке, определяю контейнеры, колонки, строки в свои классы (не пишу в html тучи классов аля col-md-6, а пишу в SCSS инклуды в нужные мне блоки, типа @include make-col(2) и.т.д.).

    6) Экспортирую картинки из Avocode. Очень делается просто, указываю папку и просто кликаю экспорт и ввожу название файла и расширения. Преимущественно для иконок использую svg, если нет svg, то ищу эту иконку в интернете (дизайнеры редко рисуют иконки сами, но зато любят вставлять их не в векторе). Если иконка простая, могу сам ее в inkscape обвести, ну и если нет, то экспортирую png в размере (благо авокод это позволяет, если конечно дизайнер не вставил в исходном маленьком размере). Когда есть контакт с дизайнером, трясу его, ибо растр это плохо для иконок.

    7) Пишу стили блоков из страницы. На этом этапе можно на втором монике параллельно смотреть футураму или
    Арчера :-) Но чаще на широком монике слева браузер, справа VS Code, а на втором монике Avocode (может меняться местами с браузером). Мысленно нарезаю страницу на блоки. Для каждого блока (БЭМ) создаю отдельный scss файл (кто-то даже для элемента создает, но мне лень), из него сразу выписываю все селекторы. Иногда могу сначала выписать все селекторы со страницы (но так лучше не делать, т.к. во время работы может потребоваться изменить что-то в разметке), но чаще для одного блока выполняю этот пункт и за ним сразу выполняю пункт 8, потом для нового блока опять 7 и 8 и.т.д.

    8) Пишу css код вместе с Avocode, у него беру нужные мне параметры (а он уже подставил в них переменные), и вставляю в мой код. И параллельно сверяю со скрином макета используя вот это расширение https://chrome.google.com/webstore/detail/perfectp...

    9) Пишу адаптив. Я не могу привыкнуть к методологии mobile-first, поэтому пишу всегда сначала полную версию сайта. Я понимаю, что это чревато всякими проблемами и это типа не модно, но мне норм.

    10) Медиа-запросы пишу прямо в блоках, для каждого блока/элемента/модификатора может быть отдельный медиа-запрос. Но для начала определяю breakpoint'ы для разных экранов (чтобы их не было сотни разных), если использую Bootstrap, то беру его breakpoint'ы.

    11) Добавляю анимашки. Даже если заказчик не просил отдельно (и если не указал отдельно, что нельзя), он все равно будет доволен, а с animate.css+onscreen.js это вообще работа 10 минут. Сложные анимации обговариваю отдельно, чтобы не сделать ненужную работу.

    11) Все снова сверяю, пишу скрипты где надо. Для слайдеров в 99% случаев подходит slick (с доработками конечно, но там хорошее API), для других случаев могу написать свой.

    12) Сдаю заказчику и жду ответа сидя на тостере/пикабу.

    Это чисто мой опыт, опыт фрилансера, не знаю, как делают другие и не могу на 100% утверждать что это 100% правильный способ. Я так и не смог заставить свой конфиг webpack правильно вставлять спрайты svg.
    Надеюсь чем-то поможет мой ответ.
    Ответ написан
    7 комментариев
  • Стек для дешевого(бесплатного) интернет-магазина?

    @awesomer
    Оно не будет бесплатным - его ведь вам предстоит разработать. А это весьма не быстро. Или ваше время бесплатное?

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

    Вполне себе полноценный хостинг с запасом - это на уровне рублей 100-150 в месяц.
    Можно и за 20-50 рублей в месяц найти, но я бы не стал, это уже риск на "мусорное" качество нарваться.

    Если из принципа - я бы взял, к примеру Google AppEngine.

    1. Есть опыт работы с ним. Это действительно очень удобно.
    2. Хорошие бесплатные лимиты. Если магазин таки наберет популярность и за бесплатные лимиты он выйдет, то заказчик будет не прочь, уже получая прибыль с проекта - оплачивать хостинг.
    3. Дают входящий бонус несколько сотен баксов. То есть магазин может выходить за бесплатные лимиты, но деньги будут сниматься с этого бонуса, то есть без реальной оплаты какое-то время.


    Минусы:

    1. Нужно разрабатывать современное приложение, по принципам типа https://12factor.net/ru/ и если вы не умеете делать такие приложения - оно будет жрать больше ресурсов сервера (и больше бесплатных лимитов, а позже и больше реальных денег).
    2. Приложение скорее всего получится сильно завязанным на AppEngine. И чтобы уйти - придется сильно переписать его. Ну или сразу нужно позаботиться об универсальности на будущее. Не думаю, что со столь удобного инструмента как AppEngine вы захотите перейти добровольно. Но все же.
    Ответ написан
    Комментировать
  • Как избавится от этого эффекта на Windows 10?

    @nikgavrilovich
    front-end developer
    В windows 10 переключение контраста темы работает по нажатию кнопок windows+ctrl+с
    Возможно что-то с клавой?
    Отключить звук: парамаетры->персонализация->темы->звук, там можно отключить.
    Или же у тебя просто железо дохнет
    Ответ написан
    Комментировать
  • Есть ли адекватный способ запускать и дебажить код из линукса по локалке на удаленной винде?

    @nikgavrilovich
    front-end developer
    Устанавливаешь все необходимое ПО и IDE на комп с Windows, создаешь проект, расшариваешь папку с проектом по сети, ставишь на linux samba, кодишь на linuxe прямо в сетевой папке, компилишь и дебажишь на компе с windows
    Ответ написан
    Комментировать
  • Можно ли как то запрашивать у сервера сайта только html?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Уточните ваш браузер. ПРактически в каждом браузере есть возможность отключение загрузки изображений.

    Например для Firefox:

    Открываете about:config, ищете опцию "permissions.default.image"
    Доступные опции
    1 -- всегда грузить
    2 -- не загружать никакие картинки
    3 -- не загружать картинки, которые грузятся third-party плагинами или скриптами.
    Ответ написан
    Комментировать
  • Как сейчас создают персонажей для игр?

    @GreatRash
    Сперва скульптинг.
    Потом хай-поли модельку дублируют и из дубликата делают лоу-поли модельку. Называется этот процесс - ретопология (retopology).
    Потом из хай-поли модельки запекается карта нормалей.
    Карта нормалей натягивается на лоу-поли модельку.
    Ну а потом всё - раскраска и отдача заказчику.
    Ответ написан
    2 комментария
  • Пример хорошего ТЗ/гайдлайна для вёрстки?

    dpmango
    @dpmango
    Лучше ТЗ верстальщику - макет. Все таки в этой профессии должна быть доля креативности и нужно удивлять клиента своими решениями. Если это не профессиональная студия из ТОП50 рейтингов, где описаны действительно необычные решения, обычно все ТЗ сводиться к пунктам вида "спасибо, кэп". Например - клик на иконкe гамбургера должен открывать мобильное меню, стрелки вперед/назад слайдера должны сменять слайды и т.д.

    По критериям - у каждого свои понимания о том что есть хорошо и плохо.

    Я руководствуюсь такими стандартами
    https://docs.google.com/document/d/1bZyzlhBvR1luYW...
    Ответ написан
    Комментировать
  • Как правильно подобрать фотоэлементы?

    Ezhyg
    @Ezhyg
    Вот, посмотри (видео да, а шо делать)
    Ответ написан
    Комментировать
  • Как скачать arch linux и как его установить?

    nurise
    @nurise
    Front-end, WordPress, Design
    Поставь Elementary OS!
    Ответ написан
    Комментировать
  • Ресурсы по современному C++?

    Самое очевидное — en.cppreference.com/w
    Ответ написан
    Комментировать