10.9K subscribers
331 photos
17 videos
15 files
714 links
Архитектура | Программирование | Профессиональное развитие

Live канал - https://t.iss.one/soer_live

SOER CLUB - https://soer.pro или https://boosty.to/s0er

Бусты - https://t.iss.one/boost/softwareengineervlog

№ 5101661084
Download Telegram
еще б развернуть тему когда приходит новый разраб ему когнитивно сложно вникнуть в текущее решение и он бизнес принуждает к "а давайте всё перепишем"


Переписывать или не переписывать - вот в чем вопрос!
👍20🔥5😁5👨‍💻5
Если вы хотите позвать меня на подкаст, выступление на онлайн/оффлайн конференции, то смело пишите на @soerdev
👌10😐5👾1
На boosty делаю зеркало записей стримов, размещенных на soer.pro, сегодня перенес запись Инверсия управления и инверсия зависимостей. В видео подробно рассмотрел два эффективных способа управлять сложностью кода - DIP и IOC.
История, которая разблокировала моё воспоминание из юности, когда я также уволилась с одной из первых своих работ 🙈

Просто ушла и не вернулась, и не отвечала на звонки. Просто физически не могла, так сильно выгорела.

До сих пор капец стыдно 🙈

Скажите, что мы с Толиком не одни такие на свете 😅
😁31👍4🤡2🤷‍♂1🤝1
Задача: в браузере нужно получать Push-сообщения от сервера

Есть два варианта, которые наиболее часто используются для решения:

- WebSockets
- Server-Sent Events (SSE)

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

- сложно
- долго
- дорого

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

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

Совет: прежде чем городить огород вокруг сокетов рассмотрите SSE.

#совет #мысли

S0ER | Boosty
👍56🤔11🤡3👀3
Среди архитектурных фреймворков есть "экзотические" экземпляры, например DoDAF (Department of Defense Architecture Framework)

Это полноценный фреймворк для создания больших автоматизированных систем, который имеет хорошо структурированный и продуманный набор ViewPoint-ов, позволяющих рассмотреть систему подробно и всесторонне.

В этом фреймворке так же велика роль проектного подхода на основе моделей.

Если интересуетесь темой энтерпрайз архитектуры, то обязательно посмотрите на этот фреймворк, помогает поставить многие вещи на место.

#теория #архитектура #фреймворк
S0ER | Boosty
👍11🤡4🤔11
Яндекс открыл YandexART API для генерации картинок по текстовому описанию. Эта сетка используется в Шедеврум и дает весьма неплохие результаты. Молодцы!
🔥32🤔5🤡4👍3👏1
Два подхода к разработке программного обеспечения

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

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

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

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

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

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

#мысли

S0ER | Boosty
👍19🤡72🤔11
Forwarded from SOER.Чат (《《《)
Первый подход - это задачи с транзакциями, когда у нас жесткие нефункциональные требования по согласованности и быстродействию, второй - это согласованность в конечном итоге (eventual consistency).
Это пример, но не единственный, следует из текста. Могу допустить что смысл передан не очень, но подходы принципиально разные.
Понятно, что и в том, и другом случае будет применяться "разделяй и властвуй", но принципиально тут именно логика и взаимодействие данных
👍3🤡31
На boosty делаю зеркало записей стримов, размещенных на soer.pro, сегодня перенес запись Архитектурные границы и зависимости. В видео подробно рассмотрел самый главный момент любой архитектуры - границы на уровне кода.
🔥13🤡5👍41
Expand - Migrate - Contract

Это золотое правило сопровождения кода.

Expand - значит добавляем новые методы, а не меняем старые.

Migrate - помечаем старые (ненужные) методы как deprecated

Contract - спустя время убираем deprecated методы и фиксируем интерфейс

Подробнее - https://kaito.hashnode.dev/parallel-change-with-example

#знания

S0ER | Boosty
👍48🤡4211
Хочу добавить кастомные реакции для канала, для этого надо собрать 46 boost-ов
Буду благодарен, если поддержите -https://t.iss.one/boost/softwareengineervlog

А если не поддержите, то отключим газ и воду реакции 🤡 и ...
🤡97👍1612😁33🤔2🤩1👀1🫡1
Заметили как много стало книг, видео, статей по архитектуре?

Переход от машинного кода и ассемблера к языкам высокого уровня длился около 20лет.

В 40-е годы 20-го века появился ассемблер, в середине 50-х появился Фортран, а настоящий лидер, который до сих пор живее всех живых, появился в конце 60-х и это был язык Си.

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

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

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

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

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

#мнение
👍3328🤔9🗿5🤡432
Чтобы стимулировать технические обсуждения в чате канала, я ввожу систему рейтингов и ограничений:

- 5ти минутный интервал на отправку сообщений

- тем кто пишет содержательные комментарии ограничения отменяются

- те кто пишет комментарии с полезными дополнениями, и тем самым вносит вклад в развитие сообщества, дарятся звезды ☆ чем больше вклад, тем больше звёзд. Кто набирает 5 звёзд, получает приглашение в Соер клуб

Так я надеюсь мотивировать людей к тематическому общению.
👍83🤡24🔥10😁4422💩1👨‍💻1🆒1
Какой стек вы используете и почему?

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

Расскажите почему именно такой стек, что нравится, есть ли желание пробовать другие технологии, если да, то какие?

Пишите хорошие коммертари - набирайте звезды ☆ и получайте приглашения в соер.клуб
24🤡16🔥331
Forwarded from ser rtr
Всем привет, вопрос философский) для реализации контроля состояния данных лучше использовать бд или списки в redis? Особенность этого торжества такова что для каждого из этапа обработки данных нужно сохранять какие-то методанные, и вот что бы не расширять модель данных можно по идее создать таблицу которая будет представлять собой некий пулл в котором будет сохраняться на время запись о состоянии когда состояние изменилось(данные перешли в другую таблицу)  запись удаляется из первоначальной. На сколько такой вариант имеет место быть в реальности
🤓9🤔5
Live stream started
Live stream finished (59 minutes)