Принципы подхода SOSAL
Принципы подхода SOSAL

Недавно я опубликовал статью, в которой представил новый социальный подход к программированию под названием SOSAL. Несмотря на её краткость, она снискала большое количество внимания и конструктивной критики, что позволяет более подробно проработать подход.

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

SOSAL (Socially-Oriented Software Architecture & Logic) – это подход программирования, основанный на социальном взаимодействии членов команды, а также способствующий их развитию и обучению.

Основываясь на прошлой статье, SOSAL состоит из пяти принципов:

  • Socially-Conscious Code (Социально-осознанный код)

  • Open by Default (Открытость по умолчанию)

  • Simple Scalability (Сбалансированная/простая масштабируемость)

  • Agile Adaptivity (Адаптивность выше догм)

  • Learning-Driven Logic (Логика, основанная на обучении)

Ниже последует более подробный обзор каждого из принципа, дополненных примерами и актуализированных критикой.

Socially-Conscious Code

Принцип Socially-Conscious Code способствует самому главному процессу работы в команде: кооперации. Для продуктивной кооперации в команде, кодовая база проекта должна быть простой, чистой и понятной.

Качество кодовой базы достигается посредством различных мер, от базовых принципов программирования до комплексных методов.

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

// плохо, назначение переменной неясно
const f = 42;

// пожалуйста, НЕ ИСПОЛЬЗУЙТЕ ВЕНГЕРСКУЮ НОТАЦИЮ
const g_nSpeed = 69;

// слишком подробно, хотя довольно забавно
const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = 1337;

// приемлемо
for (let i = 0; i < 5; i++) {}

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

// плохо
function pow(x,n)
{
  let result=1;
  for(let i=0;i<n;i++) {result*=x;}
  return result;
}

// хорошо
function pow(x, n) {
    let result = 1;

    for (let i = 0; i < n; i++) {
        result *= x;
    }

    return result;
}

Анти-примером этого подхода можно назвать переусложнение кода разного рода однострочниками или цепями вызовов. Лучше всего разделить этот код на несколько строк, но так, чтобы он был понятен.

// плохо
const r=[1,2,3,4].map(x=>x*2).filter(x=>x>3);

// хорошо
const doubledValues = [1,2,3,4].map(x => x * 2);
const filtered = doubledValues.filter(x => x > 3);

Также не забывайте оставлять комментарии в тех местах, где это больше всего необходимо, например при особо сложной логике или для объяснения аргументов и результатов функции.

