Как стать автором
Обновить

Комментарии 114

ЗакрепленныеЗакреплённые комментарии

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

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

Вот-вот, надо было LASOS.

По-гречески это значит ошибка.

А с эсперанто "Позволь"

Certe, mi estas komencanto, sed "lasos" (de "lasi"), ne estas "Позволь". Mi parolus: "ĉu mi rajtos (fari ion)?". "Lasos" estas "оставлю", "покину".

Замечательный язык, не зная его я почти всё понял. mi estas komencanto - estas тут точно нужно?

Да, так как komensanto - существительное.

Всё-таки ошибка это lathos (λάθος). Знаю, конечно, людей, которые произносят это как ласос, но сомневаюсь, что греки их понимают.

Одобряю.

Теги: SOLID DRY KISS SOSAL

Давайте сразу договоримся: Мизулиной это не показывать. А то потом запретят это ваше пограммирование от греха подальше.

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

Сейчас как вспомню Zero Approximation LOOP…

Занятный троллинг

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

SOSAL как реальная проблема тех, кто имел неосторожность устроиться ниже синьора или техлида.

Все ок. Единственная просьба - не развивайте ваши эксперименты с абревеатурой. Далеко можно зайти.

Тебе нравится социально-осознанный код? SOSAL?

Да

Возможно стоит пошевелить аббревиатуру и использовать LASSO?

предлагаю вариант ZASRAL:
Z: Zero-loyalty to bugs
A: Agility
S: SOLID driven development
R: Retrospective after every sprint
A: Agility one more
L: Logic-driven decision making

вторая "A": Architecture-centered planning

важно подчеркнуть важность гибкости, поэтому agility два раза)

тогда надо переходить к AAAA+

Колеги, мы должны быть гибче,
Как того требует agile.
Счас доктор удалит вам рёбра.
Мне жаль.

© tabletki

Можно сменить гендер у аббревиатуры и будет Z.A.S.R.A.L.A. Заодно и двойная гибкость поместится.

Ну зачем сразу гендер, вместо последней буквы А использовать I. Коллективное бессознательное.

Звучит очень круто! Возьму себе на заметку

Методология ZASRAL: Современный подход к разработке программного обеспечения

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

Разберём каждую из составляющих ZASRAL:

Z: Zero-loyalty to bugs (Нулевая лояльность к багам)

Первый и, возможно, самый важный принцип — это абсолютная нетерпимость к багам. В команде, работающей по ZASRAL, баги не считаются «допустимыми издержками» или «чем-то, что исправим потом». Они рассматриваются как долговые обязательства, мешающие движению вперёд. Подход "zero-loyalty" означает:

  • мгновенное реагирование на выявленные дефекты;

  • отказ от компромиссов при наличии известных проблем;

  • профилактику багов через тестирование, код-ревью и соблюдение стандартов.

A: Agility (Гибкость)

Гибкость — основа современной разработки. В контексте ZASRAL это означает:

  • адаптивное планирование;

  • быструю реакцию на изменения в требованиях;

  • активную обратную связь между заказчиком и командой;

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

S: SOLID-driven development (Разработка, основанная на принципах SOLID)

Принципы SOLID — краеугольный камень качественной архитектуры:

  • S: Принцип единственной ответственности (Single Responsibility Principle);

  • O: Принцип открытости/закрытости (Open/Closed Principle);

  • L: Принцип подстановки Барбары Лисков (Liskov Substitution Principle);

  • I: Принцип разделения интерфейсов (Interface Segregation Principle);

  • D: Принцип инверсии зависимостей (Dependency Inversion Principle).

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

R: Retrospective after every sprint (Ретроспектива после каждого спринта)

Ретроспектива — инструмент командной эволюции. Команды, работающие по ZASRAL, обязательно проводят ретроспективу по завершении каждого спринта:

  • выявляют узкие места в процессе;

  • обсуждают, что можно улучшить;

  • принимают конкретные действия для следующего цикла;

  • укрепляют командную культуру и взаимопонимание.

A: Agility one more (Гибкость снова)

Повторение принципа гибкости подчеркивает её ключевую роль в философии ZASRAL. Это не ошибка и не тавтология — это намеренное усиление акцента. В условиях быстро меняющегося рынка недостаточно быть гибкими один раз — нужно быть гибкими постоянно. Гибкость не как эпизод, а как повседневная практика.

L: Logic-driven decision making (Принятие решений, основанное на логике)

