Абсолютно тоже самое, вместо ответов на вопросы минусы. Видимо по существу ответить нечего. А читатели должны верить на слово анониму с интернета который пишет с чужого аккаунта.
Что касается возможного мошенничества, ИМХО если оно и было, то его провернули бывшие коллеги Толика по нелегкому криптобизнесу.
Вам уже ответили пользователи ниже. Плюс, Анатолий не жил в США, а приехал на два месяца на обучение в школу пилотов.
В интернетах пишут что Анатолий проживал в штатах с семьей и у одного из детей даже гражданство есть. Это неправда?
До ареста Легкодымов, будучи программистом-разработчиком, скромно проживал с семьей неподалеку от Майями, в настоящее время супруга с тремя детьми, которые ходят в начальную школу, остается в штате Пенсильвания, следует из судебных материалов. У одного из детей американское гражданство, тогда как супруга подала бумаги на себя и двух других детей о предоставлении убежища.
Прошло всего две недели, и сим карта из телефона Анатолия всплыла в Краснодарском крае, городе Кропоткин (!), где ни Анатолий, ни даже никто из его родственников никогда не жил.
Или просто ознакомиться со статистикой - где менее 1% федеральных уголовных дел в США завершились оправдательными приговорами.
Статистика интересная. Признали себя виновными 89.5 %, 2.3 % судились, а 8.2 % "had cases dismissed" (не уверен в точном переводе с англоюридического, но суть в том что дело было прекращено). А вот уже из тех 2.3 % кто дошел до суда оправдано 0.4% (от общего числа), а признано виновными 1.9%. Или другими словами из тех, кого судили, оправдали 17% (0.4 / 2.3).
Звучит несколько иначе, чем страшные "менее 1%", правда?
Как пища для размышления это так себе. Потому что выдумать можно что угодно, а вот насколько это к реальной жизни применимо вопрос другой. Многие люди относятся некритично и считают что это не выдумка, а некая истина. Для многих это хорошее оправдание своей лени и/или низкой квалификации. Очевидно что все устроено сложнее прямолинейных схем и бывает по разному. А этот широко известный текст просто ода криворукости, делай кое-как и будет успех.
Что касается классиков, то писали они разное и многое на основе реальной истории или реального же жизненного опыта. Тот же Пушкин изучал историю Пугачевского бунта, а не просто фантазировал и т.д. и т.п.
Просто государство должно создавать возможность для сохранения средств таким людям.
Признание недееспособным через суд и оформление опекунства.
Ну или просто отдать доступ к счетам/деньгам родственникам. Тут конечно надо доверять родственникам. Впрочем если пожилой человек верит посторонним и не верит родным людям, то чиновник тут не поможет)
Понимаете, SOLID - это такая мнемоника, сокращенная запись и напоминалка того, о чем в книжке "Чистая Архитектура" написано. В целом, без предварительного прочтения книжки и разбора примеров/ситуаций, вероятно, она и бесполезна.
Акроним SOLID появился в начале нулевых, сами принципы сформулированы в середине 90-х, книга "Чистая архитектура" написана в 2017 году. Получается SOLID 20 лет был бесполезен? В общем и целом я соглашусь)
SOLID буквально рекомендует использовать DI для инъекции внешних зависимостей.
Где это сказано? Мартин буквально пишет что надо использовать фабрики.
Don’t refer to volatile concrete classes. Refer to abstract interfaces instead. This rule applies in all languages, whether statically or dynamically typed. It also puts severe constraints on the creation of objects and generally enforces the use of Abstract Factories.
In most object-oriented languages, such as Java, we would use an Abstract Factory to manage this undesirable dependency.
Безусловно не обязательно использовать фабрики, но у Мартина про DI не говорится ни слова (в описании DIP). Некритически настроенные люди могут начать делать абстрактные фабрики потому что так написал сам Мартин и хрен что ты им докажешь.
Осуждаемая тут максима "все-все-все закрывать интерфейсами и абстрактными реализациями" - она же не из SOLID'а, а из головы осуждающих
Именно это пишет Мартин.
Don’t refer to volatile concrete classes. Refer to abstract interfaces instead. This rule applies in all languages, whether statically or dynamically typed.
Never mention the name of anything concrete and volatile. This is really just a restatement of the principle itself.
Их немного оправдывает, что они написаны 21 год назад.
Однако это проект самого Мартина, так что выглядит это сильно так себе. Да и разработка не прекратилась 21 год назад.
Сомневайтесь сколько угодно. Я много лазил по кишкам Spring Framework, случалось лазить по SLF4J, Kafka-клиенту для JVM, библиотекам Atlassian, Netflix Hystrix.
Про Spring я и не сомневаюсь (но утверждать не берусь), но дело в другом. Огромный пласт энтерпрайза это закрытый код, который никто не видел кроме сотрудников. По своему опыту могу сказать что есть много коммерчески успешного (и не очень) софта в котором не то что паттерны, элементарный здравый смысл рядом не стоял. Я не говорю что это хорошо и правильно, но судить обо всей индустрии только по опенсорсу нельзя.
берем на гитхабе популярный продакшн-реди софт для энтерпрайза. Желательно написанный на ООП-языке, чтобы солид в полной мере можно было применять
оцениваем, там скорее соблюдаются солид, чистый код и прочие практики или отрицаются
Оценить проект целиком на предмет соблюдения/несоблюдения солид это просто? Я сильно сомневаюсь что вы сами проводили такую оценку. А если проводили, будет интересно ознакомиться с результатами.
Ради смеха вот примерчик (проект целиком не оценивал) нарушаются правила "No class should derive from a concrete class", " No method should override an implemented method of any of its base classes "
public class CommandLine extends Option {
...
class Option {
public class WikiRunner extends FileRunner {
...
@Override
public void process() {
В целом поиск по репозиторию нашел 398 java файлов со словом "extends" и 496 java файлов со словом "@Override". Там еще встречается "Override" в реализации интерфейсов, так что видимо не каждый из 496 файлов нарушает принципы, но все равно внушительное число. Не один-два косяка, а прям много.
Если совсем строго - там про API. Который так-то тоже "interface".
Это да, речь о публичном контракте модуля. Отдельный хороший вопрос что такое модуль в мире дотнета. Вот в турбопаскале были прямо модули которые так и назывались и у которых был интерфейс в смысле публичная часть.
Но, механизм у Мартина это абстрактный класс (ну или интерфейс, в разных языках по разному). О чем он и пишет
Figure 4 shows a more appropriate model. Each of the lower level layers are represented by an abstract class. The actual layers are then derived from these abstract classes. Each of the higher level classes uses the next lowest layer through the abstract interface.
Или более поздняя формулировка
In a statically typed language, like Java, this means that the use, import, and include statements should refer only to source modules containing interfaces, abstract classes, or some other kind of abstract declaration.
Тут еще есть какие-то "some other kind of abstract declaration", но что это совершенно непонятно.
А дальше вот такое правило
Don’t refer to volatile concrete classes. Refer to abstract interfaces instead. This rule applies in all languages, whether statically or dynamically typed.
Так что речь у него именно об абстрактных классах/интерфейсах.
Ну вот вы же в следующем предложении пишете про книгу, а я вам пишу про статью.
В книге вам приводят пример того что может быть абстрактным слоем на примере кода приложения.
В какой из книг и где именно? Формулировки у него менялись (в сторону размытия), но про абстрактные интерфейсы у него как минимум в "Agile.Principles.Patterns.and.Practices", "Agile.Principles.Patterns.and.Practices in C#" и в "Clean Architecture"
Если грамотно разбить библиотеки по пакетам, то DIP позволит их использовать и поддерживать более эффективно.
Типичное утверждение про solid - за все хорошее и против всего плохого. Но все же есть вопросы. Если разбить неграмотно, то DIP не позволит? А грамотно это как именно? Таким принципам грош цена.
А про что там абстракция, если там написано abstract interface? Абстрактный класс с частичной реализацией не катит - абстракции не "должны зависит от деталей".
Это что за фантастическая история?
Если бы не хватало специалистов, то росли бы зарплаты, а этого нет.
"Еще" - Безопасность - Вход в приложение - Быстрый вход
Ради интереса проверил, у меня отключено. Описание функции да, не совсем понятное.
Абсолютно тоже самое, вместо ответов на вопросы минусы. Видимо по существу ответить нечего. А читатели должны верить на слово анониму с интернета который пишет с чужого аккаунта.
Что касается возможного мошенничества, ИМХО если оно и было, то его провернули бывшие коллеги Толика по нелегкому криптобизнесу.
Вопрос был откуда он родом, а не где у него сейчас прописка.
Приехал на два месяца в октябре, в январе его арестовали. Какие-то странные два месяца. И на вопрос о гражданстве детей вы вообще не ответили.
Я не готов утверждать что мошенничества не было или оно было, но вы много недоговариваете и вообще вся история выглядит странно.
В интернетах пишут что Анатолий проживал в штатах с семьей и у одного из детей даже гражданство есть. Это неправда?
Он же из Краснодарского края родом, правильно?
А была ли сим карта в США?
На котором выложены "следственные документы по делу в США". В чем проблема туда выложить хоть десять тысяч строчек выписки?
Есть же специальный сайт, почему бы не выложить туда?
Может займет, а может продукт будет настолько сыроватый что им никто пользоваться не будет из-за тормозов и глюков)
Статистика интересная. Признали себя виновными 89.5 %, 2.3 % судились, а 8.2 % "had cases dismissed" (не уверен в точном переводе с англоюридического, но суть в том что дело было прекращено). А вот уже из тех 2.3 % кто дошел до суда оправдано 0.4% (от общего числа), а признано виновными 1.9%. Или другими словами из тех, кого судили, оправдали 17% (0.4 / 2.3).
Звучит несколько иначе, чем страшные "менее 1%", правда?
Как пища для размышления это так себе. Потому что выдумать можно что угодно, а вот насколько это к реальной жизни применимо вопрос другой. Многие люди относятся некритично и считают что это не выдумка, а некая истина. Для многих это хорошее оправдание своей лени и/или низкой квалификации. Очевидно что все устроено сложнее прямолинейных схем и бывает по разному. А этот широко известный текст просто ода криворукости, делай кое-как и будет успех.
Что касается классиков, то писали они разное и многое на основе реальной истории или реального же жизненного опыта. Тот же Пушкин изучал историю Пугачевского бунта, а не просто фантазировал и т.д. и т.п.
Что можно доказать этим выдуманным примером? То что выдуманным примером можно доказать что угодно.
Признание недееспособным через суд и оформление опекунства.
Ну или просто отдать доступ к счетам/деньгам родственникам. Тут конечно надо доверять родственникам. Впрочем если пожилой человек верит посторонним и не верит родным людям, то чиновник тут не поможет)
Акроним SOLID появился в начале нулевых, сами принципы сформулированы в середине 90-х, книга "Чистая архитектура" написана в 2017 году. Получается SOLID 20 лет был бесполезен? В общем и целом я соглашусь)
Где это сказано? Мартин буквально пишет что надо использовать фабрики.
Безусловно не обязательно использовать фабрики, но у Мартина про DI не говорится ни слова (в описании DIP). Некритически настроенные люди могут начать делать абстрактные фабрики потому что так написал сам Мартин и хрен что ты им докажешь.
Именно это пишет Мартин.
Однако это проект самого Мартина, так что выглядит это сильно так себе. Да и разработка не прекратилась 21 год назад.
Про Spring я и не сомневаюсь (но утверждать не берусь), но дело в другом. Огромный пласт энтерпрайза это закрытый код, который никто не видел кроме сотрудников. По своему опыту могу сказать что есть много коммерчески успешного (и не очень) софта в котором не то что паттерны, элементарный здравый смысл рядом не стоял. Я не говорю что это хорошо и правильно, но судить обо всей индустрии только по опенсорсу нельзя.
Оценить проект целиком на предмет соблюдения/несоблюдения солид это просто? Я сильно сомневаюсь что вы сами проводили такую оценку. А если проводили, будет интересно ознакомиться с результатами.
Ради смеха вот примерчик (проект целиком не оценивал) нарушаются правила "No class should derive from a concrete class", " No method should override an implemented method of any of its base classes "
В целом поиск по репозиторию нашел 398 java файлов со словом "extends" и 496 java файлов со словом "@Override". Там еще встречается "Override" в реализации интерфейсов, так что видимо не каждый из 496 файлов нарушает принципы, но все равно внушительное число. Не один-два косяка, а прям много.
Это да, речь о публичном контракте модуля. Отдельный хороший вопрос что такое модуль в мире дотнета. Вот в турбопаскале были прямо модули которые так и назывались и у которых был интерфейс в смысле публичная часть.
Но, механизм у Мартина это абстрактный класс (ну или интерфейс, в разных языках по разному). О чем он и пишет
Или более поздняя формулировка
Тут еще есть какие-то "some other kind of abstract declaration", но что это совершенно непонятно.
А дальше вот такое правило
Так что речь у него именно об абстрактных классах/интерфейсах.
Ну вот вы же в следующем предложении пишете про книгу, а я вам пишу про статью.
В какой из книг и где именно? Формулировки у него менялись (в сторону размытия), но про абстрактные интерфейсы у него как минимум в "Agile.Principles.Patterns.and.Practices", "Agile.Principles.Patterns.and.Practices in C#" и в "Clean Architecture"
Типичное утверждение про solid - за все хорошее и против всего плохого. Но все же есть вопросы. Если разбить неграмотно, то DIP не позволит? А грамотно это как именно? Таким принципам грош цена.
А про что там абстракция, если там написано abstract interface? Абстрактный класс с частичной реализацией не катит - абстракции не "должны зависит от деталей".