Вход | Регистрация
 

А не запилить ли API, пока #сидимдома?

А не запилить ли API, пока #сидимдома?
Я
   Asmody
 
03.04.20 - 13:12
6. свой вариант39% (9)
3. golang + gin22% (5)
7. да ну его нафиг13% (3)
1. elixir + phoenix9% (2)
5. php + lumen9% (2)
2. typescript + hapi.js4% (1)
4. python + flask4% (1)
Всего мнений: 23

Раз пошла такое #сидимдома, напишу-ка я новое API для форума, чтобы по моде, со всеми плюшками.
Есть вот такой набросок "плана работ": https://app.swaggerhub.com/apis/Asmody/mista/2.0
Это, конечно, не последний вариант, но с чего-то надо начинать.
Я планирую это всё как-нибудь реализовать почти "в прямом эфире". Стримов не обещаю, но скринкасты буду делать и выкладывать.

Дополнительные вводные:
а) данные берем из существующей БД, но изменения структуры под запретом; (это чтоб всякие "миграции" сразу исключить)
б) исходный двиг не используется;
в) запускаться это всё должно в docker;
г) ХЗ...

Осталось решить главный вопрос: на чём пилить?
У меня такие основные варианты:
1) elixir + phoenix
+++ - ФП со всеми "плюшками"; язык странный, но приятный; бешенная производительность BEAM и OTP;
--- - ФП со всеми "заморочками"; на elixir я не писал ничего сложнее "Hello, World", ну и немного подковыривал чужой код;

2) typescript + hapi.js
+++ - нода она и в Африке нода: стильно, модно, асинхронно; TypeScript более-менее адекватная версия js; документации дофига;
--- - нода, будь она неладна, со всей её инфраструктурой пакетов; документация устаревает через полчаса после написания; язык с концепцией "проще - значит неправильно" (это про js, но и ts там рядом проходил);

3) golang + gin
+++ - один бинарник; быстрый компилятор; ну и вообще - самый писк и струя;
--- - я не большой поклонник go; странные заморочки с внешними библиотеками, "вендеринг" и все такое; последний раз я шупал go года 2 назад, сейчас там, говорят, всё по другому;

ну и чтоб было:
4) python + flask
5) php + lumen
на эти пункты я не буду +++ и --- писать, мне они не очень интересны в плане саморазвития.

Java/C# не рассматриваю принципиально - не того уровня проект, чтоб так заморачиваться.
Не считаю себя мегапрофи ни в одном из предложенных вариантов, будет повод подтянуться.
В общем, какой вариант к вечеру наберет больше голосов, на том и будем писать.
   shuhard
 
1 - 03.04.20 - 13:19
(0) таки

5. php + lumen
   Hillsnake
 
2 - 03.04.20 - 13:20
конечно же питон, этож модно сковородно. !!

4. python + flask
   ДенисЧ
 
3 - 03.04.20 - 13:22
Я был бы против ноды и питона на сервере.
Остальные страшные слова мне не знакомы.
   Cyberhawk
 
4 - 03.04.20 - 13:23
А какая разница потребителю этого АПИ, на чем он будет реализован?
   Капюшон
 
5 - 03.04.20 - 13:26
Всё что не Java это полное фуфло.

6. свой вариант
   Garykom
 
6 - 03.04.20 - 13:26
Только gin лишнее!
Хватит:
    "encoding/json"
    _ "github.com/go-sql-driver/mysql"
    "github.com/gorilla/mux"
    "github.com/jmoiron/sqlx"
    "net/http"

3. golang + gin
   ДенисЧ
 
7 - 03.04.20 - 13:27
(4) А как же причастность?
   Garykom
 
8 - 03.04.20 - 13:33
Имхо выиграет пункт 7.
   Hillsnake
 
9 - 03.04.20 - 13:37
(5) джава твоя фуфло древнее. не зря котлин придумали.
   Garykom
 
10 - 03.04.20 - 13:39
(0) Замечание по API:
1. Почему только GET и POST, где PUT и DELETE ?
2. Права нужны чтобы DELETE не все могли
3. Оно аля REST(ful) или ну так вышло
4. Авторизация через OAuth 2.0 когда будет?
5. Хочу встроенную систему управления видимостью, т.е. можно юзера отправить в собственный теневой бан
   Garikk
 