Последний принцип — осознанное принятие решений. Это означает:

  • избегание эмоциональных или политизированных решений;

  • использование данных, анализа и здравого смысла;

  • прозрачность в аргументации;

  • рациональность в выборе технологий, инструментов и процессов.

Вывод

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

Звучит очень необычно и революционно, жду статью!

Конечно! Ниже — минимальное Go-приложение, следующее принципам ZASRAL. Это REST API, предоставляющее работу со списком задач (TODO list), написанное с соблюдением SOLID, минимальными багами (и тестами!), логичным делением ответственности, возможностью быстрой адаптации (Agility), и комментариями, указывающими на ретроспективные точки.

🧱 Структура проекта

zasral-todo/
├── main.go
├── handler/
│   └── todo_handler.go
├── service/
│   └── todo_service.go
├── model/
│   └── todo.go
├── repository/
│   └── memory_repo.go
└── test/
    └── todo_test.go

main.go

package main

import (
    "log"
    "net/http"
    "zasral-todo/handler"
    "zasral-todo/repository"
    "zasral-todo/service"
)

func main() {
    repo := repository.NewInMemoryRepo()
    srv := service.NewTodoService(repo)
    h := handler.NewTodoHandler(srv)

    http.HandleFunc("/todos", h.HandleTodos)

    log.Println("Server started on :8080")
    log.Fatal(http.ListenAndServe(":8080", nil))
}

model/todo.go

package model

type Todo struct {
    ID   int    `json:"id"`
    Text string `json:"text"`
    Done bool   `json:"done"`
}

repository/memory_repo.go

package repository

import (
    "sync"
    "zasral-todo/model"
)

type InMemoryRepo struct {
    mu    sync.Mutex
    todos []model.Todo
    nextID int
}

func NewInMemoryRepo() *InMemoryRepo {
    return &InMemoryRepo{}
}

func (r *InMemoryRepo) Add(todo model.Todo) model.Todo {
    r.mu.Lock()
    defer r.mu.Unlock()
    todo.ID = r.nextID
    r.nextID++
    r.todos = append(r.todos, todo)
    return todo
}

func (r *InMemoryRepo) List() []model.Todo {
    r.mu.Lock()
    defer r.mu.Unlock()
    return append([]model.Todo(nil), r.todos...)
}

service/todo_service.go

package service

import "zasral-todo/model"

// Интерфейс для абстракции над хранилищем (D — Dependency Inversion)
type Repo interface {
    Add(todo model.Todo) model.Todo
    List() []model.Todo
}

type TodoService struct {
    repo Repo
}

func NewTodoService(r Repo) *TodoService {
    return &TodoService{repo: r}
}

func (s *TodoService) CreateTodo(text string) model.Todo {
    return s.repo.Add(model.Todo{Text: text})
}

func (s *TodoService) GetAll() []model.Todo {
    return s.repo.List()
}

handler/todo_handler.go

package handler

import (
    "encoding/json"
    "net/http"
    "zasral-todo/service"
)

type TodoHandler struct {
    service *service.TodoService
}

func NewTodoHandler(s *service.TodoService) *TodoHandler {
    return &TodoHandler{service: s}
}

func (h *TodoHandler) HandleTodos(w http.ResponseWriter, r *http.Request) {
    switch r.Method {
    case http.MethodGet:
        todos := h.service.GetAll()
        json.NewEncoder(w).Encode(todos)
    case http.MethodPost:
        var input struct {
            Text string `json:"text"`
        }
        if err := json.NewDecoder(r.Body).Decode(&input); err != nil || input.Text == "" {
            http.Error(w, "invalid input", http.StatusBadRequest)
            return
        }
        todo := h.service.CreateTodo(input.Text)
        json.NewEncoder(w).Encode(todo)
    default:
        http.Error(w, "method not allowed", http.StatusMethodNotAllowed)
    }
}

test/todo_test.go

package test

import (
    "testing"
    "zasral-todo/repository"
    "zasral-todo/service"
)

func TestCreateTodo(t *testing.T) {
    repo := repository.NewInMemoryRepo()
    srv := service.NewTodoService(repo)

    todo := srv.CreateTodo("Test ZASRAL")

    if todo.ID != 0 {
        t.Errorf("Expected ID 0, got %d", todo.ID)
    }
    if todo.Text != "Test ZASRAL" {
        t.Errorf("Text mismatch")
    }
}

Как ZASRAL здесь соблюдён:

