• Что будет, если постоянно держать температуру процессора без разгона на близких к критическим значениям (к примеру, 85-90 градусов при TJUNCTION 100)?

    DollyPapper
    @DollyPapper
    xotkot, это один из тех мифов который я где-то услышал, но даже не задумался о его правдоподобности, хотя ответ вроде бы очевиден. Да, всё так, спасибо, открыли глаза, и возможно спасти мою технику теперь :)
  • Что будет, если постоянно держать температуру процессора без разгона на близких к критическим значениям (к примеру, 85-90 градусов при TJUNCTION 100)?

    DollyPapper
    @DollyPapper
    термопаста сохнет

    В этом нет ничего страшного на сколько я знаю. Ее задача быть прослойкой между не идеально ровными поверхностями радиатора и крышки проца. Она в сухом виде не хуже справляется с этой задачей.
  • Как сделать скрипт для вывода команды docker-a?

    DollyPapper
    @DollyPapper
    И что конкретно у вас не получается?
  • Нужен ли Linux для C# разработчиков?

    DollyPapper
    @DollyPapper
    Adamos, ну значит бывает и так, мне просто приходится с этим взаимодействовать. Тогда вообще проблем для ТСа не вижу.
  • Нужен ли Linux для C# разработчиков?

    DollyPapper
    @DollyPapper
    Adamos, ну может я перегнул. Ну лучшего способа чтобы понять как это работает я к сожалению не знаю. А для задач программиста наверное да, cron изучить, юниты в systemd, и все в таком роде. Генту собрать да, наверное не просто, и знания получишь спецефические, эти их миры или как их там. А вот собрать арч не вижу особых проблем, он не такой сложный. Ну для начала нужно все таки с терминалом познакомится, поиграться с месяцок, а потом можно собрать арч.
  • Плохая практика менять объект ненапрямую?

    DollyPapper
    @DollyPapper
    Ben L,
    Если на Character есть getter к position то возможно менять позицию и без того чтобы использовать character.move. Если getter-a нет, то как использовать местоположение персонажа?

    Может я не верно понимаю о чем вы говорите, но для этого и придуманы getter и setter. Один отдает значение, другой его устанавливает. Почему у нас не должно быть getter'a и setter'a? Как вы будете менять позицию через getter? Если то как вы написали выше, то это очень жесткое нарушение инкапсуляции. Вообще говоря геттеры и сеттеры сами по себе её нарушают.

    Если переданный объект иммумабилен то не страшно что кто то изменит его.

    Если объект иммутабелен, то изменить его никто вообще не сможет, а не "нестрашно". Иначе он не иммутабелен. И вообще, как вы будете менять позицию персонажа, если объект позиции иммутабелен? Создавая на каждое перемещение копию объекта, но зачем нам это в данном случае я не совсем понимаю.
    Иммутабельность просто необходима когда у нас есть действительно разделяемые данные между разными сущностями, в нашем случае с персонажем, позиция конкретного персонажа "Darth Vader" это его и только его состояние. Посмотрите на себя как на объект. Ваше положение в пространстве координат вы делите со мной, с Васей, с Машей, с Петей? Нет. Это только ваше состояние, которое принадлежит вам как объекту. Оно в вас инкапсулировано. Почему Дарт Вейдер должен получать своё состояние о нахождении в пространстве из внешнего объекта?
  • Плохая практика менять объект ненапрямую?

    DollyPapper
    @DollyPapper
    Не понял почему нарушил???

    Ну да, вы получаете позицию через геттер, и у результата геттера сеттите значение. Это путает.
    Думаю я не понял правильно что вы имели ввиду под "целостен".

    Объект не инкапсулирует в себе все необходимые данные для его работы. Вы мутируете свойство обьекта позиции не через сам обьект, а через какую-то внешнюю переменную.
    В таком случае придется передовать в конструктор только примитивные данные (или иммутабельные объекты) чтобы не было возможно их менять снаружи, а в конструкторе создавать position для персонажа.

    Почему иммутабельные? Мы закрываем доступ к полям модификатором, и мутируем через спец. метод - сеттер, или еще как называем его, не важно.
    а в конструкторе создавать position для персонажа
    . Именно. При создании объекта мы передаем ему в конструктор начальную позицию, после чего мутируем через метод сеттер, или to или move или еще как называем метод перемещения.
  • Плохая практика менять объект ненапрямую?

    DollyPapper
    @DollyPapper
    Ben L, посмотрите вот этот доклад
    Многие критикуют конечно Егора за его радикальные взгляды на ООП, но как по мне, именно так ООП и должен выглядеть и это то куда эта парадигма и должна стремиться. Ключевая концепция которую продвигает Егор, что объект как сущность должен быть целостен, и сам должен содержать в себе и управлять своими данными, а нам должен быть доступен только его интерфейс.
  • Плохая практика менять объект ненапрямую?

    DollyPapper
    @DollyPapper
    Во первых вы теперь вообще нарушили логику наименования. Не getPosition, а setPosition нужно.
    Если вы обьект класса Position все равно создаете вне объекта персонажа, это в любом случае нарушение инкапсуляции. Да формально теперь мы не изменяем на прямую свойство, а делаем это через сеттер, но свойство данное всё так же глобально, и любой другой программист может спокойно из своего кода поменять позицию вашего персонажа и вы даже не поймете почему это случилось. То что вы сделали сейчас это Агрегация. При уничтожении вашего персонажа, когда например персонаж умрет, и на него больше не будет ссылок в коде GC соберет его. Но данные вашего персонажа все так же будут жить в памяти. Хорошей практикой является - делать свои объекты целостными, чтобы объект имел в себе все данные и методы для работы и сам решал как ему с этими данными поступать . Разделенное свойство имеет место быть например, если вы делаете стратегию и свойство позиции относится не к одному персонажу, а к группе юнитов. То есть при клике мышью мы задаем позицию для каждого отдельного юнита, который сам по себе может иметь собственную позицию, но при добавлении его в группу, должен направится туда же, куда и группа остальных выделенных в группу юнитов. Реализовать это можно например как написал ниже rPman . Ключевой момент который тут стоит понять, это что на данный ваш объект не целостен, и в данной задаче для того чтобы он был таковым предпосылок - нет. Простите если ответ немного сумбурен - жарко :) Если у вас появятся уточняющие вопросы пожалуйста пишите, постараюсь ответить.
  • Как узнать причину долгой загрузки linux mint?

    DollyPapper
    @DollyPapper
    mouLL, отметили решением. Решили проблему?
  • Скажите, средствами винды можно реализовать самооочистку памяти от кэша(мрут приложения при сьеденой 6,9гб памяти)?

    DollyPapper
    @DollyPapper
    organizer776, такое в принципе невозможно. Откуда ОС знает какие ресурсы могут приложению быть нужны, а какие нет. В Java GC освобождает ресурсы (переменные в которых что либо хранится) когда на них больше нет ссылок в программе. Если память сожрана, значит на неё есть ссылки, в случае java - она по этому память не освобождает. В случае языков без GC ситуация еще хуже. В роли GC выступает Петя который на говнокодил и память не освобождал.
  • Как именно развиваться начинающему Android разработчику?

    DollyPapper
    @DollyPapper
    Денис Загаевский, что для человека знакомого с ООП и организацией кода, знакомого с понятием абстрагирования может занять дольше двух часов в понимании MVC, MVP, MV* ?
    Серьезно, это не шутка, реально хотелось бы услышать ответ, узнать для себя что-то новое.
  • Как именно развиваться начинающему Android разработчику?

    DollyPapper
    @DollyPapper
    А какую ты хочешь рекомендацию? Как за 4 месяца пересобрать мышление? Увы, это нереально. Есть конечно истории, как люди и за 3 месяца с полного нуля работу находят, но во первых - каким путем? Во вторых, а не копирайт ли эти истории сотрудниками курсов, или чего-то подобного? В третьих - это обычно фронтэндеры. Да даже если и так - а долго они на работе задерживаются? Ты пойми, что чтобы стать разработчиком, нужно перестроить свое нестрогое человеческое мышление, в мышление строгое - аналитическое. Тут нельзя дать конкретных советов, как это сделать. Это приходит со временем упорного труда. И по факту тебе ужа дали несколько дельных советов. Учись и пиши код. Нет серебрянной пули, хоть некоторым по началу это не очевидно. Они думают, что люди по ту сторону монитора не совершают ошибок в коде, что их код хорошо организован в 100% случаев, что ими проблемы решаются на раз два. Нет. Человек с опытом, так же тупит над задачей которую он еще не делал ранее, так же делает банальные ошибки, так же говнокодит. Просто он упорно двигается дальше, и доводит дело до конца, потому что иначе нельзя, это и есть профессионализм. Стальные нервы, сильная воля и желание, вот и весь дельный совет.
  • Все говнокодеры?

    DollyPapper
    @DollyPapper Автор вопроса
    Adamos, понял вас. Значит просто проект еще в том состоянии, когда плыть есть куда, и качество кода зависит не только от самого разраба, а так же от срока жизни проекта, когда делать качественнее уже будет необходимо.
  • Все говнокодеры?

    DollyPapper
    @DollyPapper Автор вопроса
    Мой вопрос скорее не о говнокоде, а о людях которые говорят, что надо писать хороший, красивый, чистый код, которые обсуждают паттерны, но сами же даже не следуют MVC, который с самой своей базы зашит во фреймворк. Зачем люди на серьезной лице это обсуждают, если 90% хер на это все клали и делают как считают сами логичным, а не как они же и говорят "правильно"
  • Все говнокодеры?

    DollyPapper
    @DollyPapper Автор вопроса
    Хорошо, тогда я не понимаю, какой смысл обсуждать эти все паттерны, "технический долг", культуру разработки, принципы хорошего дизайна, цитировать дядюшку Боба, если ты в хер не ставил все эти принципы и пишешь руководствуясь только своей внутренней логикой, как это должно быть. Вот этот момент мне скорее не понятен.
  • Как узнать причину долгой загрузки linux mint?

    DollyPapper
    @DollyPapper
    Убрать их никуда нельзя, это этап загрузки изначальной. 1) загружается прошивка BIOS/UEFI(firmware)
    2)загрузчик(loader), grub в вашем случае, и далее по списку, что нас не особо интересует. Загрузка grub в 5 секунд конечно не критична, это нужно сравнить с тем как он на вашем железе грузился раньше.
    firmware же в 26 секунд простоя это пздц. По скольку firmware грузится еще до того, как загрузится не то что ядро а даже загрузчик, т.е. в момент как грузится firmware на вашем компьютере еще даже нет линукса. Это вводит меня в ступор и мне даже сложно что-то предположить. Единственное, что могу предположить - у вас в системе установлен режим (BIOS/UEFI/Legacy CSM) отличный от разметки дисков. Т.е. у вас возможно загрузка стоит UEFI а диски размечены в MBR или наоборот. Попробуйте копнуть в эту сторону. Еще попробуйте поискать в биосе опцию Skip POST или что-то типа того, это может решить симптом долгой загрузки firmware, но не проблему как таковую, потому что проблема изначально была вызвана сбоем при обновлении в ОС и как это могло повлиять на настройки прошивки, мне опять же сложно предположить. Начните с проверки сопоставления метода загрузки и формата дисков как я описал выше. А вообще я бы лично просто систему переустановил, если вам нужно просто чтобы компьютер нормально заработал, а не важен сам процесс починки.
  • Можно ли увидеть программный код?

    DollyPapper
    @DollyPapper
    pfemidi, да, просто упомянул - для справки, т.к. мне кажется сам вопрос - для справки :)
  • Прыгаю с языка на язык, с одной сферы в другую, как сфокусироваться на одном языке?

    DollyPapper
    @DollyPapper
    Мотивация это полная туфта. Мотивированным всё время быть невозможно. А когда наш ТС осознает, что работа программистом это не - пилить проектик для себя пока интерес не пропадет, а рутинная работа 90% времени, вот тут вообще тоска и печаль начнется. Дисциплина и усидчивость, всё остальное - мусор. Мотивацию можно использовать как старт для чего либо, мол - О, какая классная идея для проекта который я могу написать на %имя_языка%. Садишься писать на этом языке. Через пару дней, недель, месяцев мотивация пропадет. Вот тут в игру вступает дисциплина и ответственность.