11 - 03.04.20 - 13:44
(6) ...вот за такие ссылки на гитхаб, гошников надо по голове кувалдой бить...

с чем я сталкивался:
1) вот у тебя по ссылке mux последний коммит 3 months... а мы помнится заюзали такую либу в проекте... сейчас там last commit 1,5 years ago
2) разработчик либы устал-ухожуй...все..всем спасибо у всех всё развалилось
3) у провайдера или у РНК чето вклинило и всё, все релизы и ci/cd по пи..де
   Garikk
 
12 - 03.04.20 - 13:45
(11) *РКН конечно, очепятка
   arsik
 
13 - 03.04.20 - 13:56
Для бэка я бы наверно go взял.
Быстрый, сетевой, многопоточный, кросскомпиляция.

3. golang + gin
   Волшебник
 
Модератор
14 - 03.04.20 - 14:01
Да-да! И чтобы там можно было грабить корованы!
   pavig
 
15 - 03.04.20 - 14:02
(3)
Почему против Питона?
   ДенисЧ
 
16 - 03.04.20 - 14:06
(15) Притормознут. И с многопоточностью заморочки. Фласк - он однозадачный, так что руками придётся...
   mikecool
 
17 - 03.04.20 - 14:07
- А не спеть ли мне песню?
- А не спеть!
   Garikk
 
18 - 03.04.20 - 14:10
(16) а зачем на форуме многозадачность?
   Garikk
 
19 - 03.04.20 - 14:11
99% запросов к апи на форуме, это тупой селект в базу, дайбог с парой джойнов.. там нечего параллелить
   DEVIce
 
20 - 03.04.20 - 14:12
На Фузине же..., ну.
   Asmody
 
21 - 03.04.20 - 14:16
(10) Основные операции "получить" и "добавить". "изменить" и "удалить" для обычного пользователя не предусмотрено, а админский контекст я оставил "за скобками".
   ДенисЧ
 
22 - 03.04.20 - 14:18
(18) А ты прикинь, сколько одновременных запросов будет
   Asmody
 
23 - 03.04.20 - 14:18
(19) Тупой-то он тупой, но наша развесистая лапша из параметров, настроек, прав и др. заставляет порой поломать голову в сочинении запроса.
   ДенисЧ
 
24 - 03.04.20 - 14:18
(21) То есть редактирования своих сообщений не будет...
   antgrom
 
25 - 03.04.20 - 14:19
(0) только Java

6. свой вариант
   antgrom
 
26 - 03.04.20 - 14:20
(15)  ты неправ. "Пайтен"

)
   eklmn
 
27 - 03.04.20 - 14:22
Для общего кругозора и саморазвития самое оно.

git будет?

2. typescript + hapi.js
   Garykom
 
28 - 03.04.20 - 14:23
(11)
1. Подсунь нужную версию вручную
2. Бывает, это риск использования любого не встроенного, на Java и на NodeJS тоже самое
3. Рассказать тебе про свой DNS?
   Garykom
 
29 - 03.04.20 - 14:26
(21) Админы от не админов по сути только правами отличаются.
Они видят больше и могут больше - есть смысл все в одном апи делать.
И уже правами разруливать.

Например можно на своих ветках разрешать удалять свои сообщения и даже ветки сносить оффтопике чтобы хлама поменьше было.
Понятно что ветки полезные лучше оставлять но это уже право админа вернуть и приколотить ветку отняв права на нее у создателя.
   Звездочёт
 
30 - 03.04.20 - 14:28
(0) форум можно сделать и на 1С :)

6. свой вариант
 
 Рекламное место пустует
   Волшебник
 
Модератор
31 - 03.04.20 - 14:35
(30) Где же столько лицензий взять?
   Garykom
 
32 - 03.04.20 - 14:38
(31) На мобильной версии можно - там если монетизации нет то бесплатно
   Garykom
 
33 - 03.04.20 - 14:39
(32)+ Мобильная версия работает под win на x86
   Garykom
 
