↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Styx
25 августа 2019
Aa Aa
#кодерское #swift

Обожаю Swift :)

25 августа 2019
33 комментариев из 66 (показать все)
EnGhost, потому что они не "стандартные", а такие же классы/методы/операторы, как и все остальные :)
1. Можно переопределять операторы класс/структур (как и в С)
2. Можно расширять существующие классы/структуры/протоколы.
Ну и вот :)
Lothraxi, достаточно чего-то одного: или дыра, или права лазить :)
В С сколько мне помнится не Все можно было переопределять.
EnGhost, я уже точно не помню, но кажется все. Зато в Swift можно свои операторы добавлять :)
Styx
Спс!
Ал Ластор, ой-ой, сорри, я тебе наврал. Расширение (класса/структуры) будет иметь доступ к приватным полям только если это разрешено самим классом/структурой. Если там установлен уровень access control = private — то расширение сможет добавлять новые методы или поля, но не будет иметь доступ к приватным.
Ал Ластор, вернее даже не так, только если это специально разрешено. По умолчанию уровень доступа: internal
Internal access enables entities to be used within any source file from their defining module, but not in any source file outside of that module. You typically use internal access when defining an app’s or a framework’s internal structure.
Мдя
Lucia Malfoy
got a brain cancer from reading the comments

+аластор дохера консервативный
Я думаю, не только он.
Ластро
Lucia Malfoy, просто у всякого приёма есть своя область применения, и одно дело, когда ты пишешь код в одиночку тысяч на пять, тогда такая гибкость только в плюс, а когда вас на проекте уже хотя бы человек пять, и кода строчек тысяч сто, то то что выше станет источником таких лулзов, что вы там все поседеете. Ибо ситуация, когда внезапно ломается давно написанный и протестированный код от того, что кто-то решил что-то там переопределить выглядит мягко-говоря не здорово.

Я же специально переспросил по поводу всевозможных методов ограничить зоны видимости этих эффектов. Потому что в локальном рабочем пространстве, это действительно может быть удобно. Но в глобальном пространстве большого проекта – это ад.

Впрочем, всё выше написанное является лютым имхо.
Ал Ластор, нет, ты отчасти прав, тут не спорю. Это я тебя ввёл в заблуждение немного. Если интересно, вот тут можно почитать про ограничения.
Ал Ластор
Свифт всё-таки не то чтобы рассчитан на огромные проекты.
Lucia Malfoy
Ал Ластор
100к бтв не так много

>Ибо ситуация, когда внезапно ломается давно написанный и протестированный код

у тебя ручные тестировщики что ли?
Ластро
Авто тесты, у меня. Но тесты всё не покрывают в принципе. Априори. И ситуация, когда добавляется тест через месяц-два на какой-нибудь класс, чтобы покрыть ранее незамеченный косяк — это отнюдь не фантастика.

Представляешь, сколько кода может быть добавлено за это время? И искать по всему проекту источник счастья? Ну такое.

> 100к бтв не так много
Не спорю...
Lucia Malfoy
>И искать по всему проекту источник счастья?
чо
это тебе не дефайны
Lucia Malfoy
или у тебя блокнот вместо ide
Ластро
Lucia Malfoy, нормальная у меня ide. Стандартная для qt-шечки.

А вообще, по хорошему, такая хрень отсекается на кодревью...
Lucia Malfoy
Ал Ластор
такая хрень
документируется дополнительно (если там чото мутное)
и кладётся куда надо
например, в один неймспейс/пакет/файл/директорию/whatever
Lucia Malfoy
токсичные ревьюеры ненужны
Ластро
> например, в один неймспейс
А тепереь перечитай мои посты, ибо...
>Я же специально переспросил по поводу всевозможных методов ограничить зоны видимости этих эффектов.

В общем предлагаю свернуть тему, ибо каждый останется при своём. А желания продолжать нет.
Lucia Malfoy
Ал Ластор
ограничение скоупа как раз вызывает больше втф
Ластро
Lucia Malfoy, токсичные нет, хорошие, на вес золота.
Lucia Malfoy
уровня я не осилил, удоли
когда это чото простое
Ластро
> ограничение скоупа как раз вызывает больше втф
Чего? Впрочем не буду спорить.
Lucia Malfoy
Ал Ластор
у тебя в разных местах проекта будет разное поведение

в этом скоупе 2+2 = 4
в этом 2 + 2 = 5
потом ты передаешь (например, как аргумент) в другой скоуп, и всё ещё веселее
FluktLight
Lucia Malfoy
А разве не лучше будет если каждый кодер будет творить свою, кхуйню в тщательно огороженном месте?
Ибо если кхуйня будет глобальной, то при наличии нескольких подобных образуется мегакхуйня...
Lucia Malfoy
FluktLight
> А разве не лучше будет если каждый кодер будет творить свою, кхуйню в тщательно огороженном месте?

имхо это признак того, что на проекте ебанина и пора сваливать
в рамках одного проекта/монолита это холодная война какая=то) с говнокодом и лютиками
пилите пикосервисы тогда и общайтесь через шины/rpc/etc., если можете

> Ибо если кхуйня будет глобальной, то при наличии нескольких подобных образуется мегакхуйня...
ну так пообщайтесь друг с другом))
Ластро
FluktLight, угу, а потом хуйня планово очищается, если уж она образовалась, по локальным резервациям.
Ластро
>в рамках одного проекта/монолита
Это называется управление сложностью.
Lucia Malfoy
Ал Ластор
это называется пора валить
тик так ходики калеги додики
ПОИСК
ФАНФИКОВ











Закрыть
Закрыть
Закрыть