Переписывание с нуля 🥷
Опубликовал пост в котором изложил свои мысли про то почему не стоит слепо полагаться на переписывание с нуля. Каждый раз, когда программисты говорят "сделаем из говна и палок, а потом перепишем" создается порочный круг зависимости - один раз сделали плохо, а потом уже некогда делать хорошо.
Опубликовал пост в котором изложил свои мысли про то почему не стоит слепо полагаться на переписывание с нуля. Каждый раз, когда программисты говорят "сделаем из говна и палок, а потом перепишем" создается порочный круг зависимости - один раз сделали плохо, а потом уже некогда делать хорошо.
Please open Telegram to view this post
VIEW IN TELEGRAM
boosty.to
Про переписывание с нуля - SOER CLUB
Решения, которые вы приняли сегодня, определят решения, которые вы примите завтра. В контексте переписывания задачи с нуля, я вспомнаю про Джоэла Спольски. У Джоэла есть замечательная заметка про то, почему переписывание софта с нуля - это зло . Но…
👍29🤔1
еще б развернуть тему когда приходит новый разраб ему когнитивно сложно вникнуть в текущее решение и он бизнес принуждает к "а давайте всё перепишем"
Переписывать или не переписывать - вот в чем вопрос!
👍20🔥5😁5👨💻5
На boosty делаю зеркало записей стримов, размещенных на soer.pro, сегодня перенес запись Инверсия управления и инверсия зависимостей. В видео подробно рассмотрел два эффективных способа управлять сложностью кода - DIP и IOC.
boosty.to
Инверсия управления и инверсия зависимостей - Соер.Клуб
Максимально подробное объяснение идеи инверсии в зависимостях, управлении и т.д.(1 час 06 мин.)
Так же ловите список книг по архитектуре очень часто просят, много раз уже писал про них, но повторить лишним не будет.
boosty.to
Соер.Клуб
Понятие архитектуры программного обеспечения очень размыто. В архитектуру входит и сбор требований, и системный дизайн, и проектирование кода, и многое другое. Я сделал подборку книг, которая поможет вам максимально полно получить представление об архитектуре…
👍34❤5
Forwarded from Рекрутинг, котики и апокалипсис (Кира Кузьменко)
История, которая разблокировала моё воспоминание из юности, когда я также уволилась с одной из первых своих работ 🙈
Просто ушла и не вернулась, и не отвечала на звонки. Просто физически не могла, так сильно выгорела.
До сих пор капец стыдно 🙈
Скажите, что мы с Толиком не одни такие на свете 😅
Просто ушла и не вернулась, и не отвечала на звонки. Просто физически не могла, так сильно выгорела.
До сих пор капец стыдно 🙈
Скажите, что мы с Толиком не одни такие на свете 😅
😁31👍4🤡2🤷♂1🤝1
Задача: в браузере нужно получать Push-сообщения от сервера
Есть два варианта, которые наиболее часто используются для решения:
- WebSockets
- Server-Sent Events (SSE)
Использовать веб-сокеты только для пушей - излишне. Да, в перспективе это может окупиться, но:
- сложно
- долго
- дорого
В то время как SSE легко ляжет поверх имеющихся HTTP-решений, вытащит нужные данные из заголовка (например, авторизационный токен). При разрыве соединения браузер сам его восстановит, да еще сэкономим на ресурсах.
Из ограничений неприятно то, что гоняется только текст, а так же небольшое количество одновременных соединений.
Совет: прежде чем городить огород вокруг сокетов рассмотрите SSE.
#совет #мысли
S0ER | Boosty
Есть два варианта, которые наиболее часто используются для решения:
- WebSockets
- Server-Sent Events (SSE)
Использовать веб-сокеты только для пушей - излишне. Да, в перспективе это может окупиться, но:
- сложно
- долго
- дорого
В то время как SSE легко ляжет поверх имеющихся HTTP-решений, вытащит нужные данные из заголовка (например, авторизационный токен). При разрыве соединения браузер сам его восстановит, да еще сэкономим на ресурсах.
Из ограничений неприятно то, что гоняется только текст, а так же небольшое количество одновременных соединений.
Совет: прежде чем городить огород вокруг сокетов рассмотрите SSE.
#совет #мысли
S0ER | Boosty
👍56🤔11🤡3👀3
Среди архитектурных фреймворков есть "экзотические" экземпляры, например DoDAF (Department of Defense Architecture Framework)
Это полноценный фреймворк для создания больших автоматизированных систем, который имеет хорошо структурированный и продуманный набор ViewPoint-ов, позволяющих рассмотреть систему подробно и всесторонне.
В этом фреймворке так же велика роль проектного подхода на основе моделей.
Если интересуетесь темой энтерпрайз архитектуры, то обязательно посмотрите на этот фреймворк, помогает поставить многие вещи на место.
#теория #архитектура #фреймворк
S0ER | Boosty
Это полноценный фреймворк для создания больших автоматизированных систем, который имеет хорошо структурированный и продуманный набор ViewPoint-ов, позволяющих рассмотреть систему подробно и всесторонне.
В этом фреймворке так же велика роль проектного подхода на основе моделей.
Если интересуетесь темой энтерпрайз архитектуры, то обязательно посмотрите на этот фреймворк, помогает поставить многие вещи на место.
#теория #архитектура #фреймворк
S0ER | Boosty
Visual-Paradigm
What is DoDAF Framework
Free DoDAF Guide with comprehensive DoDAF software. Learn what DodAF is.Create architectural views in a poewrful DoDAF software.
👍11🤡4🤔1 1
Яндекс открыл YandexART API для генерации картинок по текстовому описанию. Эта сетка используется в Шедеврум и дает весьма неплохие результаты. Молодцы!
🔥32🤔5🤡4👍3👏1
Два подхода к разработке программного обеспечения
В мире разработки программного обеспечения существует два основных подхода к организации работы над проектами. Каждый из них имеет свои преимущества и недостатки, и выбор между ними зависит от конкретных требований проекта.
Первый подход заключается в том, что каждый член команды разрабатывает свою небольшую часть кода, а затем они объединяют свои усилия для создания конечного продукта. Этот подход часто используется при работе над сложными проектами, где большая доменная область и жесткие связи между задачами.
В этом случае основная нагрузка ложится на архитекторов и техлидов, потому что требуется большое количество координационных действий. Это роняет КПД, но позволяет решить проблему сложности.
Второй подход предполагает разделение проекта на несколько независимых проектов (например, как это делается в Яндексе). Каждый проект имеет своего руководителя и команду разработчиков, которые работают над своей частью кода. Такой подход позволяет лучше контролировать процесс разработки и уменьшить вероятность ошибок.
Такое решение в случае если у вас есть независимые задачи, которые не завязаны друг на друга или задачи которые могут функционировать как сервис. Во втором случае за счет внешних API возможно комплексировать независимые проекты для создания производных продуктов.
Какой из этих подходов выбрать зависит от конкретной ситуации. Если у вас есть большой проект со сложной структурой данных и множеством взаимосвязанных компонентов, то лучше использовать первый подход. Если же ваш проект состоит из нескольких небольших частей (сервисов), то второй подход будет более эффективным.
#мысли
S0ER | Boosty
В мире разработки программного обеспечения существует два основных подхода к организации работы над проектами. Каждый из них имеет свои преимущества и недостатки, и выбор между ними зависит от конкретных требований проекта.
Первый подход заключается в том, что каждый член команды разрабатывает свою небольшую часть кода, а затем они объединяют свои усилия для создания конечного продукта. Этот подход часто используется при работе над сложными проектами, где большая доменная область и жесткие связи между задачами.
В этом случае основная нагрузка ложится на архитекторов и техлидов, потому что требуется большое количество координационных действий. Это роняет КПД, но позволяет решить проблему сложности.
Второй подход предполагает разделение проекта на несколько независимых проектов (например, как это делается в Яндексе). Каждый проект имеет своего руководителя и команду разработчиков, которые работают над своей частью кода. Такой подход позволяет лучше контролировать процесс разработки и уменьшить вероятность ошибок.
Такое решение в случае если у вас есть независимые задачи, которые не завязаны друг на друга или задачи которые могут функционировать как сервис. Во втором случае за счет внешних API возможно комплексировать независимые проекты для создания производных продуктов.
Какой из этих подходов выбрать зависит от конкретной ситуации. Если у вас есть большой проект со сложной структурой данных и множеством взаимосвязанных компонентов, то лучше использовать первый подход. Если же ваш проект состоит из нескольких небольших частей (сервисов), то второй подход будет более эффективным.
#мысли
S0ER | Boosty
👍19🤡7❤2🤔1 1
Forwarded from SOER.Чат (《《《)
Первый подход - это задачи с транзакциями, когда у нас жесткие нефункциональные требования по согласованности и быстродействию, второй - это согласованность в конечном итоге (eventual consistency).
Это пример, но не единственный, следует из текста. Могу допустить что смысл передан не очень, но подходы принципиально разные.
Понятно, что и в том, и другом случае будет применяться "разделяй и властвуй", но принципиально тут именно логика и взаимодействие данных
Это пример, но не единственный, следует из текста. Могу допустить что смысл передан не очень, но подходы принципиально разные.
Понятно, что и в том, и другом случае будет применяться "разделяй и властвуй", но принципиально тут именно логика и взаимодействие данных
👍3🤡3 1
На boosty делаю зеркало записей стримов, размещенных на soer.pro, сегодня перенес запись Архитектурные границы и зависимости. В видео подробно рассмотрел самый главный момент любой архитектуры - границы на уровне кода.
boosty.to
Архитектурные границы и зависимости - Соер.Клуб
Подробное обсуждение архитектурных границ приложения (1 час 01 мин.)
🔥13🤡5👍4 1
Expand - Migrate - Contract
Это золотое правило сопровождения кода.
Expand - значит добавляем новые методы, а не меняем старые.
Migrate - помечаем старые (ненужные) методы как deprecated
Contract - спустя время убираем deprecated методы и фиксируем интерфейс
Подробнее - https://kaito.hashnode.dev/parallel-change-with-example
#знания
S0ER | Boosty
Это золотое правило сопровождения кода.
Expand - значит добавляем новые методы, а не меняем старые.
Migrate - помечаем старые (ненужные) методы как deprecated
Contract - спустя время убираем deprecated методы и фиксируем интерфейс
Подробнее - https://kaito.hashnode.dev/parallel-change-with-example
#знания
S0ER | Boosty
👍48🤡4 2❤1 1
Хочу добавить кастомные реакции для канала, для этого надо собрать 46 boost-ов
Буду благодарен, если поддержите -https://t.iss.one/boost/softwareengineervlog
А если не поддержите, то отключимгаз и воду реакции 🤡 и ...
Буду благодарен, если поддержите -https://t.iss.one/boost/softwareengineervlog
А если не поддержите, то отключим
Telegram
S0ER
Проголосуйте за канал, чтобы он получил больше возможностей.
🤡97👍16 12😁3 3🤔2🤩1👀1🫡1
Заметили как много стало книг, видео, статей по архитектуре?
Переход от машинного кода и ассемблера к языкам высокого уровня длился около 20лет.
В 40-е годы 20-го века появился ассемблер, в середине 50-х появился Фортран, а настоящий лидер, который до сих пор живее всех живых, появился в конце 60-х и это был язык Си.
В те же годы появились концепции функционального и структурного программирования. Позже к ним присоединилось ООП. С годами сами концепции усложнялись и развивались, но мы всегда находились в рамках языков высокого уровня.
Сейчас наступила эра ИИ, в основном генеративных сетей разных направленностей. Перед ними не стоит ограничений, свойственных человеку. Поэтому привычная грануляция на уровне классов, функций и абстракций (интерфейсов) для ИИ может выглядеть совершенно иначе.
Языки высокого уровня по-прежнему нужны, ведь человеку без них трудно понять, что делает программа, а самое главное делает ли она все правильно.
Однако для описания задачи генеративным сетям сам по себе язык высокого уровня уже не требуется. Вместо него нужно составить промпт, который позволит получить наиболее точный результат. А для этого нужно продумывать не детали, а высокие архитектурные абстракции.
Поэтому сейчас все сильнее формируется тренд на изучение архитектуры, думаю, что со временем это станет основным фокусом внимания для всех разработчиков, а языки высокого уровня нужны будут только для верификации результата.
#мнение
Переход от машинного кода и ассемблера к языкам высокого уровня длился около 20лет.
В 40-е годы 20-го века появился ассемблер, в середине 50-х появился Фортран, а настоящий лидер, который до сих пор живее всех живых, появился в конце 60-х и это был язык Си.
В те же годы появились концепции функционального и структурного программирования. Позже к ним присоединилось ООП. С годами сами концепции усложнялись и развивались, но мы всегда находились в рамках языков высокого уровня.
Сейчас наступила эра ИИ, в основном генеративных сетей разных направленностей. Перед ними не стоит ограничений, свойственных человеку. Поэтому привычная грануляция на уровне классов, функций и абстракций (интерфейсов) для ИИ может выглядеть совершенно иначе.
Языки высокого уровня по-прежнему нужны, ведь человеку без них трудно понять, что делает программа, а самое главное делает ли она все правильно.
Однако для описания задачи генеративным сетям сам по себе язык высокого уровня уже не требуется. Вместо него нужно составить промпт, который позволит получить наиболее точный результат. А для этого нужно продумывать не детали, а высокие архитектурные абстракции.
Поэтому сейчас все сильнее формируется тренд на изучение архитектуры, думаю, что со временем это станет основным фокусом внимания для всех разработчиков, а языки высокого уровня нужны будут только для верификации результата.
#мнение
👍33 28🤔9🗿5🤡4 3 2
Чтобы стимулировать технические обсуждения в чате канала, я ввожу систему рейтингов и ограничений:
- 5ти минутный интервал на отправку сообщений
- тем кто пишет содержательные комментарии ограничения отменяются
- те кто пишет комментарии с полезными дополнениями, и тем самым вносит вклад в развитие сообщества, дарятся звезды ☆ чем больше вклад, тем больше звёзд. Кто набирает 5 звёзд, получает приглашение в Соер клуб
Так я надеюсь мотивировать людей к тематическому общению.
- 5ти минутный интервал на отправку сообщений
- тем кто пишет содержательные комментарии ограничения отменяются
- те кто пишет комментарии с полезными дополнениями, и тем самым вносит вклад в развитие сообщества, дарятся звезды ☆ чем больше вклад, тем больше звёзд. Кто набирает 5 звёзд, получает приглашение в Соер клуб
Так я надеюсь мотивировать людей к тематическому общению.
👍83🤡24🔥10😁4 4 2 2💩1👨💻1🆒1
Какой стек вы используете и почему?
Давайте сегодня поговорим о технических стеках, которые вы используете в работе?
Расскажите почему именно такой стек, что нравится, есть ли желание пробовать другие технологии, если да, то какие?
Пишите хорошие коммертари - набирайте звезды ☆ и получайте приглашения в соер.клуб
Давайте сегодня поговорим о технических стеках, которые вы используете в работе?
Расскажите почему именно такой стек, что нравится, есть ли желание пробовать другие технологии, если да, то какие?
Forwarded from ser rtr
Всем привет, вопрос философский) для реализации контроля состояния данных лучше использовать бд или списки в redis? Особенность этого торжества такова что для каждого из этапа обработки данных нужно сохранять какие-то методанные, и вот что бы не расширять модель данных можно по идее создать таблицу которая будет представлять собой некий пулл в котором будет сохраняться на время запись о состоянии когда состояние изменилось(данные перешли в другую таблицу) запись удаляется из первоначальной. На сколько такой вариант имеет место быть в реальности
🤓9🤔5