169 похожих чатов

Ну вот если кому надо подробнее https://habr.com/ru/company/itelma/blog/546372/?

18 ответов

19 просмотров

Ну половина просто высосана из пальцев. 1. YAGNI "Если вы занимаетесь рефакторингом метода, класса или файла, не бойтесь удалять лишние методы. Даже если раньше они были полезны – теперь они не нужны." А потом оп, это был не метод, а фм который дергали по RFC ))) По грамотному это закоментить содержимое 2. DRY звучит полезно, но часто как бывает: у заказчик в рамках ускорения/экономии бюджета раздал по 1 задаче из общего по сути блока задач разным программистам/компаниям, они друг о друге ничего не знают - у них оказывается общий набор констант и даже функционал местами пересекается, но раз они не знаю друг о друге, то каждый напишет "свою" версию. Такие момент должен разруливать архитектор у заказчика, но как правило его нет. Даже встречал компании у которых нет ни одного специалиста поддержки по сап, а задачи выдают менеджеры-пользователи ))) 3. KISS Тоже очень размыто... КОд можно сделать под одну задачу, можно сделать более "универсальным" и сложным. Так из принципа "универсальности" и простоты в дальнейшем по сути и рождаются новые библиотеки, и штуки типо zwww. Даже тут Олег скидывал свою ноу-хау по работе с БД типо бобф обертки 4. Big Design Up Front Глобально продумать это хорошо. Но как правило абеперы это аутсорс - которому сказали сделать ТАК и за это столько-то ЧАСОВ. Поэтому оплата за "думать" редко входит и наказуемо. И чем-то противоречит предыдущему пункту ) 5. SOLID Single-responsibility principle /Принцип единственной ответственности звучит уже неплохо. интуитивно так часто и делаю) D) Dependency inversion principle / Принцип инверсии зависимостей Этот пункт опять потиворечит пункту простоты, те делать абстрактно-универсальные программы, которые "возможно" пригодятся, но скорее нет)

Но спасибо за статью. Часто бывают на собесах любят подобное что-то спросить

Андрей
Ну половина просто высосана из пальцев. 1. YAGNI "...

Ты не понял суть инверсии зависимостей. Там всё про ООП, паттерны и прочие максимальные абстракции.

Денис- Автор вопроса
Vladimir K
Ты не понял суть инверсии зависимостей. Там всё пр...

Не, ну так-то DI действительно противоречит ряду др. принципов из списка. Можно сказать, что расширения в сап это как раз DI. Оставили место, где можно воткнуться. А не нужно? Ну что поделать, а место для этого уже есть (YAGNI и KISS нарушены) Ну так никто и не говорит, что эти принципы должны однозначно выполняться вместе. Как всегда: нужно искать баланс

Денис
Не, ну так-то DI действительно противоречит ряду д...

Про расширения согласен, про то, что это DI - нет.

Денис- Автор вопроса
Vladimir K
Про расширения согласен, про то, что это DI - нет.

Ну нет - так нет ) Я ж говорю "можно". Похоже. В темноте и издалека)

Денис
Ну нет - так нет ) Я ж говорю "можно". Похоже. В т...

Вся суть сводится к фразе "программируйте интерфейсами". Максимально абстрактно. И тогда код будет максимально стабилен и расширяем. Он будет прост, но прост в парадигме ООП.

Vladimir K
Про расширения согласен, про то, что это DI - нет.

Интересно, почему это расширения не DI? Возьмём Бади: интерфейс-контракт, при соблюдении которого не страшны любые апдейты с обеих сторон - клиента и поставщика. Стабильно, расширяемо. Другие способы расширения, по сути тоже контракты, только не ООПшные

Vladimir K
Бади - да, остальное - нет

Т.е. DI это строго ООП и точка?)

Dmitry B
Т.е. DI это строго ООП и точка?)

Нет программирования, кроме ООП. 😂

Денис- Автор вопроса
Vladimir K
Вся суть сводится к фразе "программируйте интерфей...

Чёт вики с тобой не согласна https://ru.m.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%B8%D0%BD%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9

Денис
Чёт вики с тобой не согласна https://ru.m.wikipedi...

Замени модули на интерфейсы и читай моё сообщение про ООП. 😂

Денис- Автор вопроса
Vladimir K
Замени модули на интерфейсы и читай моё сообщение ...

Оставь модули как есть и сравни с кастомер-экзитами😜

Vladimir K
Ты не понял суть инверсии зависимостей. Там всё пр...

Возможно, но многие проблемы в сжатых срока реализации, когда делают максимально быстро и еще не дают полной картины, полного списка задач. Те тебе дали отчет - ты написал для него какие-то методы/классы. А потом дают вторую задачу похожую и ты понимаешь, что дали бы обе. Ты бы потратил время на создание "базовых" сущностей. а потом там уже их переиспользовал бы как душе угодно к примеру.

Денис- Автор вопроса
Андрей
Возможно, но многие проблемы в сжатых срока реализ...

Архитектор и архконтроль? Не, не слышал )

Денис
Архитектор и архконтроль? Не, не слышал )

Реально редко слышу) Шабашка была, компания имеет САП крупно использует, но нет ни одного сотрудников штате отвечающего за абап код, только базисники немного. Если что-то надо то на аутсорс и там как повезет )))

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта