1. Java / Говнокод #14470

    +64

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    balance2N(nodeGet(0), nodeGet(0).getLine(0).getNodeConnectedWith(nodeGet(0)));
    
    class Node {
        private ArrayList<Line> children = new ArrayList<Line>();
        public Line getLine (int index) {
            return children.get(index);
        }
    }
    
    class Line {
        private Node[] parents = new Node[2];
        public Node getNodeConnectedWith(Node nodeA) {
                if (parents[0] == nodeA) {
                    return parents[1];  //return node another from this node (node on the other side)
                } else {                //if    parents[1] == nodeA     equals  !(parents[0] == nodeA)
                    return parents[0];
                }
            }
    }

    Метод balance2N делает что-то с двумя нодами.

    Запостил: energetix_user, 02 Февраля 2014

    Комментарии (41) RSS

    • И в чем говно кроме незакешированного nodeGet(0)?
      Ответить
      • Хотя бы в том что не перегрузки для balance
        Ответить
        • А если ли в ней смысл? getLine(0) это же первая попавшаяся линия, исходящая из ноды. Почему balance должен работать именно с ней, а не с getLine(1) или вообще со всеми линиями, исходящими из ноды?

          Тут надо задачу смотреть. Но заворачивать эту хрень из первой строки в отдельную функцию я бы не рискнул. Вдруг там вообще ни одной линии к этой ноде не подключено, или их 100500, а обрабатывать мы будем только первую.

          P.S. Ок, говно нашлось - getLine(0).
          Ответить
          • getLine(0) - единственная линия если ноды две. Если ноды три - уже три линии. Если нод четыре - от четырех до шести
            Ответить
            • Ну а что тогда должна делать перегрузка balance с одной нодой, которой вам так не хватает?

              UPD: Более менее осмысленный вариант, который приходит в голову - она должна в цикле балансить ВСЕ линии исходящие из указанной ноды.
              Ответить
              • UPD: Ааа! Перегрузка должна принимать Line и отдавать оба конца в balance2N. Это же имелось в виду?
                public void balance(Line line) {
                    balance2N(line.getParent(0), line.getParent(1));
                }
                Ответить
                • Да.
                  Ответить
                  • Понятно...

                    Ну в общем-то отсутствие convenience методов является не говном, а просто неудобством.

                    Вот если бы там не было какого-то важного метода, без которого задача бы вообще не решалась - вот тогда да, говноабстракция детектед.
                    Ответить
    • Ну охуеть теперь архитектура. Попытка сделать утечку памяти через кольцевые ссылки?
      Ответить
      • Жаве на кольцевые ссылки насрать
        Ответить
        • разве там не инкриментный GC?
          Ответить
          • Не бойся, не подсчет ссылок там. Иначе все проги на жабе уже давно утекли бы.
            Ответить
      • Что не так с архитектурой то? Всем GC (кроме подсчета ссылок) всегда было насрать на кольцевые ссылки.
        Ответить
        • Я CG только начинаю изучать. так что простите мне мою глупость) Есть какие нибудь Хорошие статьи на этот счет? Можно на буржуйском)
          Ответить
          • Из того что я нагуглил - http://www.ibm.com/developerworks/ru/library/j-jtp10283/ и другие статьи про яву оттуда.
            Ответить
            • Технология утилизации памяти.

              Как красиво назвали, и главное как точно. Сколько памяти не суй - а жаба всю ее утилизирует ;)
              Ответить
              • Ну это ЫНТЫРПРАЙЗ же, где программа запускается в одном экземпляре и час работы программиста стоит как 8 гигов памяти. Только ЫНТЫРПРАЙЗ и развивается и его либы соответственно суются во все места.
                Ответить
                • Я вот жрал когда узнал про то, что наш сервер на Java требует хотя бы 128 GB памяти чтобы обрабатывать хоть сколько-то приличное кол-во запросов (хотя бы 100ню если правильно помню) одновременно.
                  Ответить
                  • ну это черезчур
                    просто скажи, что ты это придумал
                    Ответить
                    • Не люблю когда слова расходятся с делом. Слава богу мне вовремя сообщили что это так. Переписываем сервер на кресты.
                      Ответить
                      • Что ж она у вас там жрет такими темпами? По полной копии базы в памяти каждого воркера?
                        Ответить
                        • показать все, что скрытоСоси хуец.
                          Ответить
                        • Немного не в тему - читал статейку про геймдев типа майнкрафтика. Прикол в том. что большенство деймдевщиков в собственном соку не занимается распределением памяти, они - просто дают проге свободу и ничего никогда не выгружают. Поэтому инди игры обычно жрут оперативу по полной. Майнкрафт с модами вообще сразу отьедает себе 4 оперативы и стабильно работает 10 минут, потом дохнет. грусть - печаль
                          Ответить
                          • > Прикол в том. что большенство деймдевщиков в собственном соку не занимается распределением памяти, они - просто дают проге свободу и ничего никогда не выгружают.

                            лолшто

                            а, я понял
                            просто в геймдеве принято делать так, чтобы все нужные данные изначально были загружены и заниматься мудизмом с памятью вообще не надо было
                            а какой-то то ли гсм-журнашлюшка, то ли гсм-читатель написал это так, что якобы они "дают проге свободу и не выгружают память".
                            Ответить
                            • >>дают проге свободу и не выгружают память

                              это я написал своими словами - ты сначала это как то иначе понял?
                              Ответить
                              • показать все, что скрытоЯ насрал в унитаз и сунул туда мордой твоего батю с зубной щёткой.
                                Ответить
                              • ты разницы не видишь?
                                охлол...
                                Ответить
                                • Ты разницу видишь?
                                  охлол...
                                  Ответить
                                  • Твой вариант - желтушно-журналистский стиль: сенсация, инди игры не освобождают память! Т.е. предполагается, что память течет.

                                    Вариант Тараса - игры загружают ресурсы заранее, чтобы не было фризов во время самой игры. Предполагается, что памяти юзается сколько нужно.
                                    Ответить
                                    • >> не занимается распределением памяти, они - просто дают проге свободу и ничего никогда не выгружают.

                                      и

                                      >>желтушно-журналистский стиль: сенсация, инди игры не освобождают память!

                                      идентичны?

                                      >>игры загружают ресурсы заранее, чтобы не было фризов во время самой игры.

                                      Ну а че. Вот в ом же крузисе загрузить все ресурсы сразу. Пусть комп встанет на колени и проблюется радугой

                                      Я не понимаю ваших претензий, тем более в форме охлол и лолшто
                                      Ответить
                                  • Ти різницю бачиш?
                                    хохол...
                                    Ответить
                          • > читал статейку
                            очередные breaking news с хабры?
                            Ответить
                          • Попробуй загрузить атлас текстур не выгрузив предыдущий /0.
                            Ответить
                            • легко
                              Ответить
                            • Смотря какой атлас. Если он всего десяток метров весит - то еще как загрузится ;) Правда потом рано или поздно все равно игрушка вылетит от недостатка памяти, но мы это спишем на кривое железо.
                              Ответить
                              • обычно это списывают на платформу.Жаба она и есть жаба
                                Ответить
                          • Я читал где-то, что если в минекрафте долго-долго-долго идти в одну сторону можно в Африку, никуда не сворачивая, то сервер съест вообще всю память и умрёт.
                            Ответить
                            • ну да. это называется принудительный вайп. ждешь копа интузиасты наснут лепить мегабашню или замок, достоял наполовину - и бежишь в ебеня. карту распидорасивает, игра начинает блевать радугой и админу ничего не остается как вайпнуть мирок
                              Ответить
                              • Дык на пабликах ограничение на размер мира ставят. А если не ставят - ну ССЗБ, что поделать.
                                Ответить
                                • когда как. там где я игрался ограничения не было. ну хотя я игрался когда еще бетка 1.4 была последним писком
                                  Ответить

    Добавить комментарий