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

    0

    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
    20. 20
    21. 21
    public readonly struct Int64 : IComparable<long>, IConvertible, 
    IEquatable<long>, IParsable<long>, ISpanParsable<long>, 
    System.Numerics.IAdditionOperators<long,long,long>, 
    System.Numerics.IAdditiveIdentity<long,long>, 
    System.Numerics.IBinaryInteger<long>, System.Numerics.IBinaryNumber<long>, 
    System.Numerics.IBitwiseOperators<long,long,long>, 
    System.Numerics.IComparisonOperators<long,long,bool>, 
    System.Numerics.IDecrementOperators<long>, 
    System.Numerics.IDivisionOperators<long,long,long>, 
    System.Numerics.IEqualityOperators<long,long,bool>, 
    System.Numerics.IIncrementOperators<long>, 
    System.Numerics.IMinMaxValue<long>, 
    System.Numerics.IModulusOperators<long,long,long>, 
    System.Numerics.IMultiplicativeIdentity<long,long>, 
    System.Numerics.IMultiplyOperators<long,long,long>, 
    System.Numerics.INumber<long>, System.Numerics.INumberBase<long>, 
    System.Numerics.IShiftOperators<long,int,long>, 
    System.Numerics.ISignedNumber<long>, 
    System.Numerics.ISubtractionOperators<long,long,long>, 
    System.Numerics.IUnaryNegationOperators<long,long>, 
    System.Numerics.IUnaryPlusOperators<long,long>

    https://learn.microsoft.com/en-us/dotnet/api/system.int64?view=net-7.0

    Запостил: ISO, 18 Сентября 2023

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

    • В языках с «тайпклассами» такой проблемы нет и быть не может. Она возникает только в злоебучих «ООП»-говнах, визжащих на каждой остановке о DRY, KISS, YAGNI и SOLID.
      Ответить
      • В целом насрать
        Ответить
      • какой проблемы
        Ответить
      • > о DRY, KISS, YAGNI и SOLID

        А еще GRASP
        Ответить
        • У меня в "PHP" ничего из перечисленного нету.
          Ответить
          • https://govnokod.ru/28840#comment1172266
            Ответить
            • На самом деле QBasic это офигенный язык. Нет шаблонов никаких, нету работы с памятью, нету указателей. Ты не пишешь алгоритмы никакие, ты пишешь бизнес-логику


              А эту хуйню про SFTP он реально или троллит? Я просто пытаюсь понять: пыхеры действительно идиоты, или они просто имбецилы, которые притворяются идиотами?
              Ответить
              • Может он на говнокоде сидел и так почерпнул мудрых знаний о том, что в PHP нихуя нет, и что можно просто заливать файлы по фтп и речь
                Ответить
        • ну и мое любимое
          https://sceweb.sce.uhcl.edu/helm/WEBPAGE-SWEN4320-Software%20ProcessCourse/myfiles/IBMUnifiedProcess/process/artifact/images/ars_mgmt.gif
          Ответить
        • Йа! Йа! Ктулху Фхтагн!
          Ответить
        • Ну как, ягнул?
          Ответить
    • Сказал гость из языка с ТривиалиКопблами, лол
      Ответить
      • Вот как раз ТривиалиКопблами — это пример сносной реализации: хуже, чем тайпклассы, но на порядок лучше, чем наследование миллиарда ебучих интерфейсов. В отличие от уебизма в посте, все ТривиалиКопблы — это независимые от типа сущности: мне не нужно вносить в тип знания о том, насколько он тривиалекопибален. Аналогично — со всякими std::less<T>: умения сравнивать два T можно вынести в отдельный объект, а не запихивать их хуй знает зачем в сам тип (но IComparer, справедливости ради, и в дотнетах, и в джаве есть).
        Ответить
        • Ну ок, а структурная типизация типа тайпскрипта бы тебя устроила?

          Там не нужно явно реализовывать хуиту: просто в компайл-тайме проверяется, что у тебя есть нужные ручки
          Ответить
          • Нет, это всё ещё хуйня. Что мне делать, чтобы научить сериализовать объект в «JSON»? А потом ещё в «XML», «protobuf» и «ORM». Приделывать в каждый GovnoDTO по ручке для «JSON», по ручке для «XML», по ручке для Аллаха, да смилуется Он над нами?

            В человеческих языках для этого существуют «тайпклассы»; в остальных для этого городят велосипеды типа «class GovnoConverter : JsonConverter<Govno> { public override Json Serialize(Govno govno, JsonContext context) }».

            А в «PHP» делают так:
            class ArrayValue implements JsonSerializable {
                private $array;
                public function __construct(array $array) {
                    $this->array = $array;
                }
            
                public function jsonSerialize() {
                    return $this->array;
                }
            }
            Ответить
            • Нет, это гомосятина, конечно.

              Такую хуйню нужно описывать снаружи.

              Теперь я тебя понял: в плюсах так действительно можно делать. Причем в отличии от, например, рустни, я могу это делать где угодно.
              Ответить
              • Справедливости ради, в большинстве языков так можно делать. Другое дело, что без нормальной поддержки языком это дико неудобно и вербозно, а в случае питушарских ЙАЖ с СИСЯРПАМИ так вообще возникает крупный оверхед на аллокацию мелких говноконвертеров, мумулирующих тайпклассы.

                Вот у рустни трейты сделаны почти как надо, но orphan rule (сделанный для удобства заедушных анскиллябр) всё портит.
                Ответить
                • В скриптогавне можно сделать забесплатно. Точнее задорого, но в нём всё дорого, так что забесплоатно.

                  В Руби вполне могут делать так, и течь
                  # 
                  # clubhouse_client.rb
                  def send(clubhouse_compatible)
                    puts clubhouse_compatible.as_clubhouse
                  end
                  
                  # support_clubhouse_for_numbers
                  class Integer
                    def as_clubhouse
                      self + 1
                    end
                  end
                  
                  # main.rb
                  send 42


                  >orphan rule
                  Отвратительный багор, да.

                  С другой стороны, не бывает багров типа "я подключил крейт и всё стало ИНАЧЕ работать"
                  А в плюсах вполне может быть "я подключил хедер, и всё стало работать"
                  Ответить
                  • import std.stdio;
                    
                    void SendToClubHouse(T)(T value) {
                        static if (is(T : int)) {
                            writeln(value + 1);
                        }
                    }


                    это не эквивалент, зато нет мусорных методов в контракте типа
                    Ответить
                    • import std.stdio;
                      
                      int AsClubHouse(int value) {
                          return value + 2;
                      }
                      
                      void SendToClubHouse(T)(T value) {
                          static if (is(T : int)) {
                              writeln(value.AsClubHouse);
                          }
                      }


                      перепесал на чистаю любов
                      Ответить
                      • Это дэ?
                        Ответить
                        • Какие ещё ЯП ты знаешь, в которых программа начинается с import std.stdio?
                          Ответить
                          • Будет небольшим преувеличением сказать, что я знаю "D"
                            Ответить
                        • чтобы скриптушню превратить в метушню

                          import std.stdio;
                          
                          T AsClubHouse(T)(T value) {
                              static if (__traits(compiles, value + 2)) {
                                  return value + 2;
                              } else {
                                  return value; // не знаю, как идиоматично
                              }
                          }
                          
                          void SendToClubHouse(T)(T value) {
                              static if (__traits(compiles, mixin("value.AsClubHouse"))) {
                                  writeln(value.AsClubHouse);
                              }
                          }


                          увы, для UFCS нет подходящего трейта, приходится миксином
                          Ответить
                          • ВНЕЗАПНО работает для любого типа с определённым оператором сложения
                            Ответить
            • Всё, гост, я понял твою мысль


              Когда завтра я решу сделать поддержку Клабхауза, я просто добавлю в класс Int64 реализацию интерфейса `IClubHouseCompatible`, да?
              Ну и в остальные 234 класса -- тоже
              Ответить
              • Да.
                Ответить
                • А вообще в самом сердце ООП (ну, симулообразного ООП) заложена мысль о том, что описывая структуру данных, ты сразу же описываешь все методы работы с ней.

                  Это далеко не всегда правда.

                  Ну вот тут это обсёр
                  Ответить
    • Добрый день!

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

      В рамках услуги, я регистрирую 150 wiki страниц, 150 тег-страниц в блогах и 700 ссылок, повышающих общий вес опубликованных страниц!
      Другими словами, Вы получите вес 1 тысячи ссылок и дополнительные страницы в поисковых системах за разовую сумму в 3500 руб. Вся работа выполняется под ключ, я собираю ключевые запросы, текстовую информацию, картинки для оформления и перед постингом показываю Вам подготовленные материалы, по необходимости корректируя! Расчет происходит после размещения и отчета!

      Отпишите мне и я вышлю примеры размещенных сайтов и примеры непосредственно услуги!
      Ответить
    • можно пример декларации Int64 из языков с тайпклассами?
      Ответить

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