1. C# / Говнокод #19529

    +10

    1. 1
    2. 2
    3. 3
    4. 4
    public static string toFormat(string s, int u)
    {
        return "                                                                       ".Substring(0, u * 4) + s +"\r\n";
    }

    Функция используется для форматирования файла класса, созданного автоматически.

    Запостил: deathguard771, 25 Февраля 2016

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

    • return "

      String operator "() { return this.toString(); }
      Ответить
      • В вашем этом сишарпе нельзя написать " " * u * 4?
        Ответить
        • можно. но не скомпилится.

          максимум как то так
          https://ideone.com/PSp1RX

          к сожалению, расширение не может быть перегрузкой оператора
          Ответить
          • бляяяяяяяяяяяяяяяяяяяяяяяяяяяяяя
            while (n-- > 0)

            э слыш ты тут не умничай
            Ответить
            • А что не так? По моему удобно и читабельно
              Ответить
              • да нихуя это не читаемо, надо извилины напрягать, я так не хочу.

                while (n --> 0)

                новый оператор -->
                Ответить
                • в шарпе нельзя новые операторы, так что ежу понятно что это постдекремент и сравнение
                  Ответить
                  • вот именно что посдекремент сравнение а блять еще же есть предекремент ух сука когда кто выполняется, зачем я столько пил вчера, блядь, кто это залил в репозиторий? кто делал код ревью? нихуя не понятно не читается, понаберут программистов, епт, сидят строчки экономят.
                    Ответить
                    • Ну давай писать вместо
                      for (int i = 0; i < UPPER; i++)

                      так
                      {
                                      int i = 0;
                                      for (; i < UPPER;)
                                      {
                                          i += 1;
                                      }
                                  }

                      И вообще сокращенное сложение не тру, ведь в мире существует полтора идиота, которые никогда его не видели, так что только
                      i=i+1;
                      Ответить
                      • for (int i = 0; i < UPPER; i++)

                        Легко читается потому что нет "перегруженности" смысловой в ++i и i++. Логика программы не изменится.
                        while (i-- > 0)

                        Тут уже надо подумать что будет. А если постдекремент поставлю? А если >=?
                        Я, конечно, пойму, но прошепчу тебе на ушко "ну, кегдан, ай да красавец".
                        Ответить
          • http://ideone.com/kXYtip
            Ответить
            • Ну так, конечно, можно, но я подразумевал что u - int

              Да и не по человечески все это...
              Ответить
        • public StringBuilder Append(
          	char value,
          	int repeatCount
          )
          Ответить
        • new string(' ', u * 4);
          Ответить
    • А нельзя ли вместо этой строки сделать бесконечно длинный список, на энумераторах? И ЛИНКОМ выбирать первые эн членов.
      Ответить
      • Так что ли?

        http://ideone.com/Mhz1sW
        Ответить
        • Чтобы на выходе была строка из эн пробелов
          Ответить
        • А зачем класс?
          http://ideone.com/0j6BCP
          Ответить
          • что бы всяких полезных методов в него нахуячить например.
            Ответить
            • Ебать сколько возможностей можно вхуячить в бесконечную коллекцию из одного элемента
              Ответить
              • Например такой метод,
                TarasB в http://govnokod.ru/19529#comment314053 написал:
                >> Чтобы на выходе была строка из эн пробелов
                Элементов в общем
                Ответить
          • Ну вернул он строку много раз, а как сделать, чтобы склеивался выхлоп энумератора?
            Ответить
    • Отлично!))

      Можно так переписать:
      public static string toFormat(string s, int u)
      {
      return new String(' ', u * 4) +$"{s}\r\n";
      }
      Ответить
    • Объясните для отсталых, ЧТО ЭТО?

      Это вообще скомпилится?
      Ответить
      • Объясняю, как воспроизвести:

        1. Идём в/на http://ideone.com/samples#sample_lang_27 и дополняем код необходимой обвязкой:
        using System;
        
        public class foo {
         public static string toFormat(string s, int u)
         {
            return "                                                                       ".Substring(0, u * 4) + s +"\r\n";
         }
         public static void Main()
         {
            Console.WriteLine(toFormat("OLOLO", 4));
         }
        }


        2. Сохраняем код в файл foo.cs и вводим в консоли Шиндошз команду:
        C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe foo.cs


        3. Запускаем foo.exe. Комп распидорасило, пишу с утюга.
        Ответить
        • > консоли
          Вот в венде уже и компилятор изкоробки появился....
          Ответить
          • С добрым утром. Он изначально был, только лежит хуй пойми где.
            Ответить
            • Компилятор поставлялся с Microsoft.NET, начиная аж с версии 1.0. Вот только сам фреймворк раньше не поставлялся с Виндой и его надо было ставить отдельно. Из коробки он стал только в Windows Server 2003 / Vista (вышедших десяток назад).

              Плохо, что его нет в PATH, так что приходится писа́ть полный путь...
              Ответить
              • И правильно что нет
                Компиляторов-то там несколько разных версий
                Ответить
                • Что мешало сделать как в питоне на прыщах - css4.exe?
                  Ответить
                  • Мне кажется, это просто не нужно истинному пользователю Windows.
                    Зачем делать csc2, csc3, csc4, когда можно установить несколько гигабайт студии и там переключать версию?
                    Ответить
                    • Но зачем-то они коншольный конпелятор в комплекте клиентского профиля принесли? В жаве его вынесли в JDK
                      Ответить
                      • зачем пользователю вообще компилятор использовать? ты решил, как в линуксах софт распространять в исходниках и компилить его на компе юзера при установке?
                        так вот смысла в этом нет. там есть JIT, который в конечном счете генерирует тебе бинарный код, и конечная оптимизация происходит именно в этот момент. если у тебя был код
                        if(Environment.ProcessorCount > 2){
                        ...
                        }
                        , то при запуске на компе с двумя ядрами этот блок выпилится. проще говоря, наличие компилятора на компе клиента это фича, а рекомендации
                        Ответить
          • Я так в пту писал на блядорешеточке в блокноте, потому что туда не завезли VS
            Ответить
            • Ну есть ide которые можно ставить не под админом, хотя бы уж NPP
              Ответить
            • недавно слышал историю, что в одной школе не дали денег на компьютерный класс, а информатику же надо было как-то преподавать... так вот, они там 2 года писали бейсик код в тетрадке. непонятно только как они его проверяли потом, не думаю, что учитель носил их все домой, переписывал, компилировал и смотрел результат.
              Ответить
              • А я другое видел. Препод сказал моему сокурснику: «Я Вашу программу проверил, пока в метро ехал. Она не работает». Для справки: смартфонов и КПК, когда я учился, не было, ноутбука у препода тоже не было. Он программу с тетрадки скомпилировал в своей голове и решил, что она не работает!!!
                Ответить
                • с тетрадки? вы писали код в тетрадках?
                  Ответить
                  • Да у вас были тетради? Мы держали весь код в уме, и читали его учителю на слух
                    Ответить
                    • а мы в тетради на бейсике картинки рисовали. Для сдачи нужен был код который рисует картинку и сама картинка построенная по клеточкам в тетради.
                      Ответить
                    • ...по телефону, через линию которого местное отделение КГБ передавало отчёты в Москву на скорости 1600 бод.
                      Ответить
                • Вы не поверите, но собесы в топовые софтверные компании проходят примерно вот таким образом.

                  Когда я читаю код на ревью, возможности скомпилить в его браузере нет.
                  Ответить
                  • а в чем смысл?
                    Ответить
                    • https://www.quora.com/Why-do-tech-companies-use-a-whiteboard-for-coding-interviews-when-they-could-instead-use-a-laptop-which-is-projected-onto-a-screen-so-everyone-in-the-room-can-see-it
                      Ответить
                      • Ну и вывод:
                        That said, today, all of these problems are relatively easily solvable so requesting a Dev to bring their own laptop preconfigured makes a lot of sense.

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

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

                        ППС. Может в Гугл официально требуют работать с гуглдок. Если по работе это не нужно, то зачем ставить такие условия? Нормальный экзамен должен проверять пригодность для задачи, которую нужно решить. Задач в программировании, которые нужно решать с помощью доски или гуглдока практически нет.
                        Ответить
                        • Вы можете спорить с гуглом сколько угодно. Поверьте, гуглу настрать. Он лучше вас знает, как ему набирать программистов на работу.
                          Пока у них всё неплохо получается.
                          Ответить
                          • ХЗ. А что Гугл это какой-то золотой стандарт чего-то? Они какие-то сверхъестественные программы пишут? Почему на них нужно равнятся?
                            Я как бы не спорю, мне просто не понятно почему их методы "считаются" лучше других? Мало ли у кого "неплохо" получается. У нас тоже неплохо получается, например, и что?
                            Ответить
                          • Мы обсуждаем же не право гугла дрочить вприсядку, а целесообразность такого подхода.
                            Ответить
                          • https://leetcode.com/discuss/explore/google/564955/which-locations-offer-chromebook-option-for-onsites

                            >I was offered a Chromebook in Zurich in January'20.
                            какой "гугл лучше знает" )))
                            Ответить
                        • > В моем универе эказмен по Яве сдают и проверяют по бумажке.
                          Это везде так же

                          >Когда я сказал преподавателю, что он не прав, и что он должен скомпилировать код, чтобы проверить, то он обиделся и просто даже не стал разговаривать.
                          Ожидаемо.
                          Ответить
                    • Кстати, примерно года полтора назад гугл стал предлагать на выбор - доска или chromebook + google.doc.
                      После небольшой практики доска всё же удобнее - на ней можно быстро рисовать, размышляя над алгоритмом.
                      Ответить
                      • ну, это все равно, что искизы картины описывать словами в тетради. я блоксхемы сначала на листке рисую карандашем, а уже потом рисую на компе. да, так проще, но извини, код тоже разной сложности бывает, и разного качества.
                        я вот тут например вчера немного увлекся написанием хелпера, что я думаю, он скоро догонит по функционалу какую-нибудь простенькую ORM.
                        конечно же, можно было бы использовать какой-нибудь EF или нхибернейт, но они слишком тяжелые. я думаю, было бы проблематично на бумаге расписать базовый класс, который будет через рифлексию отслеживать изменения в наследовыеммых классах, и генерировать андейты в базе, добавление новых, удаление, и прочие CRUD операции на основе метаданных и рефлексии.
                        а hello world в одну строчку обычно пишется.
                        Ответить
                        • В гугле не фреймворк написать просят, а решить проблему.
                          Обычно проблема такая, что достаточно написать примерно полстраницы кода, используя от силы 2 класса из стандартной библиотеки.

                          Ты не можешь написать полстраницы кода без IDE?
                          Ответить
                          • Ты знаешь, при разработке сверху вниз ide сильно помогают.
                            Ответить
                          • по моим наблюдениям, на собеседованиях просят написать sql запрос, который транспонирует табличку, или найти ошибку/опечатку в коде.
                            Ответить
                        • Ну на собеседованиях всё-таки не ORM'ы проектируют, а как раз задачки уровня hello world...
                          Ответить
                          • > задачки уровня hello world

                            Уровня Top Coder Div 2 250-500
                            Ответить
                            • А вообще сложно в гугл на собеседование попасть?
                              Ответить
                              • Ты запросто попадёшь. Одно удачное телефонное собеседование с гуглодоком - и тебя зовут онсайт.
                                Ответить
                                • > онсайт
                                  А перелёт на этот самый онсайт оплачивают?
                                  Ответить
                                  • > А перелёт на этот самый онсайт оплачивают?

                                    Оплачивают. Перелёт, гостиницу на день, расходы на еду.
                                    Ответить
                                    • Круто, блин. Бесплатная турпоездка куда-нибудь в европку/америку :)

                                      В россии же офисов гугла больше нету?
                                      Ответить
                          • Из последних содержательных и интересных собеседований:
                            - Попросили решить 5 задач из Project Euler. Компания занимается сетевой безопасностью.
                            - Попросили сделать интерактивное представление статистических данных заданой тематики (поиск книжек). Компания занимается аналитикой в области недвижимости.
                            - Попросили написать минимальный сайт с отображением ленты новостей и друзьями. Компания провайдер корпоративных почтовых серверов.

                            Все это делалось в домашнем комфорте, никаких ограничений на инструменты, гуглдоки и т.п.

                            Когда на собеседовании просять за пять минут слабать на коленке решение какой-то проблемы, то это как правило потому что собеседователь не подготовился как следует, или просто не знает что спросить / нет никакой системы и четких критериев оценки.
                            Ответить
                            • > за пять минут слабать
                              За 35-40.

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

                              Ну а в гугле на дизайн-инервью тебя попросят рассказать, как ты будешь реализовывать "друзей" и "ленту", когда у тебя миллиард пользователей, каждый из которых постит в среднем по 10 новостей в день.
                              Ответить
                              • С учётом того, что есть извращенцы, которые читают ленту от 200-300 друзей?
                                Ответить
                                • И с учётом всяких эштонов кутчеров, у которых миллионы подписчиков.
                                  Полезное чтиво
                                  https://sns.cs.princeton.edu/docs/feeding-frenzy-sigmod10-web.pdf
                                  Ответить
                              • Это собес на архитектора? Если человек знает, как сделать это в теории и на практике, то зачем ему гугол и что он ему даст
                                Ответить
                                • показать все, что скрытоvanished
                                  Ответить
                                • Гугл даст инфраструктуру и подходящих коллег, чтобы реализовать подобные системы
                                  Ответить
                                  • > Гугл даст инфраструктуру и подходящих коллег
                                    Ожидание: реализовывать подобные системы
                                    Реальность: поддержка гугл плюс
                                    Ответить
                                  • Может, я ошибаюсь, но сама постановка вопроса, когда гугл ищет инженера, способного построить хайлоад или ещё какой-то другой космос, подразумевает, что человек этим хайлоадом занимался и успешно и как минимум несколько лет. Ну то есть у чувака уже была и инфраструктура, и коллеги. Какое тут конкурентное преимущество у Гугла, кроме того, что он собственно молодая, динамично развивающаяся компанияГугол?

                                    Задавать такие вопросы интернам и т.п. это какой-то извращённый снобизм, хотя, конечно, компаниям такого калибра он отчасти простителен, но задаёт неприятный тренд.

                                    Кстати, читал как-то, что в США в Гугле средняя продолжительность работы программиста около 3 лет. Ещё не думал про дальнейшие планы? Не пора ли создавать Das nächste große Ding?
                                    Ответить
                                    • > подразумевает, что человек этим хайлоадом занимался и успешно

                                      Нет, реальный опыт хайлода здесь особо не нужен, только базовые знания и навык back-of-envelop-calculations: какая будет нагрузка на систему? сколько машин потребуется? где будет узкое место? что делать с граничными случаями?

                                      От людей не требуется глубоких знаний, как что-то сделать, тут важно как ты подходишь к решению, как ты умеешь делать оценки и рассуждать. Если ты понимаешь и умеешь использовать базовые принципы (шардинг, основные принципы БД, онлайн/оффлайн вычисления, etc.), то придти к адекватным решениям типовых задач довольно просто.

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

                                      > Задавать такие вопросы интернам

                                      Интернам такие вопросы никто не задаёт, только людям с опытом.

                                      > в США в Гугле средняя продолжительность работы программиста около 3 лет

                                      Похоже на правду. Сильно зависит от проекта, у нас довольно много людей, которые работают 5+ или даже 10+ лет.

                                      > Ещё не думал про дальнейшие планы?

                                      Сложно сказать. Для начала нужно поднакопить денег, а потом можно будет переехать в глубинку и работать удалённо над каким-нибудь астралом на хачкеле/окамле.

                                      Следующие Большие Вещи меня мало интересуют.
                                      Ответить
                                      • Может гугловый хайлоад и силён, но вот все end-user-facing вещи в последнее время вызывают крайнее... недоумение. Как будто кто-то в компании на внутренних митингах форсит "predictive interface" (термин придуман мной для описания этой гипотетической питушни), когда юзеру нужно непременно показать, что гугл умнее его, и при этом обосраться.
                                        Для поиска уже давно пользуюсь DDG, ибо их индекс уже достаточно хорош, но NLP/ML/AI-питушни ещё не завезли.
                                        Ответить
                                      • показать все, что скрытоvanished
                                        Ответить
                                      • показать все, что скрытоvanished
                                        Ответить
                      • > на ней можно быстро рисовать
                        А ещё её можно долго-долго чистить, пока думаешь над алгоритмом...
                        Ответить
                  • > возможности скомпилить в его браузере нет
                    Зато сразу видно, когда код слишком сложен и/или упорот.
                    Ответить
              • У нас были на паскале контрольные в самом начале урока на листочках. Тем кто написал работающий код, разрешали сесть за компы.
                Ответить
                • Прям спарта какая-то.
                  Ответить
                  • > Прям спарта какая-то.

                    по заветам Дейкстры
                    Ответить
                    • не вижу ничего страшного программировать на листочке
                      учит писать хороший код с первого раза
                      Ответить
                      • Я тоже ничего такого не вижу. Более того, на листочке я обычно пишу менее бажный код, чем в редакторе. Потому что головой думаю, а не пальцами.

                        Это рабы IDE в основном возмущаются.
                        Ответить
                        • Вы еще перфокарты вспомните и как по 2 недели надо было ждать пока вашу программу говнокод запустят.
                          Ответить
                        • Вообще по-моему общепринятая практика отвлечься от клавиатуры и порисовать на листочке.
                          Ответить
                          • > порисовать на листочке
                            Можно ещё на пуфе поваляться и собрать мысли в кучу.
                            Ответить
                        • А со вставкой как? Обычно же пишешь какие-то ключевые моменты, а потом добавляешь всякие конкретные мелочи вроде инициализации переменных и т.п. Лично у меня на листочке появляются очень длинные строки вида
                          func(int a), int b) { int p = 1, s = 8 j = MIN; Tree tree = new Tree("15", 0);
                          Ответить
                          • Дык на листочке надо писать по большей части псевдокод, а не финальную версию...
                            Ответить
                            • На псевдокоде тоже можно написать "ядро", а потом подумать над какими-то особенностями.
                              Ну, разве что, на псевдокоде можно чуть ниже написать "инициализация: x=3, t=now"
                              Ответить
                            • О псевдокод: еще один миф современного программирования. Люди верят в то, что их пвсевдопаскаль является улучшенной и более абстрактной версией любого другого языка. А все на самом деле потому что (а) не поняли даже не-псевдо паскаль, и (б) не могут сформулировать (от слова "формально") свои мысли, и прибегают к инструментам, которы ни к чему не обязывают, и где несостоятельность автора гораздо тяжелее обнаружить.
                              Ответить
                              • типичный аргумент кодомакаки
                                Ответить
                              • блоксхемы тоже миф?
                                Ответить
                                • Нет, просто плохой язык программирования. Используя схемы нельзя инкапсулировать часть программы. Очень проблематично представить высокоуровневые концепции типа поиска переменных по имени (reflection), отсутствие детерминизма, (параллельное выполнение, например). Схемы адекватны для небольших задач на Ассемблере или как расставить транзисторы на плате.
                                  Ответить
                            • показать все, что скрытоvanished
                              Ответить
                          • > А со вставкой как?

                            Очень просто. Надо просто оставлять немного места на будущее для новых переменных, проверок т.п.
                            Ответить
                          • показать все, что скрытоvanished
                            Ответить
                        • Звучит крайне по-идиотски. В любом случае его нужно будет набирать на компьютере, иначе это абсолютно бессмысленный код. А если все равно придется писать на компьютере - нахуя делать одно и тоже дважды?
                          Ответить
                          • >> рабы IDE возмущаются
                            > Звучит крайне по-идиотски.
                            > нахуя делать одно и тоже дважды
                            Ответить
                            • Да дело даже не в ide

                              Можно писать в обычном блокноте, без подсветки синтаксиса и интеллисенса.

                              Нахуя на бумаге то?
                              Ответить
                              • > в обычном блокноте, без подсветки синтаксиса и интеллисенса
                                Уж лучше на бумаге...
                                Ответить
                                • ....СТРАУСТРУП нанял ФУНКЦИОНАЛЬЩИКА СО ШТАНГОЙ за 5 тысяч рублей. Так как компьютера у них не было, ФУНКЦИОНАЛЬЩИК вначале написал на бумажке компьютер в 1 строчку НА ХАСКЕЛЕ:
                                  Computer = Computer
                                  ФУНКЦИОНАЛЬЩИК сожрал бумажку и высрал работающий системный блок с ВОДЯНЫМ ОХЛАЖДЕНИЕМ и предустановленой WINDOWS 7....
                                  Ответить
                                  • где здесь фанфик, кегдан?
                                    Ответить
                                    • Не все то фанфик, что кегдан пишет
                                      Ответить
                                    • Хотя завтра я, наверное, вас огорчу новым творением
                                      Ответить
                                      • у меня до сих пор болтается непрочитанная закладка с твоим творением
                                        Ответить
                                  • Это гомостак? На уютненьком говнокоде?
                                    Ответить
                          • Я вот классе в 10-11 писал дома код на бумажке, а потом в машзале его вбивал и запускал (т.к. там время было довольно ограниченное)...
                            Ответить
                            • ну так сейчас комп есть у каждого
                              Ответить
                              • А ума больше не стало...
                                Ответить
                                • что поделаешь. Люди по природе дураки. А кто это отрицает - и того больше
                                  Ответить
                                  • Причём чем больше ты знаешь, тем сильнее становится чувство, что твои знания - просто капля в море...
                                    Ответить
                                    • В какой то момент времени понимаешь что знания по природе своей бессмысленны и пытаешься жить в этой пустоте
                                      Ответить
                                      • Да жизнь вообще не имеет смысла, если задуматься... Поэтому лучше книжки про "бессмысленность знаний" и т.п. ставить подальше на полочку и никогда не открывать. Потому что обратной дороги нет...
                                        Ответить
                                        • Осознание бессмысленности дает свободу. Нет смысла не быть счастливым прямо сейчас
                                          Ответить
                            • Я вот классе в 8-9 рисовал дома клавиатуру на бумажке, а потом пытался научиться слепому набору, так как работающего компьютера у меня тогда не было.
                              Ответить
                        • Что плохого написать

                          Sosaka sosaka = new Sosaka(gluboko);
                          sosaka.sosat();

                          Потом пару раз ctrl+1 и у тебя каркас класса? Расскажи как сделать это на бумаге.
                          Ответить
                  • Безумие? Это СПАРТА ГОВНОКОД!!!
                    Ответить
                    • Тем, кто написал калькулятор - разрешают пользоваться калькулятором.
                      Тем, кто написал текстовый редактор - текстовым редактором...
                      Ответить
                      • А операционку дали только Денису Попову.
                        Ответить
                        • А чтобы пользоваться гуглом любыми сайтами нужен скрипт который копирайты на лету подменяет?
                          Ответить
                        • Но ведь и многострадального г. Бабушкина не миновала сия честь - править код Windows 8, который, как следует из его собственных слов, ему присылала Майкрософт (не оттого ли она такая бажная?)
                          Ответить
                      • The Elder Scrolls: Govnorim
                        Ответить
    • Вопрос вот такой возник. Я особо пока не гуглил.
      Может есть ресурс какой с Задачами/вопросами для собеседований?
      Мне нужно найти питониста для решения одного круга задач. Очень бы не хотелось бы на пидара нарваться.
      Ответить
      • freelance.ru?
        Ответить
      • >Очень бы не хотелось бы на пидара нарваться.
        судя по первому комментарию, это и произошло
        Ответить

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