
Andrey
15.02.2018
14:07:55
Плохого качества.
1 вопрос на каком уровне разделяются ответственности при следовании принц. Солид

Sergey
15.02.2018
14:07:55
у вас типа техлид/CTO мнит себя великим архитектором?
или менеджер в википедии почитал?

Sergey
15.02.2018
14:08:10
видимо бывший препод в универе)

Google

Andrey
15.02.2018
14:08:16
Нет это общее корпоративное развлечение здать солид

Sergey
15.02.2018
14:08:27
а мы обычно просто бухаем вместе
и бегаем в пейнтболы

Sergey
15.02.2018
14:08:36

Andrey
15.02.2018
14:08:41
Просто я начинаю нервничать после 7 го раза и ощущать не полноценность

Sergey
15.02.2018
14:08:51

Andrey
15.02.2018
14:09:04

Sergey
15.02.2018
14:09:30
либо "все перечисленное выше" либо просто модули, добавив потом что "модуль это все"

Andrey
15.02.2018
14:09:34
Кароче ответ на вопрос 1 - B Классы это сказано в первом абзаце вики
Да я так же писал но

Sergey
15.02.2018
14:09:50

Dmitriy
15.02.2018
14:10:08
а фото,по лучше можешь сделать,а то как будто в школе списываешь)

Sergey
15.02.2018
14:10:11
Each module should have one reason to change. Классы там вводятся как пример модуля, что бы было более конкретно

Google

Andrey
15.02.2018
14:10:17
Так и есть ;)

Sergey
15.02.2018
14:10:31
и в чем проблема?
в том что "предпод" считает иначе?
ну скажи ему что он не шарит просто и пошли его в жопу
проблему нашел

Andrey
15.02.2018
14:11:41
Да я предлагал модули так как класс частный случай модуля это дядя боб говорит
В ООП принцип единственной ответственности (англ. The Single Responsibility Principle, SRP) обозначает, что каждый объект должен иметь одну ответственность и эта ответственность должна быть полностью инкапсулирована в класс. Все его поведения должны быть направлены исключительно на обеспечение этой ответственности.

Sergey
15.02.2018
14:12:04
ну так и в чем проблема?

Andrey
15.02.2018
14:12:09
The single responsibility principle is a computer programming principle that states that every module or class should have responsibility over a single part of the functionality provided by the software, and that responsibility should be entirely encapsulated by the class. All its services should be narrowly aligned with that responsibility. Robert C. Martin expresses the principle as, "A class should have only one reason to change."[1]

Sergey
15.02.2018
14:12:15
ты поплакаться пришел или что-то хочешь?

Andrey
15.02.2018
14:12:21
Кароче ответ все выше перечисленное не подходит?
Так как не может файл с исходным полотном нарушать принцип SRP

Sergey
15.02.2018
14:12:40
ну более корректно будет модуль, ибо файлы не особо нас должны интересовать

Andrey
15.02.2018
14:12:55
Ок я тоже так думаю
Дальше
Вопрос 2

Sergey
15.02.2018
14:13:07

Andrey
15.02.2018
14:13:12
Добавление нового кода

Sergey
15.02.2018
14:13:16
но я бы не стал так обобщать

Google

Andrey
15.02.2018
14:13:46
Открыт для расширение закрыты для модификации
Ну тут без вариантов
Согласен.
Дальше 3 вопрос
Насчет него нихера не уверен

Sergey
15.02.2018
14:14:22

Andrey
15.02.2018
14:14:47
Вот с этим у меня косяк потому что кажется что любой ответ подходит
Или нет

Sergey
15.02.2018
14:15:27
нет

Andrey
15.02.2018
14:15:30
Лучше качество нашел

Sergey
15.02.2018
14:15:45
про стат анализ и tdd в целом подходит, хотя может даже только стат анализ.

Sergey
15.02.2018
14:16:12
но тут тоже стоит делать уточнение что стат анализ может обнаружить нарушение LSP а может и не обнаружить))
просто в большинстве случаев это будет правдой

Andrey
15.02.2018
14:16:38
Вариант ответа только 1

Sergey
15.02.2018
14:16:40
а вот статическая/динамическая типизация - это все не важно

Andrey
15.02.2018
14:16:45
забыл сказать :)

Sergey
15.02.2018
14:16:46
ну значит первый только
ну то есть главное что бы был late binding и тогда у тебя есть возможность соблюдать open/close. А late binding не привязан к вопросам статической/динамической/структурной типизации

Andrey
15.02.2018
14:17:23
Я пытался найти инфу о статическом анализе компилятором

Google

Sergey
15.02.2018
14:17:35

Andrey
15.02.2018
14:18:18
Да вроде знаю

Sergey
15.02.2018
14:18:50
ну и как определить нарушает класс LSP или нет?
с точки зрения статического анализа
что такое пост/пред условия? какими они могут быть? какими могут быть инварианты и что это такое?

Andrey
15.02.2018
14:19:53
Ну в том то и дело, что LSP оперирует типами и подтипами
Но при этом Нарушение принципа может быть в подтипе
Класический пример в книгах про квадрат и прямоугольник

Sergey
15.02.2018
14:20:42
ой только не начинай про квадраты и прямоугльники

Admin
ERROR: S client not available

Andrey
15.02.2018
14:20:58
Да тупой заезжанный пример

Sergey
15.02.2018
14:21:01

Andrey
15.02.2018
14:21:26
Согласен поэтому я не уверен что статистический анализ чем то может здесь помочь

Sergey
15.02.2018
14:21:27
этот пункт единственный который хоть немного смысла имеет и то если мы сделаем допущение что контракт может быть выражен явно в коде
а я пока делаю вывод что ты не понимаешь SOLID

Slava
15.02.2018
14:22:58
Ухты. А что это и где можно почитать полную версию?

Sergey
15.02.2018
14:23:08

Google

Slava
15.02.2018
14:23:52
Я не про SOLID, а про тесты

Sergey
15.02.2018
14:24:06
это как тесты на психологический возраст
только больным менеджерам может придти такая идея

Tex
15.02.2018
14:24:39

Slava
15.02.2018
14:24:45
Везде есть свой покупатель

Sergey
15.02.2018
14:24:58

Andrey
15.02.2018
14:26:41

Sergey
15.02.2018
14:27:03

Andrey
15.02.2018
14:27:46
Да в этом случае будет runtime exception

Bohdan
15.02.2018
14:27:57
чет дискуссия не в том чате :D

Sergey
15.02.2018
14:28:19
и какое это отношение имеет к LSP, типам, и главное - коду

Tex
15.02.2018
14:28:40

Sergey
15.02.2018
14:29:01
нет, он о том что это обычно в ООП чате обсуждают

Bohdan
15.02.2018
14:29:04

Sergey
15.02.2018
14:29:08
Да в этом случае будет runtime exception
interface Foo {}
class FooImpl implements Foo {}
interface Bar {
public function bar(): Foo;
}
class BarImpl implements Bar {
public function bar(): FooImpl {
}
}

Bohdan
15.02.2018
14:29:15
да в принципе уже пофиг

Sergey
15.02.2018
14:29:19
есть ли тут нарушение LSP?

Bohdan
15.02.2018
14:29:22
в любом случае чаты довольно смешаны

Andrey
15.02.2018
14:29:46

Tex
15.02.2018
14:29:48

Andrey
15.02.2018
14:29:53
как я понимаю