Vlad
Будет просто функция
Alexandr
@iamstarkov Понятно, спасибо!
Sergey
@iamstarkov ну и императивное.
Sergey
@iamstarkov я сильно сомневаюсь что замена "императивного" require на "декларативный "import" решает проблему того, что ты подключаешь)
Sergey
и добавляет чистоты
Vlad
не меняет
Vlad
но я и предлагаю не полагаться на внешний файл с константами в написании необходимой функции
Sergey
хотя конечно возможность подгружать в рантайме модули опасна
Vlad
а сделать её более гибкой
Sergey
> но я и предлагаю не полагаться на внешний файл с константами в написании необходимой функции а если один и тот же набор констант используется в разных модулях?
Serhii
Можно грузить модули с % шансом что клиенту они понадобятся
Serhii
Кек
Sergey
объеденить их в один модуль нет возможности так как будет нарушение SRP
Sergey
я к тому что это константы, они от того что в отдельном модуле константами быть не перестают. А константы можно воспринимать как тупые значения. А стало быть они чисты
Sergey
и модуль чист
Vlad
в целом ты прав
Vlad
но если функцию можно определить без полагания на тот файл, то лучше так сделать
Sergey
ну это так же
Sergey
но это означает что у тебя нет и необходимости в этих константах, так ведь?)
Sergey
ибо уж лучше модуль + константы чем волшебные значения
Sergey
а если без констант можно обойтись то и вопроса об их подключении не возникает. Ну и если константы нужны только в этом модуле то так же нет вопросов о необходимости их куда-то выносить
Vlad
а потом из неё на дерайвить конечных функций const isCodeOk = isOk(RESPONSE_CODE_OK) const isHealthCheckOk = isOk(HEALTHCHECK_CODE_OK)
Sergey
ну это ж уже устранение проверок)
Sergey
ну мол ты таким образом операции отдельные превращает в константы, к слову прикольная штука...
Sergey
нам похапэшникам о таком только мечтать(
Sergey
пойду на ноде попишу
Sergey
в php добрая половина разработчиков до сих пор не понимают чем плохи глобальные переменные... у нас только два скоупа - глобальный и локальный...(
Alexandr
const verifyCode = constant => { return R.pipe( R.prop("statusCode"), R.equals(constant) ) } const isOkCode = verifyCode(RESPONSE_CODE_OK) const isServerErrorCode = verifyCode(RESPONSE_CODE_SERVER_ERROR)
Sergey
@iamstarkov ну я тебя понял... я плачусь про php
Alexandr
да, точно, спасибо)
Vlad
const verifyCode = constant => { return R.pipe( R.prop("statusCode"), R.equals(constant) ) } const isOkCode = verifyCode(RESPONSE_CODE_OK) const isServerErrorCode = verifyCode(RESPONSE_CODE_SERVER_ERROR)
но я предложил карри, для того, чтобы ты verifyCode мог использовать как обычную функцию с двумя аргументами
Алексей
Sergey
https://github.com/lstrojny/functional-php
ты решил поиздеваться?)
Vlad
ты решил поиздеваться?)
вроде норм либа, с доками и даже тестами
Sergey
вроде норм либа, с доками и даже тестами
я пользовался ей года полтора назад
Alexandr
но я предложил карри, для того, чтобы ты verifyCode мог использовать как обычную функцию с двумя аргументами
Ага, я понял. Но вызвать с 2-я аргументами не придется. У меня эти фнукции в композициях будут использоваться, нужно арность сохранять.
Sergey
https://plugins.jetbrains.com/plugin/8477?pr=phpStorm
Sergey
хотя с такой штукой еще норм
Sergey
если бы еще pipe оператор в php приняли
Алексей
я пользовался ей года полтора назад
не какраз хотел спросить пользовался ли и как работается с ней?
Sergey
в php нет лексических скоупов, от этого код сильно пухнет.
Sergey
в целом работать норм
Alexander
Кстати, кто на шестерке пишет, часто ли нужна тру-иммутабельность, а не const и приходится цеплять immutable.js?
Sergey
у меня она использовалась в методах для описания бизнес правил
Sergey
в целом с задачей справлялась а более-менее настроенный шторм даже не вызывал боли
Sergey
но на js такие вещи в разы приятнее делать
Алексей
Кстати, кто на шестерке пишет, часто ли нужна тру-иммутабельность, а не const и приходится цеплять immutable.js?
почитай про https://en.wikipedia.org/wiki/Persistent_data_structure Immutable.js это не только набор сахара но и полезные структуры данных которые позволяют экономить память где возможно
Anonymous
для пхпшира, жс как отдушина, сколько раз не встречаю, все хвалят жс :3
Sergey
Славься Рич Хикки
Sergey
или babel + async/await
Sergey
и не писал на языках типа шарпов)
Sergey
или котлина
Sergey
а если вспоминать времена node 0.10
Sergey
то js боль
Sergey
Говорят что Рич Хикки сначала придумал персистентные коллекции и только потому придумал куда их впихнуть)
Алексей
Neil Sarnak, Robert E. Tarjan (1986). "Planar Point Location Using Persistent Search Trees" (с) Wikipedia
Vlad
если бы еще pipe оператор в php приняли
его в джс тоже не приняли, R.pipe наше всё
Rafael 🌵
ребзи, что можете посоветовать для rest фронта для совсем малюсенького проекта?
Rafael 🌵
vuejs
почему он?
Rafael 🌵
а не например ангуляр какой нибудь
Vadim
легкий
Oleg
knockout :)
Nikolay
@Fl0pZz https://preactjs.com/ 3kb достаточно легко?
Alexander
Кстати, а кто тут из фрон-энд селебрити кроме Вовы Старкова есть?
Rafael 🌵
Вопрос не в лёгкости либы, а в лёгкости её применения для проекта
Rafael 🌵
Например реакт для неё избыточен, как и ангуляр
Rafael 🌵
Но писать его jquery уже тоже плохо
Anonymous
> jquery > knockout
Anonymous
😄
Oleg
http://i.stack.imgur.com/ssRUr.gif
Дима
его в джс тоже не приняли, R.pipe наше всё
Было бы круто если бы можно было всё же с оператором, как в хаскеле . и $