Alexander
И что именно из этого трудно?
Anatolii
ооп в том виде что оно сейчас в индустрии крутится, по-моему, вредно
Anatolii
Бизнес задачи очень хорошо ложатся
Anatolii
Очень хорошо на фп ложатся
Evgeniy
Защитники ООП как я понимаю говорят -всё объект и это ближе к человеческому опыту - а вот функц подход интуитивно не понятен мозгу из-за опыта полученного в результате жизни
Evgeniy
Там и DDD далее идет
Evgeniy
Хотя по логике можно сказать всё есть функция😊 итп
Alexander
ООП == subclass polymorphism
Alexander
Когда кошка наследуется от собаки и вот это всё
Alexander
Утрированно конечно
Alexander
Начиная с какого-то то момента удивления для разума становится слишком много
Evgeniy
Да но с помощью композиции с утиной типизацией пытаются убить жёскую связь между "классами"
Evgeniy
Хотя в фп как я понимаю например map и есть паттен проектирования причем в деклар стиле
Evgeniy
А вместе с генериками вообще сила😊
Anatolii
Я не знаю зачем ооп, по поводу наследования, вот как раз оно мне больше всего проблем приносило при фиксе проблем
Anatolii
Проблема в том что наследованием легко воспользоваться не правильно
Anatolii
Вот когда кошка начинает от собаки наследоваться
Anatolii
Это уже плохо
Evgeniy
Да согласен изначально если пошли не той дорогой и чем дальше в лес тем труднее сменить но из-за этого методики разные скрум с короткими циклами итп чтобы раньше нащупать правильное направление както так
Evgeniy
Вот как хаскель например сможет помочь - рефактить на нем отлично
Evgeniy
Но вот повторное использование те не кидать всё в один бог файл, разделить на повторно используемые компоненты чтобы не лезть в него- вот как в хаске пока ненащупал😊
Denis
Ну есть же решения чтобы решить это но конечно это "костыли"
Не лучше ли начать с преимуществ наследования? Они есть вообще?
Evgeniy
Я отношусь к той части - кто считает сильно связанное наследование фундаментальным недостатком - но современные языки типа го раст итп отказались (если я неошибаюсь) от этого недостатка
Alexander
Меньше кода писать иногда
Denis
Для меня лично наиболее удачным примером применения принципов наследования в ооп является API Excel.
Denis
Бегло пробежавшись по мсдн, быстро уясняешь, что в экселе, по большому счету, все есть диапазон (range), и все сущности можно объединять в коллекции.
Denis
На этом для меня достоинства наследования заканчиваются
Denis
Причем, глядя на хаскел и окамл, я понимаю, что того же результата можно было достичь (причем, вероятно, меньшими усилиями) с помощью грамотной системы типов. В окамле так и вовсе ООП на типы завязан, что как бы намекает
Evgeniy
Интересно есть ли книга типа DDD в функциональном стиле на примере известной книги
Evgeniy
Если нет то она я думаю взорвет мир фп
Denis
Превратит его в тыкву? :)
Evgeniy
Нет думаю очень сильно его продвинет - сделает ближе народу) А если на хаске то вообще его недостатки вылезут как явные
Evgeniy
И это наконецто сделает его приятным ) Но надо компании кторые его юзают их опыт а это годы(
Evgeniy
Опыт переваривается и вываливается чтото - но не г.....о конечно- надеюсь
Evgeniy
Кто нибудь смотрел https://github.com/JPMoresmau/dbIDE?
Vladimir
Я не смотрел, я в виме :D
Vladimir
Товарищи, а вот есть какой-то способ один модуль раскидать по разным файлам?
Vladimir
Я что-то никак не выгуглю
Vladimir
Ну чтобы один модуль был в разных файлах. В clojure можно, например, указывать одно имя неймспейса и потом в него подгрузить какое угодно количество файлов с кодом, которые логически будут в том же неймспейсе. Вот с модулями так нельзя?
Vladimir
Я понимаю, что пример с clojure вообще не про то)
Alexander
Вагную что: module Foo.Internal.One ... module Foo.Internal.Two ... module Foo ( module Foo.Internal.One module Foo.Internal.Two ) where ...
Alexander
Для пользователя будет существовать только Foo, в котором все реэкспортировано
Vladimir
а, вот как это делается
Vladimir
понял, спасибо!
Vladimir
я все понял и мне уже ответили, спасибо
Alexander
Там есть несколько способов как сделать реэкспорт: 1. Каждую функцию явно 2. Модулями, как выше 3. Импортировать модули квалифицировано, например как X и делать module X в экспортах
Denis
А если в модуле Foo.Internal.Two использовать типы из Foo.Internal.One, при сборке никакого оверхеда не возникнет же?
Alexander
Нет
Alexander
Желательно чтобы циклов не было иначе hs_boot делать надо
Evgeniy
На чём пишете хаскель Vim – 8 👍👍👍👍👍👍👍 50% Emacs – 2 👍👍 13% Atom – 2 👍👍 13% Spacemacs – 2 👍👍 13% Sublime – 1 👍 6% VS Code – 1 👍 6% Eclipse ▫️ 0% IDEA ▫️ 0% Geany ▫️ 0% 👥 16 people voted so far.
Evgeniy
Если что Vim тоже пользую
Alexander
У меня вим, стоит spacemacs то там я код не пишу, хотя пытался
Evgeniy
Я наоборот в спейсмаксе там с вим полная совместимость но если быстро чтото надо то вим😊 А так пробовал всё выше указанное думаю вим и спейсмакс лучшее имхо
Denis
А вообще к разработке haskell, ни стандарта, ни ghc, не имею :)
Evgeniy
А вообще к разработке haskell, ни стандарта, ни ghc, не имею :)
А что так поставь в репле поиграйся - оцени силу хаска и репла!
Alexander
Мне часто на чужих компах без доступа в нормальный интернет работать надо
Alexander
Там не до емаксов
Alexander
А из коробочный вим вполне работает
Alexander
Во всяком случае подправить, что пнресобирать и запустить
Evgeniy
Ну у меня например свой сервер домашний ( сильный) - а к нему через ssh tmux vim если пинг трудный) или спейсмак если пинг отличный из слабого клиента
Alexander
Просто на чужой системе все равно свой кофиг не поставишь быстро
Alexander
А ночью его все равно он превратится в тыкву
Alexander
: ]
Evgeniy
Что ходишь по "чужим" серверам?😎
Denis
А что так поставь в репле поиграйся - оцени силу хаска и репла!
Да нет, я о том, что в формулировке опроса ошибка
Evgeniy
Кстати я нашёл удобно пользоваться hoogle даже из консоли - пишешь сигнатуру и список но вот как фильтровать - например чтобы только из определенных пакетов а не со всего?
Evgeniy
Да нет, я о том, что в формулировке опроса ошибка
А да понял ,но думаю большинство поняли контекст - тут не тот уровень(пока)😀
Evgeniy
Кстати в опросе прорустил leksah (похож на liteide) но сыроват
Alexander
Что ходишь по "чужим" серверам?😎
Тестовые/разраьотческие кластеры
Vladimir
А раньше еще на fpcomplete была онлайн иде с линтером и вимовской клавиатурой
Alexander
У меня нету возможности иметь десяток компов с 500 дисками по нескольку Тб, 64Гб памяти и десятка 2 процов
Alexander
Так что приходится по чужим ходить
Evgeniy
А раньше еще на fpcomplete была онлайн иде с линтером и вимовской клавиатурой
Да я её тоже юзал прикольно была - интересно всётаки онлайн редакторы возможно в этом надо хаску да и нетолько двигаться