суббота, 16 августа 2014 г.

И ещё. Коротко. О DI и Service-Locator

http://habrahabr.ru/post/232955/#comment_7856369

Скажем так. Автор комментария - во многом прав.

(Почему он только решил, что "мы школьники у доски" - это другой вопрос :-))

Хотя он конечно наверное имеет в виду "конкретную реализацию".

Скажем - тот же Spring.

Скажу больше - до ВЧЕРАШНЕГО дня я ПУТАЛ термины Dependency Injection и Dependency Inversion.

Я ПЛОХО читал вот это:

" Используя же внедрение зависимости, объект просто предоставляет свойство, которое в состоянии хранить ссылку на нужный тип сервиса; и когда объект создается, ссылка на реализацию нужного типа сервиса автоматически вставляется в это свойство (поле), используя средства среды."

(https://ru.wikipedia.org/wiki/Dependency_Injection)

И это - Я - ЗАПУТАЛ своего соавтора.

Скажем так.

Термин - Inversion Of Control - был бы наверное - САМЫМ правильным.

Или я в чём-то опять ошибаюсь?

По мне - ГЛАВНОЕ - не "детали", а "суть".

Я ведь не "о терминах поспорить", а о том, как правильнее "разрулить зависимости".

Что "зависимости переворачиваются". Или я опять в чём-то не прав?

Понимаете!

Вот какая штука.

Я МНОГО проводил собеседования. И ОЧЕНЬ ЧАСТО был поражён тому, что "люди знают БОЛЬШЕ меня". И "сыплют определениями и терминами".

А вот - "заставь программировать" и пишут - "быдло-код" (это не моё определение, а вот - http://habrahabr.ru/post/232955/#comment_7856841).

Что я "ПЫТАЮСЬ" сделать? Я "ПЫТАЮСЬ" разорвать "дистанцию" между "теорией" и "практикой". Получается "криво и косо", но я - ПЫТАЮСЬ.

Как написал мой украинский коллега - "бока есть везде" (http://programmingmindstream.blogspot.ru/2014/08/mindstream-firemonkey.html?showComment=1407967805764#c6175911651965612908)

Понимаете! Я - ремесленник. И пытаюсь пропагандировать "инженерный подход".

Ну скажем так - https://ru.wikipedia.org/wiki/%D0%9B%D0%B0%D0%BF%D0%BB%D0%B0%D1%81%D0%B0_%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

Ведь НИКТО из инженеров не РЕШАЕТ дифференциальные уравнения для "контуров".

Ведь переводят сначала в пространство "изображений". Там решают АЛГЕБРАИЧЕСКИЕ уравнения в комплексных переменных, а ПОТОМ - переводят ОБРАТНО.

И ТАКЖЕ кстати и тут - http://programmingmindstream.blogspot.ru/2014/08/blog-post_11.html

Евклидово пространство переходит в "проекционное" (с координатой +1), в "ПРОЕКЦИОННОМ" пространстве делаются пребразования. И ПОТОМ - ОБРАТНО переходим в евклидово пространство.

Зачем нам "проекционное пространство"?

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

(https://ru.wikipedia.org/wiki/%D0%90%D1%84%D0%B8%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

Или я ОПЯТЬ не прав?

Ну и на закуску. Опять из "области заблуждений" - http://programmingmindstream.blogspot.ru/2013/12/dependency-injection.html

Похоже я не одного человека "ввёл в заблуждение"?

Что же - каюсь... посыпаю голову пеплом..

И ещё:
http://habrahabr.ru/post/232955/#comment_7858719

"Эта, рожденная «эффективными менеджерами», «рыжая обезьяна» убила «дельфийского оракула». Никогда не прощу!"

Эта ОГНЕННАЯ ОБЕЗЬЯНА рождена НЕ МЕНЕДЖЕРАМИ, а вполне себе программистом. ХОРОШИ программистом - Евгением Крюковым.

И в этой "ОГНЕННОЙ ОБЕЗЬЯНЕ" есть - ЗАМЕЧАТЕЛЬНЫЕ идеи и решения. Какие? "Спросите меня" - я вам расскажу.

Они - НА САМОМ ДЕЛЕ - замечательные.

Насчёт "убила" - сомневаюсь - никто никого пока не убил.

Выступлю снобом. Я знаю что такое FM. И ЗНАЮ что такое VGScene (http://rutracker.org/forum/viewtopic.php?t=2356606) и правил ошибки и ТАМ и ТАМ.

Но! Концептуально - FM (aka VGScene) - ЛУЧШЕ чем VCL.

Чем лучше? "Спроси меня".

Да хотя бы - "стилизацией" и "слоёным пирогом контролов".

(Хотя где плюсы - там же и минусы)

И ещё.

"Серое и озлобленное чмо" (http://programmingmindstream.blogspot.ru/2014/08/mindstream-firemonkey.html?showComment=1407936000707#c4892634008350853276) - несколько миллионов строк кода - таки написало за свою жизнь :-) таки "оно" может вставить хотя бы "свои пять копеек".

Вот хотя бы - http://everesteditor.chat.ru/

Из "былого"...

P.S. "Коротко" - не получилось :-(

P.P.S. Желающих "покритиковать" в духе Андрея Сьестова (http://programmingmindstream.blogspot.ru/2014/08/mindstream-firemonkey.html?showComment=1407936000707#c4892634008350853276) - приглашаю к СОТРУДНИЧЕСТВУ.

У меня есть "несколько коммерческих предложений". В частности - перевод статей на английский. И НЕ ТОЛЬКО. И я ГОТОВ ОПЛАЧИВАТЬ работу. Сколько? Договоримся. Главное, что я не "на халяву" хочу.

Приходите. Помогайте. Можете заработать.

А называть "серым и унылым чмом" - я тоже могу. Но! НЕ БУДУ.

2 комментария:

  1. IMHO Александр Вы переборщили и с рефлексией и с количеством пепла на голову :-)
    По-моему, лучше накатить пиффка - выходные всё таки, отдохнуть и продолжить заниматься тем, что у Вас хорошо получается.
    Но над стилем, IMHO, неплохо бы поработать...
    И, возможно... Над отношением к окружающему Вас. Ведь не важно, что происходит - важно, как Вы к этому относитесь. Не так ли? ;-)

    ОтветитьУдалить