Здравствуйте, nekocoder, Вы писали:
N>Например, указатель — приватное поле, которое инициализируется в конструкторе строго в не-null.
Почему это не ссылка?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
N>>Когда ты видишь указатель, ты знаешь что это указатель и что его можно и нужно проверять на nullptr. Когда ты видишь ссылку, ты не знаешь, что это ссылка, не ожидаешь, что в ней может быть nullptr, и не можешь напрямую проверить на nullptr.
CC>А какой это криворучка взял указатель, не проверил его на NULL и разыменовал в ссылку, а?
А я тебе скажу — это был сишечник, который решил попробовать в C++ — но что-то пошло не так, и он вернулся обратно в своё болото, из которого теперь квакает
Здравствуйте, CreatorCray, Вы писали:
M>>25 лет пользуюсь ссылками, не заметил проблем. Наверное, я делаю что-то не так
CC>Поди читеришь: проверяешь значение указателя перед его разыменованием. CC>Это нячэсна! Так каждый сможет!!!
Этот чит мне известен, да. Но у меня свой хак — я просто не пользуюсь указателями
Здравствуйте, CreatorCray, Вы писали:
CC>Т.е. ты что то лезешь делать в чужом коде с переменной не зная о ней вообще ничего? Молодец, чо! Не думай, не разбирайся — сразу херачь и в продакшен!
Естественно я лезу в чужой код не зная о нем ничего. Как еще разбираться в коде когда приходишь на новый проект? С той-то переменной я конечно разобрался, просто какое-то время у меня она отняла. А могла бы и не отнять, будь она указателем.
CC>И да, у тебя что, IDE не умеет типы переменных показывать?
У меня нет IDE, у меня просто текстовый редактор. Это не потому что я не люблю IDE, просто так получилось.
CC>Эта абстракция — одно из преимуществ С++ перед С, которое позволяет писать более простой, безопасный и чистый код. CC>Пока к коду не подпускают сишников, которые каменными топорами прорубают себе дыры, строго в соответствии с заветами Паблика Морозова.
Да никакая это не абстракция. Обычный синтаксический сахар, который еще и горький на вкус. Типичное "хотели как лучше". const туда же.
Здравствуйте, CreatorCray, Вы писали:
M>>Та-а-а-а-а-к, ты что-то имеешь против фара? CC>Far != vim
фар более френдли, да. или что?
M>>С точки зрения компилятора — это таки легально. CC>Ты какие то странные определения используешь.
В чём странность? От любого разыменованного указателя компилятор, как и любой другой — человек, компилятор, человек-и-компилятор — может взять адрес для инициализации ссылки. Другое дело, что подсовывать нули или трэш — это пидерсия, так можно всё что хош разломать, разбить или потерять
Здравствуйте, CreatorCray, Вы писали:
N>>Например, указатель — приватное поле, которое инициализируется в конструкторе строго в не-null. CC>Почему это не ссылка?
Потому что кто-то 10 лет назад сделал его указателем. Например, планировал сделать его изменяемым, но это отменилось. А, после того как на проекте сменилась пара поколений разработчиков, бизнес логика поменялось и ему стали присваивать null
Здравствуйте, lpd, Вы писали:
S>>В разработке софта, собственно, тоже самое. Распознавание речи в реальном времени -- одно, CRUD приложения для сервиса с 1000 уников в день -- другое.
lpd>В распозновании речи важен алгоритм, а не тулзы. Потому что оптимизировать будут именно его(при необходимости), а не лепить мув-семантику везде где попало.
С другой стороны — вменяемый человек не будет писать распознавание речи на питоне
Здравствуйте, smeeld, Вы писали:
S>>Как бы сложность решаемой задачи и сложность применяемых инструментов должны быть сопоставимы.
S>Задачи бизнес логики можно расписывать на любом ЯП. Есть некоторая "заточка" ЯП-ов, вроде Сей, создававшихся именно для системного низкоуровневого программирования, но тот же C++ автором создавался именно для расписывания высокоуровневой бизнес логики, которую можно вообще на чём угодно пилить, хоть на питоне, хоть на Golang.
Ха-ха, смешно. Но — с другой стороны — симптоматично: самые-самые хейтеры в C++ не умеют и никогда даже не пробовали, зато с легкостью рассуждают про пайтон и гоулэнг
Здравствуйте, nekocoder, Вы писали:
CC>>Т.е. ты что то лезешь делать в чужом коде с переменной не зная о ней вообще ничего? Молодец, чо! Не думай, не разбирайся — сразу херачь и в продакшен! N>Естественно я лезу в чужой код не зная о нем ничего. Как еще разбираться в коде когда приходишь на новый проект? С той-то переменной я конечно разобрался, просто какое-то время у меня она отняла. А могла бы и не отнять, будь она указателем.
Это говорит только о том, у тебя были проблемы с новыми концепциями нового языка на новом проекте
CC>>И да, у тебя что, IDE не умеет типы переменных показывать? N>У меня нет IDE, у меня просто текстовый редактор. Это не потому что я не люблю IDE, просто так получилось.
А у меня фар, и значит — ты пизумрешь
CC>>Эта абстракция — одно из преимуществ С++ перед С, которое позволяет писать более простой, безопасный и чистый код. CC>>Пока к коду не подпускают сишников, которые каменными топорами прорубают себе дыры, строго в соответствии с заветами Паблика Морозова.
N>Да никакая это не абстракция. Обычный синтаксический сахар, который еще и горький на вкус. Типичное "хотели как лучше". const туда же.
Оченно прошу — расскажите, где вы работаете. И нет, не то, что вы подумали — давайте обойдемся без говна с оскорблениями и пр. — я к вам резуме посылать не буду, как раз и хочу избежать этого шага — нет смысла — и вам тоже проще
CC>>А какой это криворучка взял указатель, не проверил его на NULL и разыменовал в ссылку, а?
N>Какой-то взял, 10 лет назад, когда этот указатель не мог быть null. А потом времена поменялись и он иногда стал становиться null, но несколько лет на это не натыкались. А потом опять что-то поменялось и наткнулись.
Но виноваты ссылки, а не отсутствие у вас тестов, ага, клёво
Здравствуйте, nekocoder, Вы писали:
N>>>Например, указатель — приватное поле, которое инициализируется в конструкторе строго в не-null. CC>>Почему это не ссылка?
N>Потому что кто-то 10 лет назад сделал его указателем. Например, планировал сделать его изменяемым, но это отменилось. А, после того как на проекте сменилась пара поколений разработчиков, бизнес логика поменялось и ему стали присваивать null
Ну, может ты сам догадаешься, кто тут сам себе педераст или тебе нужны хинты?
ЗЫ 0 — отличное значение. Его хоть как-то можно отловить.
Здравствуйте, nekocoder, Вы писали:
N>Потому что кто-то 10 лет назад сделал его указателем. Например, планировал сделать его изменяемым, но это отменилось.
И кинули как есть... Как я уже говорил — какое нафиг проектирование, херак херак и в продакшен!
N> А, после того как на проекте сменилась пара поколений разработчиков, бизнес логика поменялось и ему стали присваивать null
Бардак у вас там. Пишете на С а гоните на С++
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
CC>И кинули как есть... Как я уже говорил — какое нафиг проектирование, херак херак и в продакшен! CC>Бардак у вас там. Пишете на С а гоните на С++
Здравствуйте, CreatorCray, Вы писали:
CC>Что люди не умеют в С++ я и так знаю.
Тут проблема не в знании С++ (дело нехитрое), а в сложности больших и долгоживущих проектов, которую (сложность) корявости С++ увеличивают.
CC>Вот только гнать на язык в таком случае бессмысленно — проблема в прокладке между стулом и клавиатурой.
Смысл в этих обзывательствах? Ну я тоже могу сказать, что проблема в ДНК разработчиков С++ и фанбоях-сектантах, толку-то.
Здравствуйте, nekocoder, Вы писали:
M>>Так-то всякие тупые касты в стиле чистой сишечки — это даже не подножка, а когда сбивают с ног и потом ногами еще хреначат то потери сознания. N>Так сишка и не претендует на звание безопасного высокоуровневого языка, с нее спроса нет.
Как будто C++ претендует
В С++ есть возможности писать более безопасный, и более надежный код, чем на C. Но это лишь возможности. Которыми еще нужно суметь воспользоваться. И да, это еще одна причина, почему в современном мире C++ нужен все меньше и меньше.
По поводу повисших ссылок совсем недавняя история. Случилось так, что в один класс поместили парочку string_view, в которых хранились указатели на временные строки. Соответственно, пока экземпляры этого класса использовались в том же скоупе, что и временные строки, все было нормально. Но если какой-то экземпляр возвращался наружу, то приключалась беда. И вот что характерно: ссылок не было вообще. Только объекты, внутри которых голые указатели. А проблема именно такая, как у вас с полем-ссылкой.