Принцип Как реализован Z: Zero-loyalty to bugs Минимальные проверки входных данных, покрытие тестами A: Agility Простая архитектура, легко масштабируемая S: SOLID Чёткие разделения обязанностей: handler, service, repo R: Retrospective Можно внедрить TODO-комментарии // TODO: обсудить улучшения после спринта A (again) Простая замена бэкенда, легко адаптировать L: Logic-driven decisions Все решения обоснованы: thread safety через sync.Mutex, DI через интерфейс

Хочешь расширить — легко подключается база данных, логгирование, валидация, тестирование API.

Логотипчик подвезли)

Стояло в TVER.3ACPEM

Фидошников пересчитываешь?

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

Чего, чего. Вот как "мобилизуют", как знатоков COBOL'а перед 2000 годом :(

Куда?

В какую-нибудь "группу освобождения труда". Там где участники незабываемые были: Плеханов, Игнатов, Засулич, Дейч, Аксельрод.

Извините, музыка навеяла.

Мне нравится этот подход. Спасибо!

в последнем слове, явно, лишняя "r"

ZASRAL:

  • ZASRAL assimilation strongly rewards adaptive learning

  • Attention stimulation rapidly aproaches life zen

  • Syncretic research activities liken zoomed acceleration

  • Reallife aptitude leverages zero-arbitration strategies

  • Artificial lifeforms zoned artfully supporting replication

  • Lasting zest application suppresses reactionary antipatterns

LASOS :)

Да, паттерн PIDOR достаточно хорошо подходит под эти принципы

их надо объединить в законченную модель PIDOR SOSAL

Лучше этой архитектуры уже не будет, он лежит в основе)

Ржу с названия SOSAL и комментария про паттерн PIDOR.

Именно так!

— ты по чему специалист?
— по сосал.

senior sosal developer

Certified SOSAL Developer!

High available SOSAL Appilcation

HASOSALA

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

Не знаю, не знаю, я в айти вливался просто программируя на Турбо-Паскале, без всяких там SOSAL.

O, я тоже его помню, его чудесные окошки... Расписание для преподавателей на военной кафедре писал с ним.

У меня дипломная работа была считалка на фортране с уравнениями максвелла, умножитель частоты гигагерцового диапазона, и фасад на паскале с 3д визуализацией. Мой первый IBM PC 16MHz, 1MB RAM,40 MB HDD seagate (классика) пилил каждый шажок 40 минут (пара месяцев ушло). Зато честный диплом и даже близко к реальному устройству получилось (что редкость, но там куча железа и один диод был, самодельный).

А кто из присутствующих втыкал иголки в контактные площадки (из золота) самодельных диодов (под микроскопом)? Надо мной, бедным студентом, поиздевались тогда, дали задачу заточить стальную иголку толщиной меньше волоса (она гнется как вареная макаронина). Хорошо что не заставили шилом в кремниевой пластине "дырки" выбивать... Вопрос по ТРИЗ - как заточить иголку тоньше волоса?

Вопрос по ТРИЗ - как заточить иголку тоньше волоса?

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

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

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

ванна с электролитом и далее:
вариант деструктивный - с помощью растворения
вариант конструктивный - с помощью осаждения
меняется только полярность =)

Примерно так, под наклоном касаешься проволочкой кислоты...

Еще был "прокатный стан", на нем фабричные тарелки доводили до нужной точности. Берлинский университет за одну такую тарелку отдал 10 тыс марок - делали мелкий радиотелескоп. Алюминиевая чаша 2м диаметром с правильной геометрией. Сначала прокат, затем микрофрезеровка.

Тогда удивился тому как создается оттиск надписи - бумага подкладывается под тарелку и вдавливается в алюминий при прокате, создается оттиск.

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

Еще халтура для голландцев была - СВЧ печка, если не ошибаюсь, 150квт, для сушки леса на конвейере. До 4 процентов влажности доводили за час. Главное не пересушить, а то получится снаружи целое бревно а внутри уголь.

Ионное травление в вакууме. Как собсна эти иголки и делают для STEM. Вот взял и все опошлил)

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

во времена трубо паскакаля, этот их "ойти" ещё не придумали. названия не было, а индустрия была.

Отличное руководство. Покажу его коллегам и спрошу как они к этому относятся

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

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

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

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

Такое ощущение что аббревиатуры писали русские, нарочно просто так точно не придумать.

Такое ощущение что аббревиатуры писали русские, нарочно просто так точно не придумать.

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

вы не поверите но у меня однажды был спор с чехом что фильм "Полосатый рейс" не чешский а советский с участием Леонова и что это не чешский актер.

