Бухгалтерия / Говнокод #2948 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
........
Перем Cont Экспорт;
........

Процедура ЗаписатьКонтекст(Конт) export
	Cont = Конт;
КонецПроцедуры

не знаю что автор хотел этим сказать
но обнаружили мы это у себя утром сегодня в конфе...а вчера не было))))

конфа комплексная...

Запостил: s.komaroff s.komaroff, (Updated )

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

  • в комплексной если что уже есть функция
    глВзятьКонтекст(Конт)

    которая возвращает контекст
    Ответить
  • а 1с "export" перевести на русский религия не позволяет?
    Ответить
  • а что такое конфа в контексте 1C? конфиг? или что?
    Ответить
  • Непонятно зачем смешивать русскую и латинскую нотации. А так вполне нормальный код для 7-ки. Помещение текущего контекста в глобальную переменную. Это можно сделать только в глобальном модуле. Для того и процедуру сделали. В модуле формы или в модуле объекта такая запись
    Cont = Контекст;

    почему-то не работает
    Ответить
    • я еще раз повторюсь
      накой бес делать ПРОЦЕДУРУ
      в которой делается запись глобальной переменной. потом она сбрасывается...когда все уже придумано до нас

      //**************************************** **************************************
      // глВзятьКонтекст(Конт)
      //
      // Параметры:
      // Конт - значение типа "Контекст"
      //
      // Возвращаемое значение:
      // Переданный контекст
      //
      // Описание:
      // Функция возвращает переданное значение параметра (для получения Контекста)
      //
      Функция глВзятьКонтекст(Конт) Экспорт
      Возврат Конт;
      КонецФункции // глВзятьКонтекст()

      вот более правильноеи красивое решение...
      Ответить
      • Процедура выполняет Помещение текущего контекста в глобальную переменную. Возможно писалась в те времена, когда глВзятьКонтекст ещё не было в типовых. Это 1997-2000 годы. Это не говнокод.
        Ответить
        • Когда бы это ни появилось, это всё равно говнокод. Никто не мешал написать свой глВзятьКонтекст, с блэкджеком и шлюхами.
          Ответить
      • В чем смысл писать такие комментарии?

        //*****************************************************************************
        //
        // plus(a, b)
        // 
        // Параметры:
        // a -- параметр типа "целое"
        // b -- параметр типа "целое"
        //
        //
        // Семантика:
        // Данная функция возвращает сумму переданных ей аргументов
        //
        // Особые замечания:
        // 
        // ВНИМАНИЕ: Данная функция обладает свойством коммутативности!!!
        ///
        // Возвращаемое значение:
        // 
        // Сумма переданных аргументов
        // 
        //*****************************************************************************
        int plus(int a, int b) {
         return a + b;
        }
        Ответить
    • И vim
      И Notepad++
      И EditPlus

      Что заставляет долбоёбов ставить свои Idea с Visual Studio?
      Ответить
      • idea ce тупо виснет при попытке тупо прописать тупо пути к тупо тулам

        ты конечно всё на жабу свалишь, но что-то мне подсказывает
        Ответить
        • Где жаба, там и жаба-программисты
          Ответить
          • java.lang.Throwable: AWT events are not allowed inside write action

            я хуею без баяна
            Ответить
            • Это же очевидно что делать обратись к системному администратору

              WriteAction это глобальный лок в Intellij. Когда он взят -- вся система стоит рачком. Обрабатывать события гуя в нем нельзя видимо.

              Напиши им багу в шью треккер
              Ответить
                • >allows any function to be called using the syntax for method calls (as in object-oriented programming), by using the receiver as the first parameter
                  похоже на extension функции в коко и шарпее

                  Тема полезная для дискаверабилити, но быстро-ли это компилируется?
                  Ответить
                    • Когда кокошников спрашиваешь "хули у вас коко кокококкокококпилируется медлее чем си плюс плюс" они говорят "ну вот глобально доступные extension methods медленные"
                      Ответить
                  • Не дольше, чем кресты с их конь-текстнозависимой грамматикой.

                    a.petuh(b) компилируется как petuh(a, b)

                    В языках с ООП по типу Симулы (C++) ведь тоже this по факту неявно передаётся самым первым аргументом метода. Сложности начинаются, когда метод виртуальный.
                    Ответить
                    • во некоторых япах он даже явно туда перепадется, да.

                      Кстати, в го и расте нужно указывать как именно ты его принимаешь: по значению или по ссылке. А в рустне поскоку всё по умолчанию мувается, то вызов метода может превратить объект в какашку, потому что объект двинется внутрь метода и там в бозе почит
                      Ответить
                        • пруфану
                          c:\temp>type foo.rs
                          struct Rooster;
                          
                          impl Rooster {
                                  fn do_all(self){} //вот тут перед self нужно вставить амперсанд, тогда починица
                          }
                          
                          fn main() {
                                  let ruster = Rooster{};
                                  ruster.do_all();
                                  ruster.do_all();
                          }
                          
                          c:\temp>rustc foo.rs
                          error[E0382]: use of moved value: `ruster`
                            --> foo.rs:10:2
                             |
                          8  |     let ruster = Rooster{};
                             |         ------ move occurs because `ruster` has type `Rooster`, which does not implement the `Copy` trait
                          9  |     ruster.do_all();
                             |            -------- `ruster` moved due to this method call
                          10 |     ruster.do_all();
                             |     ^^^^^^ value used here after move
                             |
                          note: `Rooster::do_all` takes ownership of the receiver `self`, which moves `ruster`
                            --> foo.rs:4:12
                             |
                          4  |     fn do_all(self){}
                             |               ^^^^
                          
                          error: aborting due to previous error
                          
                          For more information about this error, try `rustc --explain E0382`.
                          Ответить
  • https://ec-lang.org/

    какая хуйня обнаружилась, а

    An Expressive and Intuitive, C Style Object-Oriented Programming Language.

    import "ecere"
    
    class HelloForm : Window
    {
       text = "My First eC Application";
       borderStyle = sizable;
       clientSize = { 304, 162 };
       hasClose = true;
    
       Label label
       {
          this, position = { 10, 10 }, font = { "Arial", 30 },
          text = "Hello, World!!"
       };
    };
    
    HelloForm hello { };
    Ответить
      • не, это какое-то эталонное ненужно. просто чего только не придумают

        на планете пять
        миллионов групп
        и это нннн
        Ответить
        • Когда я вижу ключевое слово "class", я сразу понимаю, что язык опоздал на тридцать лет, и не нужен
          Ответить
            • Быстро расскажи мне что такое класс и чем он отличается от типа или структуры
              Ответить
              • Тип — более общий термин. Тип не обязательно описывает ООП. Скаляр — это тоже тип.

                Структура — более частный. Структура обычно состоит из полей. Но в крестах struct ничем не отличается от класса (разве что по дефолту видимость другая). Не знаю, нафиг так сделали.
                Ответить
                • >разве что по дефолту видимость другая)
                  ну вот видишь, офигенная разнциа, правда? Сделано так ради совместимости с няшной и ради того, чтобы форсить приватность в новом коде.

                  А чем в C# отличается знаешь?

                  Я не люблю когда завозят мутные хуйни заради нихуя. Все сменяются на джавушками с их StringBuilder/StringBuffer или Hashtable/Map, а разница между class и struct не менее всратая же
                  Ответить
                  • Да, кстати, в Йаже я без шпаргалки не вспомню, кто из них мудакбелен, а кто потокобезопасен. Очень удобные названия, как copy, copy2 и copyfile в Питоне.
                    Ответить
          • я вообще не понимаю, откуда это слово взялось и почему

            кстати, у дельфинов же вроде изначально была другая номенклатура? типа object хуё-моё или я пизжу?

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


              Ну реально, спроси питуха чем "class" отличается от "struct"
              C++ и C# петухи дадут настолько разные ответы, что я ебал.

              В Rust и Go нету никаких "class": только struct, и всем хорошо
              Ответить
              • Within Turbo Pascal, encapsulation i s
                accomplished by defining an object type ,
                more commonly called a class . A class i s
                defined in the type section using a ne w
                reserved word object, as the example belo w
                shows

                это ж охуеть можно

                кстати, классно у них пдф прикинулся djvu
                Ответить
            • Слово class появилось в Delphi 1.0. Теперь там object и class существуют параллельно.

              Object можно создавать, где угодно: в глобалках, в стеке, в куче. Class сам создаётся в куче, и управлять его размещением нельзя.

              Class поддерживает новые фишки: properties, перегрузки операторов. Object застрял в том состоянии, в котором он был в BP 7.0.
              Ответить
              • >Class сам создаётся в куче, и управлять его размещением нельзя.

                ну вот началось, блин. Какое-то множество фичей мы выделим, и наделим ими случайное ключ слово

                давайте добавим ключ слово "real_class" и разрешим там множественное наследование
                Ответить
                • Представляешь, да?

                  Вместо того, чтобы новые фичи добавить к object, ничего не ломая, они взяли новое ключевое слово class и стали навешивать новые фичи на него, а object перестали развивать.

                  Кстати, object требует меньше функций рантайма, чем class. Формат VMT разный. Хотя кто ковыряется в VMT напрямую?
                  Ответить
                  • А зачем они стали форсить кучу? Чтобы школоло не ловило SO и не копировало туда/сюда пачку данных?
                    Там же нету RC и GC? Вручную нужно удалять/добавлять?

                    Сложрность VMT/vtable важна когда у тебя много виртуальных методорв же
                    Ответить
                    • Из документации Фрипаскаля:

                      Class instances must be destroyed using the destructor. In difference with the constructor, there is no choice in destructors: the destructor must have the name Destroy, it must override the Destroy destructor declared in TObject, cannot have arguments, and the inherited destructor must always be called.
                      Destroy will call FreeInstance, which, in its default implementation, calls FreeMem to release the memory occupied by the instance.
                      To avoid calling a destructor on a Nil instance, it is best to call the Free method of TObject. This method will check if Self is not Nil, and if so, then it calls Destroy. If Self equals Nil, it will just exit.
                      Ответить
                      • >Destroy
                        >FreeInstance
                        >Free
                        Бедный Никлаус, он проклял наверное то, во что превратили его детище
                        Ответить
                        • Угу. А у object ты деструктор можешь назвать как угодно, а для удаления объекта (если он в куче) вызываешь Dispose(petuh, имя_деструктора);
                          Ответить
                        • А знаешь, кто придумал Дельфи? Тот же, кто придумал TypeScript и C#. Датчанин Андерс Хейлсберг.
                          Ответить
                          • А Шарп начинался как копия жабы после того, как свою реализацию жабы майкам иметь запретили?
                            Ответить
                        • А что не так? Destroy ты пишешь сам, а вызываешь через унаследованный Free.
                          Ответить
                • А ещё все class являются наследниками какого-то говна типа TObject или TClass. Ничего не напоминает?

                  А object можно создать from scratch, ни от чего не наследуя, не засирая ненужными методами и полями.
                  Ответить
                  • ахаха, надеюсь там есть метод для получения хеша и фунция бесселя?

                    PS: T я помню еще по пасклю. TMenuBar был? TRadioButton, еще чото
                    Ответить
  • Если складывается пасьян то сбегает уголовник
    Если техника Делл загружается с первого раза то сбегает два уголовника

    К счастью такого никогда не бывает
    Ответить

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8