• Как правило организовать рабочее окружение web разработчика?

    nomeNNescio
    @nomeNNescio
    WSL + Visual Studio прекрасно справится со всеми вашими задачами.
    Дополнительно посмотрите на DevilBox
    Ответ написан
    Комментировать
  • Как сделать такой "прогерссбар" при скроллинге?

    Fzero0
    @Fzero0
    Вечный студент
    Комментировать
  • Как узнать ближайшую станцию метро к определённому адресу?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Станций метро конечное число, я складывал их координаты в базу, а потом по методу гипотенузы вычислял расстояния в попугаях от нужной точки до разных станций и брал ближайшие в определенном радиусе.

    Даже можно без базы решить, будет еще быстрее и более автономно. Даже без бэкенда можно, если на то пошло.
    Ответ написан
    Комментировать
  • Какую базу данных использовать для 93 млн строк (товары)?

    @awesomer
    93 млн. - сама по себе смешная нагрузка для современных СУБД на современных компьютерах.
    Выбор СУБД зависит от того - а что именно вы собираетесь с этой базой данных делать.- в вопросе это не указано.

    Ну например, если ваша цель быстро искать в это БД товары, а ваши 30 колонок - это фильтры, то отлично подходит СУБД для именно что полнотекстового поиска (пусть вас не смущает название, для фасеточного поиска она тоже подходит отлично). Это, к примеру:

    • если вы ориентированы на скорость SphinxSearch
    • если вам нужен кластер, то это ElasticSearch
    • если вам нужны традиционные инструменты типа SQL, - то это PostgreSQL, MySQL.


    Если же задача другая - то идеальным выбором может быть и другая СУБД.
    Нужны детали.

    Думаю, дело в том, что вы увидели эти 90 млн. и решили, что нужно какое-то специфичное решение и не стали даже уточнять детали - а на деле, ничего такого в этих 90 млн. нет. А вот детали задачи - важны.

    Рассмотрим задачу быстрой перезаписи - вы имели ввиду все 90 млн. перезаписывать целиком? Не частично. А вот это будет действительно проблемой. Мало какая из СУБД способна на быстрые изменения такого объема.

    Ну и третий раз повангую - максимально быстрый доступ к данным - это если данные размещены в оперативной памяти. Один из наиболее развитых инструментов, с размещение в оперативной памяти и с функционалом СУБД - Tarantool. Быстрее, чем in-memory DB, к которым относится Tarantool - и вариантов нет.

    Но понадобится соответствующее количество оперативки.

    Если оперативки мало, то можно глянуть Aerospike. Это "почти in-memory DB". Но объемы данных могут быть огромны, при небольших запросах к оперативке. От оперативки требуется только целиком вмещать индексы, а не сами данные.

    Короче, ванговать мне надоело.

    У вас нет постановки задачи - ответить вам посему и нечего конкретного невозможно.
    Ответ написан
    Комментировать
  • Зачем IT гиганты используют много несвязанных доменов?

    Поместив HTML, XML, SVG и т.д. и т.п. файл на домене usercontent.google.com можно
    манипулировать куками домена google.com и фишить. Поэтому пользовательский контент всегда отдается с отдельных sandbox-доменов.
    Так же с отдельных доменов обычно отдается статический контент, это позволяет использовать CDN и упрощает управление кэшированием.
    Отдельный домен обычно используется для PTR-записей (например 1e100.net). Для PTR часто нужна двойная валидация, т.е. PTR должна разрешаться в имя и имя обратно в тот же IP. При этом на одном IP может хоститься много доменов и быть установлено много сертификатов, включая вайлдкарды. И наоборот, один домен может хоститься на многих IP. Чтобы исключить прямое обращение к хосту по "неожиданному" для него имени в своем домене, обычно используются PTR записи в нейтральном домене. Кстати исторически принято использовать именно домены в .net. Google так же использует 1e100.net как нейтральный домен для подписи транзитных писем, раньше для этого использовался собственно домен google.com и это приводило к забавному багу, позволявшему подделывать подписи на письмах от google.com, я рассказывал о нем на PHDays 2014.
    Географические домены исторически используют для организации региональных датацентов и ускорения доступа, например yahoo.jp физически расположен в Японии.
    Ответ написан
    6 комментариев
  • С чего начать изучение Laravel?

    Adobe
    @Adobe
    php developer
    Лучше всего начать с английского. А вообще на laracast.com все отлично излагается.
    Ответ написан
    3 комментария
  • С чего начать изучение Laravel?

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

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Зона применения jQuery стала несколько уже, не стала меньше.
    Забывать про него пока рано.
    Да, благодаря тому же jQuery, "подрос" сам JS.
    Да, для сложных клиентских приложений придуманы фреймворки, но даже используя их, иногда проще что-то делать с jQuery.
    И да, подключить jQuery ради одного селектора сегодня уже нет необходимости, ка не было ее и 15 лет назад, когда jQuery только родился.
    Для каждого инструмента - свое применение, профессионала отличает правильный выбор инструмента и грамотное его использование.
    Уверен - jQeury еще поживет. Не знаю насколько долго, но в ближайшие 2-3 года ему еще найдется применение.
    Ответ написан
    Комментировать
  • Как правильно вставить большую строку в div чтобы работало в браузере edge and IE 11?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Это конечно не очень хороший совет, но попробуйте через jquery, у него вроде совместимость с разными браузерами это фича.
    В интернетах пишут что этот специфический глюк обходится заранее созданным элементом div, в него все фигачется через innerHTML, и этот див уже аппендится куда надо.
    var newdiv = document.createElement("div");
    newdiv.innerHTML = someString;
    var container = document.getElementById(id);
    container.appendChild(newdiv);
    Ответ написан
    1 комментарий
  • Подскожите литературу с алгоритмом торговли ценными бумагами?

    Сомневаюсь что вы найдете что либо существенное.
    Как человек, который занимается тестирование данной сферы, могу сказать что данные которые вы просите являются самым ценным что есть на бирже)) Все можно написать и протестировать... Но вот ядро/алгоритмы вам никто не покажет.

    С удовольствием буду следить за вопросом. Ну а вдруг всплывет что-то интересное)
    Ответ написан
    Комментировать
  • Какой фреймворк выбрать для обучения?

    @novrm
    Представьте, что вы пришли в большую университетскую библиотеку и говорите: "Я желаю в кратчайшие сроки стать самым-самым главным библиотекарем это библиотеки, Желаю знать структуру библиотеки, разделы, все книги, все книги по разделам, ориентироваться во всех авторах, их деятельности, жанрах... А также знать всех читателей, их нравы, повадки и приоритеты... Также нужно мне обладать информацией об связях библиотеки с другими учреждениями, быть в курсе лекций, симпозиумов, конференций"...
    И все это в кратчайшие сроки ибо время поджимает.
    Понимаете ли вы тогда, что некоторые люди к этому идут не один год?

    Теперь по существу.
    Symfony - самый тяжелый в изучении, и рекомендовать его начинающему я бы не стал.
    Zend Framework - тот же Symfony но с меньшим набором "плюшек" и меньшим сообществом. Порог вхождения - легче.
    Lavarel, Yii - легкое вхождение за счет уже готового кода, что сыграет с вами потом плохую шутку. Ибо любой framework по замыслу программистов - это минимальный скелет, на который вам нужно самостоятельно наращивать мышцы...

    Еще короче - выбирая framework вы оказываетесь в ситуации дистрофика, которому нужно выиграть на конкурсе Мистер Юниверс.

    Спросите сто раз нужно ли вам это.
    Ответ написан
    Комментировать
  • Как запоминать код, который писал две недели назад?

    @nirvimel
    1. Как писать много кода, оставляя его простым, как в начале?
    2. Также советую прочесть "Совершенный код" С.Макконнелла.
    3. Качественный код не требует того, чтобы его запоминали. Качественный код может быть забыт сразу после того, как он начнет проходить все тесты. Держать в голове нужно только программные интерфейсы, но даже не все, а только, используемые на текущем уровне абстракции.
    Ответ написан
    Комментировать
  • Что изучить первым и выгоднее Angular, Angular 2 или React?

    feligz
    @feligz
    JS/TS developer
    Лихо вы TypeScript в минусы записали ) Статическая типизация сильно повысит надежность вашего кода, сделает его более структурированным и понятным. Многие ошибки будут вываливаться уже на стадии компиляции. Так что TS это большой плюсище.
    Ответ написан
    Комментировать
  • Паттерны проектирования?

    @vkdv
    Паттерны - это реальные инструменты, позволяющие добиться реализации концепции объектно-ориентированного проектирования и принципов SOLID

    Ссылка на SOLID

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

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

    При этом :
    1) Никак не изменяется код класса "Комментарий" (кроме подключения интерфейса) и в будущем мы добавляем поведения без изменения класса + стабильность системы, гибкость
    2) Каждый класс имеет свое четкое назначение + легкость модификации, порядок
    3) Комментарии наследуют некоторое поведение, путем подключения поведения, но также могут поступать любые другие классы - сущности (посты, блоги итп) , то есть интерфейс и реализация лайков универсальна, и весь функционал работы лайков находится только (строго!!!) в одном месте + легкость модификации, Универсальность, стабильность, интуитивная понятность

    Из википедии :

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

    Оттуда же про SOLID

    Избавиться от "признаков плохого проекта"[4] помогают следующие пять принципов SOLID:

    Принцип единственной ответственности (The Single Responsibility Principle)
    Существует лишь одна причина, приводящая к появлению класса.

    Принцип открытости/закрытости (The Open Closed Principle)
    «программные сущности … должны быть открыты для расширения, но закрыты для модификации.»

    Принцип подстановки Барбары Лисков (The Liskov Substitution Principle)
    «объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения правильности выполнения программы.»

    Принцип разделения интерфейса (The Interface Segregation Principle)
    «много интерфейсов, специально предназначенных для клиентов, лучше, чем один интерфейс общего назначения.»

    Принцип инверсии зависимостей (The Dependency Inversion Principle)
    «Зависимость на Абстракциях. Нет зависимости на что-то конкретное.»
    Ответ написан
    2 комментария
  • Есть ли обучение по созданию push уведомлений?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Если ты не понимаешь теорию, значит на практике у тебя ничего стоящего не выйдет.
    А так вполне себе хорошая теория тут https://developer.mozilla.org/en-US/docs/Web/API/P...
    И она содержит ссылочку на вполне себе реальный пример https://github.com/chrisdavidmills/push-api-demo

    Как эта штука используется на практике.

    После того, как вы определились с тем, что вы собираетесь отправлять, вам нужно сделать несколько вещей.
    1. Запросить у пользователя разрешение на отправку уведомлений. Делается это через Notification.requestPermission. Если мы получили подтверждение, то идем дальше, если нет, забиваем на это дело. Здесь нужно быть очень осторожным и делать это ненавязчиво.

    2. Создать фоновый обработчик, который будет принимать push-уведомления от сервера. Это делается через вызов navigator.serviceWorker.register. Например так https://github.com/chrisdavidmills/push-api-demo/b...
    Он подписывается на канал. Канал - это как комната в чате.

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

    3. Написать сервер уведомлений. У nginx есть хороший модуль. Он будет обслуживать клиентов.

    Рекомендую к просмотру https://www.youtube.com/watch?v=5A5Iw9z6z2s
    Ответ написан
    7 комментариев
  • Знания Junior php разработчика?

    @Alzasr
    Твой уровень знаний, если ты все честно описал, достаточен для джуниора и мб даже больше. Как я понял, ты хорошо обучаешься. Можешь легко идти на вакансии джуниоров, а через полгода-год стать мидлом. Если ты живешь в Ижевске, обращайся, готов тебя взять, правда после общения с HR, к себе в отдел.
    Ответ написан
    Комментировать
  • Где смотреть UI элементы?

    tyukavin_denis
    @tyukavin_denis
    web developer
    Ответ написан
    Комментировать
  • Где смотреть UI элементы?

    Antonoff
    @Antonoff
    Разработчик
    Ответ написан
    Комментировать
  • Где смотреть UI элементы?

    Тут попадаются - https://w3layouts.com
    Ответ написан
    Комментировать
  • Как реализовать быстрый поиск в массиве объектов по значению свойства?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Не сваливать все в объект, а сразу писать в IndexedDB, а необходимые для оперативной обработки данные, например выборку по городу, брать средствами работы с IndexedDB.

    Для браузеров не умеющих работать с IndexedDB есть библиотека PouchDB, менее шустрая, чем нативные встроенные в браузер реализации (UPD: если их нет, в противном случае - используются нативные), но даже на старых браузерах (IE7,8) будет выигрыш, как по удобству манипуляции данными, так и по скорости.

    UPD: обращение к IndexedDB НЕ блокирует интерфейс и может использоваться в воркерах (см. issues на странице).

    UPD: кстати, PouchDB :
    • сам использует IndexedDB, когда она доступна, в старых WebKit, в т.ч. на Android использует WebSQL, когда совсем плохо (старые IE) - тоже чего-нибудь придумывает, как минимум - localStorage;
    • дает возможность работать с серверными данными, как c локальными, когда они доступны, идеальное решение для снижения заморочек с созданием "оффлайн" приложения или одностраничника с "миллионом записей", проводя "репликацию";
    • все танцы с бубном вокруг индексов - фоновая, абсолютно прозрачная задача.
    • если поставить на сервере CouchDB или эмулировать ее Rest api - можно забирать всех "Вась из Омска" прямо с сервера одним вызовом
    UPD: И когда, наконец, народ научиться подбирать подходящий инструмент для работы, а не валить лес пилкой для ногтей и не вскапывать грядки карьерным самосвалом?
    Ответ написан
    1 комментарий