Коллеги, а на чём сейчас принято писать приложения с веб-интерфейсом так, чтобы не умереть в процессе написания?
Или это невозможно и одиночкам только небольшие сайтики на PHP доступно делать?
P.S. Под веб-приложением понимается аналог десктопного с большим функционалом и, конечно же, CRUD.
Angular: в базовую поставку включено всё необходимое, не нужно собирать 100500 библиотек по закоулкам, которые через два года устареют. Легко работать с формами. TypeScript является официальным языком.
React: относительно небольшой размер кода, который будет скачивать пользователь в первый раз. Сама концепция попроще, если знаешь JavaScript, хотя когда к этому прикручиваешь Redux и прочее, всё становится не так однозначно.
Я, лично, за Angular для типового веб-приложения с CRUD.
Ну есть ещё 500 мелких фреймворков и библиотечек. Там у каждого свои тараканы, но лучше оставаться в мейнстриме.
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 нового нет, все это в том или ином виде делалось раньше самостоятельно просто сделали это в виде библиотек.
Почитай про них и увидишь что учить то по сути и не надо ничего только названия функций. Концепцию к которой ты привык они не меняют.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, sfsoft, Вы писали:
S>Рука-лицо. Не хочу PHP. Ни в каком виде, несмотря на возможность статической типизации в 7.4. S>Это не корпоративный язык, я для пет-поделок. Собственно так он и задумывался.
Ну пиши на любом другом языке. Хочешь — на node.js на TypeScript пиши, если хочется одного языка. Есть такая возможность.
S>Про то, что google не кинет. Уверен? Они прямо вот ни разу ни один свой проект не закрывали, несмотря на возмущения пользователей?
Уверенным ни в чём нельзя быть. Но конкретно в том, что Angular не закроют, я достаточно уверен. Кроме того Angular это просто куча кода на github. Будет опасность — найдутся те, кто форкнут. Закрыть его насовсем невозможно.
Здравствуйте, vsb, Вы писали:
SVZ>>А что камрады думают про Dart + Flutter?
vsb>Если хочется написать сайт и приложение из одних исходников, может быть и неплохой вариант. Там альтернативы — или React Native, который, по крайней мере раньше, был кривоватый да и React мне не нравится; либо делать приложение во WebView. А чисто для сайта я, лично, не рассматриваю.
У нас как раз мысль зреет замутить серию мобильных приложений (для Яблока и Андроида) + веб для некоторых расчетов.
Насколько это реализуемо из одних исходников — Как минимум придется по-разному реализовывать подписку.
На первый взгляд Дарт выглядит неплохо, но что там в реальности непонятно.
Видимо придется брать человека под эти задачи, вот и думаю, кого искать, с каким опытом.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, 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% оградить от платформы никакой фреймворк не сможет.
Здравствуйте, 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 в пролёте, увы.