Size: a a a

Язык программирования Julia / Julia programming language

2021 July 04

V

Vladimir in Язык программирования Julia / Julia programming language
Нубское мнение: для работы в команде хотелось бы указания полей в абстрактных типах. А то "договариваться" приходится внешними средствами..
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Сорри, но мне кажется что это так себе идея. Потому что абстрактный класс это аналог интерфейса. А интерфейс определяет возможные действия, а не внутреннюю структуру. Наример реализации AbstractVector могут внутренне быть устроены очень по-разному. Важно только то, что они поддерживают одинаковый набор действий
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Вот возможность прописать явно интерфейс (в смысле возможный набор действий) где-нибудь кроме документации была бы интересной, но я не знаю как это можно сделать в архитектуре Джулии
источник

V

Vladimir in Язык программирования Julia / Julia programming language
Да это было бы интересно! Я больше про то, что те, кто привык к java в которой довольно легко работать в команде ,т.к. ,к примеру, реализацию абстрактного класса практически невозможно сделать "не так", с ужасом смотрят на необходимость прописывать в документации  спецификацию типов. Особенно если автор это не сделал, то поди знай что должно быть внутри структуры, что бы все работало как надо.
источник

A

Alexandr in Язык программирования Julia / Julia programming language
По уму если есть завязка на какие-то поля абстрактного класса, то они должны быть оформлены геттерами/сеттерами. В принципе можно и getproperty перегружать но это менее очевидно выглядит. Т.е. если предполагается что у абстрактного класса AbsA есть поле a, то это оформляется через get_a(::AbsA), set_a!(::AbsA, value). Это развязывает руки конкретным релаизациям, т.е. например get_a(obj::A1) = obj.a         get_a(obj::A2) = obj.b+obj.c - obj.e
источник

V

Vladimir in Язык программирования Julia / Julia programming language
Это если все знаю что так надо делать :) я не знаю - есть ли какой-нибудь копоративный стандарт разработки на julia?
источник

A

Alexandr in Язык программирования Julia / Julia programming language
А в Яве нет в бест практиках использования геттеров/сеттеров вместо прямого обращения к полям?
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Оно по-моему вообще везде в общих рекомндациях 🙂 Ровно потому что прямое обращение извне к внутренностям класса/структуры создает слишком жесткую связь
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Прямой доступ к полям объекта - это прямой запрет ООП. Другое дело, что явно прописывать getter/setter на надо. В Java есть Lombok. А, начиная с Java14, появились Java Records
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Есть вот такое: https://github.com/invenia/BlueStyle
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Не знаю правда, есть ли там ограничения на доступы к полям структур.
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Vladimir а если не секрет, где потребовался корпоративный стандарт джулии и идет разработка командой? 🙂
источник

V

Vladimir in Язык программирования Julia / Julia programming language
Я думаю, что тут обратная ситуация: нет разработки - потому что стандарта нет, а свой разрабатывать нет желания. Был бы стандарт обеспечивающий контролируемый процесс разработки - может и использовали бы.
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Эх, а я думал вы что-то крупное начали командой разрабатывать. Подумал может у вас вакансии посмотреть 🙂
источник

SG

Serg Gini in Язык программирования Julia / Julia programming language
Да про стабилити речь была скорее)
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Хм, мне это немного напоминает недавний тред на дискурсе, где люди обсуждали, что Джулия им не подходит потому что нет модулей как в питоне (ну или что-то типа такого). И прямо такие ужасы рассказывали, какая у них жуткая нагрузка на мозг идёт, из-за того, что приходится думать как по файлам программу раскидать, что прямо хоть ложись и помирай.

По моим ощущениям проблема структурирования программы по файлам составляет меньше 1% от всей разработки, поэтому такого сорта утверждения достаточно странно выглядят (ну то есть если бы была идеальная система, то это сэкономило бы 1% сил, что фактически никак не отразится на конечном времени разработки).

Это я просто к тому, что если ненаписанный кем-то стандарт является непреодолимым препятствием к использованию языка, то скорее всего у команды другие проблемы.
источник

V

Vladimir in Язык программирования Julia / Julia programming language
Да не, какой там... Но конечно хотелось бы на такие проекты посмотреть... Вот Pumas, к примеру... явно же у них есть какой-то свой кодекс.
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
да уж, здоровенный тред там получился :)
вообще иногда хочется чего-то "между" просто файлами и отдельными пакетами, с модулями внутри пакета не всегда удобно работать
но это мелочи, можно обойти конечно
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Мне из этого всего идея подпроектов больше всего понравилась.
Конечно не очень понятно, как это все должно работать вместе с нормальным registry, но как идея организации в маленькие изолированные куски кода звучит хорошо.
источник