Andrii
Ну... я бы сказал немного мягче, мутабельные глобальные переменные "зло". Ну а дальше можно договорится до того, что мутабельные переменные вообще "зло" и так далее :)
chipolino
И типа вместо глобальных переменных придумывают класс синглетон, так?
Если касательно этого примера я просто решил счетчик сделать отдельным объектом и все что нужно инкапсулировал в него, можно было бы вообще создать отдельный объект счетчик и затем функцию обработчик которая бы пользовалась интерфейсом этого объекта счетчика
chipolino
Ну... я бы сказал немного мягче, мутабельные глобальные переменные "зло". Ну а дальше можно договорится до того, что мутабельные переменные вообще "зло" и так далее :)
понимаешь я тут немного с нетого мира пришел, я пришел с с++ там паскаля и старых олдскульных книг питера нортона тогда такие понятие как мутабельность не встречались
chipolino
Ну есть а причем тут он
chipolino
Просто смысл в том что не делать лапшу из глобальных переменных и все прятать в объекты когда будет много функций и глобальных переменных фиг разберешься, но это просто рекомендация и не моя и то как я вообще это понял
Andrii
Ну есть а причем тут он
Ну... в какой-то степени иммутабельность. Запрещаем изменения этой переменной. А есть языки, которые вообще запрещают присваивать переменным значения кроме как при создании
chipolino
Да они будут но их нужно как можно меньше делать
chipolino
Я просто дал ему наводку как еще можно сделать его код более круче так как по видимому он обучается, просто разнообразить.
Andrii
Да они будут но их нужно как можно меньше делать
Ну... дальше, например, структура, которая хранит все конекшены к нашему серверу... Опять же, так это делать? Всё равно у тебя будет что-то либо синглетон, либо глобальное. Хоть указатель на класс "GlobalStructures"
chipolino
Ну структура это уже объект
Andrii
А какая разница, переменная какого типа будет глобальной? Проблема то не в этом
Борисов
Объект типа GlobalStructures создается в main и везде передается на него ссылка Только название обычно что-то типа Context *ctx
chipolino
Я не отрицаю глобальные переменные но в этом случае это принцип инкапсуляции переменную счетчик внес под объект
chipolino
Да че вы до меня докопались то😁
chipolino
вы скажите че хотите прямо
chipolino
А то у меня дота 2 стынет
Кирилл
Да че вы до меня докопались то😁
ну я просто то спросил как сделать счетчик а тут начался замес
chipolino
😠
Кирилл
😁.
chipolino
Не делай так больше
Andrii
Опять же, если у тебя точно не более одного потока на процесс, и ты юзаешь многопроцессность через fork то какого-то вреда от глобальных переменных какбы и нету. Основная проблема глобальных переменных это всё-таки перевод приложения под многопоточность. Ну или когда вдруг та сущность, которая задезигнена под глобальные переменные, вдруг может присутствовать в нескольких инстансах
Кирилл
а можно ли созовать несколько атрибутов onclick в теге html?
Кирилл
или так делать нельзя?
chipolino
а можно ли созовать несколько атрибутов onclick в теге html?
Эксперимент гроза любой теории попробуй
Andrii
Скажи мне в чем плюсы ооп парадигмы и чем она отличается от структурной и что было до этого
Страуструп содрал из Симула идею таблицы виртульных функций, сделал её синтаксическим сахаром, потом добавил всего того типа зеро-оверхид, автоматического преобразования типов, множественное наследование, в общем всего, что не ушло за пределы плюсов. И получились плюсы
chipolino
а в чем плюсы и отличия от структурной и что было раньше
chipolino
Andrii
а в чем плюсы и отличия от структурной и что было раньше
Мне непонятно в чём вопрос. В принципе, симула-лайк ООП можно реализовать на чистом Си или Паскале, только будет больше копипасты, где можно будут ошибится. Это считается?
Кирилл
Незабудь отписатся как проверишь
нельзя но можно через запятую добавить еще))
Кирилл
onclick="trainArmy(),trainKnight()"
chipolino
Мне непонятно в чём вопрос. В принципе, симула-лайк ООП можно реализовать на чистом Си или Паскале, только будет больше копипасты, где можно будут ошибится. Это считается?
Ладно фиг с ним забей просто я решил сделать счетчик объектом потому что так мне нравится больше, каждый делает как ему удобнее
chipolino
onclick="trainArmy(),trainKnight()"
О а этого я не знал + тебе
Andrii
Считается тоже
А так если брать Си, и Linux drivers там тоже есть интерфейсы. Просто драйвер передаёт тебе структуру, а ты проставляешь ручками указатели на функции. В ООП это делается автоматически :)
Кирилл
О а этого я не знал + тебе
а я тоже я просто подумал а почему бы мне так не сделать
Andrii
Ладно фиг с ним забей просто я решил сделать счетчик объектом потому что так мне нравится больше, каждый делает как ему удобнее
Ну... а что это тебе даст? Всё равно там где-то будет atomic increment, ну и больше шансов словить race condition где-то по пути
Andrii
Мне нравится что все под одной крышой
Ну... проблема в том, что с точки зрения производительность каждый поток должен использовать свой счётчик.
Andrii
Мне нравится что все под одной крышой
У меня было такое, что я прикрутил к задаче многопоточность вроде как, и в результате в два потока она работала в полтора раза медленнее, и четые потока в два раза медленнее.... :)
chipolino
Ты куда то не туда полез
Andrii
Вообще ООП часто не очень кэш-фрэндли, поэтому и колоночные базы данных появились и т. п.
Алексей
получается никто :(
А что нужно по базам?
chipolino
А что нужно по базам?
Там чуть ниже написанно
chipolino
Ребят почему ubuntu недолюбливают
Andrii
Ребят почему ubuntu недолюбливают
Ну... Gnome 3... Ну и не сильно быстро пакеты обновляются...
Dima
Ребят почему ubuntu недолюбливают
Кто ее недолюбливает? Все норм с ней, сидел на ней больше года.
chipolino
По мне так четкая
chipolino
гном просто подход другой не привычный
Dima
По мне так четкая
Работает не падает? Ну и забей на мнение остальных, она быстрее винды все норм.
Dima
Мне нравится Федора на последнем гноме 4.0 айс вообще
chipolino
Для новичка самое то
chipolino
хотя кде тоже норм
Andrii
В целом мне пофик потому что я те программы, которые мне нужны, я скомпиляю их исходников... Но в целом пакеты в бубунте не самые свежие
Алексей
Всем привет, хотел бы научиться программировать на языке python, начал изучать этот язык с книги ByteOfPython правильно всё ли я делаю, или есть какой-то другой способ?
Алексей
Логирование и дебаг
Насовсем понимаю
Bruno
Где можно изучать Node, желательно с ts или nest, желательно бесплатно, что-нибудь проще, чем документация
Azamat
Логирование и дебаг
print сила, логирование могила :)
Andrii
Насовсем понимаю
Понимаешь, чем занимаются программисты 90% времени? Исправляют ошибки. Поэтому учится писать код это хорошо. Но это как стоматологу изучать болезни зубов по книге. Нужна практика, много практики
Andrii
Ну практика это да
Поэтому никогда не спрашивай на форумах, что неправильно. Всегда пиши, что ты делал, чтобы найти ошибку. Прошёл в дебаггере до этой строки,поставил логи, логи вывели такую-то простынь, вот-тут что-то пошло не так...
Andrii
А по чём изучать такое... Что нравится, то и читай. Что хочешь, то и пищи
Шаман Каган
в JS есть типизированные массивы?
Azamat
Есть
Шаман Каган
вопрос: как можно дебажить жс запущенный вебпаком (он там свой локальный сервер поднимает) ?
Шаман Каган
debugger ставишь
это что такое?
Шаман Каган
в хроме же свой есть какой то