Ага, было дело. Только вот до народа долго доходит. Написал инструкцию: 9 плюсов (хоть ни одного минуса, ито радость). Показал на примерах как это работает - и о радость! До народа доперло! Плюсов насовали :)
Мораль: даже к хорошей инструкции нужны хорошие примеры.
С этим спору нет. Но именно поэтому и не понятно, почему несколько энтузиастов должны бороться за свободу интернета в тот момент, когда львиной доле населения пофигу на это. Поэтому я и говорю, что решать эту проблему глобально - практически нет никакой надежды и смысла. Но для себя усматриваю в будущем иной путь доступа к информации. А дальше пусть каждый для себя сам выбирает, что он хочет.
На самом деле подвижки в эту сторону можно увидеть и сейчас. Довольно много кто начинает юзать GraphQL. Вот довольно занятная статья: https://habr.com/ru/post/577542/
Правда автор не умеет в GraphQL, поэтому он тыкался как слепой котенок. Но можно же посмотреть и под другим углом: с этим АПИ можно свои сервисы делать для отображения данных. Я пробовал, там данные вполне так запрашиваются.
И их становится все больше и больше. И я вижу вот что: Если АПИ будет появляться больше, то формируется рынок "Я за донаты делаю виджеты для просмотра". То есть даже используя все тот же браузер, ломается как таковой механим слежки. Если мы контролируем какие заголовки летят на АПИ, мы сами понимаем что палится, а что нет. Далее слежка уже если и появляется, то совсем на другом уровне (когда браузер полностью снифит трафик в обе стороны), но это уже какой-то откровенный АДъ начинается.
P.S. И вот если сами пользователи готовы будут хоть как-то оплачивать такие виджеты просмотра (хотя бы донатами), чтобы специалисты заботились о них, чистя их трафик, тогда и проблема частично решится.
Так на хабре уже было куча статей про то, что браузеры - это слишком сложно и мало кто вообще это теперь потянет. Примеры: раз, два и три. Да и вся затея, на самом деле, скорее всего не стоит выделки, ведь проблема по сути не в браузерах. Реклама-то нам идет с конечных сайтов. Браузер только отображает, что ему сказали. И адблоки - это война с ветряными мельницами.
Я же для себя усматриваю только один вариант: open API и low-code виджеты. Я хочу забирать информацию по АПИ (GraphQL в помощь) и сам решать как ее визуализировать.
Я разработчик с ЗП сильно выше среднего, работаю на износ.
А где вариант "Я разработчик с ЗП сильно выше среднего, работаю вообще лайтово."? Я такой :)
UPD: Ааа, там ниже вариант еще "Я красавчик! ;) Работаю мало, получаю много — завидуйте!". Немного не последовательно для меня оказалось. Думал далее все на понижение. Ну тогда ладно.
Именно что можно и нужно. Речь сейчас не о проектах типа "Подтянул джуна на совместную разработку убийцы гугла". Речь о простых базовых решениях. Так вот на первой стадии ученик еще вообще ничего не понимает. Ему даешь тестовые уроки, он читает в них теорию, кое-как подставляет решение, чтобы тест прошел успешно, и часто вообще не понимает что тут к чему (просто получается из задачи и требований вычленить что надо сделать). Но переходит к другому уроку и прошлый забывает сразу.
На второй стадии он хотя бы может уже разобрать решение, понять что здесь происходит (здесь массивы создаются, здесь сввойства объекту присываиваются и т.п. и т.п.). Он уже начинает понимать почему при работе со строками одни методы используются, а на числах другие. Но пока что он просто это понимает. Когда ему говоришь "А сделай так, чтобы результат был тот же, но использовать совсем другие методы". Вот тут он может вообще ничего не придумать. И это нормально.
Ну в про третий уровень можно и не говорить, там свобода творчества.
И все это я не просто так говорю. Я занимаюсь обучением программистов и все это довольно четко вижу на практике.
Нельзя сказать, что этот метод полностью игнорирует принцип Щю-Ха-Ри, используемый для изучения новой техники:
Здесь основная идея заключается в том, что при обучении концепции вы должны перекроить свой стиль преподования к тому, в каком понимании находится учащийся, и к тому, что прогресс следует общей схеме. На ранних этапах обучения основное внимание уделяется имитации конкретных шагов, затем акцент смещается на понимание принципов и, наконец, на самостоятельную инновацию.
Забавно :) Только вот пару дней назад своему ученику писал:
Стадия 1. Научиться делать так, как сказано.
Стадия 2. Понять почему это работает и почему это правильно
Стадия 3. Научиться это менять и делать по-другому.
Если ты не готов в Стадию 1, то ничего не получится. Я устану отвечать на разрозненные вопросы, которые никак не укладываются в общую канву.
1. Создаю свой проект под ведение всего и вся (справочник технологий, уроки, стратегии развития и т.п.) и перелинковку между ними.
2. В профиле веду таблицу-связки я-технологии (один-ко-многим) с указанием статуса использования (учу/использую/забросил и т.п.), уровень владения по 5 бальной шкале, статус заинтересованности в трудоустройстве.
3. Создаю стратегии развития, в которых перечисляю требуемые технологии какого уровня и какие еще стратегии надо освоить.
4. Веду проекты и задачи в них с указанием какие технологии требуются и какого уровня.
5. Даю возможность другим пользователям делать то же самое.
6. Завожу раздел с кучей уроков с тестовыми заданиями.
7. Менторю учеников.
Короче, все это очень долгий процесс. Сложность внедрения 10/10 :) Но постоянно держу руку на пульсе что мне надо, а что нет, изучаю что надо, практикуюсь на практике, пишу статьи про то, что знаю и т.п. Мне нравится :)
Скажу от себя, как fullstack, который в свое время довольно много работал с базами данных: ваша мысль совершенно верная. Более того, сейчас вполне есть средства для организации работы с базами данных и настройки всего так, что фронт будет очень сильно связан с бэком вплоть до типизации запросов к БД. Вот для примера моя сборка: https://github.com/prisma-cms/nextjs-nexus
1. prisma-2 обеспечивает взаимодействие с БД (MySql, Postrges и другие), в том числе управление структурой базы, миграции и т.п. При этом генерируется API вместе с типизацией. То есть прописал схему, выполнил деплой, получил типизированное бэк-АПИ.
2. nexus-js + nexus-plugin-prisma дают механизмы написания GraphQL-API в связке с типами призмы, то есть с полным соответствием бэк-АПИ.
3. Упомянутый в статье codegen позволяет стянуть Graphql-API-схему, найти все граф-запросы во фронте, провалидировать их на соответствие этой схеме и сгенерировать нужные методы и типы, и весь фронт в итоге так же покрыт типами.
И там еще некоторые мелочи, которые позволяют в итоге вести весь проект в комплексе, как будто это один сплошной фронт. И прям совсем мало есть вещей, которые можно было бы сказать "Вот это точно чистый бэк" (хотя они там конечно же есть, но все же тоже написаны на TypeScript).
Нет, аполло-клиент - это не только система состояний, но и довольно хитрая система кеширования.
1.. Не будет лишних повторных запросов на сервер, если параметры не менялись.
2.. Многоуровневый ответ разбивается в кеш на отдельные объекты, и получив новые данные объектов от сервера, вы получитет апдейт их данных во всех результатах запросов в кеше.
3.. Есть возможность указать перечень объектов-документв в параметрах запроса, чтобы по результату выполнения перезапросились все запросы с такими документами запросов.
4.. Методы типы client.resetStore() и подобные, чтобы сбросить кеш и перезапросить все активные запросы.
5.. Правила замены или "склеивания" результатов.
6.. Маппинг типов данных. К примеру, указать жиэсовский Date для графкульного DateTime. Ведь с сервера в ответах у нас всегда только строки/числа в скалярах прилетают, там объекты сложные отсутствуют. А в тайпскрипте у нас прописано, что такое-то поле - это Объект, а у нас тут строка прилетает... В аполло есть возможность задать так, что уже из кеша объект будет с типизированными полями, а не просто строки.
И еще много-много всего. Просто за год вы не успели проработать достаточно кейсов, чтобы это осознать. Я ни в коем случае не смеюсь над вами, но со временем вы узнаете больше.
Ааа. Да, есть логика.
То есть так получается?: "Дай-ка влеплю ему минус! Ай, нельзя, я могу только плюсы ставить. Ну ладно, поставлю ему плюс :(".
Сомнительно это как-то.
Я тоже никак не могу найти. К слову, поиск там вообще дикий...
Ага, было дело. Только вот до народа долго доходит. Написал инструкцию: 9 плюсов (хоть ни одного минуса, ито радость). Показал на примерах как это работает - и о радость! До народа доперло! Плюсов насовали :)
Мораль: даже к хорошей инструкции нужны хорошие примеры.
На этот счет я уже выразил свою точку зрения ниже.
К сожалению да, совсем не много. Об этом я писал чуть ниже. И да, это печалька.
С этим спору нет. Но именно поэтому и не понятно, почему несколько энтузиастов должны бороться за свободу интернета в тот момент, когда львиной доле населения пофигу на это. Поэтому я и говорю, что решать эту проблему глобально - практически нет никакой надежды и смысла. Но для себя усматриваю в будущем иной путь доступа к информации. А дальше пусть каждый для себя сам выбирает, что он хочет.
На самом деле подвижки в эту сторону можно увидеть и сейчас. Довольно много кто начинает юзать GraphQL. Вот довольно занятная статья: https://habr.com/ru/post/577542/
Правда автор не умеет в GraphQL, поэтому он тыкался как слепой котенок. Но можно же посмотреть и под другим углом: с этим АПИ можно свои сервисы делать для отображения данных. Я пробовал, там данные вполне так запрашиваются.
Так же весьма примечательный этот проект: https://rickandmortyapi.com/documentation/
И их становится все больше и больше. И я вижу вот что: Если АПИ будет появляться больше, то формируется рынок "Я за донаты делаю виджеты для просмотра". То есть даже используя все тот же браузер, ломается как таковой механим слежки. Если мы контролируем какие заголовки летят на АПИ, мы сами понимаем что палится, а что нет. Далее слежка уже если и появляется, то совсем на другом уровне (когда браузер полностью снифит трафик в обе стороны), но это уже какой-то откровенный АДъ начинается.
P.S. И вот если сами пользователи готовы будут хоть как-то оплачивать такие виджеты просмотра (хотя бы донатами), чтобы специалисты заботились о них, чистя их трафик, тогда и проблема частично решится.
Я тут недавно вообще набрел на фичу, которую пока из коробки только осел поддерживает :)
https://developer.mozilla.org/en-US/docs/Web/API/Window/setImmediate
Прям вспомнил старые добрые времена, когда outerHTML был только в нем :)
Но это тогда и не совсем альтернативный браузер. Это еще один хромиум. А речь же за полностью альтернативный браузер.
Так на хабре уже было куча статей про то, что браузеры - это слишком сложно и мало кто вообще это теперь потянет. Примеры: раз, два и три. Да и вся затея, на самом деле, скорее всего не стоит выделки, ведь проблема по сути не в браузерах. Реклама-то нам идет с конечных сайтов. Браузер только отображает, что ему сказали. И адблоки - это война с ветряными мельницами.
Я же для себя усматриваю только один вариант: open API и low-code виджеты. Я хочу забирать информацию по АПИ (GraphQL в помощь) и сам решать как ее визуализировать.
А где вариант "Я разработчик с ЗП сильно выше среднего, работаю вообще лайтово."? Я такой :)
UPD: Ааа, там ниже вариант еще "Я красавчик! ;) Работаю мало, получаю много — завидуйте!". Немного не последовательно для меня оказалось. Думал далее все на понижение. Ну тогда ладно.
Кажется я созрел, чтобы поискать альтернативный браузер... Или интернет?
Именно что можно и нужно. Речь сейчас не о проектах типа "Подтянул джуна на совместную разработку убийцы гугла". Речь о простых базовых решениях. Так вот на первой стадии ученик еще вообще ничего не понимает. Ему даешь тестовые уроки, он читает в них теорию, кое-как подставляет решение, чтобы тест прошел успешно, и часто вообще не понимает что тут к чему (просто получается из задачи и требований вычленить что надо сделать). Но переходит к другому уроку и прошлый забывает сразу.
На второй стадии он хотя бы может уже разобрать решение, понять что здесь происходит (здесь массивы создаются, здесь сввойства объекту присываиваются и т.п. и т.п.). Он уже начинает понимать почему при работе со строками одни методы используются, а на числах другие. Но пока что он просто это понимает. Когда ему говоришь "А сделай так, чтобы результат был тот же, но использовать совсем другие методы". Вот тут он может вообще ничего не придумать. И это нормально.
Ну в про третий уровень можно и не говорить, там свобода творчества.
И все это я не просто так говорю. Я занимаюсь обучением программистов и все это довольно четко вижу на практике.
Забавно :) Только вот пару дней назад своему ученику писал:
Оказывается, это ShuHaRi))
1. Создаю свой проект под ведение всего и вся (справочник технологий, уроки, стратегии развития и т.п.) и перелинковку между ними.
2. В профиле веду таблицу-связки я-технологии (один-ко-многим) с указанием статуса использования (учу/использую/забросил и т.п.), уровень владения по 5 бальной шкале, статус заинтересованности в трудоустройстве.
3. Создаю стратегии развития, в которых перечисляю требуемые технологии какого уровня и какие еще стратегии надо освоить.
4. Веду проекты и задачи в них с указанием какие технологии требуются и какого уровня.
5. Даю возможность другим пользователям делать то же самое.
6. Завожу раздел с кучей уроков с тестовыми заданиями.
7. Менторю учеников.
Короче, все это очень долгий процесс. Сложность внедрения 10/10 :) Но постоянно держу руку на пульсе что мне надо, а что нет, изучаю что надо, практикуюсь на практике, пишу статьи про то, что знаю и т.п. Мне нравится :)
Скажу от себя, как fullstack, который в свое время довольно много работал с базами данных: ваша мысль совершенно верная. Более того, сейчас вполне есть средства для организации работы с базами данных и настройки всего так, что фронт будет очень сильно связан с бэком вплоть до типизации запросов к БД. Вот для примера моя сборка: https://github.com/prisma-cms/nextjs-nexus
1. prisma-2 обеспечивает взаимодействие с БД (MySql, Postrges и другие), в том числе управление структурой базы, миграции и т.п. При этом генерируется API вместе с типизацией. То есть прописал схему, выполнил деплой, получил типизированное бэк-АПИ.
2. nexus-js + nexus-plugin-prisma дают механизмы написания GraphQL-API в связке с типами призмы, то есть с полным соответствием бэк-АПИ.
3. Упомянутый в статье codegen позволяет стянуть Graphql-API-схему, найти все граф-запросы во фронте, провалидировать их на соответствие этой схеме и сгенерировать нужные методы и типы, и весь фронт в итоге так же покрыт типами.
4. react-hook-form + yup позволяют создавать типо-защищенные формы.
5. Все написано на TypeScript
И там еще некоторые мелочи, которые позволяют в итоге вести весь проект в комплексе, как будто это один сплошной фронт. И прям совсем мало есть вещей, которые можно было бы сказать "Вот это точно чистый бэк" (хотя они там конечно же есть, но все же тоже написаны на TypeScript).
Как это все работает можно посмотреть в этом видео: https://www.youtube.com/watch?v=lO29HOY3wNw
Вероятно такие списки можно использовать как "За кого не надо голосовать"?
Нет, аполло-клиент - это не только система состояний, но и довольно хитрая система кеширования.
1.. Не будет лишних повторных запросов на сервер, если параметры не менялись.
2.. Многоуровневый ответ разбивается в кеш на отдельные объекты, и получив новые данные объектов от сервера, вы получитет апдейт их данных во всех результатах запросов в кеше.
3.. Есть возможность указать перечень объектов-документв в параметрах запроса, чтобы по результату выполнения перезапросились все запросы с такими документами запросов.
4.. Методы типы client.resetStore() и подобные, чтобы сбросить кеш и перезапросить все активные запросы.
5.. Правила замены или "склеивания" результатов.
6.. Маппинг типов данных. К примеру, указать жиэсовский Date для графкульного DateTime. Ведь с сервера в ответах у нас всегда только строки/числа в скалярах прилетают, там объекты сложные отсутствуют. А в тайпскрипте у нас прописано, что такое-то поле - это Объект, а у нас тут строка прилетает... В аполло есть возможность задать так, что уже из кеша объект будет с типизированными полями, а не просто строки.
И еще много-много всего. Просто за год вы не успели проработать достаточно кейсов, чтобы это осознать.
Я ни в коем случае не смеюсь над вами, но со временем вы узнаете больше.
А под спойлер спрятать не? То же вот люблю мемасики.