Самая первая версия кода была вполне читаемая. Я-бы ее оставил. Игры с функциями высших порядков
как-то очень странно смотрятся в аргументах методов класса.
eugenedrvnk, я не специалист в JS/Node. Но мне кажется что твой код - вполне себе нормальный.
Если тебе принципиально важно чтобы была общая логика для PostService/UserService - тогда
тебе нужно наследование. Создаешь GenericService и у него будет метод notify. И в производных
Post/User не забываешь вызывать его для всех create(...).
Еще такую задачу где есть сквозная логика решают через аспекты (AOP). Это допустим когда
тебе надо чтобы все методы логгировались или обёртывались транзакцией. Аспекты поддерживаются
по разному для них написаны разные библиотеки.
Но с моей точки зрения аспекты - это сделка с дьяволом. С одной стороны ты в проекте что-то упростил.
А с другой стороны в нем появляется куча неочевидного поведения которое новый разработчик глазами
просто не увидит. Это такое западло... Ну вобщем лучше с аспектами не связываться если на то нет
крайней необходимости. Иногда простой код лучше чем сильно хитрый.
У меня есть проект на Python под Windows для простой модификации различных игр.
Экспериментируя, я нашёл хорошую библиотеку на C# со всем, чем мне нужно.
Я желаю тебе удачи. Но такая гетерогенность языков и технологий заставит тебя делать больший объем
работы. Если-бы это была архитектура какого-то стартующего проекта в entertpise - то она бы провалилась еще
в стадии обсуждения. Архитектры не стали-бы такое принимать. Но поскольку это твой пет-проект
то можешь развлекаться.
Александр Ivanov, вот интересный ты человек. Я тебя спросил какой протокол используется для пуша. Ты не ответил а что-то добавил. И что нам теперь делать с твоей ошибкой?
Давай тогда закрывай свой вопрос если нет проблем и заводи в хабре новый по поводу LFS.
Фича кстати недоступна обычно для бесплатных проектов. И где-то ты ее активировал.
Но это все лирика. Надоело делать гипотезы.
Тут задачка не для хабра. Импортозамещение контроллеров....
Такая задачка стоит денег и под нее нужен какой-то план.
Я-бы сказал что это для фирм-интеграторов а не для вопросника. Тут - советы
дают люди вобщем-то безотвественно. Тоесть могут посоветовать плохое.
Поэтому рисуй инвентаризацию и максимально детальный план что надо
сделать.
У меня есть много претензий к правообладателям. Но я-бы никогда не стал делать всякие кряки или помогать кому-то обходил лицухи. Я по духу больше созидатель чем ломатель. Вандализм вызывает у меня неприязнь.
А ты можешь заглянуть внутрь файла hex-редактором? Потому что back это такое популярное расширение
что тут аж с десяток программных продуктов связаны https://filext.com/file-extension/BACK
oneLEAM, это попадание в десятку в 8 случаев из 10. Почти все современные юзкейсы ноутбуков или десктопов -
это веб. Если ты вдруг (!) внезапно разработчик софта или базовик (такой как я) то тебе вообще
будет безразличен UI. Посидишь в vim, emacs. Ничего страшного. Консоли - одинаковые везде.
Какие другие десктопные приложения под Linux тебе вдруг критично нужны - а ну давай расскажи. Удиви короче.
yourDaddy1337, Wataru преложил нормальное решение. Ты берешь ASCII таблицу. Смотришь коды символов цифр. Они идут от 0 до 9 линейно. Тоесть если ты код нуля (симовла ноль) прибавишь к твоему числу то как раз и выходит код символа.
Только здесь нужно добавить проверку условия что твой код тоже не превышает 9. Это я акцентирую на code-revew. Нужно делать качественно. И если тебе нужно учить что-то новое - то welcome. А решать проблемы - это больше к фрилансу. Там сидят "решайлы".
Еще вспомнил одно наблюдение. Лет 10 назад я словил баг в коде биллинга для мобильного оператора.
Функция считала услуги за интервал в сутки. Как-то так было ... WHERE dt BETWEN dbbegin AND dend
Конструкция - типичная для БД. К сожалению закрытый интервал при tumbling window
(кувыркающееся окно) захватывал лишнюю секунду. Наивное решение возникло - вычитать
одну секунду из dend. Ошибка на какое-то время ушла. После того как логика была перенесена из
бд в application внезапно я словил новый артефакт. Дата время были с точностью до милисекунд.
Как тут быть. Вот мне еще не хватало думать об ошибках округления. Или учитывать последнюю милисекунду.
Я плюнул и решил что если закрытый интевал мне не подходит то пускай будет полу-открытый. ... WHERE dt >= dbegin AND dt < dend
Этот код работал как надо для любых точностей. Математика оказалась полезнее чем ломка
башки над типами данных.