// хорошо
// Exists проверяет, существует ли значение x (не nil и не нулевое).  
// Возвращает exists (true, если значение существует) и ok (true, если проверка успешна). удалось получить объект
func Exists(x any) (exists, ok bool) {

// плохо
// взято из https://github.com/xelaj/mtproto/blob/main/internal/aes_ige/ige_cipher.go#L162
// generateAESIGE ЭТО ЕБАНАЯ МАГИЧЕСКАЯ ФУНКЦИЯ ОНА НАХУЙ РАБОТАЕТ ПРОСТО БЛЯТЬ НЕ ТРОГАЙ ШАКАЛ ЕБАНЫЙ
//nolint:godox ты че ебанулся // TODO: порезать себе вены
func generateAESIGE(msg_key, auth_key []byte, decode bool) ([]byte, []byte) {

Перечислю менее важные, но всё равно значимые критерии качества кодовой базы: следование шаблонам проектирования, отсутствие “магических чисел”.

Open by Default

Принцип Open by Default гласит о том, что ваш проект должен быть открыт по умолчанию. Открытость заключается не только в открытости исходного кода, но также в документации и настраиваемости (customizability): наличие внутренней документации важно как для закрытого, так и для открытого проекта. В случае открытости проекта рекомендую вам создать README с подробными инструкциями по запуску и настройке. Для настраиваемости проекта рекомендуется иметь конфиг или обширный список флагов командной строки.

Simple Scalability

Принцип Simple Scalability призывает вас писать код с осознанием его масштабируемости.

Наглядное сравнение видов масштабирования
Наглядное сравнение видов масштабирования

Самым простым типом масштабируемости является вертикальная масштабируемость, то есть увеличение мощности отдельно взятого узла. Вы, конечно, можете накинуть на сервер больше оперативной памяти и процессор пожирнее, но это идёт против идей подхода SOSAL. Для увеличения мощности приложения на отдельно взятом узле вы можете использовать кэширование часто запрашиваемых данных, асинхронность (или вовсе архитектуру, завязанную на событиях (event)), а также, в крайних случаях, оптимизацию асимптотической сложности критически важных алгоритмов.

Горизонтальная масштабируемость подразумевает увеличение количества узлов приложения. Самым простым методом является деплой приложения на множестве узлов и использования распределителя нагрузки (load-balancer), но это лишь бегство от реальных оптимизаций. Популярным сегодня методом горизонтальной масштабируемости является микросервисная архитектура: она позволяет сузить зону ответственности отдельно взятого сервиса, одновременно позволяя прозрачную горизонтальную масштабируемость и эффективность за счёт частого использования в ней брокеров сообщений, что подразумевает event-driven architecture. Прошу обратить внимание, что если ваш монолит ещё справляется с нагрузками, перепись всего на раст на микросервисы может подождать.

Сложной темой масштабируемости являются highload паттерны, они позволяют создать более отказоустойчивую, расширяемую, и производительную систему, рекомендую вам ознакомиться с ними самостоятельно.

Agile Adaptivity

Принцип Agile Adaptivity рекомендует писать код с учётом возможных кардинальных изменений кодовой базы или требований.

Для кодовой базы, этот принцип предполагает использование таких средств, как: шаблоны проектирования, использование интерфейсов, разделение логики.

Шаблоны проектирования это общепринятые пути решения проблем, они делают приложение более гибким, а также позволяют новым читателям кода быстрее понять суть. Прошу заметить, что паттерны так же просто применить как применить их неправильно, рекомендую более подробно с ними ознакомиться перед использованием. Примером гибкого шаблона проектирования является Репозиторий (если ваш тимлид любит менять базу данных каждые две недели, но справедливости ради это упрощает мок-тестирование). Стоит отметить, что переиспользование шаблонов проектирования ведёт к обратному результату.

Интерфейсы позволяют сохранить один интерфейс, то есть слой взаимодействия двух частей, и в то же время полностью менять внутреннюю логику по требованию. Несколько реализаций, к примеру, Репозитория, помогут сохранить одно поведение при абсолютно разных внутренних условиях, чёткое разграничение логики помогает при необходимости переиспользовать кусок программы отдельно от другой

Если отойти от одной только кодовой базы, то прекрасным подходом является настройка CI/CD (Continuous Integration, Continuous Delivery). CI поможет вам выявить проблемы с проектом на стадии принятия изменений (если вы постарались и написали тесты), а CD позволит быстрее выпустить обновления в продакшн. Одной из техник CD является Canary-развёртывание, то есть постепенное развёртывание изменений для доступа пользователям, пример такого в Kubernetes:

strategy:
  canary:
    steps:
      - setWeight: 5
      - pause: { duration: 1h }  # Мониторинг ошибок
      - setWeight: 100

Learning-Driven Logic

Принцип Learning-Driven Logic призывает писать код так, чтобы в процессе написания он учил как вас, так и других. Рекомендую при решении новых или подзабытых задач прошерстить материалы на предмет наличия элегантного, эффективного и читабельного примера. Рефакторинг – это не пытка, а возможность сделать свой код лучше и научиться новому в процессе. При проведении ревью будет очень кстати оставлять ссылки на материалы, которые помогут в решении задачи, что сделает ревью быстрее, проще, и приятнее для всех участников. Отдельной темой для LDL является создание пет-проектов в нерабочее время, хотя некоторые компании выдают на это рабочее время. Пет-проекты дают вам свободу самовыражения при решении задачи, вы можете использовать лучшие решения, не оглядываясь на возможную кучу легаси в вашем проекте.

Часто задаваемые вопросы

В комментариях под прошлой статьёй множество людей задавали важные вопросы, и я постараюсь ответить на самые важные из них.

А как этот ваш SOSAL будет работать в парадигме GOVNO (https://govno.works/)? Противоречий не возникнет?)

Из-за общей природы SOSAL, каждый волен адаптировать этот подход под себя любыми методами, в пределах данных принципов. Подход GOVNO, например, более подробно раскрывает такие принципы SOSAL как Socially-Conscious Code и Open by Default, SOSAL только выигрывает от взаимодействия с другими подходами и идеологиями.

Как-то режет ухо название…

Для меня название – это не самое важное в подходе, более важным критерием оценки является эффективность и возможность оптимизации процессов в команде. Были также предложены различные варианты названия, такие как LASSO и LASOS. Надеюсь что читатель простит мне некоторую ассоциацию на фоне этого названия, но я считаю что описанные тут принципы действительно позволят улучшить качество разрабатываемых таким образом систем, каким бы не было название этого подхода.

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

И правда, принципы подхода SOSAL могут быть очевидными и интуитивными для опытных разработчиков, но мы не можем забывать про только начинающих свой путь в программировании. Посредством формализации подхода SOSAL, мы можем распределить популярные знания между всеми участниками команды для более эффективной работы.

Зачем этот SOSAL, когда уже есть более простой и понятный LIZAL (Loose Interface, Zero Abstraction Layer)?

SOSAL – социальная идеология программирования, тогда как LIZAL и подобные (SOLID, DRY, KISS) более сосредоточены на конкретном коде и на конкретных аспектах программирования.

Лояльны ли компании из ОБОСРАЛСЯ* (Озон, Билайн, Окко, Сбер, Рамблер, Авито, ЛамодаТех, Сколково, Яндекс) к SOSAL?

Я не располагаю данными о введении данного подхода в популярных российских компаниях, но думаю что SOSAL останется непопулярным ещё некоторое время, но я очень надеюсь что данный подход сможет оставить свой след и в технических гигантах нашей страны.

Автор если и SOSAL, то сильно не имплементировал. Чисто так, по злому и без удовольствия попрограммировал и всё.

В моих мыслях, SOSAL – это идея, которой нужно придерживаться осознанно, искренне, со стремлением упростить работу своей команды, хотя я не порицаю вас если вы держитесь в программирования “чисто так по злому, без удовольствия”, чтобы получить деньги.

Заключение

В заключение хочу сказать, что SOSAL – это больше чем сухой свод правил. Я изложил своё видение определения принципов социального взаимодействия в области разработки IT-систем, их осознание и применение может наполнить мир разработки тем, чего нам в нём не хватает: дружбой, кооперацией, развитием и коллективным духом. Благодаря достаточно общей натуре этого подхода, каждый может использовать SOSAL в своих командах и проектах, и я надеюсь что после этой статьи, я смогу воодушевить большее количество людей на использование моего подхода.

Комментарии (91)


  1. Ydav359
    14.06.2025 20:19

    Надеюсь, это шутка


    1. pnmv
      14.06.2025 20:19

      он по всему интернету уже разнёс это.

      через год, ожидайте в сурковом ынтырпрайзе.


      1. yatanai
        14.06.2025 20:19

        Нужно донести эту гениальную мысль до англоговорящих и тогда посмотрим как залетит


        1. xbt573 Автор
          14.06.2025 20:19

          Перевод изначальной статьи есть на Medium, им пока не заходит :(

          Если эта понравится больше то попытаюсь перевести ещё раз

          https://medium.com/@xbt573/sosal-revolutionary-social-programming-methodology-4ff635938cd9


          1. pipewalker
            14.06.2025 20:19

            Сделайте лендинг, прикиньтесь центром сертификации SOSAL, глядишь, кто-нибудь с ликендина и зацепится. Может, даже спросят, как сертифицироваться. С govno.works так и случилось :)


            1. pnmv
              14.06.2025 20:19

              и в каких зарубежных интерпрайзах задействовано это?

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


          1. pnmv
            14.06.2025 20:19

            Currently, SOSAL/GOVNO does not make any sense

            трудно было ожидать какой-либо другой реакции.


        1. pnmv
          14.06.2025 20:19

          с той стороны уже постучали. где-то пролетало про v-j-чего-то там. какая-то модель, что-ли. не то языковая, не то вибросамохвата...


      1. mrqak
        14.06.2025 20:19

        Enterprise Business Adaptive Logic


        1. ahdenchik
          14.06.2025 20:19

          Enterprise Business Adaptive Logic Integration


    1. grvelvet
      14.06.2025 20:19

      Шутка затянулась.


  1. rikert
    14.06.2025 20:19

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


    1. Rorg
      14.06.2025 20:19

      Рекомендую ознакомится с комментариями к первой статье. https://habr.com/ru/articles/914998/comments/

      Там можно найти отзывы о этом и других "подходах", а также предложения о их "модификациях".


  1. killyself
    14.06.2025 20:19

    За аннотацию вида

    Exists это функция, которая показывает существует объект или нет

    // Возвращаемое значение exists показывает существует ли объект, ok равен false если не удалось получить объект

    Я бы достал линейку и начал ей грозно покачивать в сторону юного пейсателя


    1. xbt573 Автор
      14.06.2025 20:19

      Да, комментарий вышел неудачный, если вы можете предложить что-то более интуитивное то я с радостью дополню этим свою статью


      1. vkni
        14.06.2025 20:19

        Достаточно очевидно, что комментарий должен быть написан с учётом людей со специальными возможностями:

        // Функция.
        // Функция Exists(x any) проверяет, существует ли значение x
        // (не nil и не нулевое, иначе поведение неопределено).
        // Возвращает exists (true, если значение существует) и
        // ok (true, если проверка успешна), если удалось получить объект
        //
        // @param x значение x (икс), тип any
        //
        // @return функция возвращает exists (true, если значение существует)
        // и ok (true, если проверка успешна)
        //
        // Тело Функции Exists.
        func Exists(x any) (exists, ok bool) {
         ...
        }
        // Конец Функции Exists(x any)

        Ведь согласно методологии, программист должен писать социально-ориентированный код.


  1. m1n64
    14.06.2025 20:19

    ExtremeCode открыли свой филиал на Хабре?

    SOSAL?


    1. Vladimir_III
      14.06.2025 20:19

      GOVNO


    1. izibrizi2
      14.06.2025 20:19

      да


  1. pnmv
    14.06.2025 20:19


  1. Jijiki
    14.06.2025 20:19

    // хорошо
    function pow( x, n ) {
    
        let result = 1;
    
        for ( let i = 0; i < n; i++ ) {
    
            result *= x;
    
        }
    
        return result;
    }

    в итоге так читаемее на сколько бы не был большой файл, если между функциями будут еще больше отступы я по себе заметил будет еще читаемее, но тогда скролить просто больше придется

    впринципе под такое даже специальный парсер можно написать если очень надо, чтобы удалять лишние отступы сохраняя только текст, проверить в редакторе можно выделив текст, в некоторых редакторах можно увидеть что выделяются лишние отступы вот эти отступы можно ловить парсером, ну я так делаю(1 раз сделал, чтобы вообще была возможность потом прочитать код), может это на любителя

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

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


    1. Jijiki
      14.06.2025 20:19

      if(r.length()==1&&r.contains("}")){countCCCC--;}
      else if(r.length()==2&&r.contains("};")){countCCCC--;}
      for(int i=0;i<countCCCC;i++){if(r.equals("")){}else{ttt+="  ";}}
      
      if(r.length()==1&&r.contains("}")){countCCCC++;}
      else if(r.length()==2&&r.contains("};")){countCCCC++;}
      
      if(current.equals("*")&&next.equals("/")){ Green); Green);previous = current;current = next;next = it.hasNext() ? it.next() : null; break; }

      иногда правда без одной строки не обойтись ставить там отступы бесполезно )


      1. mayorovp
        14.06.2025 20:19

        Ну, если вы строки на равенство проверяете через длину и contains, а ваши переменные называются countCCCC и ttt - то да, отступы тут и правда бесполезны.


    1. ponikrf
      14.06.2025 20:19

      Сколько было уже сказано. Все зависит от контекста.

      Контекст понятен по названию функции. Логических блоков внутри функции нету.

      Вот результат:

      function pow( x, n ) {
          let result = 1
          for ( let i = 0; i < n; i++ ) result *= x;
          return result;
      }

      Нужно уметь не просто отделять операторы и тп друг от друга. А уметь отделять логические блоки друг от друга

      Код выше, что был заминусован выглядит просто отвратительно

      Я бы попробовал оформит его близко к этому (хотя к нему вопросов куда больше):

      if ( r.length() == 1 && r.contains("}") ) countCCCC--
      else if ( r.length() == 2 && r.contains("};") ) countCCCC--
      
      for( let i = 0; i < countCCCC; i++ ) if (!r.equals("")) ttt+="  "
      
      if ( r.length() == 1 && r.contains("}") ) countCCCC++
      else if ( r.length() == 2 && r.contains("};") ) countCCCC++
      
      if ( current.equals("*") && next.equals("/") ) { 
        previous = current
        current = next
        next = it.hasNext() ? it.next() : null
        break
      }

      Это скажем так без без контекста.

      Код в одну строку это не так страшно, если логически он делает конкретную вещь. Какой смысл ее расписывать в 20 строк?

      Вы всегда можете подписать выше, что он делает по контексту, например:

      // Возвращаем true если файл myfilename.txt найден
      for (const fn of this.getFileList) if (fn === "myfilename.txt") return true

      Часто лучше обернуть тело цикла в метод , что бы изолировать логику и вписать ее в одну строку.

      Например:

      globalInit(){
        // ...
        // Инициализация устройств
        for (const device of this.service.devices) this.initDevice(device)
        // ...
      }

      В таком случае можно легко отделить логические блоки и не разбирать кучу контекстно ненужного вам кода.

      PS: Если что я понимаю, что статья про юморок а не про программирование


      1. Jijiki
        14.06.2025 20:19

        да, вы правы, там уже такой код что хорошо что работает, я его без дебугера писал, отступы делал как в текстовом формате, потомучто чувствовал что потом буду его именно читать(да и пример я увидел 1 раз оформления кода ссылку потерял к сожалению), и так оно и случилось поэтому мне лично пока удобно ставить отступ как в текстовом документе, а как еще читать 5 тыщ строк, маленькие сжатые функции будут неудобны если не рассматривать правильность не правильность что всё в одном файле, придётся оформлять код к чтению именно в этом есть смысл, если текстовый редактор по метрике работает текст(екран текста), то там еще круче сделать можно на екран по функции


  1. FluffyFeline
    14.06.2025 20:19

    Ближе к концу перетолстил. Когда остаётся постиронией, самое забавное


  1. ivankprod
    14.06.2025 20:19

    Проорал про generateAESIGE


  1. SolidSnack
    14.06.2025 20:19

    Надо ещё уточнить что есть не только паттерны, но и антипатерны, например DRISTAL, или известная в простонародье как стрельба дробью. Код как бы размазывается по проекту


  1. Jone501
    14.06.2025 20:19

    SOSAL?


    1. xbt573 Автор
      14.06.2025 20:19

      Да, я использую SOSAL в своих проектах


      1. Kenya-West
        14.06.2025 20:19

        Украду коммент с предыдущей статьи:

        SOSAL GONVO PIDOR?
        SOSAL GONVO PIDOR?


        1. falcon4fun
          14.06.2025 20:19

          Так это еще и не первая статья.. :DDDDD


  1. estima92
    14.06.2025 20:19

    Так SOSAL или нет?


    1. xbt573 Автор
      14.06.2025 20:19

      Да, про это вся статья


    1. useribs
      14.06.2025 20:19

      SOSAL, so.su и sos.at (Ленин жил, Ленин жив, Ленин будет жить)


  1. IuliusCaesar753
    14.06.2025 20:19

    ОО

    Это лучшее, что я читал за последнее время

    Чтобы написать комментарий даже зарегистрировался здесь.


    1. pnmv
      14.06.2025 20:19

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


    1. Igor_Veto4kin
      14.06.2025 20:19

      вот как правильно увеличивать численность пользовательей хабра, админы, учитесь)))


  1. Aspray
    14.06.2025 20:19

    Какой подход к програмированию используете сосал?


    1. FisHlaBsoMAN
      14.06.2025 20:19

      да


      1. okhsunrog
        14.06.2025 20:19

        Шёл 2025 год, на Хабре придумали подход, противоположный suckless


  1. sheshanaag
    14.06.2025 20:19

    Предлагаю следующий этап развития методологии назвать Next Advancement SOSAL (NASOSAL) - когда адепты SOSAL смогут показать результат своей деятельности, так сказать, похвастаться перед сообществом.


    1. yatanai
      14.06.2025 20:19

      Это уже какой-то метавёрс получается. Там и PODSOSAL и VSOSAL и NESOSAL и прочие диалекты


      1. Zalechi
        14.06.2025 20:19

        В данном случае либо NASOSAL либо NEDOSOSAL.

        Иного не дано, — соотвественно оригинальной концепции естественно))


        1. RichardMerlock
          14.06.2025 20:19

          Да просто заголовок ваще неправильный. Надо: " OT SOSAL теории к практике"


    1. MainTrain
      14.06.2025 20:19

      Ещё забронировать sosal.net, что бы делиться открытым кодом с применением методики


      1. pnmv
        14.06.2025 20:19

        .net - является токсичным, платформозависимым доменом.

        при выборе домена, следует исходить из более открытых принципов.


        1. Vitimbo
          14.06.2025 20:19

          .net уже давно опенсурс и прекрасно соответствует принципам SOSAL. Вообще, этим принципам ms всегда соответствовала.


          1. pnmv
            14.06.2025 20:19

            когда хочешь поставить студию, тебе впаривают под сорок гигов чистейшего опенсурса, прозрачного, как слеза жЫра, стекающая с плачущего монитора.


  1. S1908
    14.06.2025 20:19

    Это троллинг? Архитектура c# например по умолчанию поддерживает эту методологию.


    1. ahdenchik
      14.06.2025 20:19

      C# - SOSAL, да. Вообще, многие языки и фреймворки поддерживают. Но важно чтобы у автора кода SOSAL был частью повседневной практики, а не просто ещё одним умением, как DDD или SCRUM - которые, по факту, нужны и вспоминаются только на собеседованиях


      1. xbt573 Автор
        14.06.2025 20:19

        Это так. С момента создания этого подхода, я стараюсь использовать SOSAL во всех своих проектах и даже маленьких фрагментах кода


  1. S1908
    14.06.2025 20:19

    Буквы специально подобраны чтобы поддерживать смысловую аналогию с размножением видов? :D


    1. sheshanaag
      14.06.2025 20:19

      Может я что-то упускаю, но мне кажется, что виды так не размножаются.


      1. 4wards1
        14.06.2025 20:19

        "Так вот что мы делали не так эти 10 лет!"


        1. JI0C0Cb
          14.06.2025 20:19

          Мужики, да вы что?!


    1. pnmv
      14.06.2025 20:19

      гомеоморфизм приората к размножению не относится.


  1. a1111exe
    14.06.2025 20:19

    В статье не хватает пункта, что после освоения подхода SOSAL начинающим разработчикам рекомендуется сразу начинать практиковать методологию GLOTAL - Guided Lean-Oriented Test & Agile Lifecycle.


    1. pnmv
      14.06.2025 20:19

      сообщество с нетерпением ждёт релиза системы мультипарадигменной вербальной разработки PROGLOT.


  1. Lizdroz
    14.06.2025 20:19

    Не, ну это просто гениально, мне нравится


  1. TheEVolk0
    14.06.2025 20:19

    пора выключить себе интернет.


  1. Bayram_dev
    14.06.2025 20:19

    Были также предложены различные варианты названия, такие как LASSO и LASOS

    LA SOS?
    LA SOS?


  1. iamkisly
    14.06.2025 20:19

    Ну вы поняли да?

    Скажите честно, вы, как в фильме "день выборов", всю статью придумали ради названия?


    1. grvelvet
      14.06.2025 20:19

      А вы ещё не поняли? Троллинг такой


      1. pnmv
        14.06.2025 20:19

        вы разрушаете всю интригу


        1. grvelvet
          14.06.2025 20:19

          В первый раз было немного забавно, во второй уже не смешно


          1. pnmv
            14.06.2025 20:19

            забавно было, когда всё подряд из "похожего" притащили.

            в целом же, всё несколько натянуто и выглядит как тот самый "выход либидо".


  1. JobManKazakh
    14.06.2025 20:19

    Просто функции отделяю, всё равно там их на сотни КБ, так что лишние строки наоборот усложнят перелистывание кода


  1. Haizer
    14.06.2025 20:19

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


  1. Jijiki
    14.06.2025 20:19

    статья шуточная конечно, но всё по делу, придётся писать (или даже интегрировать туториал, например справка по кейбиндам, в репе придётся описать все функции - возможности, и хайлоад придётся тоже сделать - eg многопоточка чтобы разгрузить уи например от тяжелой задачи - убрать в фон, ну и от визуала если отходить придётся делать дружественный интерфейс ))

    дойти бы до этого в С++, пока я до этого допрыгнул на java ))


  1. Radli9
    14.06.2025 20:19

    Именно это поможет поднять программирование в стране, во многих смыслах.


  1. falcon4fun
    14.06.2025 20:19

    Я сосал, меня .. Простите, трудно удержаться от слез :D


  1. trushkeen
    14.06.2025 20:19

    О каком захвате мира нейросетями идёт там речь?))

    Скрытый текст


    1. pnmv
      14.06.2025 20:19

      это они притворяются.

      вон же, радостно сообщают, что жпт прошел каких-то покемонов.


  1. Netguy
    14.06.2025 20:19

    Я SOSAL меня EBALI
    (EBALI - Enhanced Business Application Logic Improvement)


  1. Anarchist
    14.06.2025 20:19

    Надо уже обучить модель, чтобы она уже писала код согласно рекомендациям.


  1. sets
    14.06.2025 20:19

    Я хочу сказать так - весь год я был хорошим мальчиком и заслужил эту статью! Да, первую пропустил(


  1. Saidkomil
    14.06.2025 20:19

    Мне одному заметилась аббревиатура перевода Learning Driven Logic?


  1. AlexeyOs
    14.06.2025 20:19

    Проект PIDOR канул в лето
    https://github.com/ApplePride/PIDOR

    Но интересна теоретическая возможность сочетания архитектуры PIDOR для IOS приложений с подходом SOSAL

    Схема архитектуры PIDOR
    Схема архитектуры PIDOR


    1. x67
      14.06.2025 20:19

      Аналитика должна соответствовать идеологии Holistic User Insight

      И не забываем про подход Performance Indicator Zero-Delay Analysis


    1. pnmv
      14.06.2025 20:19

      [V]irtually

      [Z]ero-code

      [A]gile

      [D]evelopment


  1. Igor_Veto4kin
    14.06.2025 20:19

    это очень хорошо. Причем мне нравится, на какиих серьёзных щах все это обсуждается. Я очень хочу посмотреть, как какой-нибудь иностранец не выкупит тонкий айтишный юмор ( для англоговорящих юзеров SOSAL - это просто аббревиатура безо всякого подтекста) и через годик мы увидим доклад про это на какой-нибудь серьёзной научной конференции. Вот тогда действительно можно будет сказать, что шутка зашла слишком далеко


  1. DjUmnik
    14.06.2025 20:19

    Слава богу, это запретили в России.