34 - 03.04.20 - 14:40
Кстати да. А есть же уже МП 1С клиента Миста?
   Garykom
 
35 - 03.04.20 - 14:40
(34)+ Просто почему бы не сделать некую импортозамещение slack ?
   mdao
 
36 - 03.04.20 - 14:42
предлагаю такую идею,) офиц.группа в vk , при добавлении темы/поста на форуме оно уходит в vk группу

6. свой вариант
   Звездочёт
 
37 - 03.04.20 - 14:43
(31) я имел ввиду на http-сервисах :) они не лицензируются.
   Oftan_Idy
 
38 - 03.04.20 - 14:52
Все тлен

7. да ну его нафиг
   dezss
 
39 - 03.04.20 - 15:48
(25) Вот согласен)))

6. свой вариант
   Asmody
 
40 - 03.04.20 - 16:21
(37) под 1С сильно могучий сервер нужно, серверную лицензию нужно, дорого, однако
   Asmody
 
41 - 03.04.20 - 16:22
(36) ага, и бота в телеграм.
Нафиг
   Asmody
 
42 - 03.04.20 - 16:23
(29) если операции нет, то её и нет. Нафига городить права?
   Asmody
 
43 - 03.04.20 - 16:24
Я забыл проголосовать

1. elixir + phoenix
   pechkin
 
44 - 03.04.20 - 16:31
А будет ли вам доступен cross-origin?
   vde69
 
45 - 03.04.20 - 16:46
только не флеш...

даешь аякс в массы :)

6. свой вариант
   Сияющий в темноте
 
46 - 04.04.20 - 23:32
я бы сначала посмотрел,что без проблем можно на сервак поставить.

(28) когда google начали банить большинство сайтов полегло из-за того,что скрипты напрямую с гугля тянуло.
опять же,если ссылка куда-то,то там может оказаться все,что угодно-аккаунты гита тоже ломают.
   Конструктор1С
 
47 - 05.04.20 - 05:21
(0) лучше сделай человечачью подстветку синтаксиса 1с

6. свой вариант
   Конструктор1С
 
48 - 05.04.20 - 05:24
И вообще идеально было бы, если бы можно было одним списком увидеть ответы на свои сообщения в разных темах
   rphosts
 
49 - 05.04.20 - 06:44
(0) если времени есть - пили на чём-то модном чем не владеешь (заодно и немного прокачаешься в теме), если времени не особо - пиши на том чем владеешь в совершенстве.
   rphosts
 
50 - 05.04.20 - 06:46
я-б пошёл хапнуть джина, пожалуй

3. golang + gin
   rphosts
 
51 - 05.04.20 - 06:47
(30) делал лет 5 назад чатик (с шифрованием, длекджеком и дамами)... не-не-не
   jbond
 
52 - 05.04.20 - 08:00
Только Enterprise Java Beans! Только хардкор!
   Asmody
 
53 - 05.04.20 - 11:49
(48) я не представляю зачем такая херь может понадобиться
   ДенисЧ
 
54 - 05.04.20 - 11:58
(53) У тебя фантазия слабая...
   Конструктор1С
 
55 - 05.04.20 - 17:20
(53) чтобы можно было по-быстрому просмотреть цепочку беседы и ответить ответивним. Сейчас для этого приходится нырять в каждую из тем. По-моему "мне ответили" стандартная функция для многих форумов
   Dzenn
 
56 - 05.04.20 - 18:25
Ключевой вопрос - Зачем? И с какой целью? Какую проблему решит новый API?

7. да ну его нафиг
   ДенисЧ
 
57 - 05.04.20 - 18:29
(56) А почему нет, если время есть?
   dmitryds
 
58 - 05.04.20 - 18:44
NodeJS

6. свой вариант
   dmitryds
 
59 - 05.04.20 - 18:44
(56) +1

7. да ну его нафиг
   MadHead
 
60 - 05.04.20 - 20:46
Rust + actix
Scala + play

6. свой вариант
 
 Рекламное место пустует
   Asmody
 
61 - 05.04.20 - 22:33
(58) хоть бы не палился
   Asmody
 
