• Существуют ли в opensource-проекты с хорошей архитектурой?

    DollyPapper
    @DollyPapper
    Надо исходить из изначального посыла - что такое хорошая архитектура и надо различать понятия дизайн и архитектура. Архитектура это высокоуровневая концепция. Это вопрос какую БД выбрать, какой прокси сервер, определение нагрузки на приложение. Так же архитектура это то сколько и какие слои в вашем приложении будут. А вот SOLID это как раз про дизайн отдельных модулей и классов. Итак. Какие изначальные постулаты "хорошего дизайна"?
    1. Понятность/читаемость кода
    2. Слабая связанность и сильная связность (зацепление) отдельных модулей
    3. Разделение компонентов по ответственностям
    4. Возможность повторного использования компонентов
    5. Надежность (вопрос устойчивости и корректности ПО)


    Исходя из этих критериев и нужно рассматривать архитектуру приложения. Но вот так просто "с улицы" зайти в проект и понять хорошая там архитектура или плохая ИМХО нельзя. Если пресловутые принципы SOLID нарушаются в приложении, то может так и задумано? Мартин вот категорично говорит, что нельзя зависеть от конкретных реализаций. Если у вас в зависимостях есть конкретный класс, а не интерфейс, то это якобы плохой дизайн, вы нарушаете принцип SOLID. Так ли это важно и нужно? Да не особо. Если нет смысла зависеть от интерфейса, то не надо пихать его. В этом и заключается чуйка архитектора. Если он считает, что реализация меняться не будет, то не нужно усложнять код. Если он считает, что требования будут меняться и следственно реализация, то вероятно стоит защитить конкретный компонент и выделить интерфейс. Если класс на 30к строк это не значит, что там плохая архитектура. Кто-то скажет, что это вполне себе Domain Model паттерн, вместо Anemic Model и это хороший дизайн, кто-то скажет что нарушается SRP. Нет четких правил, тут именно что нужно понимать предметную область с которой работаешь и вырабатывать чуйку.
    Ответ написан
    Комментировать
  • Существуют ли в opensource-проекты с хорошей архитектурой?

    mayton2019
    @mayton2019
    Bigdata Engineer
    SOLID может на каком-то этапе противоречить например KISS. Например вы, как старший разработчик можете видеть "вперед" и прогнозировать потребность бизнеса в расширении какого-то функционала. И будете закладывать Open/Closed и прочие философии. А разработчик уровня Junior который неделю назад пришел на проект - этого не знает и будет писать "как чукча". Тоесть буквально то что надо сделать - тои напишет. И между вами может возникнуть спор как раз на тему SOLID против KISS. Но вы можете ошибаться в своём прогнозе потребности бизнеса. Или бизнес может передумать. В этом случае правда оказалась на стороне святой простоты (Santa simplicitas).

    Как вы понимаете такие антагонизмы не могут быть удовлетворены аж никогда. Поэтому вы никогда не найдете проекты которые удовлетворяют ВСЕМ философиям которые перечислены в списке одновременно.
    Ответ написан
    Комментировать
  • Как происходит деплой небольших веб-сервисов на ASP.NET Core на Linux VPS?

    Самый простой вариант - это на компе разработчика выполнить:
    dotnet publish -c Release -r linux-x64 --self-contained true /p:PublishReadyToRun=true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true

    Закинуть получившийся бинарь на сервер (через scp например)
    Настроить systemd

    А дальше уже можно накручивать что хочешь.
    Ответ написан
    Комментировать
  • Как происходит деплой небольших веб-сервисов на ASP.NET Core на Linux VPS?

    @Voland69
    Поправлю - git checkout и прочую сборку лучше не на сервере - чем меньше там софта, тем меньше там дырок.
    Так что самый простой случай - делать dotnet publish с нужным профилем и через scp заливать на сервак.
    Еще неплохой способ - докер, тоже можно билд делать на одной машине а на VPS тянуть готовые образы с докерхаба/своего хранилища.
    Ответ написан
    Комментировать
  • Как происходит деплой небольших веб-сервисов на ASP.NET Core на Linux VPS?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Да, вы всё правильно описали. Вручную, либо велосипедным скриптом, либо централизованно с помощью CI/CD.
    Ответ написан
    Комментировать
  • Какую редакцию и сборку Win10 выбрать?

    benipaz
    @benipaz
    ставь LTSB. она без
    свистелок-перделок лишних
    и рюшечки обновляются раз в три года, а не каждые полгода, как в других редакциях
    Ответ написан
    3 комментария
  • Какую редакцию и сборку Win10 выбрать?

    @Drno
    Берите LTSB и только ее... KMS активатор в помощь.
    Все остальные версии глючные и с кучей фигни в комплекте
    Ответ написан
    Комментировать
  • Разработка электроники VS веб-разработка: куда податься?

    @Mirn
    Сам занимаюсь программированием для железок и для ПК в том числе.
    Работаю в фирме а так же делаю свои "умные" часы в свободное от работы время. И вижу чего добились другие так же, и вижу что большинство успехов связано либо с железом либо с совмещением железа и софта. Никому не нужен пятсотпервый ещё один "классный архиватор", но все хотят какие нибудь качественные и надёжные гаджеты, предметы, и просто порой качественную мебель которая не пахнет и не токсична (для детей). Все устали от китая, очень устали, не везде есть икея.

    Если делать свой бизнес то по-моему только связанный с товаром или электроникой.
    Для этого даже не нужно сильно дорогое оборудование, на работе стоит из дорого осциллограф лекрой за 300к, и отладки для ПЛИС за 30к. Но можно вполне спокойно найти usb осцилл за 20к уже приличный, остальное на 10к потянет.

    У электроники ещё есть плюсы:
    1. Однозначно проще веба
    2. Реально сделать что-то самому.
    3. Реально растиражирвать и получить прибыль быстро, и вложить её в развитие.
    4. Среда в которой крутится твой код не поменяется если сам не сменишь МК/ПЛИС/Распебри/Ардуину. Поэтому сойдёт даже быдлокод - главное чтоб у клиента работало,
    5. Поэтому можно быстрее проверить чем веб.

    Двоём даже можно сделать такое:
    https://www.youtube.com/watch?v=gnjd8yujyKE
    https://www.youtube.com/watch?v=J6XkECIYV3I
    Мы сделали за три года, тратя в среднем 2 часа в день.

    PS. "-малое количество компаний, отрасль слабо развивается" - это плюс, ниша не занята, дерзай! Делай!
    Ответ написан
    1 комментарий