Я не мог поверить что меня не разыгрывают. Леонов - чешский актер, и все тут.

© 2025 GOVNO Project. All rights reserved. how@govno.works

Адрес для контактов просто потрясающий.

Тонко

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

LIZAL отвечает на вопросы специфичные для языков, так как SOSAL отвечает на вопросы программирования в целом.

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

Дикари. Не поймут'с

Есть риск, что через пять лет это заставят учить к собесам.

Вы хотели сказать "есть надежда"?))

Эта статья каким-то смутным образом перекликается с утренней новостью об использовании рыб семейства лососевых в косметологии. Гм

Выход либидо в IT...

-- SOSAL GOVNO PIDOR?

-- Нет, ZASRAL.

Система государственной сертификации ИТ-специалистов в России прекрасна

DROCHILL
D — Develop
R — Reliable
O — Objects
CHILL — and Chill

PIDOR SOSAL A POTOM ZASRAL I DROCHILL

Я ещё ВДУЛ не получил. И ДАЛВРОТ тоже пока не удалось.

Visual development user level

Визуальная разработка на уровне пользователя

D - Digital (цифра)
A - Analog (аналог)
L - Law (закон)
V - Virtualizable (виртуализируемый)
R - Rapid (быстрый)
O - Open-source (открытый исходный код)
T - Traceable (отслеживаемый)

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

Катя сасун!

"Enhanced mind", "Balanced complexity", "AI agents based", "Language for dummies" - скоро все на нем писать будем.

В порядке социальной ориентированности также предлагается сеньоров переименовать в DUNGEON MASTER, миддлов в LEATHER MAN. Опять же это соответствует принципам DEI.

И зп в ♂three hundred bucks♂ ?

В наносекунду

Тогда вот вам настоящее время:

можно еще перевести "soft path" на японский язык в google translate, оставив
только начало и конец (первый и последний символ).

SOSAL: Современный социальный подход к программированию

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

Шутка может и неплохая, но... Не 1 апреля. Не пятница (а всего лишь вторник). Может быть немного жаркая погода...

Друзья, оснащайте свои рабочие места системами управления климата! А то похоже многие устали и перегрелись.

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

P.I.S.Y.A. — Pragmatic, Inclusive, Sustainable, Yielding, Adaptive

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

P — Pragmatic

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

I — Inclusive

Код должен быть доступен всем членам команды. Независимо от уровня опыта, языка, культуры. Инклюзивный код — это простой, комментированный и структурированный код, без высокомерия и «магии».

S — Sustainable

Проект должен быть поддерживаем. Писать легко, поддерживать сложно. Стандарты, документация, тесты и умеренная сложность — залог жизнеспособности системы.

Y — Yielding

Гибкий код — лучший код. Умей уступать: требованиям, обратной связи, реалиям бизнеса. Стойкость хороша, но избыточное упрямство ломает проект.

A — Adaptive

Изменения — не угроза, а норма. Архитектура должна легко меняться, чтобы не мешать росту. Не бойся выкинуть старое ради лучшего.

🔧 PISYA — это не про понты, а про людей. Пиши код не ради себя — пиши так, чтобы другим не хотелось переписать всё завтра.

Два вопроса:

  1. Лояльны ли компании из ОБОСРАЛСЯ* к SOSAL?

  2. Является ли использование pydroid нарушением принципов SOSAL?

* Озон, Билайн, Окко, Сбер, Рамблер, Авито, ЛамодаТех, Сколково, Яндекс

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

Я не знаком с проектом pydroid, так что рекомендую вам сверить его с каждым из принципов подхода SOSAL и поделиться с нами, но я очень надеюсь что этот проект подходит.

Напомнило ещё об одном случае

https://xakep.ru/2013/05/24/60666/

активно продвигают, я слышал

Следует поинтересоваться у коллег из Google, Amazon, Apple, Microsoft, Meta, Netflix, Oracle.

Зря иронизируете кстати, в одной западной компании пару месяцев в разделе программ повышения квалификации в списках, которые делал русскоязычный работник, аббревиатуры двух курсов - Zero Advertisement Exploitation и Basic Operations Knowledge везде стояли рядом, пока на это не указал новый сотрудник, знавший русский.

Напомнило случай с версией Fedora под Raspberry Pi, которую релизнули под названием Pidora...ровно на сутки...

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

Эта статья состоит из практических советов, не знаю чего вы там надумали :)

Начинаю применять. Захожу и спрашиваю: SOSAL? Он отвечает: SOSAL!

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации