Здравствуйте, sfsoft, Вы писали:
S>Здравствуйте, javacoder, Вы писали:
J>>так на чем старый то фронт был?
S>Старый фронт (и бэк) успешно работает без малого 20 лет на Delphi (обычное Windows приложение). И дальше будет работать, ибо пользователей все устраивает (рынок не хомяковый). S>Но хочется расширить клиентскую базу за счет добавления веб-интерфейса и облака. Для тех, кто не хочет свою инфраструктуру поддерживать, но решение хочет.
Т.е. это тяжелое корпоративное приложение с кучей форм, полей и прочего. На Delphi. Ага.
Тогда стоит взглянуть на это: https://js.devexpress.com/
А может быть сразу и на это:
devexpress.com/products/net/controls/asp/core.xml
Раз вам так PHP не нравится. Здесь получится сразу и беэкнд, и форнтенд, и облака от Микрософта можно использовать.
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>>>А что камрады думают про Dart + Flutter?
vsb>>Если хочется написать сайт и приложение из одних исходников, может быть и неплохой вариант. Там альтернативы — или React Native, который, по крайней мере раньше, был кривоватый да и React мне не нравится; либо делать приложение во WebView. А чисто для сайта я, лично, не рассматриваю.
SVZ>У нас как раз мысль зреет замутить серию мобильных приложений (для Яблока и Андроида) + веб для некоторых расчетов. SVZ>Насколько это реализуемо из одних исходников — Как минимум придется по-разному реализовывать подписку.
Я использовал React Native для iOS + Android. В принципе всё получилось. Какие-то кусочки писал на Java/Objective C, но этого немного было. Но React Native для мобилки и React для веба это две разные вещи. Часть кода получится сделать общим, но всё, что относится к, непосредственно, выводу разметки будет разным, т.к. React выдаёт HTML, а React Native некий специальный язык разметки, из которого потом фреймворком рисуется интерфейс на родных для платформы элементах.
SVZ>Видимо придется брать человека под эти задачи, вот и думаю, кого искать, с каким опытом.
Однозначно должен быть опыт разработки приложений и на Android и на iOS. Пусть поверхностный, но чудес не бывает и на 100% оградить от платформы никакой фреймворк не сможет.
S>А кто-нибудь на Java пробовал писать корпоративный софт с веб-интерфейсом? На JSF, например?
JSF практически помер.
Мы достаточно успешно используем Kotlin Multiplatform. Приложение состоит из 2-х частей, бэкенд с REST API (SpringBoot или Quarkus, код написан на kotlin), frontend на kotlin-react (компилится в javascript).
За счёт того, что и там и там Kotlin (а ещё он у нас на Android и iOS) — можно пошарить все DTO и часть логики в общей либе.
Недостатки: финальный javascript получается довольно жирным, т.е. больше пригодно для корпоративщины и "админок", чем для посещаемых сайтов.
Angular: в базовую поставку включено всё необходимое, не нужно собирать 100500 библиотек по закоулкам, которые через два года устареют. Легко работать с формами. TypeScript является официальным языком.
React: относительно небольшой размер кода, который будет скачивать пользователь в первый раз. Сама концепция попроще, если знаешь JavaScript, хотя когда к этому прикручиваешь Redux и прочее, всё становится не так однозначно.
Я, лично, за Angular для типового веб-приложения с CRUD.
Ну есть ещё 500 мелких фреймворков и библиотечек. Там у каждого свои тараканы, но лучше оставаться в мейнстриме.
Здравствуйте, sfsoft, Вы писали:
S>Рука-лицо. Не хочу PHP. Ни в каком виде, несмотря на возможность статической типизации в 7.4. S>Это не корпоративный язык, я для пет-поделок. Собственно так он и задумывался.
Ну пиши на любом другом языке. Хочешь — на node.js на TypeScript пиши, если хочется одного языка. Есть такая возможность.
S>Про то, что google не кинет. Уверен? Они прямо вот ни разу ни один свой проект не закрывали, несмотря на возмущения пользователей?
Уверенным ни в чём нельзя быть. Но конкретно в том, что Angular не закроют, я достаточно уверен. Кроме того Angular это просто куча кода на github. Будет опасность — найдутся те, кто форкнут. Закрыть его насовсем невозможно.
Коллеги, а на чём сейчас принято писать приложения с веб-интерфейсом так, чтобы не умереть в процессе написания?
Или это невозможно и одиночкам только небольшие сайтики на PHP доступно делать?
P.S. Под веб-приложением понимается аналог десктопного с большим функционалом и, конечно же, CRUD.
Angular? Хм. Ему всего 4 года, если верить Вики, а уже 9-я версия вышла. А 8-я месяц назад.
А через пару лет он умрёт. Лично мне жалко своего времени на обучение этому. "Не фефнадцать" уже.
Да и трёхзвенка тут вырисовывается. Бэкенд нужно на чем-то другом рисовать. И делать API. Зоопарк, однако. И одиночке не осилить.
Здравствуйте, vsb, Вы писали:
vsb>Я, лично, за Angular для типового веб-приложения с CRUD. vsb>Ну есть ещё 500 мелких фреймворков и библиотечек. Там у каждого свои тараканы, но лучше оставаться в мейнстриме.
А что камрады думают про Dart + Flutter?
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, sfsoft, Вы писали:
S>Angular? Хм. Ему всего 4 года, если верить Вики, а уже 9-я версия вышла. А 8-я месяц назад.
Какая разница, как версия называется? Сейчас мода такая, каждые полгода новую версию делать. Если быть педантом, то первая версия вышла 10 лет назад, в 2010 году, но во второй версии они сломали совместимость, поэтому тут спорный вопрос, что считать первой версией.
S>А через пару лет он умрёт.
Маловероятно. В гугле много на него завязано.
S>Лично мне жалко своего времени на обучение этому. "Не фефнадцать" уже.
Ну дело ваше.
S>Да и трёхзвенка тут вырисовывается. Бэкенд нужно на чем-то другом рисовать. И делать API. Зоопарк, однако. И одиночке не осилить.
Не вижу в чём проблема, на том же PHP не должно быть сложностью нарисовать API. Благо, отдавать JSON куда проще, чем отдавать HTML.
S>Коллеги, а на чём сейчас принято писать приложения с веб-интерфейсом так, чтобы не умереть в процессе написания? S>P.S. Под веб-приложением понимается аналог десктопного с большим функционалом и, конечно же, CRUD.
Vue посмотри, что-то между ang и react и скоро 3 версия выходит, там много плюшек и typescript поддержка получше будет.
Здравствуйте, Stanislav V. Zudin, Вы писали:
vsb>>Я, лично, за Angular для типового веб-приложения с CRUD. vsb>>Ну есть ещё 500 мелких фреймворков и библиотечек. Там у каждого свои тараканы, но лучше оставаться в мейнстриме.
SVZ>А что камрады думают про Dart + Flutter?
Хз, для меня это пока эксперимент гугла. Сами они вроде на нём ничего не делают. Ходят слухи, что эти технологии лягут в основу следующей операционной системы от гугла на основе фуксии, но понятно, что это только слухи и что там будет, не известно.
Если хочется написать сайт и приложение из одних исходников, может быть и неплохой вариант. Там альтернативы — или React Native, который, по крайней мере раньше, был кривоватый да и React мне не нравится; либо делать приложение во WebView. А чисто для сайта я, лично, не рассматриваю.
Здравствуйте, vsb, Вы писали:
vsb>Не вижу в чём проблема, на том же PHP не должно быть сложностью нарисовать API.
Рука-лицо. Не хочу PHP. Ни в каком виде, несмотря на возможность статической типизации в 7.4.
Это не корпоративный язык, я для пет-поделок. Собственно так он и задумывался.
Про то, что google не кинет. Уверен? Они прямо вот ни разу ни один свой проект не закрывали, несмотря на возмущения пользователей?
Здравствуйте, sfsoft, Вы писали:
S>Лично мне жалко своего времени на обучение этому. "Не фефнадцать" уже.
Хватит ныть Я сперва тоже подумал: ё-маё, новый язык (TypeScript). Но что делать, запустил VS Code и вперед. К тому же, сейчас куча ресурсов, туториалов, масса инфы, много вопросов отвечено на stackoverflow. Вспоминаю, как писал под винду на Visual C++ 6.0 без инета, с MSDN на диске (дисках?). Сейчас просто все шустрее стало.
Здравствуйте, javacoder, Вы писали:
J>Vue посмотри, что-то между ang и react и скоро 3 версия выходит, там много плюшек и typescript поддержка получше будет.
А без java/type script'а ничего не придумано в обществе? Хочу чтобы компилятор отлавливал все мои очепятки и прочее. А не в runtime аппликейшн падал с ошибкой.
Здравствуйте, sfsoft, Вы писали:
S>Angular? Хм. Ему всего 4 года, если верить Вики, а уже 9-я версия вышла. А 8-я месяц назад. S>А через пару лет он умрёт. Лично мне жалко своего времени на обучение этому. "Не фефнадцать" уже.
Ничего в этих Angular, React нового нет, все это в том или ином виде делалось раньше самостоятельно просто сделали это в виде библиотек.
Почитай про них и увидишь что учить то по сути и не надо ничего только названия функций. Концепцию к которой ты привык они не меняют.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, vsb, Вы писали:
SVZ>>А что камрады думают про Dart + Flutter?
vsb>Если хочется написать сайт и приложение из одних исходников, может быть и неплохой вариант. Там альтернативы — или React Native, который, по крайней мере раньше, был кривоватый да и React мне не нравится; либо делать приложение во WebView. А чисто для сайта я, лично, не рассматриваю.
У нас как раз мысль зреет замутить серию мобильных приложений (для Яблока и Андроида) + веб для некоторых расчетов.
Насколько это реализуемо из одних исходников — Как минимум придется по-разному реализовывать подписку.
На первый взгляд Дарт выглядит неплохо, но что там в реальности непонятно.
Видимо придется брать человека под эти задачи, вот и думаю, кого искать, с каким опытом.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, sfsoft, Вы писали:
S>А без java/type script'а ничего не придумано в обществе? Хочу чтобы компилятор отлавливал все мои очепятки и прочее. А не в runtime аппликейшн падал с ошибкой.
А что ещё можно придумать на фронтенде, если броузер только JS и понимает?
TypeScript — лучшее, что сейчас есть. Компилятор большую часть проблем отлавливает.
Но это не Java или .NET (но и не голый JS). Чем богаты, тем и рады. Формошлёпы должны страдать. Присоединяйтесь к нам)
На бэке либо Node.js.
Тут welcome to callback hell — я так и не понял, как ловить exception'ы в коллбеках или как вызвать асинхронную функцию внутри синхронной (иногда коллбек в чужом API должен сразу синхронно вернуть результат, а вам надо дернуть URL — и приехали). Удобочитаемость кода вообще на нуле. mysqlQuery(sql, () => { your_code }); А теперь представьте вложенные query.
Либо Java — уже лучше, даже норм, если в отрыве от фронта, но свои "прелести" с невозможностью парсить и создавать free-form JSON, хотя, может, оно и к лучшему.
---
Для себя выбрал TypeScript + React / Java + Spring Boot
А если планируете потом проект передать помощнику, всё же лучше использовать один язык (TypeScript + React / Node + TypeScript + Express).
Но хорошего инструментария для веба по-прежнему нет. Вот нет и всё.
S>А без java/type script'а ничего не придумано в обществе? Хочу чтобы компилятор отлавливал все мои очепятки и прочее. А не в runtime аппликейшн падал с ошибкой.
Typescript компилятор много чего ловит.
Жизнь не обязана доставлять удовольствие. Достаточно отсутствия страданий.
Здравствуйте, sharez, Вы писали:
S>Тут welcome to callback hell — я так и не понял, как ловить exception'ы в коллбеках или как вызвать асинхронную функцию внутри синхронной (иногда коллбек в чужом API должен сразу синхронно вернуть результат, а вам надо дернуть URL — и приехали). Удобочитаемость кода вообще на нуле. mysqlQuery(sql, () => { your_code }); А теперь представьте вложенные query.
Советую разобраться с асинхронными функциями. async/await решают все проблемы коллбеков. А асинхронную функцию синхронно нельзя дёрнуть по определению и коллбеки тебе тут никак не помогут. Впрочем это и хорошо, в однопоточном движке блокировать поток не к добру.
Здравствуйте, vsb, Вы писали:
vsb>Здравствуйте, sharez, Вы писали:
S>>Тут welcome to callback hell — я так и не понял, как ловить exception'ы в коллбеках или как вызвать асинхронную функцию внутри синхронной (иногда коллбек в чужом API должен сразу синхронно вернуть результат, а вам надо дернуть URL — и приехали). Удобочитаемость кода вообще на нуле. mysqlQuery(sql, () => { your_code }); А теперь представьте вложенные query.
vsb>Советую разобраться с асинхронными функциями. async/await решают все проблемы коллбеков. А асинхронную функцию синхронно нельзя дёрнуть по определению и коллбеки тебе тут никак не помогут. Впрочем это и хорошо, в однопоточном движке блокировать поток не к добру.
Да там всё можно, но геморрой страшный.
Написать цикл:
for (let i=0; i<10; i++)
mysqlQuery("INSERT ... i ... ");
если mysqlQuery работает асинхронно и даёт коллбек — не так очевидно, как может показаться. Обработка ошибок будет тем ещё квестом (и лапшекод-ревью). С учетом отсутствия Checked Exceptions — потенциально ненадежный код с забытыми проверками.
Кроме того, если это всё внутри функции-коллбека, которая должна немедленно вернуть true/false — то сразу стоп.
Такое возможно во всех языках, где подобные вызовы синхронные, но, кажется, совершенно невозможны в JS/TS.
Спойлер: конкретно для mysqlQuery в NPM есть решение, вызывающее нативный код для синхронных mysql queries, но местами глючит.
Впрочем, деление на асинхронные/синхронные функции там, где они всё же есть, внутри всяких fs-extra, тоже красоты не добавлют (мягко говоря). Я про mkdir(callback)/mkdirSync().
Ах да, половина библиотек используют промайсы, половина — обычные коллбеки, а есть либы, которые их миксуют (!).
Это всё просто крик души
Я жду-недождусь, когда мой кешфлоу будет достаточным для найма программиста на фулл-тайм. В принципе, инструментарий криво-косо позволяет добиться целей (колотить бабло), но удовольствия как программисту это всё не доставляет ни капли. Т. е. постоянно возникает желание заблекбоксить программирование на JS/TS целиком, переместившись на уровень составления алгоритма для человеков-программитстов
Здравствуйте, s_aa, Вы писали:
S>>А без java/type script'а ничего не придумано в обществе? Хочу чтобы компилятор отлавливал все мои очепятки и прочее. А не в runtime аппликейшн падал с ошибкой.
_>Typescript компилятор много чего ловит.
Всё кроме checked exceptions и мест, где неявно заданы типы (и их невозможно вывести в compile-time), или тип явно определен как "any", включая free-form JSON.
Половина кода из NPM в пролёте, увы.
Здравствуйте, Grayscaler, Вы писали:
G>Сейчас всё меняется молниеносно. Надо приспосабливаться.
Говорить проще, чем делать. Тем более если это все одно и тоже, но с худшим качеством. Нет сил учить ещё один "новый" фрамеворк только потому, что в старом была одна проблема: nih.
Про удобство дебага и многолетнюю поддержку даже думать не хочу. Сомневаюсь, что она вообще возможна. Придётся переписывать. Под новый фрамеворк.
S>P.S. Под веб-приложением понимается аналог десктопного с большим функционалом и, конечно же, CRUD.
кстати если на бекенде с java знаком — посмотри jhipster, это типа генерилка crud веб интерфейсов на bootstrap и с выбором js фронта из основной тройки(ang/react/vue)
S>Говорить проще, чем делать. Тем более если это все одно и тоже, но с худшим качеством. Нет сил учить ещё один "новый" фрамеворк только потому, что в старом была одна проблема: nih. S>Про удобство дебага и многолетнюю поддержку даже думать не хочу. Сомневаюсь, что она вообще возможна. Придётся переписывать. Под новый фрамеворк.
так на чем старый то фронт был?
и сейчас кстати в хроме/фф весь js нормально дебажится (через source map вроде как)
Здравствуйте, javacoder, Вы писали:
J>так на чем старый то фронт был?
Старый фронт (и бэк) успешно работает без малого 20 лет на Delphi (обычное Windows приложение). И дальше будет работать, ибо пользователей все устраивает (рынок не хомяковый).
Но хочется расширить клиентскую базу за счет добавления веб-интерфейса и облака. Для тех, кто не хочет свою инфраструктуру поддерживать, но решение хочет.
Здравствуйте, rp5, Вы писали:
rp5>devexpress.com/products/net/controls/asp/core.xml rp5>Раз вам так PHP не нравится. Здесь получится сразу и беэкнд, и форнтенд, и облака от Микрософта можно использовать.
Вот это уже интереснее, спасибо.
А кто-нибудь на Java пробовал писать корпоративный софт с веб-интерфейсом? На JSF, например?