Чистая архитектура на практике: перестаём ломать сервис при каждом релизе

У вас небольшой релиз. Вы меняете пару строк кода, выкатываете обновление - и через несколько минут сервис начинает отдавать странные ошибки. Баги появляются в местах, которые вы вообще не трогали. Знакомо? Обычно проблема не в конкретном изменении, а в архитектурной связанности системы: инфраструктурные детали начинают протекать в бизнес-логику, и зависимости между компонентами становятся слишком плотными. Разберём это на примерах. Примеры будут псевдореальные, иначе статья быстро превратится в книгу. Посмотрите на функцию загрузки инвойса:

https://habr.com/ru/articles/1034758/

#clean_architecture #clean_code #architecture #программирование #проектирование_систем #шаблоны_проектирования #ооп #hexagonal_architecture #grasp #solid

Чистая архитектура на практике: перестаём ломать сервис при каждом релизе

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

Хабр

I recently got back to my work on literate #GRASP, and I think things finally started to look good. I implemented a new document representation (the previous one was built from cons-cells and multiple hacks), and I have some working tests that are capable of rendering this representation to "unicode-art" strings, and I'm currently working on a new parser that would work well with that representation.

I still have a long way to go before I get a running system, and I don't think it's a very good literature, but if you're a #Scheme maniac or a fan of #LiterateProgramming and you don't find the #Java runtime environment too repulsive, I invite you to follow the work and provide your feedback:

https://github.com/panicz/grasp/blob/main/literate/grasp.org

Currently, when exported to pdf, the document has about 100 pages, and it mainly describes language extensions that were developed for Kawa Scheme to develop GRASP. I think it might be a delight to people who enjoy studying language extensions, but unfortunately the part about the architecture and implementation of GRASP has yet to be developed.

(the document is written in #Emacs #OrgMode using its #noweb component for literate programming. I recommend reading it from Emacs rather than from its github preview)

grasp/literate/grasp.org at main · panicz/grasp

The GRAphical Scheme Programming Environment. Contribute to panicz/grasp development by creating an account on GitHub.

GitHub

If Shimamura had Hung Out on the Stairs

#FanFic #AdachiAndShimamura
#Wss366 Grasp

“I think you fail to #grasp how your attitude affects your sales…” Shimamura’s sales manager droned on and on. The office was stuffy and institutional, with nondescript paintings on the walls. The room’s only distinguishing feature was a large window overlooking a parking lot.

As usual, Shimamura wasn’t paying attention to the room or the lecture. If she didn’t mind the minuscule commissions she received, why did it matter? She earned enough to cover her rent and convenience store meals.

Normally, she just spaced out or watched the clock to see how soon she could go home to bed. Today, however, she watched a small figure in a spacesuit drift past the window. Sparkles followed it like a comet’s tail.

Balloon?” she wondered. Not that she had ever seen a balloon like that before.

It stopped outside and bobbed up and down. Yeah, it must be a balloon, she thought, until it opened its helmet, exposing a girl’s face. The girl mouthed the word “soon” and then drifted off again.

‘Soon’ for what?” Shimamura puzzled.

“Okay, get back to work, and I want to see some sparkle!” the manager said, interrupting her thoughts.

Shimamura bowed and left, thinking, “Maybe I’ll call in sick tomorrow.

She sighed. “Better not. I’ll get fired. Why can’t it be like school, where I used to hang out alone on the stairs to the roof and spaced out?” Not that she had any great memories of high school.

“Excuse me. Where do these go?” she heard someone ask behind her.

Turning around, she saw the new sales clerk holding up a bathing suit.

Wow, she’s pretty,” Shimamura thought. Long black hair framed the woman’s lovely, though vacant, face.

The woman fidgeted and looked down, apparently embarrassed.

Shimamura didn’t know the names of any of the sales staff. It was too much bother to learn them, but for once she read the other woman’s name badge: “Adachi Sakura.”

Somewhere, she thought she heard a voice say, “Fate.”

“I’ll show you,” Shimamura said.

#TootFic #MicroFiction #AdachiToShimamura #SliceOfLive #Yuri #Cute #NMFic

He popped open Scratchpad and typed:
"Overdue invoice,
Your terms were amenable:
Buy now, pay later."
Alfred counted the syllables.
Five.
Seven.
Five.
"Boku no aware."
Again.
There were two and a half hours until lunch. He'd do research then.
For whatever reason, his subconscious wanted him aware of the phrase even if he couldn't #grasp its meaning.
"Boku no aware." 4/x
#wss366
The Wandering Shop Stories #prompt for today, Mon-9-Mar, is #grasp. Feel like writing something short and sweet that has the word "grasp" in it? Check out the definitions of the word at: https://www.merriam-webster.com/dictionary/grasp Join in and tag it with #wss366! #writing #WritingLife #microfiction h/t @extraspecialbitter
Definition of GRASP

Definition of 'grasp' by Merriam-Webster

Заплыв следует начинать всё же с #GRASP, про которой в массе своей люди слышали и не слышали. Широким массам знаком лишь #SOLID и то, когда к собеседованиям готовились или хотели и кого-то уделать\впечатлить из коллег.
Хотя есть даже на
швабре, где тоже рекомендуются как раз работа Крэга Лармана «Applying UML and Patterns: An Introduction to Object‑Oriented Analysis and Design and Iterative Development». Однако, не просто так, а разбирая на базе девяти шаблонов GRASP:
• Information Expert
• Creator
• Controller
• Low Coupling
• High Cohesion
• Polymorphism
• Pure Fabrication
• Indirection
• Protected Variations

И не важно о ком идёт речь — про молодых специалистов возрастом до 30-35 лет или же про седовласых «заслуженных» и авторитетных спецов 45+ лет.
Мозгов с компетенцией, в основной массе, нет ни у тех ни у других. Одни только понты и гонор, с попытками разношёрстных манипуляций. Им сложно и не нужно погружаться в такие материи как то:

Ларман дает процесс — от анализа требований до концептуального проектирования. Он показывает, как из пользовательских сценариев прийти к модели, выявить сущности, роли и поведение.
Эванс, в свою очередь, формализует язык и паттерны для работы с предметной областью. Он показывает тактические конструкции (агрегаты, фабрики, спецификации) и стратегические приёмы — ограниченные контексты, контекстные карты, Ubiquitous Language.
Хочется быть профессионалом? Не вот не ясно куда рыть и ковырять? Вот это тот свод принципов и литературы, что на полгода вперёд должно хватить.

#книги #softdev #softwaredevelopment #DDD

RE: https://hub.hubzilla.de/item/7c0fa19b-0454-4dea-aec7-2933cc2b7d56

Do you find the majority of Linux documentation easy or hard?

By documentation I mean the info, man, and help files. In terms of finding, navigating, and developing uses beyond simple obvious tasks.

Sometimes I feel like it hasn't been written any better than mathematics. (In which most people need extensive lessons for grasp).

Meaning, maybe 10% is unreadable until you tease it out from other sources.

#Linux #Parsing #Grasp #Jargon #Esoteric

Hard
15%
Sometimes hard
35%
Regularly doable
45%
Dead easy
5%
Poll ended at .
Flight-Ticket-Initiative: erste fünf Missionen mit Avio und Isar Aerospace gesichert

This is how I add safety to my code:

#GRASP #scheme #lisp

I improved screen splitting/joining from keyboard and added some animatiions. It doesn't look that great on a phone, but is very satisfying with a desktop client

https://www.youtube.com/shorts/bGDX0xzqeJU

#GRASP

GRASP screen splittng animations #coding #scheme #programming

YouTube