Pull to refresh
57
-3

Пользователь

Send message

Слоистая архитектура противоречит принципу Low Coupling - High Cohesion

Да про слоистую архитектуру, мне кажется, во-первых, все знают уже со времен, когда кто-то догадался что можно на диск не байтики и секторы писать, а сделать файловую систему, чтоб по именам к областям хранения данных обращаться. Реально самая древняя архитектура наверное. А во-вторых, это самый очевидный подход, первая мысль, которая возникает в голове начинающего разработчика это: "А сложу-ка я все функции для работы с БД в один пакет, а обработку HTTP запросов - во второй".

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

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

В небольших приложениях любой вызов API работает по схеме handler.CreateUser -> businessLogic.CreateUser -> repo.CreateUser [-> dao.CreateUser] За исключение 5-10 "библиотечных" функций типа GetUserByID. В них вообще слоеная архитектура вредна, получается. В крупных проектах "библиотечных" функций гораздо больше получается, но все-равно слоеную архитектуру ну никак не получается назвать идеальным решением.

Почему-то складывается такое общественное мнение в среде программистов, что НЕ (чистая архитектура или DDD) = говнокод. Крайне спорное утверждение, можно и в стиле DDD и чистой архитектуры такой говнокод написать, что замучаешься разгребать. И наоборот, простой, понятный, производительный код не обязательно должен следовать каким-то практикам.

А что такое "отображение в разных путях" не очень понял

Да у меня нигде нормально автомасштабирование не работает, вот таким скриптом руками переключаю

#!/bin/bash

if [ $1 == "office" ]; then
	xrandr --output eDP-1 --off --output DP-1 --mode 3840x2160
	xfconf-query -c xsettings -p /Xft/DPI -s 160
elif [ $1 == "home" ]; then
	xrandr --output eDP-1 --off --output HDMI-1 --mode 2560x1440
	xfconf-query -c xsettings -p /Xft/DPI -s 100
elif [ $1 == "meeting" ]; then
	xrandr --output eDP-1 --mode 1920x1080 --output HDMI-1 --right-of eDP-1 --mode 1920x1080
	xfconf-query -c xsettings -p /Xft/DPI -s 100
elif [ $1 == "1920" ]; then
	xrandr --output eDP-1 --off --output DP-1 --mode 1920x1080
	xfconf-query -c xsettings -p /Xft/DPI -s 90
elif [ $1 == "1920h" ]; then
	xrandr --output eDP-1 --off --output HDMI-1 --mode 1920x1080
	xfconf-query -c xsettings -p /Xft/DPI -s 90
elif [ $1 == "laptop" ]; then
	xrandr --output DP-1 --off --output HDMI-1 --off --output eDP-1 --mode 2560x1600
	xfconf-query -c xsettings -p /Xft/DPI -s 160
else
	xfconf-query -c xsettings -p /Xft/DPI -s 120
fi

Да, потому что эта среда идеальна. Нечего больше дорабатывать и багов больше нет.

Сижу на XFCE много лет уже, вообще проблем нет. Идеально работает.

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

46. Что такое псевдоним в SQL и как он используется?

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

Ну и никак не может быть 100 ключевых вопросов. 100 вопросов - это 30 придумали сами, 30 подсказали коллеги и еще 40 вымучечнных вопросов написали просто чтобы добить до красивого числа. Даже на экзаменах в институте не бывает 100 вопросов.

На мой взгляд по SQL есть 3 ключевых вопроса:

  1. Как данные лежат на диске?

  2. Что такое джойн?

  3. Что такое индекс?

Ну они конечно те еще маркетологи. В новостях будет:

1" сенсор! Диафрагма 1.63! 75мм с зумом 3.2! 120мм с зумом 5x. 50 мегапикселей!

По факту:
* 1" сенсор и диафрагма 1.63 только на фиксированном фокусном расстоянии 24мм (такое себе фокусное расстояние, самое нехудожественное). 12 мегапикселей и 48 только при ярком свете днем.


* 1/2.51" сенсор и диафрагма 1.8 на ФИКСИРОВАНОМ фокусном расстоянии 75мм, 12 мегапикселей


* 1/2.51" сенсор и диафрагма 2.5 на ФИКСИРОВАНОМ фокусном расстоянии 120мм, 12 мегапикселей

Ну то есть будет чуть лучше чем было за счет более торчащего блока камер. Даже если с "мыльницами" сравнить, вот с такой например, 7летней давности: https://www.sony.ru/electronics/cyber-shot-compact-cameras/dsc-rx100m5 - тут почти та же диафрагма 1.8 на 24мм, но при этом честный зум 24-70 и на длинном конце очевидно используется та же хорошая дюймовая матрица с диафрагмой 2.8. И честные 20 мегапикселей, а не унылые 12.

time.Now().Add() тоже выглядит как костыль на первый взгляд, но если вспомнить C++ с перегрузкой операторов - сразу понятно, что лучше уж так.

На мой взгляд Rows даже получше выглядит, задачу тоже решает вполне неплохо.

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

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

Запуск qemu руками нужен разве что для разработки какого-то аналога либвирта.

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

первое
первое
второе
второе
Не реклама, но пользователю это не нужно совершенно
Не реклама, но пользователю это не нужно совершенно
и еще реклама
и еще реклама

Так у вас там не какая-то важная информация, а реклама.

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

Ну вот в плане переводов главный вопрос - кто будет этот перевод делать? Если тот, кто предлагает исходный текст договора - то я бы не стал такому "переводу" доверять. Все уже насмотрелись от банков на всякие

ДЕПОЗИТ 30% ДЛЯ ВСЕХ НА ЛЮБОЙ СРОК!!!

* только для клиентов зарплатных карт
* сумма покупок за предыдущие 12 месяцев должна быть не менее 12млн
* только на период действия акции
* процент указан на первые три месяца депозита
* при условии страхования жизни, здоровья и потери трудлоспособности

1
23 ...

Information

Rating
Does not participate
Works in
Registered
Activity