62 - 05.04.20 - 22:36
(60) rust я как-то воспринимаю как системный язык. это как на С веб-прилодения писать. можно, но зачем?
а scala... у меня не настолько мощный компьютер, чтобы комфортно программировать на scala. ну не хватает ей core7 + 32Гб
   Сияющий в темноте
 
63 - 05.04.20 - 23:21
(62) на Си пишется все,что угодно,особенно,если хочется скорости выполнения.
ну и многопоточность без проблем с общей памятью и стстемными семаформами.
а если копнуть в сторону подписок на завершение,то такое можно сделать,чего другим языкам и не снилось.
главное,ошибок в коде не делать,а то,порой,стний экран и все...
   MadHead
 
64 - 06.04.20 - 00:03
(62) Rust - это не С. Производительность сравнимая, но синтаксис более модный и молодежный. На сколько понимаю цель не просто написать API, но и получить полезный и интересный опыт.
Scala на любителя, но мне нравится. На счет нехватки мощности ПК не понятно. Приведите пример что конретно тормозит? Единственное, что видел как Idea может напряч железо при редактировании SBT файлов, меня - это не сильно беспокоит, но наверняка можно и отключить.
   MadHead
 
65 - 06.04.20 - 00:04
(62) https://actix.rs/ все красиво и лакончино.
   MadHead
 
66 - 06.04.20 - 00:05
(62) И для понимания зачем страдать с Rust, если можно проще и быстрее навоять на чем-то другом быстрее. https://www.techempower.com/benchmarks/
   quest
 
67 - 06.04.20 - 08:05
Для тренировки и разбирательств -  проекта самое то

1. elixir + phoenix
   ischamael
 
68 - 06.04.20 - 10:57
Поддерживаю golang, с vendoring и modules разберешься.
Для серверной части go подходит.
Goland IDE шустрый - лицензии на stepick выдают.
   ischamael
 
69 - 06.04.20 - 11:07
gin - martini-like api, чтобы это не значило!

3. golang + gin
   GANR
 
70 - 06.04.20 - 13:34
.

3. golang + gin
   Fragster
 
71 - 06.04.20 - 13:38
хз, что там у вас в планах, но очень нужна oauth2 авторизация, чтобы к сисечному конкурсу можно было запилить нормальное приложение, для участников, для жюри, для голосующих
   Fragster
 
72 - 06.04.20 - 13:39
хотя, конечно, если вы готовы логин и пароль вводить на boobzle.mista.ru, то можно и как в (0) оставить
   ДенисЧ
 
73 - 06.04.20 - 13:45
С этим oauth2 весь мир сошёл с ума...
Был в одной конторке - у них там даже корпоративный b24 на двухфакторной авторизации... И это при том, что мордой в чистый интернет он не смотрел...
   Fragster
 
74 - 06.04.20 - 14:23
(73) двухфакторная авторизация тут вообще не причем
   ДенисЧ
 
75 - 06.04.20 - 14:26
(74) Один овосчЪ.
   dmitryds
 
76 - 06.04.20 - 14:32
(61) у меня сейчас весь софт на ноде.
Сначала так же относился, пока не попробовал и не проверил в действии (до этого кроме 1С было: Java, php, C#)
   Fragster
 
77 - 06.04.20 - 14:41
(76) ну, написать то, что не течет и не падает на ноде сильно сложнее, чем на том же 1с, или тем более похапэ (который отработал и издох)
   Asmody
 
78 - 06.04.20 - 15:42
(76) [у меня сейчас весь софт на ноде] - и что, ни один из предложенных вариантов не подошёл?
   dmitryds
 
79 - 06.04.20 - 16:20
(78) о каких вариантах речь?
   Fragster
 
80 - 06.04.20 - 17:04
забыл сунуть. люмен - это ж кагбэ ларавель?

5. php + lumen
   vfire1000
 
81 - 12.05.20 - 13:02
(0) что по итогу?
   Serginio1
 
82 - 12.05.20 - 14:23
C# не рассматриваю принципиально - не того уровня проект, чтоб так заморачиваться.
А я бы заморочился и еще на Blazor на вэбассембли. Правда сейчас пока как интерпритатор кода, но к ноябрю обещают AOT
https://metanit.com/sharp/blazor/1.1.php


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.