#1
|
|||
|
|||
Разработка фидософта, JNode
Nil Alexandrov написал(а) к Kirill Temnenkov в May 21 23:46:42 по местному времени:
* Originally in nino.046.local * Crossposted in ru.jnode XC jnode.local Нello, Kirill! Friday May 07 2021 22:43, from Kirill Temnenkov -> Nil Alexandrov: KT> Почти 10 лет назад Ivan Agarkov написал реализацию фидософта на Java KT> (я там сбоку немножко приложил руку в качестве коммитера). Я поглядываю на реализации фидософтин на разных ЯП, и по моим наблюдениям, JNode код написан наиболее "современно", всмысле использует современные языковые конструкци, идиомы, паттерны, ну кроме джвавовских болерплейтов, в виде всех этих геттер-сеттеров, но это джавошная отдельная тема. Jnode по коду может быть чем-то похож на более современные реализации на Golang, и я тут даже не скажу что читать проще. Написанные две независимые реализаций на Golang решали задачу (как с интересом провести пару свободных вечеров, зачёркнуто) как реализация только части функционала, и при этом особо не парясь над переиспользованием кода, т.е. хаски написан более как библиотека и сам тоссер hpt просто ей пользуется, так и JNode, там как бы библиотека, что потом собака горячая её переиспользовала. KT> Там всё на чистой жабе реализовано, включая протокол binkd. Из KT> сторонних библиотек используется только легковесная библиотека для KT> работы с базой данных (ORM). Мой респект. С одной стороны, там реализовано нечто революционное, когда мейлер формирует бандлы "на лету" сразу из базы, минуя отдельно паковку. С другой стороны, такой подход сделал невозможным интеграцию в качестве какого-либо фидошного компонента из меллер+тоссер+.. Моя самая большая претензия - отсутствие нативной "читалки" для собственных сиквел-баз, при этом нет поддержки стандартных джам и прочих. Короче, чтобы почитать феду нам надо заводить поента на какой-то классике. KT> Насколько я помню, часть жаба-кода, реализующую протокол binkd, потом KT> использовали в НotdogED для андроида. Так и было. Он сам говорил, что если бы прям совсем "с нуля" начинал бы пейсать, то может быть и не взялся, слишком грандиозный проект. KT> Там еще много приколов - фидошные сообщения в реляционной базе KT> данных, подключаемые скрипты на java script и groovy, RPC over http, KT> чтобы сообщения фигачить, подключаемые плагины с функциональностью KT> nntp и xmpp. С точки зрения разработчика софта - все нужные плюшки, но с точки зрения интеграции в фидо-экосистему (фигасе я термин придумал) прям самых базовых вещей нет, т.е. с фидошкой есть только один API - Binkp. KT> Архитектурно это всё ужас-ужас-ужас (это и сам Иван признавал) - KT> здоровенный такой монолит. Но работает, народ пользовался :-) К сожалению, как и многие проекты, аффтар наигрался, забылось. KT> У Ивана вроде до сих пор одна из нод на этом работает. Проект интересный, но в массы не пошёл. KT> У меня какое-то время нода работала на этом софте, но потом я KT> все-таки переполз на традиционные hpt + binkd. Всё-таки для старых KT> сетей лучше старый софт. Опиши свой опыт, почему тебе он "не зашёл", что такое "для старых сетей лучше старый софт"? На старом железе ява не едет или что-то идейное? KT> И, насколько я помню, из здесь присутствующих Dima Bagramov какое-то KT> время на JNODE сидел, но потом тоже перешел на более традиционный KT> софт. -1 участник фанклуба. KT> По фану можешь глянуть: https://github.com/annmuor/jnode Посматривал, знаю. Best Regards, Nil --- GoldED+/LNX 1.1.5 |