За последние 24 часа нас посетили 8135 программистов и 998 роботов. Сейчас ищут 316 программистов ...

Долой backend! Все делаем на javascript в frontend.

Тема в разделе "JavaScript и AJAX", создана пользователем lerneree, 26 мар 2018.

  1. lerneree

    lerneree Активный пользователь

    С нами с:
    16 май 2014
    Сообщения:
    42
    Симпатии:
    0
    Все мы прекрасно знаем, что есть frontend и backend, программирование на стороне клиента и сервера. Чаще всего для создания вебсайта требуются специалисты по mysql, php, javascript, html, css. Многовато будет. Вот хотя бы избавиться от пары языков например php и sql. Без sql не обойдешься, но по крайней мере можно ограничиться самым минимальным набором команд, как делает facebook, у них запросы самые простые ключ-значение.
    Далеко не каждыЙ программист знает как работает жесткий диск и что влияет на время выполнения запроса, сложный sql запрос может оказаться очень медленным.
    От php уже избавился node.js, но он работает только со своим сервером и специалистов не так много и они дорогие. Когда вся функциональность находится в одном месте это значительно упрощает сопровождение программы.
    Хотелось бы иметь такую систему:
    1 программирование происходит на стороне клиента, возможно с использованием frameworks
    Angular (2,1), React, Vue.js, Ember, Meteor.
    2 используется обычный хостинг или сервер. Фактически программист может даже не знать о серверной стороне, для него процессор оперативная память и диск сервера это всего лишь расширение браузера.
    Сделать это совсем не трудно с помощью ajax. Но защититьjavascript код принципиально не возможно так что система получается неприемлимой с точки зрения безопасности. Можно использовать препроцессор, писать все на javascript, а потом генерировать код на php (или другом языке). Препроцессор может делать много других полезных вещей:
    1 Проверять качество javascript, html, css кода.
    2 Проверять комментированность кода и вообще соблюдение принятого корпоративного стандарта программирования
    3 Проверять защищенность от sql инекций и cross site scripting.
    4 Генеририровать автоматическую настройку на размер экрана.
    5 Генерирвать простейшую мобильную версию.
    6 Оптимизировать скорость загрузки страницы. Например удалять из js библиотек (jquery, angular и тд) не используемые функции, выполнять загрузку по мере просмотра страницы. Очень эффективно также сначала загружать относительно небольщие изображения худшего качества, например, меньшего разрешения или в формате gif .
    Выглядит система примерно:
    так программист на js имет набор операторов обращения к памяти сервера: оперативной ,
    файлам на диске, базам данных, журналируемым хранилищам (redis, memcached). Можно вообще каждой переменной, массиву и объекту js поставить в соответствие переменную, массив или объект на серверной стороне с таким же именем. Те чтобы серверная часть была как можно менее заметна.
    Кое что в этом направлении уже сделано:
    Javascript parser, compiler and interpreter written in PHP
    http://sstur.github.io/js2php/demo/
    https://github.com/jakubkulhan/js2php

    Хотелось бы знать Ваше мнение по всему выщемзложенному.
    Предлагаю основать open source проект и разработать такую систему.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.415
    Симпатии:
    1.764
    google -> next.js
    --- Добавлено ---
    я зазывал людей на проект, где бабло с потолка капает. И всем насрать. А у тебя какая-то балалайка бессмысленная, отставшая от реальности лет на десять, да и тогда ненужная. Перспективненько.

    скажи, друг, какую задачу она решает?
     
  3. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    718
    -> nuxt.js )
    ты говорил базворды, типа "современные фреймворки, наксты, нексты, сокеты и куча сложных тасков? )
     
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    А что за проект?o_O
    --- Добавлено ---
    Я вот посмотрел как сейчас обстоять дела с react и на самом деле он мне больше нравиться. nuxt только для веба. То что все с коробки это хорошо но этого мало.
     
  5. lerneree

    lerneree Активный пользователь

    С нами с:
    16 май 2014
    Сообщения:
    42
    Симпатии:
    0
    в общем то я не очень то и зазываю, со временем сделаю своими людьми или же найду на западе.
    проект без прибыльный позтому open sourse
    задача:
    - программировать только на js и frontend
    - оптимизировать сайт препроцессором
    --- Добавлено ---
    спасибо за ссылку. вы работали с next.js? там есть препроцессор?
     
  6. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Такой вот интересный синтаксис. Для веба ведь ничего больше и не нужно. Ну а логика само собой выносится через connect в redux thunk в итоге чистый компонент принимающий пропсы. Ничем не хуже vue

    --- Добавлено ---
    И в next и в nuxt и webpack и ssr
     
  7. voral

    voral Активный пользователь

    С нами с:
    30 ноя 2017
    Сообщения:
    646
    Симпатии:
    104
    Предлагаю более правильный путь: генерить бейсик (на данном этапе код сможет проверить даже выпускник "калинарного техникума") - потом assembler (для выявления и оптимизации утечек памяти) - и наконец PHP...... Ура!. Избавились от программистов PHP.....

    А если серьезно: Нахрена козе такой "боян". если один фиг PHP.....
    --- Добавлено ---
    Естественно необходимо еще: сделать чтоб по железу самый плохой телефон у народа был как минимум яблокофон ХХХ, самые плохие сети в 100 км, от ближайшей деревни в захолустье была связь 3G.........
    --- Добавлено ---
    Так просто для сведения: в больших корпорациях вполне себе используются бездисковые рабочие станции, вся нагрузка ложится на сервак, а комп выполняет роль "браузера"..... И это достаточно выгодно получается.... Вы же предлагаете побольше переложить на устройства посетителя. Конечно можно встать в позу "Мы не делаем сайты для нищебродов". А по факту: я живу в самом центре города с населением 400+ тысяч. Дом стоит так удачно, что у на мобильнике у меня не редкость GPRS, H+......
    --- Добавлено ---
    Вся прелесть опенсорса в том, что если проект действительно годный, то он обрастает сообществом, если он ни кому не нужен - так и остается развлечением для автора. Так, что если видите перспективу - начинайте, освещайте изменения. Если народ проникнется - взлетит и будет вам счастье.
     
  8. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Согласен. Этот фейсбук со своим react уже достал. Сколько можно мой браузер грузить. Когда это закончиться. Батарейка тает на лету. Не хочу я динамики. И ютуб тоже в топку!
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.415
    Симпатии:
    1.764
    нет, я говорил "простые сервисы, друг от друга почти не зависят", "юзать готовые решения", "простые запросы" и "куча денег"
    но базворд один есть - писать хочу на Go
    --- Добавлено ---
    секрет. денег нет, бесплатно работать будешь? =)
    --- Добавлено ---
    он и есть препроцессор, друг

    ты так и не ответил на вопрос, какую задачу решает твой подход, какую боль закрывает. Без этих ответов не ясно вообще, что это и зачем.
     
  10. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    718
    Ну, у нас на выходе один app.css и один app.js, которые сжаты gzip, весят в таком виде сотню кб, грузятся один раз и дальше даже html не тянут, только чистые данные. shadow dom и прочее делают такие вещи даже быстрее, чем манипуляции dom напрямую всякими jquery. А ныне почти покойный appcache и грядущий service worker вообще позволяют оставить приложение частично рабочим даже без интернетов.
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.415
    Симпатии:
    1.764
    воистину так
    ромач, ты прогрессивный
     
  12. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Бесплатно ознакомлюсь с идеей. А вдруг)
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.415
    Симпатии:
    1.764
    Go выучить готов?
     
  14. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    А он еще жив? Не вижу в нем смысла.
     
  15. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    718
    у меня проблема с Go, с одной стороны он конечно классный, простой и удобный, но с другой... Ранние версии (новые я не тыкал) были какими-то адскими: что бы запилить что-то переиспользованное, тебе приходилось вместо структур везде подсовывать interface{}, для сортировки каждый раз делать свою реализацию, а пакетный менеджер складывал все пакеты не в проект, а в gopath, что рано или поздно выливается в ой. Да и вообще, слишком много лишних действий. Хотя, скорее это потому что я не знаю best practices )

    Ещё как жив.
     
  16. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    да.. что то около процента проектов на нем делается..
     
  17. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Сфера применения? Что именно я без него не смогу сделать?
     
  18. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    718
    Я скорее ленивый, если новая хренотень позволяет делать что-то лучше и быстрее почему бы её не использовать? )
    --- Добавлено ---
    расчеты, большой объем данных, скорость выполнения. По всем этим параметрам го дернет пых. Но сфера действительно узка, нужно четко понимать зачем тебе отказываться от более удобного языка.
    --- Добавлено ---
    go (имхо) заточен под микросервисы / демоны, которые должны выполнять конкретную задачу, одним образом, быстро и не сжирая ресурсы.

    не всем языкам дано стать джавой и пхпшечкой ))
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.415
    Симпатии:
    1.764
    пфф, окей
    --- Добавлено ---
    =) 1% проектов в хайлоад и на микросервисах vs 99% сайтиков на вордпресс... ну xyй знает.
     
  20. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    718
    А чем вызвана потребность в go?
     
    nospiou нравится это.
  21. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Тоже интересно
     
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.415
    Симпатии:
    1.764
    он простой как пхп. и пхпшники на него легко переходят.
    и он компилируется без зависимостей.
    на него развита экосистема всякого полезного для взрослых проектов.
     
  23. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Что я на нем могу сделать чего не смогу на node например? Которую тоже знают все пихаписты. Скорость? Ну такое себе преимущество. Спорно.
     
  24. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.415
    Симпатии:
    1.764
    блин это не вопрос даже
    на ноде дофига чего нельзя сделать того, что можно и нужно делать на go или на c#
    тут я даже не хочу начинать этот разговор. нода ваще не катит во многих случаях, где нужна строгая типизация, многопоточность и простие блин но на дёжность, да.

    про спорно скорость это ты лучше опыта хоть какого-то наберись, а потом можно будет поговорить насчет спорно :D спорно ему. Спорно это когда аргументы есть. А их у тебя нет.
     
  25. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    У тебя научился. Так какие примеры? Где тебе скорость нужна? Для игр? Там спец софт в который ты картинки перетаскиваешь и красивые истории придумываешь. Переписывать миллионы библиотек? А зачем? Где еще тебе скорость нужна? Все остальное я могу и в ноде сделать. Кстати для игр на ноде тоже полно решений.